Maestría en agrupación de NIC con PowerShell y GUI

¿Te gustaría que los servidores permanezcan disponibles de manera continua incluso cuando falle un conmutador central en el trabajo? ¿Quieres que tu servidor acceda a múltiples VLAN sin depender de los controladores específicos de un proveedor en particular? ¿Deseas simplificar la configuración de red para hosts físicos y virtuales en tu entorno? Si respondiste sí a alguna de estas preguntas, entonces este artículo es para ti. Permítele a NIC Teaming hacer eso.

NIC Teaming puede mejorar la tolerancia a fallas de tus máquinas, utilizar mejor los recursos de red (balanceo de carga), configurar VLAN para que la máquina la utilice y simplificar la configuración de red.

En este artículo, aprenderás qué es el NIC Teaming, consideraciones especiales que existen al usar NIC Teaming en Máquinas Virtuales y cómo implementarlo en tu organización.

Prerrequisitos

No necesitas ser un experto en Windows o Administración de Redes para entender el NIC Teaming. Sin embargo, necesitas algunos conocimientos técnicos previos para comprender y aplicar este artículo. Estos elementos son:

  • Comprensión de cómo funcionan las redes (direcciones MAC, direcciones IP, VLAN)
  • Acceso a Windows Server 2016 (o 2019) con dos o más adaptadores de red disponibles; casi todo lo que ves aquí se aplica igualmente a Windows Server 2016, 2012R2 y Windows Server 2012

Comprensión de NIC Teaming

En una configuración de red tradicional para un servidor físico, proporcionas tolerancia a fallas conectando múltiples cables de red desde el servidor a múltiples conmutadores físicos (posiblemente parte de una única pila de conmutadores). Así, el servidor tiene múltiples direcciones IP activas en todo momento y no existe balanceo de carga.

Desplegando un equipo de NIC en tu servidor, puedes mantener una conexión con múltiples switches físicos pero solo utilizar una única dirección IP. El equilibrio de carga se vuelve fácilmente disponible. La tolerancia a fallos es instantánea en lugar de esperar a que los registros DNS caduquen/se actualicen y la gestión se simplifica.

NIC Teaming es una capacidad en Windows Server que te permite agrupar NIC en “equipos”. Cada equipo consta de uno o más miembros del equipo (NIC que están en el equipo) y una o más NIC virtuales disponibles para su uso.

Los miembros del equipo son los adaptadores de red que el equipo utiliza para comunicarse con el switch. Las interfaces del equipo son las NIC virtuales que se crean al formar el equipo. Puede ser difícil recordar cuál es cuál, ya que las interfaces del equipo reciben una dirección IP.

¿Cuál es la diferencia entre el equipo de NIC y el bonding?

El equipo de NIC es sinónimo de bonding de NIC.

El equipo de NIC está disponible en todas las ediciones de Windows Server a partir de Windows Server 2012. Esta capacidad es extremadamente flexible y proporciona a los administradores una solución mucho más sencilla para Agregación de Enlaces/Equilibrio de Carga, Failover y Redes Definidas por Software (VLAN).

Existen soluciones similares en ciertos hardware de ciertos proveedores, sin embargo, la implementación de Microsoft del equipo de NIC tiene como objetivo proporcionar estas características de manera hardware y proveedor-agnosticos.

¿Cuál es la diferencia entre el equipo de NIC y el puenteo?

NIC Teaming te permite crear una interfaz de NIC que abarca uno o más adaptadores NIC, todos en la misma subred. El Puente de NIC te permite emparejar adaptadores NIC de subredes diferentes para habilitar la comunicación entre las dos subredes.

Al configurar un equipo NIC, deberás establecer el modo de equipo, el modo de equilibrio de carga, adaptador en espera, y VLAN de interfaz del equipo. Cada uno de estos componentes se explica a continuación.

Modo de Equipo

