Implementación de una infraestructura de red definida por software con scripts

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016; Azure Stack HCI, versiones 21H2 y 20H2

En este tema se explica, implementará una infraestructura de red definida por software (SDN) de Microsoft con scripts. La infraestructura incluye una controladora de red de alta disponibilidad (HA), un equilibrador de carga de software (SLB) de alta disponibilidad/MUX, redes virtuales y listas de control de acceso (ACL) asociadas. Además, otro script implementa una carga de trabajo de inquilino para que pueda validar la infraestructura de SDN.

Si quiere que las cargas de trabajo de inquilino se comuniquen fuera de sus redes virtuales, puede configurar reglas NAT de SLB, túneles de puerta de enlace de sitio a sitio o reenvío de nivel 3 para enrutar entre cargas de trabajo virtuales y físicas.

También puede implementar una infraestructura de SDN mediante Virtual Machine Manager (VMM). Para más información, consulte Implementar y administrar una infraestructura de red definida por software (SDN) en el tejido de VMM.

Anterior a la implementación

Importante

Antes de comenzar la implementación, debe planear y configurar los hosts y la infraestructura de red física. Para más información, consulta Planeación de una infraestructura de red definida por software.

Todos los hosts de Hyper-V deben tener instalado Windows Server 2019 o 2016.

Pasos de implementación

Empiece por configurar el conmutador virtual de Hyper-V (servidores físicos) del host de Hyper-V y la asignación de direcciones IP. Se puede usar cualquier tipo de almacenamiento compatible con Hyper-V, compartido o local.

