DNS가 내부 및 외부 주소 둘 다를 확인할 수 있는지와 필요한 아웃바운드 포트가 열려 있는지에 대한 테스트를 실행하여 2개의 네트워크 관련 영역이 제대로 구성되었는지 확인합니다. 이러한 테스트는 테스트 VM을 사용하여 실행합니다.

포드는 내부 및 외부 주소를 둘 다 확인하기 위해 DNS에 의존합니다. 여기에서 처음 두 테스트는 네트워크 환경에 구성된 DNS가 내부 및 외부 주소에 대한 알려진 FQDN을 확인할 수 있는지 여부를 검토합니다.

중요: 온-프레미스 네트워크를 통해 모든 트래픽을 외부로 보내고 인증된 트래픽만 전달하도록 허용하지만, 포드 배포 마법사에서 프록시를 사용하기 위한 값을 제공하지 않은 경우 이러한 모든 수동 테스트가 성공하더라도 인증되지 않은 소스인 jumpbox에서 보낸 트래픽은 실패합니다. 이 상황의 증상은 포드 배포가 보류 중 상태에서 중단되는 것입니다. 이러한 경우 [시작] 페이지에서 포드를 삭제하고 포드 배포 마법사를 다시 실행한 후 필수 프록시 정보를 지정해야 합니다.

사전 요구 사항

이러한 테스트를 실행하기 전에 Microsoft Azure 구독에서 테스트 가상 시스템 생성SSH를 사용하여 테스트 VM에 연결에 설명된 대로 Microsoft Azure 구독에서 테스트 VM을 생성하고, SSH 연결이 있는지 확인합니다.

VNet에서 연결할 수 있어야 하는 네트워크 내부의 서버에 대한 IP 주소 및 FQDN(정규화된 도메인 이름)을 가져옵니다(예: Active Directory 도메인 컨트롤러). DNS 확인 테스트에서 이 정보를 사용합니다.

프로시저

  1. dlg 명령을 통해 Microsoft Azure에서 VNet의 내부인 알려진 도메인 이름을 쿼리하여 작업 환경에서 DNS가 내부 FQDN을 확인하는지 검토합니다.
    SSH 연결 창에서 dig 명령을 실행하여 네트워크 외부에 있는 것으로 알려진 서버의 도메인 이름을 쿼리합니다(예: Active Directory 도메인 컨트롤러).
    dig internal-domain-name
    여기서 internal-domain-name은 네트워크 외부에 있는 것으로 알려진 서버의 정규화된 도메인 이름입니다.

    dig(Domain Information Grouper)는 네트워크 문제 해결을 위한 명령줄 도구입니다. 내부 호스트 이름을 사용하여 이 명령을 실행할 경우 결과는 DNS 구성이 내부 주소를 올바르게 확인할 수 있음을 확인합니다. DNS 구성이 명령에 사용된 internal-domain-name을 확인할 수 있는 경우 명령 출력으로 해당 도메인 이름에 연결된 올바른 IP 주소가 반환됩니다.

    예를 들어, VNet이 DNS 항목 skylo.local과 IP 주소 192.168.0.15의 Active Directory 도메인 컨트롤러가 있는 내부 Active Directory 서버로 구성되어 있다고 가정합니다. dig skylo.local을 실행하면 VNet의 DNS 구성이 해당 내부 skylo.local 서버 이름을 확인할 수 있는지 확인됩니다.
    testvmadmin@HCS-testingVM:~$ dig skylo.local
    
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> skylo.local
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64899
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4000
    ;; QUESTION SECTION:
    ;skylo.local.                   IN      A
    
    ;; ANSWER SECTION: skylo.local. 600 IN A 192.168.0.15
    
    ;; Query time: 1 msec
    ;; SERVER: 192.168.0.15#53(192.168.0.15)
    ;; WHEN: Mon Mar 26 20:58:01 UTC 2018
    ;; MSG SIZE  rcvd: 56
    
    testvmadmin@HCS-testingVM:~$
    ANSWER SECTION이 제공된 호스트 이름이 해당 호스트 이름에 대해 예상되는 IP 주소로 확인되었음을 나타낼 경우 테스트는 성공적인 것입니다.
    참고: 경우에 따라 DNS가 100%를 신뢰할 수 없으며 일부 요청은 실패하고 일부 요청은 제대로 확인됩니다. 처음에 이 명령을 실행했을 때 실패하면 이 명령을 10~12번 반복해서 실행하면서 매번 안정적인 응답이 제공되는지 여부를 확인합니다.
  2. dlg 명령을 통해 알려진 외부 도메인 이름을 쿼리하여 DNS가 작업 환경에서 외부 FQDN을 확인하는지 검토합니다.
    SSH 연결 창에서 dig 명령을 실행하여 외부 업계 표준 도메인 이름(예: vmware.com 또는 microsoft.com)을 쿼리합니다.
    dig external-domain-name
    여기서 external-domain-name은 VNet에 외부인 정규화된 도메인 이름입니다. 예를 들어, dig vmware.com을 실행하면 VNet의 DNS 구성이 해당 외부 이름을 확인할 수 있는지 여부가 확인됩니다.
    testvmadmin@HCS-testingVM:~$ dig vmware.com
    
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> vmware.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38655
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4000
    ;; QUESTION SECTION:
    ;vmware.com.                    IN      A
    
    ;; ANSWER SECTION: vmware.com. 150 IN A 107.154.105.19 vmware.com. 150 IN A 107.154.106.19
    
    ;; Query time: 28 msec
    ;; SERVER: 192.168.0.15#53(192.168.0.15)
    ;; WHEN: Mon Mar 26 21:14:29 UTC 2018
    ;; MSG SIZE  rcvd: 71
    
    testvmadmin@HCS-testingVM:~
    위 예에서 ANSWER SECTION은 외부 도메인 이름 vmware.com이 두 개의 IP 주소로 올바로 확인되었음을 나타냅니다.
    참고: azure.com 또는 microsoft.com과 같은 다양한 외부 도메인 이름을 사용하여 이 테스트를 반복하면서 DNS가 다른 외부 이름을 확인할 수 있는지 확인할 수 있습니다.
    DNS 테스트가 작동하지 않는 경우 네트워크 구성 및 DNS 서버를 확인합니다. VNet에 DNS 서버를 추가했는지 확인합니다.
    중요: 사용자 VNet에 DNS 서버를 추가해야 하거나 VNet의 DNS 서버 구성을 변경해야 할 경우, 변경 사항을 선택할 수 있게 해당 VNet에 연결된 모든 VM을 다시 시작해야 합니다. VNet의 DNS 서버 구성을 변경하고 해당 VNet에 연결된 일부 VM만 다시 시작하면 변경 사항이 VNet에 올바르게 전파되지 않습니다.
  3. netcat 명령을 사용하여 필요한 아웃바운드 포트를 사용할 수 있는지 확인합니다.
    Horizon Cloud에서는 포드 소프트웨어를 Microsoft Azure 환경에 안전하게 다운로드하고, 포드를 Horizon Cloud 제어부에 다시 연결할 수 있도록 하기 위해 일부 아웃바운드 포트를 열어 두어야 합니다. Microsoft의 Horizon Cloud 포드 및 관련 서비스 기능에 대한 DNS 요구 사항에 설명된 대로, 포드의 관리 서브넷에서 아웃바운드 TCP 포트 80, 443 및 11371을 열어 두어야 합니다. 아래 명령에 나와 있는 것처럼 netcat 명령을 실행하여, 필요에 따라 해당 아웃바운드 포트가 열려 있는지 확인할 수 있습니다.
    SSH 연결 창에서 다음 명령을 실행합니다(포트당 1번씩).
    참고: 포트 11371을 테스트하기 위한 아래 명령은 연결을 테스트할 packages.microsoft.com을 지정하지만, 다른 2개의 줄은 Horizon Cloud 제어부에 대한 아웃바운드 연결을 테스트합니다.
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 cloud.horizon.vmware.com 80
    Connection to cloud.horizon.vmware.com 80 port [tcp/http] succeeded!
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 cloud.horizon.vmware.com 443
    Connection to cloud.horizon.vmware.com 443 port [tcp/https] succeeded!
    testvmadmin@HCS-testingVM:~$ netcat -v -w 3 packages.microsoft.com 11371
    Connection to packages.microsoft.com 11371 port [tcp/hkp] succeeded!
    포트가 적절히 열려 있으면 netcat 명령은 해당 테스트에 대해 succeeded! 줄을 반환 합니다.
    netcat 명령이 오류를 반환하는 경우 Microsoft Azure 네트워크 연결, 구독의 네트워크 보안 그룹 및 방화벽을 제대로 설정했는지 확인합니다. Microsoft의 Horizon Cloud 포드 및 관련 서비스 기능에 대한 DNS 요구 사항에 설명된 대로 네트워크 구성이 배포를 위해 포드에 필요한 DNS, 포트 및 프로토콜 요구 사항을 충족하는지 확인합니다.