Cuando creas un equipo NIC, debes seleccionar qué modo de equipo usar. El modo de equipo determina cómo el servidor y los interruptores dividirán el tráfico entre los múltiples enlaces. Hay tres tipos de modos de equipo: independiente del interruptor, LACP y estático.

Independiente del Interruptor

Independiente del interruptor permite conectar miembros del equipo a múltiples interruptores no apilados. El modo independiente del interruptor es el único modo de equipo que no requiere cambios de configuración en los interruptores a los que lo conectas. Este modo solo utiliza direcciones MAC para controlar a qué interfaz se debe enviar los datos entrantes.

Hay algunas situaciones en las que podrías elegir usar el Modo de Equipo Independiente del Interruptor, como cuando:

  • no realizarás cambios de configuración en los interruptores conectados
  • usas múltiples interruptores no apilados para los miembros del equipo
  • creas un equipo NIC dentro de una VM (más detalles en la sección Consideraciones para el Uso en Máquinas Virtuales a continuación).

Si prefieres utilizar un adaptador para el tráfico y solo utilizar un adaptador de respaldo en caso de falla física de la conexión, debes utilizar el modo de agrupamiento independiente del interruptor y configurar un adaptador de respaldo.

A standby adapter is not used often because it reduces the total bandwidth that is available for communicating with the server. The default setting is “None (all adapters Active)”.

El agrupamiento estático

estático requiere que configures manualmente los puertos del interruptor que se conectan al equipo de NIC en un Grupo de agregación de enlaces (LAG). El servidor y el interruptor dividirán el tráfico entre todos los enlaces que estén activos.

Si un puerto en cualquiera de los extremos está conectado a otro dispositivo, el tráfico se dividirá por ese enlace que no lo espera. Por lo tanto, no ayuda a aislar errores como cables conectados incorrectamente.

Solo debes utilizar el modo de agrupamiento estático cuando tus interruptores no admitan LACP.

LACP es similar al agrupamiento estático, pero también verifica que cada cable activo en el enlace esté conectado al LAG previsto. LACP no enviará datos a través de enlaces que no estén conectados al LAG esperado.

Debes utilizar LACP cuando quieras que el interruptor esté al tanto del equipo de NIC para equilibrar la carga de datos que el interruptor envía al equipo de NIC.

Importante: Los modos de agrupamiento estático y LACP requieren que conectes el host a un solo interruptor o a una pila de interruptores única.

Modo de equilibrio de carga

Modo de equilibrio de carga determina cómo el equipo presentará interfaces para los datos entrantes y determinará qué adaptadores utilizar para los datos salientes. Las opciones disponibles son Address Hash, Hyper-V Port, y Dynamic.

A diferencia de un “aparato de equilibrio de carga”, el tráfico entrante no se dividirá uniformemente entre cada enlace utilizado por los miembros del equipo.

El modo de

Address Hash intentará utilizar las direcciones IP y puertos de origen y destino para crear un equilibrio efectivo entre los miembros del equipo. Si no hay puertos que formen parte de una conexión, solo utilizará direcciones IP para determinar cómo equilibrar la carga. En casos en que no haya direcciones IP que formen parte de una conexión, utilizará direcciones MAC.

Al crear un equipo de NIC, puedes forzar al equipo a usar IP+Puerto, solo IP o solo dirección MAC. IP+Puerto es el predeterminado y proporciona el mejor equilibrio entre los miembros del equipo. Para usar solo IP o solo dirección MAC, tendrás que crear tu equipo de NIC a través de PowerShell.

Aunque el modo de equilibrio de carga de Address Hash hace un buen trabajo al dividir el tráfico saliente entre los miembros del equipo, no puede adaptarse a los miembros del equipo sobreutilizados o subutilizados. Además, todo el tráfico entrante utiliza la dirección MAC de la interfaz principal del equipo. Sin embargo, esto se limita a un solo enlace si se utiliza el modo de agrupación Switch Independent.

