¿Por qué Linux requiere mover IP de la interfaz eth a la interfaz bridge?

27

Cuando se agrega una interfaz de red (por ejemplo, eth0) a un puente de Linux (por ejemplo, br0), la dirección IP debe eliminarse de eth0 y agregarse a br0 para que la red funcione correctamente.

Recuerdo haber leído en algún archivo Léame de Open vSwitch (que no puedo encontrar en este momento) que se requiera mover la dirección IP debido a cómo se implementa el kernel de Linux. ¿Qué tiene la implementación de Linux que requiere que la dirección IP se mueva de la NIC al puente?

Lorin Hochstein
fuente

Respuestas:

10

La NIC representa el cable de enlace ascendente. Un cable es la capa 1, no la capa 3.

Ahora el puente funciona como el dispositivo que se dirige al tráfico de red (entrante) en el servidor, ya sea en la capa 2 (Ethernet / MAC) y / o la capa 3 (IP).

Entonces, el dispositivo que responde a las solicitudes ARP es el puente, lo cual es bueno, ya que necesita distribuir el tráfico a las otras interfaces en ese puente.

Si el dispositivo de respuesta fuera la NIC, el tráfico no se pasaría más al puente.

Por lo tanto, en algunas guías se recomienda incluso eliminar el MAC de la NIC (enlace ascendente).

Nils
fuente
Entonces, hablando de los mecanismos linux reales (no de las buenas prácticas), ¿significa que si coloco una interfaz debajo de un puente, el núcleo ya no la considerará como una interfaz direccionable L2 / L3? Derecha ? Como nada impide asignarle un MAC / IP, es confuso.
Jocelyn delalande
1
@Jocelyn Al revés. Si todavía es direccionable como L2 / 3, bloqueará el otro tráfico. Por lo tanto, no debe abordarse directamente si está en un puente.
Nils
ok, pero por defecto el puerto sigue siendo direccionable en L2 (mantiene un MACaddr si no lo elimino), ¿verdad? ¿Por qué deja que el tráfico L2 fluya hacia el puente?
Jocelyn delalande
2
@Jocelyn Siempre y cuando no responda a las solicitudes arp, todo será bueno en l2 / 3. Si no captura paquetes, permitirá pasar paquetes a la parte de red del núcleo.
Nils
Okay. Pregunté porque noté que se había caído algo de tráfico al asignar una dirección al puerto; pero fue causado por rp_filter.
Jocelyn delalande
1

El puente distribuye el tráfico a donde necesita ir cuando hay múltiples interfaces en un puente. Más o menos, las interfaces individuales en el puente están trabajando en la capa 2 ahora de acuerdo con lo que determina el puente, no independientemente en la capa 3. Por lo tanto, desea abordar el puente en su conjunto, no las interfaces individuales dentro de él.

LawrenceC
fuente