2 votos

Comunicación a través de interfaces puenteadas

Me gustaría comunicar a una dirección IP especial en un pequeño dispositivo linux que tiene dos interfaces Ethernet que se utiliza en un puente.

El puente está configurado así:

# Delete bridge if it exists
ip link delete $BRIDGE_IF type bridge

# Prepare device-facing interface
ip link set dev $DEVICE_IF down
ip address flush dev $DEVICE_IF
ip address add 0.0.0.0 dev $DEVICE_IF
ip link set dev $DEVICE_IF up

# Prepare network-facing interface
ip link set dev $NETWORK_IF down
ip address flush dev $NETWORK_IF
ip address add 0.0.0.0 dev $NETWORK_IF
ip link set dev $NETWORK_IF up

# Create bridge and add interfances
ip link add name $BRIDGE_IF type bridge
ip link set dev $BRIDGE_IF up
ip link set dev $DEVICE_IF master $BRIDGE_IF
ip link set dev $NETWORK_IF master $BRIDGE_IF

# Add IPv4 address to bridge interface
ip -4 address add $BRIDGE_IPV4 dev $BRIDGE_IF

# Make sure forwarding is enabled.
sysctl -w net.ipv4.ip_forward=1

Tengo un puente transparente, pero me gustaría comunicarse con $SPECIAL_IP desde el dispositivo. No tiene más interfaces Ethernet, y que necesita para utilizar la dirección IP del dispositivo que se adjunta (puedo conseguir que de forma fiable con un conector de lectura en $DEVICE_IF).

Así que, básicamente, necesito establecer la comunicación TCP/IP con una dirección IP que no interfiera con ningún otro medio de comunicación que va a través del puente. He intentado un sinnúmero de iteraciones de iptables, ebtables, y el establecimiento de rutas fue en vano. Y no creo que vuelva a leer algo de documentación en línea por enésima vez le ayuda (p. ej., http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section7).

Edit: Añadido El Diagrama

Mini Linux Device Diagram

Edit: Añadido El Razonamiento / Antecedentes

Necesito agregar alguna funcionalidad a muchos (creo que muchos miles) de legado dispositivos Ethernet que no podemos cambiar (es decir, sin necesidad de software o actualizaciones de firmware posible o permitido). El "Mini Dispositivo Linux" proporciona funcionalidad de firewall, pero también se necesita para enviar y recibir la comunicación en sí misma para proporcionar toda la funcionalidad añadida. Muchos (alrededor del 65%) de la red en la que el legado de los dispositivos de residir puede añadir una cantidad suficiente de nuevas direcciones IP (ni suficiente nuevas direcciones MAC de los "motivos") para permitir que todos los dispositivos heredados tener un "Mini Dispositivo Linux", agregó. Esto es debido a que (1) más del 50% de la XXX.XXX.XXX.0/24 se utiliza, y (2) muchos de direcciones IP y/o direcciones MAC están "codificados" en algunas aguas arriba de los sistemas de control. Estos "tontos" de la red (IP y MAC) limitaciones por motivos heredados (Creo que de los años 1990 redes SCADA); por lo tanto, yo estoy tratando de hacer que el "Mini Dispositivo Linux" que sólo necesita usar la IP y la MAC del dispositivo que está aumentando. Así que he creado un puente, y puedo añadir iptables firewall, lo que nos hace mejor que nada, pero con el fin de agregar la funcionalidad adicional de la "Mini Dispositivo Linux" debe ser capaz de comunicarse a sí mismo.

NOTA 1: podemos garantizar que las direcciones IP ($SPECIAL_IP), que son más de uno, son las direcciones IP que el dispositivo de la herencia nunca, o nunca deben comunicarse directamente y que son en su mayoría, aunque no exclusivamente, fuera del espacio de direcciones privadas.

NOTA 2: Si hay una forma completamente diferente podría implementar esto, soy todo oídos, a pesar de que aún le gustaría saber si esto es posible.

¿Alguien sabe cómo hacer esto?

1voto

chutz Puntos 4628

No necesitas una interfaz puente. La interfaz de puente se utiliza cuando hay varias interfaces conectadas a la misma red. Tu caso es diferente.

Retire el DEVICE_IF del puente.

Asigne una dirección IP de la red DEVICE al DEVICE_IF. Asegúrese de que puede hacer ping al dispositivo.

Además, no es necesario que asigne 0.0.0.0 a su interfaz puenteada.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: