Use la misma IP para 2 adaptadores Ethernet en diferentes networkinges físicas

Tenemos un Panel de Linux con 2 interfaces de networking. En este Panel, se ejecuta un software que necesita comunicarse a nuestros dispositivos en nuestra networking, y debe ser accesible desde la networking de clientes. Una interfaz está conectada a nuestra networking de máquinas, con direcciones de networking fijas (192.168.1.x), donde el panel siempre tiene la IP 192.168.1.1. La otra interfaz es la connection a la networking de clientes. Debido a que entregamos nuestras máquinas en todas partes, la networking de clientes tiene todo tipo de configuration. Entonces, puede suceder que nuestro segundo puerto de networking también esté en una networking 192.168.1.x, también puede suceder que usemos la misma IP 192.168.1.1

¿Es posible esta configuration? ¿Cómo lo configuro en Linux?

Desafortunadamente, eso no va a funcionar bien, no porque la IP esté en ambas interfaces, sino porque la subnetworking sí lo está.

Si su dispositivo necesita hablar con 192.168.1.2, ¿qué interfaz debe enviar ese tráfico? Tal vez ese sea el dispositivo del cliente que intenta hablar con su dispositivo, tal vez sea su dispositivo el que intente hablar con uno de sus otros dispositivos. El núcleo no lo sabe (sin una complicada configuration de routing).

Algunos enfoques para esto:

  1. Elija una subnetworking tan pequeña como sea posible, fuera del espacio RFC1918 less utilizado con less frecuencia. Esto minimiza la posibilidad de conflicto, pero no puede eliminarlo.

  2. Haga que el espacio de la networking interna sea configurable, de modo que el cliente (o su personal de soporte) pueda cambiarlo a algo que no entre en conflicto.

  3. Use las direcciones locales del enlace en lugar del espacio RFC1918. Tanto IPv4 como IPv6 tienen direcciones locales de enlace.

  4. Solicite direcciones IP públicas (enrutables) para usar para esto. Puedes usar el mismo set de ellos en todos tus dispositivos, básicamente lo estás usando como espacio RFC1918, solo tienes la garantía de que nunca va a entrar en conflicto. Muy difícil de hacer para IPv4 (nos hemos agotado en su mayoría), debería ser mucho más fácil si puede usar IPv6.

  5. Si los processs que necesitan comunicarse con el equipo del cliente están completamente separados de los que necesitan comunicarse con su otro equipo, puede poner cada interfaz en su propio espacio de nombre de networking (vea ip netns ), entonces cada espacio de nombre solo ve uno de los 192.168.1.0/24 subnetworkinges, por lo que no hay conflicto. Esta sería la configuration de routing más simple.