Estou construindo um dispositivo que consiste em vários subdispositivos conectados por Ethernet dentro do dispositivo. O dispositivo se conectará à rede do cliente. A rede do cliente pode estar usando endereços IP privados. Um conflito de endereço com a rede interna seria um problema (o subdispositivo conectado às duas redes ficaria confuso). IPv6 não é uma opção.
Devo comprar endereços IPv4? Ou talvez eu possa me safar usando o TEST-NET-3 (203.0.113.0/24) ou algo assim? Qual é a melhor prática?
Respostas:
@yoonix enviou um link que pode ter uma solução.
Link-local, também conhecido como APIPA.
169.254.0.0/16 - este é o bloco "link local". Conforme descrito no RFC3927, ele é alocado para comunicação entre hosts em um único link. Os hosts obtêm esses endereços pela configuração automática, como quando um servidor DHCP não pode ser encontrado.
Se eu fosse seu cliente, com certeza gostaria de ter a opção de configurar isso sozinho e / ou usar o DHCP (que é, eu não sei, talvez um padrão estabelecido há muito tempo?), Mas na ausência de é exatamente para isso que o APIPA deve ser usado.
Editar - Como você agora declara que os endereços IP devem ser estáticos para hosts individuais em sua solução, porque eles corresponderão às regras de firewall no seu dispositivo de gateway, suponho que seria necessário um pouco de esforço de sua parte para fazer com que o link funcionasse. endereçamento IPv4 local; esforço que você diz que não vai gastar. Então, você basicamente precisa tornar isso configurável. Você pode enviá-lo com um padrão, menos provável de ser usado por um cliente, mas você deve ter um mecanismo pelo qual ele possa ser alterado em caso de conflito. Pelo cliente ou por você como parte da implementação / UAT.
fonte
Torne-o configurável.
Sim. TENTE ISSO. Primeiro, você não os compra, os "aluga" por associação. Segundo, isso requer um AS e 2 uplinks. Terceiro, isso requer uma razão e "não queremos supor que uma infra-estrutura de rede adequada" seja uma razão que resulte em risadas (e rejeição), não na obtenção de endereços IP alocados.
Possivelmente. Até o dia em que alguém pede a oyu o custo de consertar as coisas por causa de negligência grosseira.
Torne-o configurável. Ou use o IPV6 - lá você pode se safar com algumas reservas.
fonte
Da Wikipedia:
Assigned as "TEST-NET-3" in RFC 5737 for use solely in documentation and example source code and should not be used publicly.
- Isso me diz que você não deve usar o TEST-NET-3.Uma coisa que você parece ignorar: como você supõe que poderá se comunicar com o dispositivo ou que o dispositivo poderá se comunicar com outros dispositivos e vice-versa se você não configurar o endereço IP do dispositivo PARA a rede do cliente? Se você atribuir um endereço IP em uma rede que não esteja em uso na rede do cliente (Você: 192.168.1.0/24 - Eles: 10.0.0.0/8), como você acha que a comunicação de rede funcionará? É por isso que você deve configurar o dispositivo para usar o DHCP imediatamente e permitir que o cliente o configure estaticamente posteriormente.
Se você não pode usar o DHCP, use o APIPA.
fonte
Em teoria, qualquer intervalo de IP privado poderia estar em uso por qualquer rede privada, então duvido que você encontre uma prática recomendada ou qualquer coisa que seja universalmente aplicável se você codificar o endereço. A melhor prática seria torná-lo configurável e permitir que a rede do cliente atribua ao dispositivo um endereço privado (via DHCP, por exemplo).
Se isso não é uma opção, acho que quase ninguém usa a metade superior da
172.16.0.0/12
, então é isso que eu uso. (Acho que estou executando172.25.0.0/16
, para ser mais preciso.) Eu ainda tenho uma colisão de endereços e faço VPN em muitas redes privadas.Se você precisar usar um endereço privado IPv4, acho que é o melhor que você poderá fazer, com o
10.0.0.0/8
bloco sendo amplamente usado e o192.168.0.0/16
bloco sendo o padrão para quase tudo, o único que resta172.16.0.0/12
. Obviamente, esse bloco é frequentemente usado para VPNs, para evitar colisões de endereços, devido ao uso generalizado de outros blocos de rede privada, portanto, use os endereços superiores, pois (na minha experiência) são as sub-redes menos utilizadas nesse bloco .fonte
Estamos projetando exatamente a mesma coisa e decidimos usar os endereços locais do site IPv6 com um prefixo fc00: nnnn aleatório.
fonte
Supondo que nenhum desses subdispositivos precise de conectividade direta fora do dispositivo, você deve usar a rede de loopback para isso (127.0.0.0/8).
RFC 5735 / Seção 3
Loopback na Wikipedia
fonte
Seu "controlador principal" pode executar um servidor DHCP / fornecer concessões DHCP em sua interface "interna"?
Eu fiz algo no passado para um dos produtos comerciais da nossa empresa que pode ser útil. O dispositivo tinha duas portas Ethernet, uma das quais destinada à conectividade "direta" de um PC. A questão era semelhante; queríamos evitar conflitos de endereço IP com a LAN interna do cliente (possivelmente em uma rede IP privada) e com o mundo em geral.
A lógica deste dispositivo era configurar dinamicamente um servidor DHCP ("udhcpc", por meio de opções de linha de comando) na porta LAN "direta" (eth1) com base em sua própria configuração de IP na porta LAN "pública" (eth0). Se o dispositivo obteve seu próprio endereço IP através do DHCP ou via configuração estática, o módulo que aplicou a configuração também alteraria a configuração do servidor DHCP para evitar conflitos.
Por exemplo, se o dispositivo obtivesse o endereço 192.168.0.100/netmask 255.255.255.0 (em eth0), ele configuraria seu próprio servidor DHCP (em eth1) para a próxima rede disponível 192.168.1.0/255.255.255.0.
Ele escolheria uma dessas redes (em ordem de prioridade): 192.168.0.0/24 ... 192.168.254.0/24 172.16.0.0/16 ... 172.31.0.0/16 10.0.0.0/8
Espero que isto ajude.
fonte
192.168.0.0/16
como prefixo do meu site, mas você estiver conectado apenas à VLAN192.168.0.0/24
? Você acabou de fazer o hi-jacked192.168.1.0/24
, embora eu esteja usando em outra VLAN no mesmo site.