결과

위의 테스트가 성공하는 경우 포드를 성공적으로 배포할 수 있게 됩니다.

참고: 포드에 사용할 선택적 기능을 구성하려는 경우(예: Radius 2단계 인증 또는 True SSO) 해당 용도로 추가 포트가 필요할 수 있습니다. 위의 아웃바운드 포트 테스트 기법을 사용하여 이러한 포트가 제대로 열렸는지 확인할 수 있습니다.

다음에 수행할 작업

테스트를 완료했으면 테스트 VM과 VM 디스크, IP 주소, NIC와 같은 모든 관련 아티팩트를 Microsoft Azure 환경에서 삭제해야 합니다. 테스트 VM에 대한 리소스 그룹을 생성하는 것이 좋습니다. 이 경우 단순히 해당 리소스 그룹을 삭제하여 모든 VM의 아티팩트를 삭제할 수 있습니다. 테스트를 완료한 후 테스트 VM 삭제의 단계를 따르십시오.

중요: Microsoft Azure 환경에서 테스트 VM의 아티팩트를 모두 삭제하지 않고 VM을 포드의 서브넷 중 하나에 연결한 경우 나중에 포드에서 삭제 작업을 사용하여 Horizon Cloud 환경에서 포드를 삭제하려고 하면 나머지 연결된 아티팩트로 인해 시스템에서 포드를 완전히 삭제하지 못할 수 있습니다. 기본적으로 삭제 작업을 사용하여 포드를 삭제하면 Horizon Cloud가 포드에 대해 생성한 리소스 그룹과 서브넷을 삭제합니다. Microsoft Azure는 여전히 사용 중인 서브넷이 삭제되지 않도록 합니다. 테스트 VM의 아티팩트가 포드의 서브넷에 연결되어 있으면 해당 서브넷을 삭제할 수 없으며 포드 삭제가 완료되지 않습니다. 이 상황을 방지하려면 포드를 성공적으로 배포한 후 테스트 VM의 아티팩트가 모두 삭제되었는지 확인하십시오.