Debes usar Address Hash al crear un equipo dentro de una máquina virtual.

Hyper-V Port

El modo Hyper-V Port está destinado únicamente para su uso en hosts de máquinas virtuales de Hyper-V. Este modo asignará una dirección MAC a cada máquina en el host de máquinas virtuales y luego asignará un miembro del equipo a cada una de las direcciones MAC. Esto permite que una VM específica tenga un miembro del equipo predecible bajo condiciones normales de funcionamiento.

Los miembros del equipo predecibles para cada VM significan que el ancho de banda de una VM está limitado al máximo del enlace único sobre el que opera. Cuando un host de Hyper-V tiene pocas VM en él, es probable que el uso del modo de equilibrio de carga de Hyper-V Port no esté muy bien equilibrado.

Normalmente, no necesitas usar el modo Hyper-V Port, pero puede resultar beneficioso si debes asegurarte de que cada VM utilice el mismo enlace en todo momento.

Dynamic

El modo dinámico utiliza las mejores características de los modos Address Hash y Hyper-V Port para equilibrar el tráfico de red de entrada y salida. Al igual que Hyper-V, el tráfico de entrada se divide asignando miembros del equipo a diferentes direcciones MAC. Al igual que Address Hash, el tráfico de salida se divide mediante un hash combinado derivado de la IP/Puerto. Esta mezcla proporciona un mejor equilibrio en comparación con cualquiera de los métodos anteriores.

El modo de equilibrio dinámico viene con una mejora importante: el monitoreo dinámico del tráfico. Cuando el algoritmo de modo dinámico determina que ciertos miembros del equipo están sobreutilizados/subutilizados, reequilibrará el tráfico de salida a otros miembros del equipo según sea necesario.

Las corrientes TCP tienen una cadencia natural que permite prever las cantidades futuras de tráfico y las pausas en el TCP; Microsoft las llama flowlets. El modo de equilibrio de carga dinámico también puede anticipar, a través de flowlets, qué miembros del equipo se volverán sobreutilizados o subutilizados y reequilibrar el tráfico de salida para prepararse.

El modo dinámico es casi siempre la mejor opción de equilibrio de carga a usar.

La VLAN de la interfaz del equipo

Al crear un equipo, por defecto, se creará una sola interfaz de equipo. La interfaz del equipo tiene una configuración de VLAN para etiquetar el tráfico en una interfaz hacia una VLAN específica. Establecer la VLAN de la interfaz del equipo en una VLAN etiquetada generalmente solo se hace cuando los miembros del equipo del NIC Team utilizan el modo ‘trunk’.

Después de crear el equipo, puedes crear interfaces de equipo adicionales en diferentes VLAN.

Advertencia: Microsoft recomienda nunca configurar la VLAN para una interfaz dentro de una VM. En su lugar, utiliza la opción avanzada del interruptor Hyper-V “VLAN ID” para definir VLAN para una VM.

El trabajo en equipo de NIC en máquinas virtuales

Configurar equipos de NIC en una VM tiene algunas limitaciones. Microsoft destaca específicamente que el uso de “Equipos en Equipos” (equipos a nivel de host y equipos a nivel de VM) puede ser muy impredecible y causar pérdida de conexión.

Tradicionalmente, para proporcionar tolerancia a fallos para una máquina virtual (VM), era necesario que la VM estuviera conectada a múltiples switches virtuales externos. Tenías que planificar qué VMs compartirían cada switch virtual para asegurarte de que ninguno se congestione demasiado. Los problemas de equilibrio de carga se complicaban aún más con la posibilidad de congestión de las otras VM en el host.

Hoy en día, puedes implementar un equipo de NIC en el host de la VM con un solo adaptador de red para cada VM. Todas las VM obtienen una tolerancia a fallos completa ante fallos en un puerto o switch físico. El tráfico de todas las VM puede equilibrarse entre los miembros del equipo para obtener una mejor capacidad de procesamiento general y manejo de la congestión. Ahora tu configuración puede ser así:

