Análisis del modo de enlace de NIC

Actualmente existen siete tipos de modos de vinculación de NIC (0~6): bond0, bond1, bond2, bond3, bond4, bond5, bond6.

Análisis del modo de enlace de NIC Análisis del modo de enlace de NIC

Hay tres de uso común:

mode=0: modo de carga equilibrada, con copia de seguridad automática, pero requiere soporte y configuración de "Switch".

mode=1: modo de copia de seguridad automática, si una de las líneas se desconecta, las otras líneas se realizarán una copia de seguridad automáticamente.

mode=6: modo de carga equilibrada, con copia de seguridad automática, sin necesidad de soporte ni configuración de "Switch".

ilustrar:

Cabe señalar que si desea lograr el equilibrio de carga en modo 0, no basta con configurar optionsbond0 miimon=100 mode=0 aquí, y el conmutador conectado a la tarjeta de red debe estar configurado especialmente (estos dos puertos deben agregarse ), porque al hacer Las dos tarjetas de red de vinculación usan la misma dirección MAC, analice el principio (la vinculación se ejecuta en modo0):

En el modo 0, todas las IP de las tarjetas de red vinculadas al enlace se cambian a la misma dirección Mac. Si estas tarjetas de red están conectadas al mismo conmutador, entonces hay varios puertos correspondientes a la dirección Mac en la tabla arp del switch Entonces el switch ¿A qué puerto se debe reenviar el paquete enviado a esta dirección mac? En circunstancias normales, la dirección mac es única en el mundo y una dirección mac correspondiente a varios puertos debe confundir al conmutador. Por lo tanto, si el enlace en modo0 está conectado a un conmutador, los puertos del conmutador deben agregarse (cisco se llama canal ethernet y fundición se llama grupo de puertos), porque después de agregar el conmutador, varios puertos bajo la agregación también se agrupan en una dirección Mac. Nuestra solución es conectar las dos tarjetas de red a diferentes conmutadores.

En el modo mode6, no es necesario configurar un conmutador, porque las dos tarjetas de red utilizadas para la vinculación utilizan direcciones MAC diferentes.

Descripción de los siete modos de enlace:

mod = 0, a saber: (equilibrio-rr) Política de operación por turnos (política de operación por turnos de equilibrio)

Características: El orden de los paquetes de datos de transmisión se transmite secuencialmente (es decir: el primer paquete va a eth0, el siguiente paquete va a eth1.... Sigue en bucle hasta que se completa la última transmisión), este modo proporciona equilibrio de carga y fallos. tolerancia; pero sabemos que si los paquetes de datos de una conexión o sesión se envían desde diferentes interfaces y luego pasan a través de diferentes enlaces en el medio, el problema de la llegada desordenada de paquetes de datos puede ocurrir en el lado del cliente, y Es necesario volver a solicitar el envío de los paquetes de datos que llegan fuera de orden, de modo que el rendimiento de la red disminuya.

mod=1, a saber: (respaldo activo)Política de respaldo activo (política de respaldo principal)

Características: Solo hay un dispositivo activo y, cuando uno deja de funcionar, el otro se convierte inmediatamente del dispositivo de respaldo al dispositivo maestro. La dirección mac es visible externamente. Desde el exterior, la dirección MAC del enlace es única para evitar confusiones en el switch. Este modo solo proporciona tolerancia a fallas, se puede ver que la ventaja de este algoritmo es que puede proporcionar una alta disponibilidad de conexiones de red, pero su utilización de recursos es baja y solo una interfaz está en estado de funcionamiento. En el caso de la red N interfaces, la utilización de recursos es 1/N

mod=2, a saber: (balance-xor)Política XOR (estrategia de equilibrio)

Características: Los paquetes de datos se transmiten según la estrategia de transmisión HASH especificada. La estrategia predeterminada es: (dirección MAC de origen XOR dirección MAC de destino)% número de esclavos. Se pueden especificar otras políticas de transmisión a través de la opción xmit_hash_policy; este modo proporciona equilibrio de carga y tolerancia a fallas.

mod=3, a saber: transmisión (estrategia de transmisión)

Características: Cada paquete se transmite en cada interfaz esclava, este modo proporciona tolerancia a fallas

mod=4, a saber: (802.3ad) IEEE 802.3ad Agregación de enlaces dinámicos (agregación de enlaces dinámicos)

Características: Cree un grupo de agregación, comparten la misma velocidad y configuración dúplex. Según la especificación 802.3ad, varios esclavos trabajan bajo el mismo agregado activo. La elección de esclavo para el tráfico saliente se basa en la política de hash de transmisión, que se puede cambiar de la política XOR predeterminada a otras políticas a través de la opción xmit_hash_policy. Cabe señalar que no todas las estrategias de transmisión son compatibles con 802.3ad, especialmente considerando el problema de paquetes fuera de secuencia mencionado en la sección 43.2.4 del estándar 802.3ad. Diferentes implementaciones pueden tener diferentes adaptaciones.

