스크립트를 사용하여 소프트웨어 정의 네트워크 인프라 배포

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, 버전 21H2 및 20H2

이 항목에서는 스크립트를 사용하여 Microsoft SDN(소프트웨어 정의 네트워크) 인프라를 배포합니다. 인프라에는 고가용성(HA) 네트워크 컨트롤러, HA SLB(소프트웨어 부하 분산 장치)/MUX, 가상 네트워크 및 연결된 ACL(액세스 제어 목록)이 포함됩니다. 또한 다른 스크립트는 SDN 인프라의 유효성을 검사하기 위해 테넌트 워크로드를 배포합니다.

테넌트 워크로드가 가상 네트워크 외부에서 통신하도록 하려면 SLB NAT 규칙, 사이트 간 게이트웨이 터널 또는 계층-3 전달을 설정하여 가상 워크로드와 실제 워크로드 간에 라우팅할 수 있습니다.

VMM(Virtual Machine Manager)을 사용하여 SDN 인프라를 배포할 수도 있습니다. 자세한 내용은 VMM 패브릭에서 SDN(소프트웨어 정의 네트워크) 인프라 설정을 참조 하세요.

배포 전

Important

배포를 시작하기 전에 호스트 및 실제 네트워크 인프라를 계획하고 구성해야 합니다. 자세한 내용은 소프트웨어 정의 네트워크 인프라 계획을 참조하세요.

모든 Hyper-V 호스트에는 Windows Server 2019 또는 2016이 설치되어 있어야 합니다.

배포 단계

먼저 Hyper-V 호스트(물리적 서버) Hyper-V 가상 스위치 및 IP 주소 할당을 구성합니다. Hyper-V, 공유 또는 로컬과 호환되는 모든 스토리지 유형을 사용할 수 있습니다.

