Estoy construyendo un dispositivo que consta de varios subdispositivos conectados por ethernet dentro del dispositivo. El dispositivo se conectará a la red del cliente. La red del cliente puede estar utilizando direcciones IP privadas. Un conflicto de direcciones con la red interna sería un problema (el subdispositivo conectado a ambas redes se confundiría). IPv6 no es una opción.
¿Debo comprar direcciones IPv4? ¿O tal vez pueda salirse con la suya usando TEST-NET-3 (203.0.113.0/24) o algo así? cual es la mejor practica?
Respuestas:
@yoonix ha enviado un enlace que podría tener una solución.
Link-local, también conocido como APIPA.
169.254.0.0/16 - Este es el bloque "enlace local". Como se describe en RFC3927, se asigna para la comunicación entre hosts en un solo enlace. Los hosts obtienen estas direcciones mediante la configuración automática, como cuando no se puede encontrar un servidor DHCP.
Si fuera su cliente, me gustaría tener la opción de configurar esto yo mismo y / o usar DHCP (que es, ¿no sé, tal vez un estándar establecido hace mucho tiempo?), Pero en ausencia de esos, esto es exactamente para lo que APIPA se supone que debe usarse.
Editar: dado que ahora declara que las direcciones IP deben ser estáticas para los hosts individuales en su solución porque corresponderán a las reglas de firewall en su dispositivo de puerta de enlace, supongo que tomará un poco de esfuerzo de su parte para que eso funcione con el enlace direccionamiento IPv4 local; esfuerzo que dices que no gastarás. Entonces, esencialmente tienes que hacer esto configurable. Puede enviarlo con un valor predeterminado, uno que sea menos probable que sea utilizado por un cliente, pero debe tener un mecanismo por el cual pueda cambiarse en caso de conflicto. Ya sea por el cliente o por usted como parte de la implementación / UAT.
fuente
Hazlo configurable.
Si. TRATA ESO. Primero, no los compra, los "alquila" por membresía. Segundo, esto requiere un AS y 2 enlaces ascendentes. Tercero, esto requiere una razón y "no queremos suponer que una infraestructura de red adecuada" sea una razón que provoque risas (y un rechazo), no que se le asignen direcciones IP.
Posiblemente. Hasta el día en que alguien le pregunta a oyu por el costo de arreglar las cosas por negligencia grave.
Hazlo configurable. O use IPV6: allí puede escapar con algunas reservas.
fuente
De Wikipedia:
Assigned as "TEST-NET-3" in RFC 5737 for use solely in documentation and example source code and should not be used publicly.
- Esto me dice que no debes usar TEST-NET-3.Algo que parece pasar por alto: ¿cómo supone que podrá comunicarse con el dispositivo o que el dispositivo podrá comunicarse con otros dispositivos y viceversa si no configura la dirección IP del dispositivo? ¿PARA la red del cliente? Si asigna una dirección IP en una red que no está en uso en la red del cliente (Usted: 192.168.1.0/24 - Ellos: 10.0.0.0/8), ¿cómo supone que funcionará la comunicación de red? Esta es la razón por la que debe configurar el dispositivo para usar DHCP de forma inmediata y permitir que el cliente lo configure estáticamente después.
Si no puede usar DHCP, use APIPA.
fuente
En teoría, cualquier rango de IP privado podría estar en uso por cualquier red privada, por lo que dudo que encuentre una mejor práctica, o cualquier cosa que sea de aplicación universal si está codificando la dirección. La mejor práctica sería hacerlo configurable y permitir que la red del cliente asigne al dispositivo una dirección privada (a través de DHCP, por ejemplo).
Si esa no es una opción, encuentro que casi nadie usa la mitad superior de la
172.16.0.0/12
, así que eso es lo que yo uso. (Creo que estoy funcionando172.25.0.0/16
, para ser precisos). Todavía tengo que tener una colisión de direcciones y VPN en muchas redes privadas.Si tiene que usar una dirección privada IPv4, creo que es lo mejor que podrá hacer, ya que el
10.0.0.0/8
bloque se usa ampliamente y el192.168.0.0/16
bloque es el predeterminado para casi todo, el único que quedaría sería172.16.0.0/12
. Por supuesto, este bloque a menudo se usa para VPN, para evitar colisiones de direcciones, debido al uso generalizado de los otros bloques de redes privadas, así que use las direcciones superiores, ya que (en mi experiencia) son las subredes menos utilizadas en ese bloque .fuente
Estamos diseñando exactamente lo mismo y hemos decidido utilizar las direcciones locales del sitio IPv6 con un prefijo aleatorio fc00: nnnn.
fuente
Suponiendo que ninguno de estos subdispositivos necesite conectividad directa fuera del dispositivo, debe usar la red de bucle invertido para esto (127.0.0.0/8).
RFC 5735 / Sección 3
Loopback en Wikipedia
fuente
¿Puede su "controlador principal" ejecutar un servidor DHCP / proporcionar arrendamientos DHCP en su interfaz "interna"?
He hecho algo en el pasado para uno de los productos comerciales de nuestra compañía que podría ser útil. El dispositivo tenía dos puertos ethernet, uno de los cuales estaba destinado a la conectividad "directa" desde una PC. El problema era similar; Queríamos evitar conflictos de direcciones IP con la LAN interna de un cliente (posiblemente en una red IP privada), así como con el mundo en general.
La lógica en este dispositivo era configurar dinámicamente un servidor DHCP ("udhcpc", a través de opciones de línea de comando) en el puerto LAN "directo" (eth1) basado en su propia configuración IP en su puerto LAN "público" (eth0). Si el dispositivo obtuvo su propia dirección IP a través de DHCP o mediante una configuración estática, el módulo que aplicó la configuración también cambiaría la configuración del servidor DHCP para evitar conflictos.
Por ejemplo, si el dispositivo obtuvo la dirección 192.168.0.100/netmask 255.255.255.0 (en eth0), configuraría su propio servidor DHCP (en eth1) para la siguiente red disponible 192.168.1.0/255.255.255.0.
Elegiría de una de estas redes (en orden de prioridad): 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 esto ayude.
fuente
192.168.0.0/16
como prefijo de mi sitio, pero solo está conectado a la VLAN192.168.0.0/24
? Te acabas de conectar192.168.1.0/24
a pesar de que lo estoy usando en otra VLAN en el mismo sitio.