A NIC Team topology

A veces se utiliza el trabajo en equipo de NIC en una VM para habilitar SR-IOV y reducir la carga de CPU de la pila de red. También necesitas soporte de BIOS y de NIC para que SR-IOV sea funcional.

Requisitos

El uso de trabajo en equipo de NIC dentro de una VM incluye estos requisitos para ser una “configuración compatible”:

  1. Debes estar utilizando múltiples adaptadores en la VM.
  2. Los adaptadores deben conectarse a dos switches virtuales de tipo “externo”.
  3. Si te conectas a switches físicos, los switches deben estar en la misma subred L2.
  4. El modo de equipo de NIC de la VM debe estar configurado como “independiente del switch” y el modo de equilibrio de carga debe estar configurado como *Hash de dirección*.

En Hyper-V, también necesitas habilitar el Teaming de NIC para la VM desde la pestaña Características Avanzadas de cada adaptador de red que formará parte de un equipo. Puedes ver un ejemplo a continuación de cómo se ve esta configuración.

NIC Teaming Hyper-V option

Maximizando el Rendimiento

Aunque el Teaming de NIC tiene un buen rendimiento de serie, existen varios escenarios donde puede ser necesario centrarse en mejorar el rendimiento. Los detalles de estos escenarios están fuera del alcance de este artículo, pero si deseas obtener más información sobre cómo mejorar el rendimiento, enfócate en los siguientes términos:

  • Acceso Directo a Memoria Remota (RDMA)
  • Teaming Integrado en el Conmutador (SET)
  • Escalado del Lado de Recepción (RSS)
  • Virtualización de E/S de Raíz Única (SR-IOV)

Generalmente, estos ajustes adicionales reducen parte de la sobrecarga de CPU para la pila de redes y la latencia entre conexiones. Puedes obtener más información sobre cómo mejorar el rendimiento en los artículos Tecnologías de Software y Hardware explicadas y Mayor rendimiento mediante RDMA con SET.

Creando un Equipo de NIC en Windows Server

Armado con un conocimiento de cómo funciona el Teaming de NIC y una visión para simplificar tu red, ¡ahora deberías estar preparado para crear un equipo de NIC!

Para esta demostración, se creará un equipo de NIC en una VM debido a las limitaciones del entorno de demostración. La configuración de un equipo de NIC en un servidor físico es igual, pero si se necesitan pasos específicos para una VM, se mencionarán.

¿Cómo se verifica si el teaming de NIC está habilitado?

El teaming de NIC está habilitado en todas las versiones de Windows Server desde 2012 (Server 2012, 2012R2, 2016 y 2019).

Implementación del teaming de NIC a través de la GUI

Para empezar, abre el Administrador del servidor en una máquina con Windows Server. Asegúrate de estar conectado a la máquina en la que deseas configurar el equipo de NIC.

  1. Primero, haz clic derecho en el nombre del servidor en el que deseas crear el equipo de NIC y selecciona Configurar el teaming de NIC.
Configure NIC Teaming option in Server Manager

2. Desde el panel Adaptadores e interfaces, selecciona las NIC que deseas agregar al nuevo equipo. Luego, haz clic derecho en los adaptadores seleccionados y selecciona Agregar al nuevo equipo.

Add to New Team option in Server Manager

Nota: Puedes configurar el teaming de NIC con cualquier combinación de uno o varios adaptadores (máximo: 32) y una o más interfaces de equipo.

3. Escribe un nombre de equipo descriptivo y configura las propiedades adicionales según sea necesario. Haz clic en Aceptar para crear el equipo.

En este ejemplo, se está configurando el equipo de NIC en una VM. Como resultado, no se puede utilizar el modo de teaming ni el modo de equilibrio de carga. Si esta demostración se realizara en un servidor físico, probablemente se usaría independiente del switch o LACP si se utiliza un LAG en el switch.

