Saltar al contenido

¿Por qué asignar direcciones MAC e IP en la interfaz Bridge?

Si encuentras algún fallo con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes aplicar el código al trabajo final.

Solución:

Debido a que un puente es un dispositivo Ethernet, necesita una dirección MAC. Un puente de Linux puede originar cosas como marcos de protocolo de árbol de expansión, y el tráfico como ese necesita una dirección MAC de origen.

Un puente no exigir una dirección IP. Hay muchas situaciones en las que no tendrás uno. Sin embargo, en muchos casos Ud. puede tener uno, como:

  • Cuando el puente actúa como puerta de enlace predeterminada para un grupo de contenedores o máquinas virtuales (o incluso interfaces físicas). En este caso, necesita una dirección IP (porque el enrutamiento ocurre en la capa IP).

  • Cuando su NIC “principal” es miembro del puente, de modo que el puente es su conectividad con el mundo exterior. En este caso, en lugar de asignar una dirección IP a (por ejemplo) eth0lo asignaría al dispositivo puente en su lugar.

Si el puente es no requerido para el enrutamiento IP, entonces no necesita una dirección IP. Ejemplos de esta situación incluyen:

  • Cuando el puente se utiliza para crear una red privada de dispositivos sin conectividad externa o con conectividad externa proporcionada a través de un dispositivo que no sea el puente.

Sí, la interfaz de puente actúa como un puerto adicional.

Después man 5 systemd.netdev:

Un dispositivo puente es un conmutador de software, y cada uno de sus dispositivos esclavos y el propio puente son puertos del conmutador.

El dispositivo de puente enumerado con sus otros dispositivos de red no representa el puente virtual, representa una NIC virtual que está conectada al puente. Si tuviera un puente físico conectado con dispositivos de red físicos, tampoco vería el puente físico en la lista de sus dispositivos de red, pero sí vería su NIC que está conectada al puente, que por supuesto tiene su propia dirección MAC como cualquier otro dispositivo de red.

Asignar una dirección IP al dispositivo puente (que, de nuevo, es en realidad una NIC virtual conectada al puente virtual) permite que su dispositivo host enrute paquetes a la subred creada por el puente y todos los dispositivos conectados a él. ¡Pulcro!

Mientras que las herramientas de dispositivos de red como iproute2 (con el ip link y ip addr comandos) le permiten ver la NIC virtual adjunta al puente, también es posible ver el puente virtual en sí mismo con el brctl programa. Él brctl show El comando enumerará todos los puentes y sus interfaces adjuntas. Aquí hay un ejemplo usando iproute y brctl con puentes Linux y tuntaps:

# ip link add br0 type bridge
# ip tuntap add dev tap0 mode tap
# ip tuntap add dev tap1 mode tap
# ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev br0
# ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev tap0
# ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev tap1
# brctl addif br0 tap0
# brctl addif br0 tap1
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.2e22e593fe8c       no              tap0
                                                        tap1
# ip addr show to 10.0.0.0/24
11: br0:  mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    inet 10.0.0.1/24 brd 10.0.0.255 scope global br0
       valid_lft forever preferred_lft forever
12: tap0:  mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
    inet 10.0.0.2/24 brd 10.0.0.255 scope global tap0
       valid_lft forever preferred_lft forever
13: tap1:  mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
    inet 10.0.0.3/24 brd 10.0.0.255 scope global tap1
       valid_lft forever preferred_lft forever

Tenga en cuenta que lo que se enumera en “interfaces” en la salida de brctl show son los otro interfaces adosadas al puente, además de las br0 interfaz que se agregó automáticamente cuando se creó el puente. (Supongo que Linux no permite crear un puente virtual sin dispositivos conectados, y los puentes sin dispositivos se destruyen automáticamente). Para que conste, no he investigado esto en el kernel, ni soy un experto en redes. Publiqué esto porque parece explicar de manera convincente la implementación bastante confusa de los puentes virtuales en Linux. No creo que los propios puentes virtuales tengan direcciones MAC.

Aquí puedes ver las reseñas y valoraciones de los lectores

Si te ha resultado útil este artículo, sería de mucha ayuda si lo compartieras con más programadores de esta manera nos ayudas a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *