Tengo un sistema Linux con 3 NIC dedicadas y las 3 están en la misma subred con las siguientes IP
ETH0: 192.168.1.10
ETH1: 192.168.1.11
ETH2: 192.168.1.12
Configuré tres tablas de enrutamiento y las rutas y reglas IP correspondientes para aislar el tráfico de los 3 puertos. A continuación se muestra lo mismo para ETH1. ETH0 y ETH2 también tienen entradas similares.
default via 192.168.1.1 dev eth1
192.168.1.0/24 dev eth1 src 192.168.1.11
32752: from all to 192.168.1.11/24 lookup 1
32753: from 192.168.1.11/24 lookup 1
Si ETH1 y ETH2 están desconectados mientras ETH0 está conectado, cuando hago ping a las IP de ETH1 y ETH2, obtengo una respuesta de ETH0. En otra pregunta,Ping fantasma en un sistema Linux con múltiples NICDescubrí que esto se debe a que la tabla ARP se completa con la misma dirección MAC para los 3 puertos.
He configurado arp_ignore y arp_announce como se especifica aquíUbuntu Linux: varias NIC, la misma LAN... las respuestas ARP siempre salen de una única NIC& Puedo ver las entradas ARP en la PC que contienen las direcciones MAC correctas.
Sin embargo, sigo viendo que sólo un puerto se convierte en el "predeterminado" en esta circunstancia. Esto se puede ver muy fácilmente cuando, por ejemplo, ETH1 y ETH2 ya están conectados y el cable para ETH0 ahora está enchufado pero ETH0 está conectado a un conmutador aislado (que no tiene conexión a la subred). Ahora, ETH0 se convierte en el valor predeterminado y, debido al aislamiento, los pings a ETH1 y ETH2 también fallan.
¿Existe alguna manera de poder aislar realmente el tráfico en los tres puertos?