Instalación de redes de host

  1. Instale los controladores de red más recientes disponibles para el hardware NIC.

  2. Instale el rol de Hyper-V en todos los hosts (para más información, consulte Introducción a Hyper-V en Windows Server.

    Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools -Restart
    
  3. Cree el conmutador virtual de Hyper-V.

    Use el mismo nombre de modificador para todos los hosts, por ejemplo, sdnSwitch. Configure al menos un adaptador de red o, si usa SET, configure al menos dos adaptadores de red. La propagación de entrada máxima se produce cuando se usan dos NIC.

    New-VMSwitch "<switch name>" -NetAdapterName "<NetAdapter1>" [, "<NetAdapter2>" -EnableEmbeddedTeaming $True] -AllowManagementOS $True
    

    Sugerencia

    Puede omitir los pasos 4 y 5 si tiene NIC de administración independientes.

  4. Consulte el tema de planeamiento (Planeamiento de una infraestructura de red definida por software) y trabaje con el administrador de red para obtener el id. de VLAN de la VLAN de administración. Asocie la vNIC de administración del conmutador virtual recién creado a la VLAN de administración. Este paso se puede omitir si el entorno no usa etiquetas VLAN.

    Set-VMNetworkAdapterIsolation -ManagementOS -IsolationMode Vlan -DefaultIsolationID <Management VLAN> -AllowUntaggedTraffic $True
    
  5. Consulte el tema de planeamiento (Planeamiento de una infraestructura de red definida por software) y trabaje con el administrador de red para usar asignaciones de direcciones IP estáticas o DHCP para asignar una dirección IP a la vNIC de administración del conmutador virtual recién creado. En el ejemplo siguiente se muestra cómo crear una dirección IP estática y asignarla a la vNIC de administración del conmutador virtual:

    New-NetIPAddress -InterfaceAlias "vEthernet (<switch name>)" -IPAddress <IP> -DefaultGateway <Gateway IP> -AddressFamily IPv4 -PrefixLength <Length of Subnet Mask - for example: 24>
    
  6. [Opcional] Implemente una máquina virtual para hospedar Active Directory Domain Services (Instalar Active Directory Domain Services [Nivel 100]) y un servidor DNS.

    a. Conecte la máquina virtual de Active Directory/servidor DNS a la VLAN de administración:

    Set-VMNetworkAdapterIsolation -VMName "<VM Name>" -Access -VlanId <Management VLAN> -AllowUntaggedTraffic $True
    

    b. Instale Active Directory Domain Services y DNS.

    Nota

    La controladora de red admite certificados Kerberos y X.509 para la autenticación. En esta guía se usan ambos mecanismos de autenticación para distintos fines (aunque solo se requiere uno).

  7. Una todos los hosts de Hyper-V al dominio. Asegúrese de que la entrada del servidor DNS para el adaptador de red que tiene una dirección IP asignada a la red de administración apunta a un servidor DNS que pueda resolver el nombre de dominio.

    Set-DnsClientServerAddress -InterfaceAlias "vEthernet (<switch name>)" -ServerAddresses <DNS Server IP>
    

    a. Haga clic con el botón derecho en Inicio, haga clic en Sistema y, luego, haga clic en Cambiar configuración. b. Haga clic en Cambiar. c. Haga clic en Dominio y especifique el nombre de dominio. """" d. Haga clic en Aceptar. e. Escriba el nombre de usuario y las credenciales de contraseña cuando se le solicite. f. Reinicie el servidor.

Validación

Siga estos pasos para validar que las redes de host están configuradas correctamente.

  1. Asegúrese de que el conmutador de VM se creó correctamente:

    Get-VMSwitch "<switch name>"
    
  2. Compruebe que la vNIC de administración en el conmutador de VM está conectada a la VLAN de administración:

    Nota

    Solo es relevante si el tráfico de administración e inquilino comparten la misma NIC.

    Get-VMNetworkAdapterIsolation -ManagementOS
    
  3. Valide todos los hosts de Hyper-V y los recursos de administración externos, por ejemplo, los servidores DNS.

    Asegúrese de que son accesibles a través de la utilidad ping. Para ello, utilice su dirección IP de administración o nombre de dominio completo (FQDN).

    ping <Hyper-V Host IP>
    ping <Hyper-V Host FQDN>
    
  4. Ejecute el siguiente comando en el host de implementación y especifique el FQDN de cada host de Hyper-V para asegurarse de que las credenciales de Kerberos usadas proporcionan acceso a todos los servidores.

    winrm id -r:<Hyper-V Host FQDN>
    

Ejecución de scripts de SDN Express

  1. Vaya al Repositorio de GitHub de SDN de Microsoft para los archivos de instalación.

  2. Descargue los archivos de instalación del repositorio en el equipo de implementación designado. Haga clic en Clonar o descargar y, luego, en Descargar ZIP.

    Nota:

    El equipo de implementación designado debe ejecutar Windows Server 2016 o versiones posteriores.

  3. Expanda el archivo ZIP y copie la carpeta SDNExpress en la carpeta C:\ del equipo de implementación.

  4. Comparta la carpeta C:\SDNExpress como "SDNExpress" con permiso para que Todos para Lectura/Escritura.

  5. Vaya a la carpeta C:\SDNExpress.

    Verá las siguientes carpetas:

    Nombre de carpeta Descripción
    AgentConf Contiene copias nuevas de los esquemas de OVSDB usados por el agente host de SDN en cada host de Hyper-V de Windows Server 2016 para programar la directiva de red.
    Certificados Ubicación compartida temporal para el archivo de certificado NC.
    Imágenes Vacía, coloque la imagen VHDX de Windows Server 2016 aquí.
    Herramientas Utilidades para solucionar problemas y depurar. Se copia en los hosts y las máquinas virtuales. Se recomienda colocar monitor de red o Wireshark aquí para que esté disponible si es necesario.
    Scripts Scripts de implementación.

    - SDNExpress.ps1
    Implementa y configura el tejido, incluidas las máquinas virtuales de controladora de red, las máquinas virtuales mux de SLB, los grupos de puertas de enlace y las máquinas virtuales de puerta de enlace de HNV correspondientes a los grupos.
    - FabricConfig.psd1
    Plantilla de archivo de configuración para el script SDNExpress. La personalizará para su entorno.
    - SDNExpressTenant.ps1
    Implementa una carga de trabajo de inquilino de ejemplo en una red virtual con una VIP con equilibrio de carga.
    También aprovisiona una o varias conexiones de red (VPN S2S de IPSec, GRE, L3) en las puertas de enlace perimetrales del proveedor de servicios que están conectadas a la carga de trabajo de inquilino creada anteriormente. Las puertas de enlace IPSec y GRE están disponibles para la conectividad a través de la dirección IP VIP correspondiente y la puerta de enlace de reenvío L3 a través del grupo de direcciones correspondiente.
    Este script también se puede usar para eliminar la configuración correspondiente con una opción Deshacer.
    - TenantConfig.psd1
    Archivo de configuración de plantilla para la carga de trabajo de inquilino y la configuración de la puerta de enlace de S2S.
    - SDNExpressUndo.ps1
    Limpia el entorno del tejido y lo restablece a un estado inicial.
    - SDNExpressEnterpriseExample.ps1
    Aprovisiona uno o varios entornos de sitio empresarial con una puerta de enlace de acceso remoto y (opcionalmente) una máquina virtual empresarial correspondiente por sitio. Las puertas de enlace empresariales IPSec o GRE se conectan a la dirección IP VIP correspondiente de la puerta de enlace del proveedor de servicios para establecer los túneles S2S. La puerta de enlace de reenvío L3 se conecta a través de la dirección IP del mismo nivel correspondiente.
    Este script también se puede usar para eliminar la configuración correspondiente con una opción Deshacer.
    - EnterpriseConfig.psd1
    Archivo de configuración de plantilla para la puerta de enlace de sitio a sitio empresarial y la configuración de VM cliente.

    TenantApps Archivos usados para implementar cargas de trabajo de inquilino de ejemplo.
  6. Compruebe que el archivo VHDX de Windows Server 2016 está en la carpeta Images.

  7. Personalice el archivo SDNExpress\scripts\FabricConfig.psd1 cambiando las etiquetas << Replace >> por valores específicos para que se adapten a su infraestructura de laboratorio, incluidos los nombres de host, los nombres de dominio, los nombres de usuario y las contraseñas, así como la información de red de las redes enumeradas en el tema Planeamiento de red.

  8. Cree un registro Host A en DNS para NetworkControllerRestName (FQDN) y NetworkControllerRestIP.

  9. Ejecute el script como usuario con credenciales de administrador de dominio:

    SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose
    
  10. Para deshacer todas las operaciones, ejecute el siguiente comando:

 SDNExpress\scripts\SDNExpressUndo.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose

Validación

Suponiendo que el script de SDN Express se ejecutara hasta su finalización sin notificar errores, puede realizar el siguiente paso para asegurarse de que los recursos de tejido se han implementado correctamente y están disponibles para la implementación de inquilinos.

Use Herramientas de diagnóstico para asegurarse de que no haya errores en los recursos de tejido de la controladora de red.

Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller Rest Name>

Implementación de una carga de trabajo de inquilino de ejemplo con el equilibrador de carga de software

Ahora que se han implementado recursos de tejido, puede validar la implementación de SDN de un extremo a otro mediante la implementación de una carga de trabajo de inquilino de ejemplo. Esta carga de trabajo de inquilino consta de dos subredes virtuales (nivel web y nivel de base de datos) protegidas a través de reglas de lista de control de acceso (ACL) mediante el firewall distribuido de SDN. La subred virtual del nivel web es accesible a través de SLB/MUX mediante una dirección IP virtual (VIP). El script implementa automáticamente dos máquinas virtuales de nivel web y una máquina virtual de nivel de base de datos y las conecta a las subredes virtuales.

  1. Personalice el archivo SDNExpress\scripts\TenantConfig.psd1 cambiando las etiquetas << Replace >> por valores específicos (por ejemplo: nombre de imagen VHD, nombre REST de controladora de red, nombre de conmutador virtual, etc. como se definió anteriormente en el archivo FabricConfig.psd1).

  2. Ejecute el script. Por ejemplo:

    SDNExpress\scripts\SDNExpressTenant.ps1 -ConfigurationDataFile TenantConfig.psd1 -Verbose
    
  3. Para deshacer la configuración, ejecute el mismo script con el parámetro undo. Por ejemplo:

    SDNExpress\scripts\SDNExpressTenant.ps1 -Undo -ConfigurationDataFile TenantConfig.psd1 -Verbose
    

Validación

Para validar que la implementación del inquilino se realizó correctamente, haga lo siguiente:

  1. Inicie sesión en la máquina virtual del nivel de base de datos e intente hacer ping a la dirección IP de una de las máquinas virtuales de nivel web (asegúrese de que Firewall de Windows está desactivado en las máquinas virtuales de nivel web).

  2. Compruebe los recursos de inquilino de la controladora de red para ver si hay errores. Ejecute lo siguiente desde cualquier host de Hyper-V con conectividad de nivel 3 a la controladora de red:

    Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller REST Name>
    
  3. Para comprobar que el equilibrador de carga se está ejecutando correctamente, ejecute lo siguiente desde cualquier host de Hyper-V:

    wget <VIP IP address>/unique.htm -disablekeepalive -usebasicparsing
    

    donde <VIP IP address> es la dirección IP VIP de nivel web que configuró en el archivo TenantConfig.psd1.

    Sugerencia

    Busque la variable VIPIP en TenantConfig.psd1.

    Ejecute esto varias veces para ver el conmutador del equilibrador de carga entre los DIP disponibles. También puede observar este comportamiento mediante un explorador web. Vaya a <VIP IP address>/unique.htm. Cierre el explorador y abra una nueva instancia y vuelva a examinar. Verá la página azul y la página verde alternativa, excepto cuando el explorador almacena en memoria caché la página antes de que se agote el tiempo de dicha memoria.