Condiciones necesarias:

Condición 1: ethtool admite la obtención de la configuración de velocidad y dúplex de cada esclavo

Condición 2: el conmutador (conmutador) admite la agregación de enlaces dinámicos IEEE802.3ad

Condición 3: la mayoría de los conmutadores (switches) deben configurarse específicamente para admitir el modo 802.3ad

mod = 5, a saber: (balance-tlb) Equilibrio de carga de transmisión adaptativo (equilibrio de carga de transmisión del adaptador)

Características: Unión de canales que no requiere ningún soporte especial para interruptor (interruptor). Distribuya el tráfico saliente en cada esclavo de acuerdo con la carga actual (calculada en función de la velocidad). Si el esclavo que recibe datos falla, otro esclavo toma la dirección MAC del esclavo fallido.

Condiciones necesarias para este modo: ethtool admite la obtención de la tasa de cada esclavo

mod = 6, a saber: (balance-alb) Equilibrio de carga adaptativo (equilibrio de carga adaptativo del adaptador)

Características: Este modo incluye el modo balance-tlb, además de recibir balance de carga (rlb) para el tráfico IPV4 y no requiere ningún soporte de conmutador. El equilibrio de carga de recepción se implementa mediante la negociación ARP. El controlador de enlace intercepta la respuesta ARP enviada por la máquina local y reescribe la dirección de hardware de origen en la dirección de hardware única de un esclavo en el enlace, de modo que diferentes pares utilicen diferentes direcciones de hardware para la comunicación.

El tráfico entrante del lado del servidor también está equilibrado. Cuando la máquina local envía una solicitud ARP, el controlador de enlace copia y guarda la información IP del par del paquete ARP. Cuando llega una respuesta ARP del par, el controlador de enlace extrae su dirección de hardware y envía una respuesta ARP a un esclavo en el enlace. Un problema con el uso de la negociación ARP para el equilibrio de carga es que cada vez que se transmite una solicitud ARP, se utilizará la dirección de hardware del enlace. Por lo tanto, después de que el par aprende esta dirección de hardware, todo el tráfico recibido fluirá hacia el esclavo actual. Este problema se puede resolver enviando actualizaciones (respuestas ARP) a todos los pares con sus direcciones de hardware únicas, lo que provoca que el tráfico se redistribuya. El tráfico recibido también se redistribuye cuando se agrega un nuevo esclavo al vínculo o cuando se reactiva un esclavo inactivo. La carga recibida se distribuye secuencialmente (roundrobin) en el esclavo de mayor velocidad del enlace. Cuando se vuelve a conectar un enlace o se agrega un nuevo esclavo al enlace, el tráfico recibido se redistribuye entre todos los esclavos actualmente activos. Enviar una respuesta ARP a cada cliente utilizando la dirección MAC especificada. El parámetro de retardo de subida que se describe a continuación debe establecerse en un valor mayor o igual que el retardo de reenvío del conmutador (conmutador), para garantizar que la respuesta ARP enviada al extremo opuesto no sea bloqueada por el conmutador (conmutador).

Condiciones necesarias:

Condición 1: ethtool admite la obtención de la tasa de cada esclavo;

Condición 2: el controlador subyacente admite la configuración de la dirección de hardware de un determinado dispositivo, de modo que siempre haya un esclavo (curr_active_slave) que utilice la dirección de hardware del enlace y, al mismo tiempo, garantice que cada esclavo del enlace tenga una dirección de hardware única. Si curr_active_slave falla, su dirección de hardware será asumida por el curr_active_slave recién seleccionado. De hecho, la diferencia entre mod=6 y mod=0: mod=6, primero llena el tráfico eth0, luego ocupa eth1,....ethX; y mod = 0, encontrará que el flujo de los dos puertos es muy estable, básicamente el mismo ancho de banda. Y mod = 6, encontrará que el flujo del primer puerto es muy alto y el segundo puerto solo representa una pequeña parte del flujo.

Enlace de puerto de red Linux :

A través de la tecnología de enlace de puertos de red (bond), es fácil lograr redundancia de puertos de red y equilibrio de carga, para lograr alta disponibilidad y alta confiabilidad. Acuerdo de premisa:

Los dos puertos de red físicos son: eth0, 
el puerto virtual después de que eth1 esté vinculado: 
la IP del servidor bond0 es: 10.10.10.1

El primer paso es configurar el archivo de configuración:

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0 

DEVICE=bond0 

BOOTPROTO=none 

ONBOOT=yes 

IPADDR=10.10.10.1 

NETMASK=255.255.255.0 

NETWORK=192.168.0.0 

[root@woo ~] # vi /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0 

BOOTPROTO=none 

MASTER=bond0 

SLAVE=yes 

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 

DEVICE=eth1 

BOOTPROTO =ninguno 

MAESTRO=bond0 

ESCLAVO=sí

El segundo paso es modificar los archivos de configuración relacionados con modprobe y cargar el módulo de vinculación:

