다음을 통해 공유


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

이 토픽에서는 스크립트를 사용하여 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에 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 Domain Services Active Directory Domain Services 설치(수준 100) 및 DNS 서버를 호스트합니다.

    a. Active Directory/DNS 서버 가상 머신을 관리 VLAN에 연결합니다.

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

    b. Active Directory Domain Services 및 DNS를 설치합니다.

    참고 항목

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

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

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

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

유효성 검사

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

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

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

    참고 항목

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

    Get-VMNetworkAdapterIsolation -ManagementOS
    
  3. 모든 Hyper-V 호스트 및 외부 관리 리소스(예: DNS 서버)의 유효성을 검사합니다. 관리 IP 주소 및/또는 FQDN(정규화된 도메인 이름)을 사용하여 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. 호스트 이름, 도메인 이름, 사용자 이름과 암호 및 계획 네트워크 토픽에 나열된 네트워크의 네트워크 정보를 포함하여 랩 인프라에 맞게 << Replace >> 태그를 특정 값으로 변경하여 SDNExpress\scripts\FabricConfig.psd1 파일을 사용자 지정합니다.

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

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

  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 주소입니다.

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

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