호스트 네트워킹 설치

  1. NIC 하드웨어에 사용할 수 있는 최신 네트워크 드라이버를 설치합니다.

  2. 모든 호스트에 Hyper-V 역할을 설치합니다(자세한 내용은 Windows Server 2016에서 Hyper-V 시작 참조).

    Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools -Restart
    
  3. Hyper-V 가상 스위치를 만듭니다.

    모든 호스트에 대해 동일한 스위치 이름(예 : sdnSwitch)을 사용합니다. 하나 이상의 네트워크 어댑터를 구성하거나 SET를 사용하는 경우 네트워크 어댑터를 두 개 이상 구성합니다. 최대 인바운드 분산은 두 개의 NIC를 사용할 때 발생합니다.

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

    별도의 관리 NIC가 있는 경우 4단계와 5단계를 건너뛸 수 있습니다.

  4. 계획 항목(소프트웨어 정의 네트워크 인프라 계획)을 참조하고 네트워크 관리자와 협력하여 관리 VLAN의 VLAN ID를 가져옵니다. 새로 만든 가상 스위치의 관리 vNIC를 관리 VLAN에 연결합니다. 환경에서 VLAN 태그를 사용하지 않는 경우 이 단계를 생략할 수 있습니다.

    Set-VMNetworkAdapterIsolation -ManagementOS -IsolationMode Vlan -DefaultIsolationID <Management VLAN> -AllowUntaggedTraffic $True
    
  5. 계획 항목(소프트웨어 정의 네트워크 인프라 계획)을 참조하고 네트워크 관리자와 협력하여 DHCP 또는 고정 IP 할당을 사용하여 새로 만든 vSwitch의 관리 vNIC에 IP 주소를 할당합니다. 다음 예제에서는 고정 IP 주소를 만들고 vSwitch의 관리 vNIC에 할당하는 방법을 보여 줍니다.

    New-NetIPAddress -InterfaceAlias "vEthernet (<switch name>)" -IPAddress <IP> -DefaultGateway <Gateway IP> -AddressFamily IPv4 -PrefixLength <Length of Subnet Mask - for example: 24>
    
  6. [선택 사항] 가상 머신을 배포하여 Active Directory 도메인 Services(Active Directory 도메인 Services 설치(수준 100) 및 DNS 서버를 호스트합니다.

    a. Active Directory/DNS 서버 가상 머신을 관리 VLAN에 커넥트.

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

    b. Active Directory 도메인 Services 및 DNS를 설치합니다.

    참고 항목

    네트워크 컨트롤러는 인증을 위해 Kerberos 및 X.509 인증서를 모두 지원합니다. 이 가이드에서는 두 인증 메커니즘을 서로 다른 용도로 사용합니다(하나만 필요).

  7. 모든 Hyper-V 호스트를 do기본 조인합니다. 관리 네트워크에 할당된 IP 주소가 있는 네트워크 어댑터의 DNS 서버 항목이 할 일기본 이름을 확인할 수 있는 DNS 서버를 가리키는지 확인합니다.

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

    a. 시작을 마우스 오른쪽 단추로 클릭하고 시스템을 클릭한 다음 설정 변경을 클릭합니다. b. 변경을 클릭합니다. c. Do기본를 클릭하고 do기본 이름을 지정합니다. """" d. 확인을 클릭합니다. 예를 들면 메시지가 표시되면 사용자 이름 및 암호 자격 증명을 입력합니다. f. 서버를 다시 시작합니다.

유효성 검사

다음 단계를 사용하여 호스트 네트워킹이 올바르게 설정되었는지 확인합니다.

  1. VM 스위치가 성공적으로 생성되었는지 확인합니다.

    Get-VMSwitch "<switch name>"
    
  2. VM 스위치의 관리 vNIC가 관리 VLAN에 연결되어 있는지 확인합니다.

    참고 항목

    관리 및 테넌트 트래픽이 동일한 NIC를 공유하는 경우에만 관련이 있습니다.

    Get-VMNetworkAdapterIsolation -ManagementOS
    
  3. 모든 Hyper-V 호스트 및 외부 관리 리소스(예: DNS 서버)의 유효성을 검사합니다.

    관리 IP 주소 및/또는 FQDN(정규화된 do기본 이름)을 사용하여 ping을 통해 액세스할 수 있는지 확인합니다.

    ping <Hyper-V Host IP>
    ping <Hyper-V Host FQDN>
    
  4. 배포 호스트에서 다음 명령을 실행하고 각 Hyper-V 호스트의 FQDN을 지정하여 사용된 Kerberos 자격 증명이 모든 서버에 대한 액세스를 제공하는지 확인합니다.

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

SDN Express 스크립트 실행

  1. 설치 파일에 대한 Microsoft SDN GitHub 리포지토리로 이동합니다.

  2. 리포지토리에서 지정된 배포 컴퓨터로 설치 파일을 다운로드합니다. 복제 또는 다운로드를 클릭한 다음 ZIP 다운로드를 클릭합니다.

    참고 항목

    지정된 배포 컴퓨터에서 Windows Server 2016 이상을 실행해야 합니다.

  3. zip 파일을 확장하고 SDNExpress 폴더를 배포 컴퓨터의 C:\ 폴더에 복사합니다.

  4. 모든 사용자가 C:\SDNExpress 읽기/쓰기를 할 수 있는 권한으로 폴더를 "SDNExpress"로 공유합니다.

  5. C:\SDNExpress 폴더로 이동합니다.

    다음 폴더가 표시됩니다.

    폴더 이름 설명
    AgentConf 네트워크 정책을 프로그래밍하기 위해 각 Windows Server 2016 Hyper-V 호스트에서 SDN 호스트 에이전트에서 사용하는 OVSDB 스키마의 새 복사본을 보유합니다.
    인증서 NC 인증서 파일의 임시 공유 위치입니다.
    이미지 비어 있는 경우 Windows Server 2016 vhdx 이미지를 여기에 배치합니다.
    도구 문제 해결 및 디버깅을 위한 유틸리티입니다. 호스트 및 가상 머신에 복사됩니다. 필요한 경우 사용할 수 있도록 여기에 네트워크 모니터 또는 Wireshark를 배치하는 것이 좋습니다.
    스크립트 배포 스크립트.

    - SDNExpress.ps1
    네트워크 컨트롤러 가상 머신, SLB Mux 가상 머신, 게이트웨이 풀 및 풀에 해당하는 HNV 게이트웨이 가상 머신을 포함하여 패브릭을 배포하고 구성합니다.
    - FabricConfig.psd1
    SDNExpress 스크립트에 대한 구성 파일 템플릿입니다. 사용자 환경에 맞게 사용자 지정합니다.
    - SDNExpressTenant.ps1
    부하 분산된 VIP를 사용하여 가상 네트워크에 샘플 테넌트 워크로드를 배포합니다.
    또한 이전에 만든 테넌트 워크로드에 연결된 서비스 공급자 에지 게이트웨이에 하나 이상의 네트워크 연결(IPSec S2S VPN, GRE, L3)을 프로비전합니다. IPSec 및 GRE 게이트웨이는 해당 VIP IP 주소 및 해당 주소 풀을 통해 L3 전달 게이트웨이를 통해 연결에 사용할 수 있습니다.
    이 스크립트를 사용하여 실행 취소 옵션을 사용하여 해당 구성을 삭제할 수도 있습니다.
    - TenantConfig.psd1
    테넌트 워크로드 및 S2S 게이트웨이 구성에 대한 템플릿 구성 파일입니다.
    - SDNExpressUndo.ps1
    패브릭 환경을 정리하고 시작 상태로 다시 설정합니다.
    - SDNExpressEnterpriseExample.ps1
    하나 이상의 엔터프라이즈 사이트 환경을 하나의 원격 액세스 게이트웨이와 사이트당 하나의 해당 엔터프라이즈 가상 머신(선택 사항)으로 프로비전합니다. IPSec 또는 GRE 엔터프라이즈 게이트웨이는 서비스 공급자 게이트웨이의 해당 VIP IP 주소에 연결하여 S2S 터널을 설정합니다. L3 전달 게이트웨이는 해당 피어 IP 주소를 통해 연결됩니다.
    이 스크립트를 사용하여 실행 취소 옵션을 사용하여 해당 구성을 삭제할 수도 있습니다.
    - EnterpriseConfig.psd1
    엔터프라이즈 사이트-사이트 게이트웨이 및 클라이언트 VM 구성에 대한 템플릿 구성 파일입니다.

    TenantApps 예제 테넌트 워크로드를 배포하는 데 사용되는 파일입니다.
  6. Windows Server 2016 VHDX 파일이 이미지 폴더에 있는지 확인합니다.

  7. 호스트 이름, do기본 이름, 사용자 이름 및 암호, 계획 네트워크 항목에 나열된 네트워크에 대한 네트워크 정보를 포함하여 랩 인프라에 맞게 특정 값으로 태그 바꾸기를 변경 <<>> 하여 SDNExpress\scripts\FabricConfig.psd1 파일을 사용자 지정합니다.

  8. DNS에서 FQDN(NetworkControllerRestName) 및 NetworkControllerRestIP에 대한 호스트 A 레코드를 만듭니다.

  9. 할 일기본 관리자 자격 증명을 사용하여 사용자로 스크립트를 실행합니다.

    SDNExpress\scripts\SDNExpress.ps1 -ConfigurationDataFile FabricConfig.psd1 -Verbose
    
  10. 모든 작업을 실행 취소하려면 다음 명령을 실행합니다.

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

유효성 검사

오류를 보고하지 않고 SDN Express 스크립트가 완료되었다고 가정하면 다음 단계를 수행하여 패브릭 리소스가 올바르게 배포되고 테넌트 배포에 사용할 수 있는지 확인할 수 있습니다.

진단 도구를 사용하여 네트워크 컨트롤러의 패브릭 리소스에 오류가 없는지 확인합니다.

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

소프트웨어 부하 분산 장치를 사용하여 샘플 테넌트 워크로드 배포

패브릭 리소스가 배포되었으므로 샘플 테넌트 워크로드를 배포하여 SDN 배포의 유효성을 엔드 투 엔드(end-to-end)할 수 있습니다. 이 테넌트 워크로드는 SDN 분산 방화벽을 사용하여 ACL(액세스 제어 목록) 규칙을 통해 보호되는 두 개의 가상 서브넷(웹 계층 및 데이터베이스 계층)으로 구성됩니다. 웹 계층의 가상 서브넷은 VIP(가상 IP) 주소를 사용하여 SLB/MUX를 통해 액세스할 수 있습니다. 스크립트는 두 개의 웹 계층 가상 머신과 하나의 데이터베이스 계층 가상 머신을 자동으로 배포하고 가상 서브넷에 연결합니다.

  1. 태그를 특정 값으로 바꿔 <<>> 서 SDNExpress\scripts\TenantConfig.psd1 파일을 사용자 지정합니다(예: VHD 이미지 이름, 네트워크 컨트롤러 REST 이름, vSwitch 이름 등). 이전에 FabricConfig.psd1 파일에 정의된 대로)

  2. 스크립트를 실행합니다. 예시:

    SDNExpress\scripts\SDNExpressTenant.ps1 -ConfigurationDataFile TenantConfig.psd1 -Verbose
    
  3. 구성을 실행 취소하려면 실행 취소 매개 변수를 사용하여 동일한 스크립트를 실행합니다. 예시:

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

유효성 검사

테넌트 배포가 성공했는지 확인하려면 다음을 수행합니다.

  1. 데이터베이스 계층 가상 머신에 로그인하고 웹 계층 가상 머신 중 하나의 IP 주소를 ping합니다(웹 계층 가상 머신에서 Windows 방화벽이 꺼져 있는지 확인).

  2. 네트워크 컨트롤러 테넌트 리소스에서 오류가 있는지 확인합니다. 네트워크 컨트롤러에 계층 3 연결이 있는 Hyper-V 호스트에서 다음을 실행합니다.

    Debug-NetworkControllerConfigurationState -NetworkController <FQDN of Network Controller REST Name>
    
  3. 부하 분산 장치가 올바르게 실행되고 있는지 확인하려면 Hyper-V 호스트에서 다음을 실행합니다.

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

    <VIP IP address> TenantConfig.psd1 파일에서 구성한 웹 계층 VIP IP 주소입니다.

    VIPIP TenantConfig.psd1에서 변수를 검색합니다.

    이를 여러 번 실행하여 사용 가능한 DIP 간의 부하 분산 장치 스위치를 확인합니다. 웹 브라우저를 사용하여 이 동작을 관찰할 수도 있습니다. <VIP IP address>/unique.htm 으로 이동합니다. 브라우저를 닫고 새 인스턴스를 열고 다시 찾습니다. 브라우저가 캐시 시간이 초과되기 전에 페이지를 캐시하는 경우를 제외하고 파란색 페이지와 녹색 페이지가 대체됩니다.