1. Aquí, creamos directamente un archivo de configuración dedicado para cargar bonding /etc/modprobe.d/bonding.conf

[root@woo ~]# vi /etc/modprobe.d/bonding.conf 

alias bond0 

opciones de vinculación modo de vinculación=0 miimon=200

2. Cargue el módulo (no es necesario cargarlo manualmente después de reiniciar el sistema)

[root@woo ~]# unión modprobe

3. Confirme si el módulo se cargó correctamente:

[raíz@woo ~]# lsmod | grep unión 

unión 100065 0

El tercer paso es reiniciar la red y confirmar el estado:

[root@db01 ~]# reinicio de la red de servicio 

Cerrando la interfaz bond0: [OK] 

Cerrando la interfaz loopback: [OK] Activando la 

interfaz loopback: [OK] 

Activando la interfaz bond0: [OK] 

[root@db01 ~]# cat /proc/net/bonding/bond0 

Controlador de vinculación de canal Ethernet: v3.4.0-1 (7 de octubre de 2008) 

Modo de vinculación: tolerancia a fallas (respaldo activo) 

Esclavo primario: Ninguno Esclavo 

actualmente activo: eth0 

Estado de MII: activo 

Sondeo de MII Intervalo (ms): 100 

Retardo de subida (ms): 0 

Retardo de bajada (ms): 0 

Interfaz esclava: eth0 

Estado MII: arriba 

Velocidad: 1000 Mbps 

Dúplex: completo 

Conteo de fallas de enlace: 0

Dirección HW permanente: 40:f2:e9:db:c9:c2 

Interfaz esclava: eth1 

Estado MII: arriba 

Velocidad: 1000 Mbps 

Dúplex: completo 

Recuento de fallas de enlace: 0 

Dirección HW permanente: 40:f2:e9:db:c9:c3 

[root@db01 ~]# ifconfig | grep HWaddr 

bond0 Encapsulación de enlace:Ethernet HWaddr 40:F2:E9:DB:C9:C2 

eth0 Encapsulación de enlace:Ethernet HWaddr 40:F2:E9:DB:C9:C2 

eth1 Encapsulación de enlace:Ethernet HWaddr 40:F2:E9:DB: C9:C2

De la información de confirmación anterior, podemos ver 3 información importante:

1. El modo de vinculación actual es respaldo activo

2. El puerto de red actual en estado Activo es eth0

3. La dirección física de bond0, eth1 es la misma que la dirección física de eth0 en estado activo, esto es para evitar confusión del interruptor superior.

Desenchufe un cable de red a voluntad y luego visite su servidor para ver si la red todavía está disponible.

El cuarto paso, el sistema inicia el enlace automático y agrega la puerta de enlace predeterminada:

[root@woo ~]# vi /etc/rc.d/rc.local 

#add 

ifenslave bond0 eth0 eth1 

ruta agregar gw predeterminado 10.10.10.1

#Si puede acceder a Internet, no necesita agregar rutas y la dirección 0.1 se modifica según el entorno.

————————————————————————

Nota: lo anterior es solo el caso en el que dos puertos de red están vinculados a un bond0. Si queremos configurar múltiples puertos de bond, por ejemplo, los puertos de red físicos eth0 y eth1 forman bond0, y eth2 y eth3 forman bond1.

Enlace de puerto multired:

Entonces, el método de configuración del archivo de configuración del puerto de red es el mismo que el método mencionado en el primer paso anterior, pero la configuración de /etc/modprobe.d/bonding.conf no se puede superponer simplemente de la siguiente manera:

alias bond0 

opciones de vinculación modo de vinculación=1 miimon=200 

alias bond1 

opciones de vinculación modo de vinculación=1 miimon=200

Hay 2 métodos de configuración correctos:

El primero, como puede ver, de esta manera, los modos de múltiples puertos de enlace solo se pueden configurar en el mismo:

<span style=”color:#000000;”>alias bond0 vinculación 

alias bond1 

opciones de vinculación vinculación max_bonds=2 miimon=200 mode=1 

</span>

El segundo método, de esta manera, el modo de diferentes puertos de enlace se puede configurar para que sea diferente:

<span style=”color:#000000;”>alias bond0 

opciones de vinculación bond0 miimon=100 mode=1 

instalar bond1 /sbin/modprobe vinculación -o bond1 miimon=200 mode=0 

</span>

Eche un vistazo más de cerca a los dos métodos de configuración anteriores. Ahora, si desea configurar 3, 4 o incluso más puertos de enlace, ¡debería poder hacerlo!

posdata:

miimon monitorea la frecuencia de los enlaces de red, en milisegundos, configuramos 200 milisegundos.

El número de puertos de enlace configurados por max_bonds

El modo de enlace de modo incluye principalmente los siguientes tipos: en aplicaciones prácticas generales, se utilizan más 0 y 1.

 

Supongo que te gusta

Origin blog.csdn.net/yaxuan88521/article/details/132538294
Recomendado
Clasificación