New Team dialog box

El equipo de NIC ahora debería estar creado en el servidor de Windows.

Añadir más NIC o interfaces al equipo NIC

Una vez creado, puedes agregar NIC a un equipo configurado desde la misma ventana de Teaming de NIC. Para hacerlo, haz clic derecho en una NIC disponible y selecciona Agregar al equipo “<Nombre del equipo>”.

Add to Team “Demo” option

También puedes agregar más interfaces a un equipo seleccionando la pestaña Interfaces del equipo y luego hacer clic en TAREAS —> Agregar interfaz como se muestra a continuación.

Add Interface option

Una vez que aparezca la entrada, escribe la VLAN a utilizar y opcionalmente un nombre, como se muestra a continuación.

New Team interface dialog box

Implementación de NIC Teaming a través de Windows PowerShell

Ahora que sabes cómo configurar un equipo NIC en la GUI, veamos cómo hacerlo a través de PowerShell.

Encontrar nombres de NIC

Primero, debes decidir qué NIC agregarás al equipo. Más específicamente, deberás averiguar los nombres de las NIC.

Para encontrar los nombres de las NIC, utiliza el cmdlet Get-Adapter. Ejecuta este cmdlet y observa tus opciones como se muestra a continuación.

Get-Adapter PowerShell cmdlet

Una vez que hayas tomado nota de los nombres, ¡ahora puedes crear el equipo con PowerShell! Para esta demostración, utilizaremos las NIC Ethernet 3 y 4 para el nuevo equipo NIC.

Crear el equipo NIC

Ahora que tienes los nombres de los adaptadores en mano, solo necesitas ejecutar un cmdlet más (New-NetLbfoTeam). Puedes ver un ejemplo de ejecución del cmdlet New-NetLbfoTeam y su salida a continuación.

Para el parámetro TeamMembers, usarás los nombres de las NIC recopilados anteriormente.

En este ejemplo, el TeamingMode se establece en SwitchIndependent. Si estás configurando los puertos del switch en un LAG, probablemente desees utilizar el valor LACP. Si no estás utilizando un LAG en el switch, probablemente elegirías usar SwitchIndependent.

El valor del parámetro LoadBalancingAlgorithm es Dynamic porque este modo proporciona el equilibrio de carga más uniforme entre los miembros del equipo.

New-NetLbfoTeam -TeamMembers <NIC Names> -Name "<Desciptive Name>" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm TransportPorts
Using the New-NetLbfoTeam PowerShell cmdlet

Una vez completado, verás una nueva NIC virtual en la lista de adaptadores de Get-NetAdapter:

New virtual NIC created

Notas sobre el equipo NIC en una VM:

– Debes usar el modo de agrupación SwitchIndependent.
– Debes usar uno de los tipos de hash de dirección para LoadBalancingAlgorithm (TransportPorts).
– El equilibrio de carga dinámico se usaría en un servidor físico en lugar de TransportPorts.*

Añadiendo más NIC o interfaces al equipo NIC

Una vez que hayas construido el equipo NIC, puedes agregar NIC adicionales e interfaces a él de la misma manera que en la interfaz gráfica. Para agregar más NIC al equipo, utiliza el cmdlet Add-NetLbfoTeamMember.*

Add-NetLbfoTeamMember -Name NIC1 -Team Team1

También puedes agregar más interfaces de equipo con el cmdlet Add-NetLbfoteamNIC.

Add-NetLbfoTeamNIC -Team Team1 -VlanID 42

Resumen

Has aprendido ahora qué es el equipo NIC, cómo se relaciona con el rendimiento/el uso de VM/simplificación de tu red y cómo desplegarlo a través de la GUI o PowerShell.

Source:
https://adamtheautomator.com/nic-teaming/