SSL/TLS 알아 보기 1. SSL와 TLS란? SSL(Secure Socket Layer; 보안 전송 계층) 암호화 기반 인터넷 보안 프로토콜로 웹사이트와 브라우저 사이 또는 두 서버 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 sundlscha.tistory.com
1. Application Gateway의 암호화 먼저 Application Gateway의 암호화에 대해 정리해 보았습니다.
Application Gateway는 전송 중 데이터 암호화를 위해 인증 기관에서 인증서를 구매하여 서버로 들어오고 나가는 메시지를 암호화할 수 있습니다. 이러한 암호화를 통해 전송 중인 메시지를 권한 없는 사용자가 가로채서 그 안에 있는 정보를 볼 수 없게 됩니다. Application Gateway는 HTTP 트래픽 로드 밸런싱, WAF 방화벽 및 데이터의 SSL 암호화 지원과 같은 기능을 제공합니다. 또한 사용자와 Application Gateway 간의 트래픽, Application Server와 Application Gateway 간의 트래픽 암호화를 지원합니다.
기본적으로 SSL Termination 수행 시 사용자와 Application Gateway 간의 트래픽은 HTTPS로 암호화되고 Application Gateway와 Backend Server 간의 트래픽은 HTTP로 통신이 이루어집니다. 만일, Application Gateway에서 Backend Server로 가는 트래픽 역시 HTTPS로 암호화하여 구성하고 싶을 경우 Application Gateway에서 지원하는 End-to-End TLS 암호화를 구성하면 됩니다. End-to-End TLS Encryption 설명
●TLS 암호 해독 시 성능에 가장 부하를 주는 것은 초기 Handshake이기 때문에 Application Gateway에서 TLS Termination을 수행할 경우, Client의 모든 요청에 대해 캐시된 값을 사용할 수 있습니다. cf) Backend Server에서 TLS Termination 수행할 경우, Client의 요청이 다른 Server로 갈 때마다 Client가 다시 인증을 해야 하는 번거로움이 발생합니다. ● SSL/TLS 통신 시 CPU 사용률이 높으며 SSL/TLS 통신 시 사용하는 키의 크기가 커짐에 따라 이 사용률은 더 증가하고 있습니다. 그렇기 때문에 Backend Server에서 이 작업을 하지 않을 경우 Server는 데이터를 가장 효율적으로 전달할 수 있는 방식에 대해서만 집중할 수 있게 됩니다. ● Application Gateway가 트래픽의 암호를 해독할 때 헤더, URI 등에 액세스 할 수 있기 때문에 이를 활용하여 요청을 지능적으로 라우팅할 수 있습니다. ● Application Gateway에만 Certificate를 설치하면 되기 때문에 시간과 비용을 절약할 수 있습니다.
✅ TLS Termination을 구성하기 위해서는 TLS/SSL Certificate가 반드시 수신기에 구성되어 있어야 합니다. ✅ Application Gateway에 제공된 인증서는 개인키와 공개키를 모두 포함하는 PFX(개인 정보 교환) 형식이어야 합니다. ❌ Application Gateway는 새 인증서를 만들거나 인증 기관에 인증서 요청을 보내는 기능을 제공하지 않습니다.
이를 통해 Application Gateway는 들어오는 트래픽을 해독하고 Client에 대한 response 트래픽을 암호화할 수 있습니다.
3.1 Backend Server TLS 암호화 ※ 이번 포스팅에서는 이 부분에 대한 테스트를 다루고 있지는 않습니다.
● Backend Server로 전달되는 트래픽을 암호화하여 보내고자 할 경우 Application Gateway의 End-to-End TLS 암호화 기능을 사용하면 됩니다. ● End-to-End TLS는 백 엔드 설정에서 백 엔드 프로토콜을 HTTPS로 변경하여 사용 가능합니다.
4. Application Gateway의 TLS Termination 구성 4.1 SSL Certificate 만들기 4.1.1 회원 가입
상기 명령어 실행 시 “Enter Export Password” 문구가 출력되면 Certificate의 암호로 사용할 password를 입력합니다.
변환된 Certificate를 확인합니다.
4.2 Application Gateway에 Certificate 업로드 4.2.1 수신기 생성 및 Certificate 업로드
프로토콜 : HTTPS 포트 : 443 # 기존에 수신기가 이미 존재할 경우, 그 수신기와 겹치지 않는 포트 기입 필요 PFX 인증서 파일 : # pfx 파일로 변환한 Certificate 업로드 암호 : # pfx 형식의 Certificate 생성 시 입력한 암호 입력
4.2.2 규칙 생성
[수신기] 선택
[백 엔드 대상] 선택
4.3 HTTPS를 사용하여 Application 접근
https://hyein.<domain name>을 입력하면 아래와 같이 정상적으로 Application에 접근이 가능한 것을 확인할 수 있습니다.
하기와 같이 주소창 옆 [사이트 정보 보기] 버튼을 클릭한 후 "이 연결은 안전합니다."라는 항목을 클릭할 시, 아래와 같이 인증서와 관련된 정보를 확인할 수 있습니다.
2.3 Azure Firewall 배포 1. [가상 머신]과 Azure Database for MySQL - Flexible Server이 3306 포트를 통해 통신할 수 있도록 규칙 추가 필요2. 방화벽 규칙은 Firewall Manager을 통해 관리됨
[기본 사항] 탭
리소스 그룹 : rg-hub-test이름 : fw-test방화벽 SKU : 표준Firewall policy : fw-policy-test # [Add new] 버튼을 클릭하여 새로운 policy 생성가상 네트워크 선택 # 기존 항목 사용가상 네트워크 : vnet-hub-test # AzureFirewallSubnet이 있는 Hub 네트워크 선택공용 IP 주소 : pip-fw-test # [새로 추가] 버튼을 클릭하여 새로운 공용 IP 생성
[검토 + 만들기] 탭에서 [만들기]를 클릭하여 Hub 대역에 [방화벽]을 생성합니다.
2.4 방화벽 규칙 생성
[방화벽] > [개요]
[설정] > [네트워크 규칙] > [+ 규칙 컬렉션 추가]
1. [규칙]의 상위 개념인 [규칙 컬렉션]을 먼저 생성하여야 합니다.([규칙 컬렉션]을 생성하지 않은 상태로 [+ Add rule]을 클릭하여 [규칙]을 생성할 수 없습니다.)2. 가장 상위 개념인 [규칙 컬렉션 그룹]의 경우, 기본값을 사용하거나 [설정] > [규칙 컬렉션] 탭에서 [+ Add] > [Rule collection group]을 클릭하여 신규로 생성할 수 있습니다.cf) 기본값은 다음과 같이 3개가 존재합니다.(DefaultDnatRuleCollectionGroup, DefaultNetworkRuleCollectionGroup, DefaultApplicationRuleCollectionGroup)3. [규칙 컬렉션 그룹], [규칙 컬렉션]은 모두 우선 순위를 가지며 [규칙]은 상위 개념들의 우선 순위를 따라갑니다.
[규칙 컬렉션] 및 [규칙]을 추가합니다.
이름 : rule-collection-nw # 규칙 컬렉션 이름 입력규칙 컬렉션 형식 : 네트워크 우선 순위 : 100 # 같은 [규칙 컬렉션] 내에서의 우선 순위를 의미함규칙 추가1. spoke1 대역에서 spoke 2 대역의 MySQL Flexible Server에 접근하기 위한 3306 포트 open(원본 : Spoke 1 대역, 대상 : Spoke 2 대역)2. spoke2 대역에서 spoke 1 대역으로 응답 보낼 수 있도록 하기 위한 3306 포트 open(원본 : Spoke 2 대역, 대상 : Spoke 1 대역)
[추가]를 클릭하여 [규칙 컬렉션] 및 [규칙]을 생성합니다.
2.5 가상 머신 생성 Spoke 1 대역에 배포될 가상 머신에 접근하거나 Azure Portal에 로그인하여 Private하게 구성된 리소스들을 조회하기 위한 VM을 생성합니다.
[기본 사항] 탭
리소스 그룹 : rg-hub-test # Hub 대역 리소스 그룹 선택가상 머신 이름 : vm-bastion-test 이미지 : Windows 11 Pro, version 22H2 - X64 Gen2 크기 : Standard_D4s_v5 - 4 vcpu, 16 GiB 메모리관리자 계정- 사용자 이름 : azureuser # 원하는 이름 사용- 암호인바운드 포트 선택 : RDP (3389)라이선싱 : 체크 박스 클릭
[네트워킹] 탭
가상 네트워크 : vnet-hub-test 선택서브넷 : snet-vm 선택공용 IP : pip-vm-bastion # [새로 만들기] 클릭하여 원하는 이름 입력
2.6 Private DNS Zone 생성 Spoke 2 대역에 배포될 Azure Database for MySQL Flexible Server (VNet Integration)를 Private DNS Zone과 통합하기 위하여 Hub 대역에 Private DNS Zone(private.mysql.database.azure.com)을 생성합니다.
[기본 사항] 탭
리소스 그룹 : rg-hub-test 선택이름 : private.mysql.database.azure.com
3.4 경로 테이블 생성 Spoke 1 VNet에서 Hub의 Azure Firewall을 통해 Spoke 2 VNet 내 Azure Database for MySQL - Flexible Server에 접근할 수 있도록 사용자 지정 경로를 생성 및 구성합니다.
[기본] 탭
리소스 그룹 : rg-spoke-test-01 이름 : rt-spoke-01게이트웨이 경로 전파 : No # VPN 게이트웨이를 통해 온-프레미스 네트워크에 연결된 가상 네트워크의 서브넷에 경로 테이블을 연결하고 온-프레미스 경로를 서브넷의 네트워크 인터페이스에 전파하지 않으려는 경우 No 옵션 선택
경로 이름 : To-Spoke2 # Spoke 2 대역으로 가기 위해 사용자 지정 경로(UDR) 생성대상 IP 주소/CIDR 범위 : 10.30.0.0/24 # Spoke 2 대역 IP 주소 입력다음 홉 형식 : 가상 어플라이언스 # 방화벽을 거쳐서 Spoke 2 대역으로 이동다음 홉 주소 : # Azure Firewall의 Private IP 주소 입력
[추가] 버튼을 클릭하여 사용자 지정 경로를 생성합니다. 서브넷 연결
rt-spoke-01 > [설정] > [서브넷] > [+ 연결]
가상 네트워크 : vnet-spoke-01 # spoke 1 대역의 VNet 선택서브넷 : snet-vm # 경로 테이블과 연결할 subnet 선택
3.6 가상 머신 생성 Spoke 2 대역에 배포될 Azure Database for MySQL Flexible Server에 접근하기 위한 client VM을 생성합니다.
[기본 사항] 탭
리소스 그룹 : rg-spoke-test-01 # Spoke 1 대역 리소스 그룹 선택가상 머신 이름 : vm-client-test 이미지 : Ubuntu Server 20.04 LTS - x64 Gen2크기 : Standard_D4s_v5 - 4 vcpu, 16 GiB 메모리관리자 계정- 인증 형식 : 암호- 사용자 이름 : azureuser # 원하는 이름 사용- 암호인바운드 포트 선택 : SSH (22)
[네트워킹] 탭
가상 네트워크 : vnet-spoke-01 선택서브넷 : snet-vm 선택공용 IP : 없음 # Hub 대역에 배포한 [가상 머신]을 통해 접속할 것이므로 공용 IP 불필요
리소스 그룹 : rg-spoke-test-02가상 네트워크 이름 : vnet-spoke-02 # spoke 2용 가상 네트워크 이름 입력영역 : (Asia Pachific) Korea Central
[IP 주소] 탭
주소 공간 : 10.30.0.0/24 # 가상 네트워크 대역 입력서브넷 : snet-mysql-delegated 추가 # [+ 서브넷 추가] 버튼을 클릭하여 주소 범위와 크기 입력 프라이빗 서브넷 사용 : 체크 X # 위임된 서브넷의 경우 DefaultOutboundConnectivity를 false로 설정해서는 안 됨
4.4 경로 테이블 생성 Spoke 1 대역의 가상 머신이 Azure Database for MySQL - Flexible Server에 접근할 때와 동일한 루트로 통신할 수 있도록 사용자 지정 경로를 구성합니다.
[기본] 탭
리소스 그룹 : rg-spoke-test-02 이름 : rt-spoke-02게이트웨이 경로 전파 : No # VPN 게이트웨이를 통해 온-프레미스 네트워크에 연결된 가상 네트워크의 서브넷에 경로 테이블을 연결하고 온-프레미스 경로를 서브넷의 네트워크 인터페이스에 전파하지 않으려는 경우 No 옵션 선택
경로 이름 : To-Spoke1 # Spoke 1 대역으로 가기 위해 사용자 지정 경로(UDR) 생성대상 IP 주소/CIDR 범위 : 10.20.0.0/26 # Spoke 1 대역 IP 주소 입력다음 홉 형식 : 가상 어플라이언스 # 방화벽을 거쳐서 Spoke 1 대역으로 이동다음 홉 주소 : # Azure Firewall의 Private IP 주소 입력
[추가] 버튼을 클릭하여 사용자 지정 경로를 생성합니다. 서브넷 연결
rt-spoke-02 > [설정] > [서브넷] > [+ 연결]
가상 네트워크 : vnet-spoke-02 # spoke 2 대역의 VNet 선택서브넷 : snet-mysql-delegated # 경로 테이블과 연결할 subnet 선택
4.6 Azure Database for MySQL Flexible Server 생성 VNet Integration?- 가상 네트워크 인프라를 통해서만 서버에 대해 액세스할 수 있도록 합니다. - Azure Database for MySQL - Flexible Server 전용으로 위임된 서브넷이 필요합니다. - 단일 VNet 또는 여러 VNet에 포함될 수 있습니다.
[기본] 탭
리소스 그룹 : rg-spoke-test-02 # spoke 2 대역의 리소스 그룹 선택서버 이름 : db-mysql-flexible-test MySQL 버전 : 8.0 # 기본값 유지인증 방법 : MySQL 인증만- 관리자 사용자 이름 : sqladmin # 원하는 사용자 이름 입력- 암호
[네트워킹] 탭
네트워크 연결 - 연결 방법 : 프라이빗 액세스(VNet 통합)가상 네트워크 : vnet-spoke-02 # Azure Database for MySQL Flexible Server가 생성될 VNet 선택서브넷 : # 위임될 subnet 선택프라이빗 DNS 통합- 구독 : # Hub 대역이 있는 구독 선택- 프라이빗 DNS 영역 : # 기 생성한 프라이빗 DNS 영역 선택
4.7 가상 네크워크 링크 생성
[설정] > [가상 네트워크 링크] > [+ 추가]
링크 이름 : vnet-link-spoke-02 # 원하는 가상 네트워크 링크 이름 입력가상 네트워크 : vnet-spoke-02 # Spoke 1 대역의 가상 네트워크 선택
5. 통신 테스트 5.1 Network Watcher를 통한 Next Hop 확인
[Network Watcher] > [네트워크 진단 도구] > [다음 홉]
리소스 그룹 : rg-spoke-test-01 # Client용 가상 머신이 있는 Spoke 1 대역의 리소스 그룹 선택가상 머신 : vm-client-test 선택대상 IP 주소 : 10.30.0.4 # Azure Database for MySQL Flexible Server의 IP 주소 입력
[다음 홉] 버튼을 클릭하여 조회 시 [다음 홉 형식]은 VirtualAppliance, IP 주소는 방화벽의 Private IP 주소가 출력되는 것을 확인할 수 있습니다.
5.2 Azure Firewall 진단 설정을 통한 방화벽 규칙 적용 확인
[방화벽] > [모니터링] > [진단 설정] > [+ 진단 설정 추가]
[진단 설정] 구성
진단 설정 이름 : Diagnostics-Setting-FW # 원하는 진단 설정 이름 입력범주 : Azure Firewall Network Rule # 현재 방화벽에 Network 규칙만 있으므로 관련된 범주만 선택대상 세부 정보- 스토리지 계정에 보관 # 방화벽 규칙에 의해 트래픽이 허용/거부되는지 확인을 위해 스토리지 계정에 로그 적재스토리지 계정 : # 없는 경우 먼저 생성 필요
경로 : resourceId=/SUBSCRIPTIONS/{구독 id}/RESOURCEGROUPS/{Resource Group 명}/PROVIDERS/MICROSOFT.NETWORK/AZUREFIREWALLS/{Firewall 명}/년/월/일/시/분/PT1H.json
로그 세부 내용 확인
Action : 해당 트래픽의 허용 여부 Policy : 어떤 방화벽 정책을 사용하는지 RuleCollectionGroup : 트래픽을 허용/거부하는 [규칙]이 어떤 [규칙 컬렉션 그룹]에 속해 있는지RuleCollection : 트래픽을 허용/거부하는 [규칙]이 어떤 [규칙 컬렉션]에 속해 있는지Rule : 어떤 [규칙]에 의해 트래픽이 허용/거부되는지 ※ 방화벽 테스트를 위해 Spoke 2 대역에 [가상 머신]을 추가로 생성하였습니다.
5.3 Spoke 1 대역 VM → Spoke 2 대역 MySQL Server 접근 테스트
Hub 대역의 Bastion용 [가상 머신]에 접속합니다.
Spoke 1 대역의 Client용 [가상 머신]에 접속합니다.
Spoke 2 대역의 MySQL Flexible Server 접근을 위한 MySQL Client를 설치합니다. (명령어 하기 박스 참고)
1. sudo apt-get update2. sudo apt-get install mysql-client (Y 입력)3. mysql -V # 입력 시 mysql Ver 8.0.35-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu)) 출력
Azure Database for MySQL Flexible Server 접근
[Azure Database for MySQL Flexible Server] > [설정] > [연결] > [브라우저에서 또는 로컬에서 연결] 클릭 후 명령어를 복사합니다.
Azure에서 트래픽을 Azure, 온-프레미스 및 인터넷 리소스간에 라우팅하는 방법에 대해 알아봅니다. Azure는 Azure 가상 네트워크 내의 각 서브넷에 대한 경로 테이블을 자동으로 만들고 시스템 기본 경로를 테이블에 추가합니다. 가상 네트워크 및 서브넷에 대한 자세한 내용은가상 네트워크 개요를 참조하세요. Azure의 시스템 경로 중 일부는사용자 지정 경로로 재정의하고 사용자 지정 경로를 경로 테이블에 추가할 수 있습니다. Azure는 서브넷의 경로 테이블에 있는 경로에 따라 서브넷에서 아웃바운드 트래픽을 라우팅합니다.
시스템 경로
Azure는 시스템 경로를 자동으로 만들고 가상 네트워크의 각 서브넷에 경로를 할당합니다. 시스템 경로를 만들거나 시스템 경로를 제거할 수는 없지만사용자 지정 경로를 사용하여 일부 시스템 경로를 재정의할 수 있습니다. Azure는 각 서브넷에 대한 기본 시스템 경로를 만들고, 특정 Azure 기능을 사용하는 경우, 특정 서브넷 또는 모든 서브넷에 대한선택적 기본 경로를 추가합니다.
기본값
각 경로에는 주소 접두사와 다음 홉 유형이 포함되어 있습니다. 서브넷에서 나가는 트래픽을 경로의 주소 접두사에 있는 IP 주소로 보낼 때 접두사가 포함된 경로가 Azure에서 사용하는 경로입니다. 여러 경로에 동일한 접두사 또는 겹치는 접두사가 있는 경우Azure에서 경로를 선택하는 방법에 대해 자세히 알아봅니다. 가상 네트워크를 만들 때마다 Azure에서 가상 네트워크 내의 각 서브넷에 대해 다음과 같은 기본 시스템 경로를 자동으로 만듭니다.
테이블 확장
원본주소 접두사다음 홉 유형
기본값
가상 네트워크에서 고유한 접두사
가상 네트워크
기본값
0.0.0.0/0
인터넷
기본값
10.0.0.0/8
없음
기본값
172.16.0.0/12
없음
기본값
192.168.0.0/16
없음
기본값
100.64.0.0/10
없음
이전 표에서 나열된 다음 홉 유형은 Azure에서 나열된 주소 접두사로 향하는 트래픽을 라우팅하는 방법을 나타냅니다. 다음 홉 유형에 대한 설명은 다음과 같습니다.
가상 네트워크: 가상 네트워크의주소 공간에 속한 주소 범위 간에 트래픽을 라우팅합니다. Azure는 가상 네트워크의 주소 공간 내에 정의된 각 주소 범위에 해당하는 주소 접두사가 포함된 경로를 만듭니다. 정의된 여러 개의 주소 범위가 가상 네트워크 주소 공간에 있는 경우 Azure는 각 주소 범위에 대한 개별 경로를 만듭니다. 기본적으로 Azure는 서브넷 간에 트래픽을 라우팅합니다. 서브넷 간에 트래픽을 라우팅하기 위해 Azure에 대한 경로 테이블 또는 게이트웨이를 정의할 필요가 없습니다. 가상 네트워크에 서브넷이 있고 각 서브넷에 주소 범위가 정의되어 있지만 Azure는 서브넷 주소 범위에 대한 기본 경로를 만들지 않습니다. 각 서브넷 주소 범위는 가상 네트워크 주소 공간의 주소 범위 내에 있습니다.
인터넷:주소 접두사로 지정된 트래픽을 인터넷으로 라우팅합니다. 시스템 기본 경로에는 0.0.0.0/0 주소 접두사가 지정됩니다. Azure의 기본 경로를 재정의하지 않는 경우 Azure는 가상 네트워크의 주소 범위에 지정되지 않은 주소에 대한 트래픽을 인터넷으로 라우팅합니다. 이 라우팅에는 한 가지 예외가 있습니다. 대상 주소가 Azure 서비스 중 하나에 대한 주소인 경우 Azure는 트래픽을 인터넷으로 라우팅하지 않고 Azure의 백본 네트워크를 통해 트래픽을 해당 서비스로 직접 라우팅합니다. Azure 서비스 간 트래픽은 가상 네트워크가 있는 Azure 지역 또는 Azure 서비스 인스턴스가 배포된 Azure 지역과 관계없이 인터넷을 거치지 않습니다. 0\.0.0.0/0 주소 접두사에 대한 Azure의 기본 시스템 경로는사용자 지정 경로로 재정의할 수 있습니다.
없음:트래픽 중없음다음 홉 유형으로 라우팅된 트래픽은 서브넷 외부로 라우팅되지 않고 삭제됩니다. Azure는 다음 주소 접두사에 대한 기본 경로를 자동으로 만듭니다.
10.0.0.0/8, 172.16.0.0/12 및 192.168.0.0/16: RFC 1918에서 프라이빗용으로 예약되어 있습니다.
100.64.0.0/10: RFC 6598에서 예약되어 있습니다.
가상 네트워크의 주소 공간에 이전 주소 범위 중 하나를 할당하면 Azure는 자동으로 경로에 대한 다음 홉 유형을없음에서가상 네트워크로 변경합니다. 예약된 4개 주소 접두사 중 하나를 포함하지만 동일하지 않은 주소 범위를 가상 네트워크 주소 공간에 할당하면, Azure는 해당 접두사에 대한 경로를 제거하고가상 네트워크를 다음 홉 유형으로 추가한 주소 접두사에 대한 경로를 추가합니다.
선택적 기본 경로
Azure는 다른 Azure 기능에 대한 더 많은 기본 시스템 경로를 추가하지만, 해당 기능을 사용하는 경우에만 추가합니다. 기능에 따라 Azure는 가상 네트워크 내의 특정 서브넷 또는 모든 서브넷에 선택적 기본 경로를 추가합니다. Azure에서 다른 기능을 사용할 때 추가할 수 있는 다른 시스템 경로 및 다음 홉 유형은 다음과 같습니다.
테이블 확장
원본주소 접두사다음 홉 유형경로가 추가되는 가상 네트워크 내의 서브넷
기본값
가상 네트워크에서 고유한 접두사 - 예: 10.1.0.0/16
VNet 피어링
모두
가상 네트워크 게이트웨이
온-프레미스에서 BGP를 통해 보급되거나 로컬 네트워크 게이트웨이에 구성된 접두사
가상 네트워크 게이트웨이
모두
기본값
여러 접두사
VirtualNetworkServiceEndpoint
서비스 엔드포인트를 사용하도록 설정된 서브넷만
VNet(가상 네트워크) 피어링: 두 가상 네트워크 간에 가상 네트워크 피어링을 만드는 경우 피어링과 관련된 각 가상 네트워크의 주소 공간 내의 각 주소 범위에 대한 경로가 추가됩니다.가상 네트워크 피어링에 대해 자세히 알아보세요.
가상 네트워크 게이트웨이: 가상 네트워크 게이트웨이가 가상 네트워크에 추가되면 다음 홉 유형으로 나열되는가상 네트워크 게이트웨이가 포함된 하나 이상의 경로가 추가됩니다. 게이트웨이에서 서브넷에 경로를 추가하기 때문에 원본도가상 네트워크 게이트웨이입니다. 온-프레미스 네트워크 게이트웨이에서 가상 네트워크 게이트웨이와 BGP(Border Gateway Protocol) 경로를 교환하는 경우 각 경로에 대한 경로가 추가됩니다. 이러한 경로는 온-프레미스 네트워크 게이트웨이에서 전파됩니다. 가능한 가장 큰 주소 범위로 온-프레미스 경로를 요약하는 것이 가장 좋으므로 가장 적은 수의 경로를 Azure 가상 네트워크 게이트웨이로 전파합니다. Azure 가상 네트워크 게이트웨이에 전파할 수 있는 경로의 수에는 제한이 있습니다. 자세한 내용은Azure 제한을 참조하세요.
VirtualNetworkServiceEndpoint: 서비스에 서비스 엔드포인트를 사용하도록 설정하면 Azure는 특정 서비스에 대한 공용 IP 주소를 경로 테이블에 추가합니다. 서비스 엔드포인트는 가상 네트워크 내의 개별 서브넷에서 사용하도록 설정되므로 서비스 엔드포인트를 사용하도록 설정된 서브넷의 경로 테이블에만 경로가 추가됩니다. Azure 서비스의 공용 IP 주소는 주기적으로 변경됩니다. 주소가 변경되면 Azure는 자동으로 경로 테이블의 주소를 관리합니다.가상 네트워크 서비스 엔드포인트및 만드는 서비스 엔드포인트의 대상이 될 수 있는 서비스에 대해 자세히 알아보세요.
참고
VNet 피어링및VirtualNetworkServiceEndpoint다음 홉 유형은 Azure Resource Manager 배포 모델을 통해 만든 가상 네트워크에 속한 서브넷의 경로 테이블에만 추가됩니다. 클래식 배포 모델을 통해 만든 가상 네트워크 서브넷에 연결되는 경로 테이블에는 다음 홉 유형이 추가되지 않습니다. Azure배포 모델에 대해 자세히 알아보세요.
사용자 지정 경로
사용자 정의경로를 생성하거나 온-프레미스 네트워크 게이트웨이와 Azure 가상 네트워크 게이트웨이 간에경계 게이트웨이 프로토콜(BGP) 경로를 교환하여 사용자 지정 경로를 만듭니다.
사용자 정의
트래픽 경로를 사용자 지정하려면 기본 경로를 수정하면 안 되지만 Azure의 기본 시스템 경로를 재정의하는 사용자 지정 또는 사용자 정의(정적) 경로를 만들어야 합니다. Azure에서 경로 테이블을 만든 다음 경로 테이블을 0개 이상의 가상 네트워크 서브넷에 연결합니다. 각 서브넷에는 0 또는 하나의 경로 테이블이 연결될 수 있습니다. 경로 테이블에 추가할 수 있는 최대 경로 수와 Azure 구독당 만들 수 있는 사용자 정의 경로 테이블의 최대 수에 대한 자세한 내용은Azure 제한을 참조하세요. 경로 테이블을 만들고 서브넷에 연결할 때, 테이블의 경로는 서브넷의 기본 경로와 연결됩니다. 충돌하는 경로 할당이 있는 경우 사용자 정의 경로가 기본 경로를 재정의합니다.
사용자 정의 경로를 만들 때 지정할 수 있는 다음 홉 유형은 다음과 같습니다.
가상 어플라이언스:가상 어플라이언스는 주로 방화벽 같은 네트워크 애플리케이션을 실행하는 가상 머신입니다. 가상 네트워크에 배포할 수 있는 미리 구성된 다양한 네트워크 가상 어플라이언스에 대한 자세한 내용은Azure Marketplace를 참조하세요.가상 어플라이언스홉 유형으로 경로를 만들 때 다음 홉 IP 주소도 지정합니다. IP 주소는 다음과 같습니다.
가상 머신에 연결된 네트워크 인터페이스의개인 IP 주소. 네트워크 트래픽을 자체 주소가 아닌 다른 주소로 전달하는 가상 머신에 연결된 모든 네트워크 인터페이스에는 AzureIP 전달 사용옵션이 설정되어 있어야 합니다. 이 설정은 Azure에서 네트워크 인터페이스에 대한 원본과 대상을 확인하지 않도록 합니다.네트워크 인터페이스에 대한 IP 전달 사용을 설정하는 방법에 대해 자세히 알아보세요.IP 전달 사용이 Azure 설정이지만 Azure 네트워크 인터페이스에 할당된 개인 IP 주소 간에 트래픽을 전달하도록 어플라이언스에 대한 가상 머신의 운영 체제 내에서 IP 전달을 사용하도록 설정해야 할 수도 있습니다. 어플라이언스가 트래픽을 공용 IP 주소로 라우팅해야 하는 경우 트래픽을 프록시하거나 원본의 개인 IP 주소에서 자체 개인 IP 주소로 NAT(네트워크 주소 변환)를 수행해야 합니다. 그런 다음, Azure는 인터넷으로 트래픽을 보내기 전에 공용 IP 주소로 NAT를 수행합니다. 가상 머신 내에서 필요한 설정을 확인하려면 운영 체제 또는 네트워크 애플리케이션의 설명서를 참조하세요. Azure에서 아웃바운드 연결을 이해하려면아웃바운드 연결 이해를 참조하세요.
참고다음 홉 개인 IP 주소는 ExpressRoute 게이트웨이나 Virtual WAN을 통해 라우팅할 필요 없이 직접 연결되어야 합니다. 다음 홉을 직접 연결되지 않은 IP 주소로 설정하면 잘못된 사용자 정의 라우팅 구성이 발생합니다.
가상 어플라이언스를 통해 라우팅되는 리소스와 다른 서브넷에 가상 어플라이언스를 배포합니다. 가상 어플라이언스를 동일한 서브넷에 배포한 다음 가상 어플라이언스를 통해 트래픽을 라우팅하는 서브넷에 경로 테이블을 적용하면 트래픽이 서브넷에서 나가지 않는 라우팅 루프가 발생할 수 있습니다.
주소 접두사로 0.0.0.0/0을 사용하고 가상 어플라이언스의 다음 홉 유형을 사용하여 경로를 정의할 수 있습니다. 이 구성을 사용하면 어플라이언스가 트래픽을 검사하고 트래픽을 전달할지, 아니면 삭제할지 결정할 수 있습니다. 0.0.0.0/0 주소 접두사가 포함된 사용자 정의 경로를 만들려면 먼저0.0.0.0/0 주소 접두사를 참조하세요.
가상 네트워크 게이트웨이: 가상 네트워크 게이트웨이로 라우팅되는 특정 주소 접두사로 향하는 트래픽을 원하는 시점을 지정합니다. 가상 네트워크 게이트웨이는VPN유형으로 만들어야 합니다. ExpressRoute를 통해 사용자 지정 경로에 BGP를 사용해야 하므로, 사용자 정의 경로에서ExpressRoute유형으로 만든 가상 네트워크 게이트웨이를 지정할 수 없습니다. 함께 사용하는 VPN 및 ExpressRoute 연결이 있는 경우에는 가상 네트워크 게이트웨이를 지정할 수 없습니다. 0.0.0.0/0 주소 접두사로 전송되는 트래픽을 경로 기반 가상 네트워크 게이트웨이로 보내는 경로를 정의할 수 있습니다. 온-프레미스에서 트래픽을 검사하고 트래픽을 전달하거나 삭제할지 여부를 결정하는 디바이스가 있을 수 있습니다. 0.0.0.0/0 주소 접두사에 대한 사용자 정의 경로를 만들려면 먼저0.0.0.0/0 주소 접두사를 참조하세요.VPN 가상 네트워크 게이트웨이에 BGP를 사용하도록 설정한 경우, 0.0.0.0/0 주소 접두사에 대한 사용자 정의 경로를 구성하는 대신 0.0.0.0/0 접두사가 포함된 경로를 BGP를 통해 보급할 수 있습니다.
없음: 대상에 트래픽을 전달하는 대신 주소 접두사로 트래픽을 삭제하려는 경우를 지정합니다. 기능을 완전히 구성하지 않은 경우 Azure는 일부 선택적 시스템 경로에 대해없음을 나열할 수 있습니다. 예를 들어없음이가상 네트워크 게이트웨이또는가상 어플라이언스의다음 홉 유형이 있는다음 홉 IP 주소로 나열되면 디바이스가 실행되고 있지 않거나 완전히 구성되지 않았기 때문일 수 있습니다. Azure는 다음 홉 유형으로없음이 있는 예약된 주소 접두사에 대한 시스템기본 경로를 만듭니다.
가상 네트워크: 가상 네트워크 내의 기본 라우팅을 재정의하려는 경우가상 네트워크옵션을 지정합니다.가상 네트워크홉 유형이 포함된 경로를 만들 수 있는 이유에 대한 예는라우팅 예를 참조하세요.
인터넷: 명시적으로 주소 접두사로 향하는 트래픽을 인터넷으로 라우팅하려는 경우 또는 Azure 백본 네트워크 내에서 유지하는 공용 IP 주소가 있는 Azure 서비스로 향하는 트래픽을 원하는 경우인터넷옵션을 지정합니다.
사용자 정의 경로에서는가상 네트워크 피어링또는VirtualNetworkServiceEndpoint를 다음 홉 유형으로 지정할 수 없습니다.가상 네트워크 피어링또는VirtualNetworkServiceEndpoint다음 홉 유형이 있는 경로는 가상 네트워크 피어링 또는 서비스 엔드포인트를 구성할 때 Azure에서 만듭니다.
사용자 정의 경로의 서비스 태그
이제 명시적 IP 범위 대신 사용자 정의 경로의 주소 접두사로서비스 태그를 지정할 수 있습니다. 서비스 태그는 지정된 Azure 서비스의 IP 주소 접두사 그룹을 나타냅니다. Microsoft는 서비스 태그에 포함된 주소 접두사를 관리하고 주소가 변경되면 서비스 태그를 자동으로 업데이트합니다. 따라서 사용자 정의 경로를 자주 업데이트할 때 발생하는 복잡성이 최소화되고 만들어야 하는 경로 수가 감소합니다. 현재 각 경로 테이블에서 서비스 태그를 사용하여 25개 이하의 경로를 만들 수 있습니다. 이 릴리스에서는 컨테이너에 대한 라우팅 시나리오에서 서비스 태그를 사용하는 것도 지원됩니다.
정확하게 일치
명시적 IP 접두사가 있는 경로와 서비스 태그가 있는 경로 사이에 정확한 접두사 일치가 있으면 명시적 접두사가 있는 경로에 우선 순위가 부여됩니다. 서비스 태그가 있는 여러 경로에 일치하는 IP 접두사가 있으면 경로는 다음 순서로 평가됩니다.
지역 태그(예: Storage.EastUS, AppService.AustraliaCentral)
최상위 태그(예: Storage, AppService)
AzureCloud 지역 태그(예: AzureCloud.canadacentral, AzureCloud.eastasia)
AzureCloud 태그
이 기능을 사용하려면 경로 테이블 명령에 주소 접두사 매개 변수의 서비스 태그 이름을 지정합니다. 예를 들어 PowerShell에서 다음을 사용하여 Azure Storage IP 접두사로 직접 전송된 트래픽을 가상 어플라이언스로 보내도록 새 경로를 만들 수 있습니다.
다음 홉 유형에 대해 표시되고 참조되는 이름은 Azure Portal 및 명령줄 도구와 Azure Resource Manager 및 클래식 배포 모델 간에 다릅니다. 다음 표에서는 서로 다른 도구 및배포 모델에서 각각의 다음 홉 유형을 참조하는 데 사용되는 이름을 나열하고 있습니다.
테이블 확장
다음 홉 유형Azure CLI 및 PowerShell(Resource Manager)Azure 클래식 CLI 및 PowerShell(클래식)
가상 네트워크 게이트웨이
VirtualNetworkGateway
VPNGateway
가상 네트워크
VNetLocal
VNETLocal(서비스 관리 모드의 클래식 CLI에서는 사용할 수 없음)
인터넷
인터넷
인터넷(서비스 관리 모드의 클래식 CLI에서는 사용할 수 없음)
가상 어플라이언스
VirtualAppliance
VirtualAppliance
없음
없음
Null(서비스 관리 모드의 클래식 CLI에서는 사용할 수 없음)
가상 네트워크 피어링
VNet 피어링
해당 없음
가상 네트워크 서비스 엔드포인트
VirtualNetworkServiceEndpoint
해당 없음
Border Gateway Protocol
온-프레미스 네트워크 게이트웨이는 BGP(Border Gateway Protocol)를 사용하여 Azure 가상 네트워크 게이트웨이와 경로를 교환할 수 있습니다. Azure 가상 네트워크 게이트웨이에서 BGP를 사용하는 것은 게이트웨이를 만들 때 선택한 유형에 따라 다릅니다.
ExpressRoute: Microsoft Edge 라우터에 온-프레미스 경로를 보급하려면 BGP를 사용해야 합니다. ExpressRoute 유형으로 배포된 가상 네트워크 게이트웨이를 배포하는 경우 ExpressRoute 가상 네트워크 게이트웨이로 트래픽을 강제하기 위해 사용자 정의 경로를 만들 수 없습니다. 예를 들어 사용자 정의 경로를 사용하여 Express Route에서 네트워크 가상 어플라이언스로 트래픽을 강제로 라우팅할 수 있습니다.
BGP를 사용하여 Azure와 경로를 교환하면 보급된 각 접두사에 대한 별도의 경로가 가상 네트워크에 있는 모든 서브넷의 경로 테이블에 추가됩니다. 원본 및 다음 홉 유형으로 나열되는가상 네트워크 게이트웨이가 포함된 경로가 추가됩니다.
경로 테이블의 속성을 사용하는 서브넷에서 ER 및 VPN Gateway 경로 전파를 비활성화할 수 있습니다. 경로 전파의 사용을 비활성화할 경우에는 가상 네트워크 게이트웨이 경로 전파가 사용하지 않도록 설정된 모든 서브넷의 경로 테이블에 경로가 추가되지 않습니다. 해당 프로세스는 정적 경로와 BGP 경로 모두에 적용됩니다. VPN 연결을 통한 연결 기능은 다음 홉 형식의가상 네트워크 게이트웨이와사용자 지정 경로를 사용하여 구현됩니다.GatewaySubnet에서 경로 전파를 사용하지 않도록 설정하면 안 됩니다. 게이트웨이가 이 설정이 해제된 상태에서는 작동하지 않습니다.자세한 내용은가상 네트워크 게이트웨이 경로 전파를 사용 안 함으로 설정하는 방법을 참조하세요.
Azure에서 경로를 선택하는 방법
서브넷에서 아웃바운드 트래픽을 보내면 Azure에서 가장 긴 접두사 일치 알고리즘을 사용하여 대상 IP 주소에 기반한 경로를 선택합니다. 예를 들어 경로 테이블에는 두 개의 경로가 있습니다. 한 경로에는 10.0.0.0/24 주소 접두사가, 다른 한 경로에는 10.0.0.0/16 주소 접두사가 지정되어 있습니다. Azure는 10.0.0.5로 향하는 트래픽을 10.0.0.0/24 주소 접두사가 포함된 경로에 지정된 다음 홉 유형으로 전달합니다. 이 프로세스는 10.0.0.5가 두 주소 접두사 모두에 속하더라도 10.0.0.0/24가 10.0.0.0/16보다 긴 접두사이기 때문에 발생합니다. Azure는 10.0.1.5로 향하는 트래픽을 10.0.0.0/16 주소 접두사를 사용하여 경로에 지정된 다음 홉 유형으로 전달합니다. 이 프로세스는 10.0.1.5가 10.0.0.0/24 주소 접두사에 포함되지 않아 10.0.0.0/16 주소 접두사가 포함된 경로가 가장 긴 일치 접두사가 되기 때문에 발생합니다.
여러 경로에 동일한 주소 접두사가 있는 경우 Azure는 다음 우선 순위에 따라 경로 유형을 선택합니다.
사용자 정의 경로
BGP 경로
시스템 경로
참고
BGP 경로가 더 구체적인 경우에도, 가상 네트워크, 가상 네트워크 피어링 또는 가상 네트워크 서비스 엔드포인트와 관련된 트래픽에 대한 시스템 경로가 기본 경로입니다.
예를 들어 경로 테이블에는 다음 경로가 포함되어 있습니다.
테이블 확장
원본주소 접두사다음 홉 유형
기본값
0.0.0.0/0
인터넷
사용자
0.0.0.0/0
가상 네트워크 게이트웨이
트래픽이 경로 테이블에 속한 다른 경로의 주소 접두사 외부에 있는 IP 주소로 향하는 경우 사용자 정의 경로가 시스템 기본 경로보다 우선 순위가 높으므로 Azure는사용자원본 경로를 선택합니다.
0.0.0.0/0 주소 접두사를 사용하는 경로는 Azure에 명령을 제공합니다. Azure는 이러한 명령을 사용하여 서브넷 경로 테이블에 있는 다른 경로의 주소 접두사에 속하지 않는 IP 주소로 향하는 트래픽을 라우팅합니다. 서브넷을 만들 때 Azure는인터넷다음 홉 유형과 함께 0.0.0.0/0 주소 접두사에 대한기본경로를 만듭니다. 이 경로를 재정의하지 않으면 Azure는 다른 경로의 주소 접두사에 포함되지 않은 IP 주소로 향하는 모든 트래픽을 인터넷으로 라우팅합니다. 예외적으로 Azure 서비스의 공용 IP 주소에 대한 트래픽은 Azure 백본 네트워크에 남아 있으며 인터넷으로 라우팅되지 않습니다. 이 경로를사용자 지정경로로 재정의하면 경로 테이블에 있는 다른 경로의 주소 접두사 내에 없는 주소로 향하는 트래픽이 전달됩니다. 대상은 사용자 지정 경로에 네트워크 가상 어플라이언스를 지정하는지, 아니면 가상 네트워크 게이트웨이를 지정하는지에 따라 달라집니다.
0.0.0.0/0 주소 접두사를 재정의하면 서브넷의 아웃바운드 트래픽이 가상 네트워크 게이트웨이 또는 가상 어플라이언스를 통과할 뿐만 아니라, Azure의 기본 라우팅에서 다음과 같은 변경이 발생합니다.
Azure는 Azure 서비스의 공용 IP 주소로 향하는 트래픽을 포함하여 모든 트래픽을 경로에 지정된 다음 홉 유형으로 보냅니다. 0.0.0.0/0 주소 접두사가 있는 경로의 다음 홉 유형이인터넷인 경우, Azure 서비스의 공용 IP 주소로 향하는 서브넷의 트래픽은 가상 네트워크 또는 Azure 서비스 리소스가 있는 Azure 지역과 관계없이 Azure의 백본 네트워크에 남아 있습니다. 그러나가상 네트워크 게이트웨이또는가상 어플라이언스다음 홉 유형이 포함된 사용자 정의 경로 또는 BGP 경로를 만드는 경우,서비스 엔드포인트를 사용하도록 설정되지 않은 Azure 서비스의 공용 IP 주소로 보내는 트래픽을 포함한 모든 트래픽은 경로에 지정된 다음 홉 유형으로 보내집니다. 서비스에 서비스 엔드포인트를 사용하도록 설정하면 Azure가 서비스에 대한 주소 접두사가 포함된 경로를 만듭니다. 서비스에 대한 트래픽은 0.0.0.0/0 주소 접두사가 포함된 경로의 다음 홉 유형으로 라우팅되지 않습니다. 서비스의 주소 접두사는 0.0.0.0/0보다 깁니다.
인터넷에서 서브넷의 리소스에 더 이상 직접 액세스할 수 없습니다. 인터넷에서 간접적으로 서브넷의 리소스에 액세스할 수 있습니다. 0.0.0.0/0 주소 접두사가 포함된 경로에 다음 홉 유형으로 지정된 디바이스는 인바운드 트래픽을 처리해야 합니다. 트래픽은 디바이스를 통과한 후 가상 네트워크의 리소스에 도달합니다. 경로의 다음 홉 유형에 대해 다음 값이 포함된 경우:
가상 어플라이언스: 어플라이언스에서 다음을 수행해야 합니다.
인터넷에서 액세스할 수 있어야 합니다.
공용 IP 주소를 할당받아야 합니다.
디바이스와 통신할 수 없게 하는 네트워크 보안 그룹 규칙에 연결되지 않아야 합니다.
통신을 거부하지 않아야 합니다.
네트워크 주소 변환 및 전달, 또는 서브넷의 대상 리소스로 트래픽 프록시를 수행하고, 인터넷에 트래픽을 다시 반환할 수 있어야 합니다.
가상 네트워크 게이트웨이: 게이트웨이가 ExpressRoute 가상 네트워크 게이트웨이인 경우 인터넷에 연결된 온-프레미스 디바이스는 ExpressRoute의프라이빗 피어링을 통해 네트워크 주소 변환 및 전달 또는 서브넷의 대상 리소스로 트래픽 프록시를 수행할 수 있습니다.
가상 네트워크가 Azure VPN 게이트웨이에 연결된 경우 대상이 0.0.0.0/0인 경로가 포함된게이트웨이 서브넷에 경로 테이블을 연결하지 않습니다. 그러면 게이트웨이가 제대로 작동하지 못할 수 있습니다. 자세한 내용은VPN Gateway FAQ에서내 VPN Gateway에서 특정 포트가 열리는 이유는 무엇인가요?질문을 참조하세요.
하나의 서브넷에 대해 존재하는 경로 테이블(요구 사항을 충족하는 데 필요한 기본 경로 및 사용자 지정 경로가 포함됨)
참고
이 예제는 권장 사례 또는 모범 사례로 구현된 것이 아닙니다. 대신 이 문서의 개념을 설명하기 위해서만 제공된 것입니다.
요구 사항
동일한 Azure 지역에 두 개의 가상 네트워크를 구현하고 리소스에서 가상 네트워크 간에 통신할 수 있도록 합니다.
온-프레미스 네트워크에서 인터넷을 통한 VPN 터널을 통해 두 가상 네트워크와 안전하게 통신할 수 있도록 합니다.또는 ExpressRoute 연결을 사용할 수 있지만 이 예제에서는 VPN 연결이 사용됩니다.
하나의 가상 네트워크에 하나의 서브넷이 있는 경우:
Azure Storage 및 서브넷 내의 아웃바운드 트래픽을 제외하고는 서브넷의 모든 아웃바운드 트래픽을 검사하고 로깅하기 위해 네트워크 가상 어플라이언스를 통과하도록 합니다.
서브넷 내에서 개인 IP 주소 간의 트래픽을 검사하지 않습니다. 모든 리소스 간에 트래픽이 직접 통과할 수 있도록 허용합니다.
다른 가상 네트워크로 향하는 모든 아웃바운드 트래픽을 삭제합니다.
Azure Storage에 대한 아웃바운드 트래픽이 네트워크 가상 어플라이언스를 거치지 않고 스토리지로 직접 통과할 수 있도록 합니다.
다른 모든 서브넷과 가상 네트워크 간의 모든 트래픽을 허용합니다.
구현
다음 그림에서는 앞의 요구 사항이 충족되는 Azure Resource Manager 배포 모델을 통한 구현을 보여 줍니다.
화살표는 트래픽의 흐름을 나타냅니다.
경로 테이블
Subnet1
그림의Subnet1에 대한 경로 테이블에는 다음 경로가 포함됩니다.
테이블 확장
ID원본상태주소 접두사다음 홉 유형다음 홉 IP 주소사용자 정의 경로 이름
1
기본값
잘못됨
10.0.0.0/16
가상 네트워크
2
사용자
활성화
10.0.0.0/16
가상 어플라이언스
10.0.100.4
Within-VNet1
3
사용자
활성화
10.0.0.0/24
가상 네트워크
Within-Subnet1
4
기본값
잘못됨
10.1.0.0/16
VNet 피어링
5
기본값
잘못됨
10.2.0.0/16
VNet 피어링
6
사용자
활성화
10.1.0.0/16
없음
ToVNet2-1-Drop
7
사용자
활성화
10.2.0.0/16
없음
ToVNet2-2-Drop
8
기본값
잘못됨
10.10.0.0/16
가상 네트워크 게이트웨이
[X.X.X.X]
9
사용자
활성화
10.10.0.0/16
가상 어플라이언스
10.0.100.4
To-On-Prem
10
기본값
활성화
[X.X.X.X]
VirtualNetworkServiceEndpoint
11
기본값
잘못됨
0.0.0.0/0
인터넷
12
사용자
활성화
0.0.0.0/0
가상 어플라이언스
10.0.100.4
Default-NVA
각 경로 ID에 대한 설명은 다음과 같습니다.
ID1: 10.0.0.0/16이 가상 네트워크에 대한 주소 공간에 정의된 유일한 주소 범위이므로 Azure에서Virtual-network-1내의 모든 서브넷에 대해 이 경로를 자동으로 추가했습니다. 경로 ID2에서 사용자 정의 경로를 만들지 않으면 10.0.0.1과 10.0.255.254 사이의 주소로 전송된 트래픽이 가상 네트워크 내에서 라우팅됩니다. 이 프로세스는 접두사가 0.0.0.0/0보다 길고 다른 경로의 주소 접두사에 속하지 않기 때문에 발생합니다. ID2 사용자 정의 경로가 추가되었을 때 기본 경로와 동일한 접두사를 사용하고 사용자 정의 경로에서 기본 경로를 재정의하기 때문에 Azure에서 상태를활성에서올바르지 않음으로 자동으로 변경했습니다. ID2 사용자 정의 경로가 있는 경로 테이블이Subnet2에 연결되어 있지 않으므로Subnet2에 대한 이 경로의 상태는 여전히활성입니다.
ID2: 10.0.0.0/16 주소 접두사에 대한 사용자 정의 경로가Virtual-network-1가상 네트워크의Subnet1서브넷에 연결되었을 때 Azure에서 이 경로를 추가했습니다. 가상 어플라이언스 가상 머신에 할당된 개인 IP 주소이기 때문에 사용자 정의 경로는 10.0.100.4를 가상 어플라이언스의 IP 주소로 지정합니다. 이 경로가 있는 경로 테이블이Subnet2와 연결되어 있지 않으므로 이 경로는Subnet2의 경로 테이블에 표시되지 않습니다. 이 경로는 가상 네트워크 다음 홉 유형을 통해 가상 네트워크 내에서 10.0.0.1 및 10.0.255.254 주소로 지정된 트래픽을 자동으로 라우팅하는 10.0.0.0/16 접두사(ID1)에 대한 기본 경로를 재정의합니다. 이 경로는요구 사항3을 충족하기 위해 존재하며, 모든 아웃바운드 트래픽이 가상 어플라이언스를 통과하도록 강제합니다.
ID3: 10.0.0.0/24 주소 접두사에 대한 사용자 정의 경로가Subnet1서브넷에 연결되었을 때 Azure에서 이 경로를 추가했습니다. 접두사가 ID2 경로보다 길기 때문에 10.0.0.1과 10.0.0.254 사이의 주소로 향하는 트래픽은 이전 규칙(ID2)에 지정된 가상 어플라이언스로 라우팅되지 않고 서브넷에 남아 있습니다. 이 경로는Subnet2와 연결되어 있지 않으므로Subnet2의 경로 테이블에 표시되지 않습니다. 이 경로는Subnet1내의 트래픽에 대한 ID2 경로를 효과적으로 재정의합니다. 이 경로는요구 사항3을 충족하기 위해 존재합니다.
ID4: 가상 네트워크가Virtual-network-2와 피어될 때 Azure는Virtual-network-1내의 모든 서브넷에 대한 ID 4 및 5 경로를 자동으로 추가했습니다.Virtual-network-2의 주소 공간에는 10.1.0.0/16 및 10.2.0.0/16의 두 주소 범위가 있으므로 Azure에서 각 범위에 대한 경로를 추가했습니다. 경로 ID 6 및 7에서 사용자 정의 경로를 만들지 않으면 10.1.0.1-10.1.255.254와 10.2.0.1-10.2.255.254 사이의 주소로 전송된 트래픽이 피어링된 가상 네트워크로 라우팅됩니다. 이 프로세스는 접두사가 0.0.0.0/0보다 길고 다른 경로의 주소 접두사에 속하지 않기 때문에 발생합니다. ID 6 및 7에서 경로를 추가하면 Azure가 상태를활성에서올바르지 않음으로 자동으로 변경합니다. 이 프로세스는 ID 4 및 5의 경로와 동일한 접두사를 포함하며 사용자 정의 경로가 기본 경로를 재정의하기 때문에 발생합니다. ID4 및 ID5의 사용자 정의 경로가 있는 경로 테이블이Subnet2에 연결되어 있지 않으므로Subnet2에 대한 ID6 및 ID7 경로의 상태는 여전히활성입니다.가상 네트워크 피어링은 요구 사항1을 충족하기 위해 만들어졌습니다.
ID5: ID4와 동일하게 설명됩니다.
ID6: 10.1.0.0/16 및 10.2.0.0/16 주소 접두사에 대한 사용자 정의 경로가Subnet1서브넷에 연결되었을 때 Azure에서 이 경로와 ID7의 경로를 추가했습니다. 사용자 정의 경로에서 기본 경로를 재정의하기 때문에 10.1.0.1-10.1.255.254와 10.2.0.1-10.2.255.254 사이의 주소로 향하는 트래픽은 피어링된 가상 네트워크로 라우팅되지 않고 삭제됩니다. 이 경로는Subnet2와 연결되어 있지 않으므로Subnet2의 경로 테이블에 표시되지 않습니다. 이 경로에서Subnet1에서 나가는 트래픽에 대한 ID4 및 ID5 경로를 재정의합니다. ID6 및 ID7 경로는요구 사항3을 충족하여 다른 가상 네트워크로 향하는 트래픽이 삭제됩니다.
ID7: ID6과 동일하게 설명됩니다.
ID8: VPN 유형 가상 네트워크 게이트웨이가 가상 네트워크 내에 만들어졌을 때 Azure에서Virtual-network-1내의 모든 서브넷에 대해 이 경로를 자동으로 추가했습니다. Azure에서 가상 네트워크 게이트웨이의 공용 IP 주소를 경로 테이블에 추가했습니다. 10.10.0.1과 10.10.255.254 사이의 모든 주소로 보내는 트래픽은 가상 네트워크 게이트웨이로 라우팅됩니다. 접두사는 0.0.0.0/0보다 길고 다른 경로의 주소 접두사에 있지 않습니다. 가상 네트워크 게이트웨이는요구 사항2를 충족하기 위해 만들어졌습니다.
ID9: 10.10.0.0/16 주소 접두사에 대한 사용자 정의 경로가Subnet1에 연결된 경로 테이블에 추가되었을 때 Azure에서 이 경로를 추가했습니다. 이 경로에서 ID8을 재정의합니다. 이 경로는 온-프레미스 네트워크로 향하는 모든 트래픽을 온-프레미스에서 직접 라우팅하지 않고 검사를 위해 NVA로 보냅니다. 이 경로는요구 사항3을 충족하기 위해 만들어졌습니다.
ID10: Azure 서비스에 대한 서비스 엔드포인트가 서브넷에서 사용하도록 설정되었을 때 Azure에서 이 경로를 해당 서브넷에 자동으로 추가했습니다. Azure에서 Azure 인프라 네트워크를 통해 서브넷의 트래픽을 해당 서비스의 공용 IP 주소로 라우팅합니다. 접두사는 0.0.0.0/0보다 길고 다른 경로의 주소 접두사에 있지 않습니다. Azure Storage로 향하는 트래픽이 Azure Storage로 직접 이동할 수 있게 하는요구 사항3을 충족하기 위해 서비스 엔드포인트가 만들어졌습니다.
ID11: 이 경로는 Azure에서Virtual-network-1및Virtual-network-2에 있는 모든 서브넷의 경로 테이블에 자동으로 추가했습니다. 0.0.0.0/0 주소 접두사는 가장 짧은 접두사입니다. 더 긴 주소 접두사 내의 주소로 보내는 모든 트래픽은 다른 경로에 따라 라우팅됩니다. Azure에서 기본적으로 다른 경로 중 하나에 지정된 주소 이외의 주소로 향하는 모든 트래픽을 인터넷으로 라우팅합니다. 0.0.0.0/0 주소 접두사(ID12)에 대한 사용자 정의 경로가 서브넷과 연결되었을 때 Azure에서Subnet1서브넷에 대한 상태를활성에서올바르지 않음으로 자동으로 변경했습니다. 다른 가상 네트워크의 다른 서브넷과 연결되어 있지 않으므로 두 가상 네트워크 내의 다른 모든 서브넷에 대한 이 경로의 상태는 여전히활성입니다.
ID12: 0.0.0.0/0 주소 접두사에 대한 사용자 정의 경로가Subnet1서브넷에 연결되었을 때 Azure에서 이 경로를 추가했습니다. 사용자 정의 경로에서 10.0.100.4를 가상 어플라이언스의 IP 주소로 지정합니다. 이 경로는Subnet2와 연결되어 있지 않으므로Subnet2의 경로 테이블에 표시되지 않습니다. 다른 경로의 주소 접두사에 포함되지 않은 주소에 대한 모든 트래픽은 가상 어플라이언스로 보내집니다. 이 경로를 추가했을 때 사용자 정의 경로에서 기본 경로를 재정의하기 때문에Subnet1의 0.0.0.0/0 주소 접두사(ID11)에 대한 기본 경로의 상태가활성에서올바르지 않음으로 변경되었습니다. 이 경로는 세 번째요구 사항을 충족하기 위해 존재합니다.
Subnet2
그림의Subnet2에 대한 경로 테이블에는 다음 경로가 포함됩니다.
테이블 확장
원본상태주소 접두사다음 홉 유형다음 홉 IP 주소
기본값
활성화
10.0.0.0/16
가상 네트워크
기본값
활성화
10.1.0.0/16
가상 네트워크 피어링
기본값
활성화
10.2.0.0/16
가상 네트워크 피어링
기본값
활성화
10.10.0.0/16
가상 네트워크 게이트웨이
[X.X.X.X]
기본값
활성화
0.0.0.0/0
인터넷
기본값
Active
10.0.0.0/8
없음
기본값
활성화
100.64.0.0/10
없음
기본값
Active
192.168.0.0/16
없음
Subnet2의 경로 테이블에는 Azure에서 만든 모든 기본 경로 및 선택적인 가상 네트워크 피어링 및 가상 네트워크 게이트웨이 경로가 포함되어 있습니다. 게이트웨이 및 피어링이 가상 네트워크에 추가되었을 때 Azure에서 선택적 경로를 가상 네트워크의 모든 서브넷에 추가했습니다. 0.0.0.0/0 주소 접두사에 대한 사용자 정의 경로가Subnet1에 추가되었을 때 Azure에서Subnet1경로 테이블로부터 10.0.0.0/8, 192.168.0.0/16 및 100.64.0.0/10 주소 접두사에 대한 경로를 제거했습니다.
대규모 Azure 고객들 사이에서 흔한 시나리오는 온-프레미스 데이터 센터에서 후면 계층에 액세스할 수 있으면서도 인터넷에 노출된 2계층 애플리케이션을 제공해야 하는 경우입니다. 이 문서에서는 다음 요구 사항을 충족하는 2계층 환경을 배포하기 위해 경로 테이블, VPN Gateway, 네트워크 가상 어플라이언스를 사용하는 시나리오를 안내합니다.
웹 애플리케이션은 공용 인터넷에서만 액세스할 수 있어야 합니다. 애플리케이션을 호스팅하는 웹 서버는 백 엔드 애플리케이션 서버에 액세스할 수 있어야 합니다. 인터넷에서 웹 애플리케이션으로 이동하는 모든 트래픽은 방화벽 가상 어플라이언스를 통해야 합니다. 이 가상 어플라이언스는 인터넷 트래픽에 대해서만 사용됩니다. 애플리케이션 서버로 이동하는 모든 트래픽은 방화벽 가상 어플라이언스를 통과해야 합니다. 이 가상 어플라이언스는 백 엔드 서버에 액세스하고 VPN Gateway를 통해 온-프레미스 네트워크에서 들어오는 액세스에 사용됩니다. 관리자는 관리 목적으로 독점적으로 사용된 세 번째 방화벽 가상 어플라이언스를 사용하여 온-프레미스 컴퓨터에서 방화벽 가상 어플라이언스를 관리할 수 있어야 합니다. 이 예제는 DMZ 및 보호된 네트워크를 사용하는 표준 경계 네트워크(DMZ라고도 함) 시나리오입니다. NSG(네트워크 보안 그룹), 방화벽 가상 어플라이언스 또는 이 두 가지를 조합하여 Azure에서 이 시나리오를 구성할 수 있습니다.
다음 표에서는 NSG와 방화벽 가상 어플라이언스의 장단점을 보여 줍니다.
테이블 확장 Item 장점 단점 NSG 무료입니다. Azure 역할 기반 액세스에 통합되었습니다. Azure Resource Manager 템플릿에서 규칙을 만들 수 있는 기능. 대규모 환경에서 복잡성이 달라질 수 있습니다. 방화벽 데이터 평면을 완벽히 제어합니다. 방화벽 콘솔을 통해 중앙에서 관리합니다. 방화벽 어플라이언스의 비용이 듭니다. Azure 역할 기반 액세스와 통합되지 않습니다. 다음 솔루션은 방화벽 가상 어플라이언스를 사용하여 경계 네트워크(DMZ)/보호된 네트워크 시나리오를 구현합니다.
고려 사항 현재 사용 가능한 기능을 사용하여 Azure에 이전 환경을 배포할 수 있습니다.
가상 네트워크: Azure 가상 네트워크는 온-프레미스 네트워크와 비슷한 방식으로 작동합니다. 트래픽을 격리하고 문제를 격리하기 위해 하나 이상의 서브넷으로 분할할 수 있습니다. 가상 어플라이언스: 여러 파트너가 이전에 설명한 세 개의 방화벽에 사용할 Azure Marketplace의 가상 어플라이언스를 제공합니다. 경로 테이블: 경로 테이블은 Azure 네트워킹에서 가상 네트워크 내의 패킷 흐름을 제어하는 데 사용됩니다. 이러한 경로 테이블을 서브넷에 적용할 수 있습니다. 하이브리드 연결에서 Azure 가상 네트워크로 들어오는 모든 트래픽을 가상 어플라이언스로 전달하는 경로 테이블을 GatewaySubnet에 적용할 수 있습니다. IP 전달: 기본적으로 Azure 네트워킹 엔진은 패킷 대상 IP 주소가 NIC IP 주소와 일치하는 경우에만 가상 NIC(네트워크 인터페이스 카드)에 패킷을 전달합니다. 패킷을 특정 가상 어플라이언스로 보내야 한다고 경로 테이블에 정의된 경우 Azure 네트워킹 엔진은 해당 패킷을 삭제합니다. 패킷의 실제 대상이 아닌 VM(이 경우 가상 어플라이언스)에 패킷이 제공되도록 하려면 가상 어플라이언스에 대해 IP 전달을 사용하도록 설정해야 합니다. 네트워크 보안 그룹: 다음 예에서는 NSG를 사용하지 않지만 이 솔루션에서는 서브넷이나 NIC에 적용된 NSG를 사용할 수 있습니다. NSG는 해당 서브넷 및 NIC에서 유입 및 유출되는 트래픽을 추가로 필터링합니다.
이 예에서 구독에는 다음 항목이 포함됩니다.
두 개의 리소스 그룹(다이어그램에 표시되지 않음):
ONPREMRG: 온-프레미스 네트워크를 시뮬레이트하는 데 필요한 모든 리소스를 포함합니다. AZURERG: Azure 가상 네트워크 환경에 필요한 모든 리소스를 포함합니다. onpremvnet이라는 가상 네트워크가 분할되어 온-프레미스 데이터 센터를 모방하는 데 사용됩니다.
onpremsn1: 온-프레미스 서버를 모방하기 위해 Linux 배포판을 실행하는 VM(가상 머신)이 포함된 서브넷입니다. onpremsn2: 관리자가 사용하는 온-프레미스 컴퓨터를 모방하기 위해 Linux 배포판을 실행하는 VM이 포함된 서브넷입니다. onpremvnet에서 하나의 방화벽 가상 어플라이언스가 OPFW로 명명되었습니다. azurevnet에 대한 터널을 유지하는 데 사용됩니다.
azurevnet이라는 가상 네트워크는 다음과 같이 세분화됩니다.
azsn1: 외부 방화벽에 독점적으로 사용되는 외부 방화벽 서브넷입니다. 모든 인터넷 트래픽은 이 서브넷을 통해 들어옵니다. 이 서브넷에는 외부 방화벽에 연결된 NIC만 포함되어 있습니다. azsn2: 인터넷에서 액세스하는 웹 서버로 실행되는 VM을 호스팅하는 프런트 엔드 서브넷입니다. azsn3: 프런트 엔드 웹 서버에서 액세스하는 백 엔드 애플리케이션 서버를 실행하는 VM을 호스팅하는 백 엔드 서브넷입니다. azsn4: 모든 방화벽 가상 어플라이언스에 대한 관리 액세스를 제공하는 데 독점적으로 사용되는 관리 서브넷입니다. 이 서브넷에는 솔루션에서 사용되는 각 방화벽 가상 어플라이언스에 대한 NIC만 포함되어 있습니다. GatewaySubnet: Azure ExpressRoute와 Azure VPN Gateway가 Azure 가상 네트워크와 다른 네트워크 간의 연결을 제공하는 데 필요한 Azure 하이브리드 연결 서브넷입니다. azurevnet 네트워크에 3개의 방화벽 가상 어플라이언스가 있습니다.
AZF1: Azure에서 공용 IP 주소 리소스를 사용하여 공용 인터넷에 노출되는 외부 방화벽입니다. Azure Marketplace 또는 어플라이언스 공급업체에서 직접 3개 NIC 가상 어플라이언스를 배포하는 템플릿이 있는지 확인해야 합니다. AZF2: azsn2와 azsn3 사이의 트래픽을 제어하는 데 사용되는 내부 방화벽입니다. 이 방화벽도 3개의 NIC로 구성된 가상 어플라이언스입니다. AZF3: 온-프레미스 데이터 센터에서 관리자가 액세스할 수 있고 모든 방화벽 어플라이언스를 관리하는 데 사용되는 관리 서브넷에 연결된 관리 방화벽입니다. Azure Marketplace에서 두 개의 NIC 가상 어플라이언스 템플릿을 찾을 수 있습니다. 어플라이언스 공급업체에 직접 요청할 수도 있습니다. 경로 테이블 Azure의 각 서브넷을 경로 테이블에 연결하여 해당 서브넷에서 시작된 트래픽이 라우팅되는 방식을 정의합니다. UDR(사용자 정의 경로)이 정의되지 않은 경우 Azure는 기본 경로를 사용하여 트래픽이 한 서브넷에서 다른 서브넷으로 흐르도록 허용합니다. 경로 테이블과 트래픽 라우팅을 더 잘 이해하려면 Azure 가상 네트워크 트래픽 라우팅을 참조하세요.
이전에 나열된 마지막 요구 사항에 따라 적절한 방화벽 어플라이언스를 통해 통신이 수행되도록 하려면 azurevnet에 다음 경로 테이블을 만들어야 합니다.
azgwudr 이 시나리오에서 온-프레미스에서 Azure로 흐르는 유일한 트래픽은 AZF3에 연결하여 방화벽을 관리하는 데 사용되며, 해당 트래픽은 내부 방화벽인 AZF2를 통과해야 합니다. GatewaySubnet에는 여기에 표시된 것처럼 하나의 경로만 필요합니다.
테이블 확장 대상 다음 홉 설명 10.0.4.0/24 10.0.3.11 온-프레미스 트래픽이 관리 방화벽 AZF3에 도달하도록 허용합니다. azsn2udr
테이블 확장 대상 다음 홉 설명 10.0.3.0/24 10.0.2.11 AZF2를 통해 애플리케이션 서버를 호스팅하는 백 엔드 서브넷으로의 트래픽을 허용합니다. 0.0.0.0/0 10.0.2.10 다른 모든 트래픽이 AZF1을 통해 라우팅되도록 허용합니다. azsn3udr
테이블 확장 대상 다음 홉 설명 10.0.2.0/24 10.0.3.10 azsn2에 대한 트래픽이 앱 서버에서 웹 서버로 AZF2를 통해 흐르도록 허용합니다. 또한 온-프레미스 데이터 센터를 모방하기 위해 onpremvnet의 서브넷에 대한 경로 테이블도 만들어야 합니다.
onpremsn1udr
테이블 확장 대상 다음 홉 설명 192.168.2.0/24 192.168.1.4 onpremsn2에서 OPFW까지의 트래픽을 허용합니다. onpremsn2udr
테이블 확장 대상 다음 홉 설명 10.0.3.0/24 192.168.2.4 OPFW를 통해 Azure의 백 엔드 서브넷으로의 트래픽을 허용합니다. 192.168.1.0/24 192.168.2.4 onpremsn1에서 OPFW까지의 트래픽을 허용합니다. IP 전달 경로 테이블 및 IP 전달은 가상 어플라이언스가 Azure 가상 네트워크의 트래픽 흐름을 제어하도록 허용하는 데 함께 사용할 수 있는 기능입니다. 가상 어플라이언스는 방화벽이나 네트워크 주소 변환 디바이스와 같이 네트워크 트래픽을 처리하는 데 사용되는 애플리케이션을 실행하는 VM일 뿐입니다.
이 가상 어플라이언스 VM은 주소가 자신으로 지정되지 않은 들어오는 트래픽을 받을 수 있어야 합니다. VM이 다른 대상으로 주소가 지정된 트래픽을 받을 수 있도록 하려면 해당 VM에서 IP 전달을 사용하도록 설정해야 합니다. 이 설정은 Azure 설정으로 게스트 운영 체제에서 설정할 수 없습니다. 가상 어플라이언스는 수신 트래픽을 처리하고 적절하게 라우팅하기 위해 일부 유형의 애플리케이션을 계속 실행해야 합니다.
IP 전달에 대한 자세한 내용은 Azure 가상 네트워크 트래픽 라우팅을 참조하세요.
예를 들어, Azure 가상 네트워크에 다음과 같은 설정이 있다고 가정해 보겠습니다.
서브넷 onpremsn1에 onpremvm1이라는 VM이 포함되어 있습니다. 서브넷 onpremsn2에 onpremvm2이라는 VM이 포함되어 있습니다. OPFW라는 가상 어플라이언스가 onpremsn1 및 onpremsn2에 연결되어 있습니다. onpremsn1에 연결된 UDR은 onpremsn2에 대한 모든 트래픽이 OPFW로 전송되어야 함을 지정합니다. 이 시점에서 onpremvm1이 onpremvm2와 연결을 설정하려고 하면 UDR이 사용되고 트래픽은 다음 홉으로 OPFW로 전송됩니다. 실제 패킷 대상은 변경되지 않습니다. 아직도 대상이 onpremvm2라고 나와있습니다.
OPFW에 대해 IP 전달을 사용하도록 설정하지 않으면 패킷의 대상이 VM의 IP 주소인 경우에만 패킷이 VM으로 전송되도록 허용하므로 Azure 가상 네트워킹 논리가 패킷을 삭제합니다.
IP 전달을 사용하면 Azure 가상 네트워크 논리가 원래 대상 주소를 변경하지 않고 OPFW에 패킷을 전달합니다. OPFW는 패킷을 처리하고 수행할 작업을 결정해야 합니다.
이전 시나리오가 작동하려면 라우팅에 사용되는 OPFW, AZF1, AZF2, AZF3의 NIC에서 IP 전달을 사용하도록 설정해야 합니다(관리 서브넷에 연결된 NIC를 제외한 모든 NIC).
방화벽 규칙 이전에 설명한 대로 IP 전달은 패킷이 가상 어플라이언스로 전송되는 것만 보장합니다. 어플라이언스는 여전히 해당 패킷으로 수행할 작업을 결정해야 합니다. 이전 시나리오에서는 어플라이언스에 다음 규칙을 만들어야 합니다.
onpremsn2 OPFW는 다음 규칙을 포함하는 온-프레미스 디바이스를 나타냅니다.
경로: 10.0.0.0/16(azurevnet)에 대한 모든 트래픽은 터널 ONPREMAZURE를 통해 전송되어야 합니다. 정책: port2와 ONPREMAZURE 사이의 양방향 트래픽을 모두 허용합니다. AZF1 AZF1은 다음 규칙을 포함하는 Azure 가상 어플라이언스를 나타냅니다.
정책: port1와 port2 사이의 양방향 트래픽을 모두 허용합니다.
AZF2 AZF2은 다음 규칙을 포함하는 Azure 가상 어플라이언스를 나타냅니다.
정책: port1와 port2 사이의 양방향 트래픽을 모두 허용합니다.
AZF3 AZF3은 다음 규칙을 포함하는 Azure 가상 어플라이언스를 나타냅니다.
경로: 192.168.0.0/16(onpremvnet)에 대한 모든 트래픽은 port1을 통해 Azure 게이트웨이 IP 주소(즉, 10.0.0.1)로 전송되어야 합니다.
네트워크 보안 그룹 이 시나리오에서 NSG는 사용되지 않습니다. 그러나 각 서브넷에 NSG를 적용하여 수신 및 발신 트래픽을 제한할 수 있습니다. 예를 들어, 다음 NSG 규칙을 외부 방화벽 서브넷에 적용할 수 있습니다.
수신
서브넷의 모든 VM에서 포트 80에 대한 인터넷에서 오는 모든 TCP 트래픽을 허용합니다. 인터넷에서 오는 다른 모든 트래픽을 거부합니다. 발신
인터넷으로 가는 모든 트래픽을 거부합니다.
대략적인 단계 이 시나리오를 배포하려면 다음 단계를 따릅니다.
Azure 구독에 로그인합니다.
온-프레미스 네트워크를 가장하는 가상 네트워크를 배포하려는 경우 ONPREMRG에 포함된 리소스를 배포합니다.
AZURERG의 일부인 리소스를 배포합니다.
onpremvnet에서 azurevnet까지 터널을 배포합니다.
모든 리소스가 프로비전된 후 onpremvm2에 로그인하고 10.0.3.101에 ping을 보내 onpremsn2와 azsn3 사이의 연결을 테스트합니다.
프라이빗 엔드포인트는 가상 네트워크의 개인 IP 주소를 사용하는 네트워크 인터페이스입니다. 프라이빗 엔드포인트는 Azure Private Link에서 제공하는 서비스에 비공개로 안전하게 연결합니다. 프라이빗 엔드포인트를 사용하도록 설정하면 서비스를 가상 네트워크로 가져올 수 있습니다.
네트워크 연결은 프라이빗 엔드포인트에 연결하는 클라이언트에서만 시작할 수 있습니다. 서비스 공급자는 서비스 고객에 대한 연결을 만들기 위한 라우팅 구성이 없습니다. 연결은 단일 방향으로만 설정할 수 있습니다.
프라이빗 엔드포인트의 수명 주기에 대해 읽기 전용 네트워크 인터페이스가 자동으로 만들어집니다. 이 인터페이스에는 프라이빗 링크 리소스에 매핑되는 서브넷의 동적 개인 IP 주소가 할당됩니다. 프라이빗 IP 주소의 값은 프라이빗 엔드포인트의 전체 수명 주기 동안 변경되지 않고 유지됩니다.
프라이빗 엔드포인트는 가상 네트워크와 동일한 지역 및 구독에 배포되어야 합니다.
프라이빗 링크 리소스는 가상 네트워크 및 프라이빗 엔드포인트의 지역이 아닌 다른 지역에 배포할 수 있습니다.
동일한 프라이빗 링크 리소스를 사용하여 여러 프라이빗 엔드포인트를 만들 수 있습니다. 일반적인 DNS 서버 구성을 사용하는 단일 네트워크의 경우 지정된 프라이빗 링크 리소스에 단일 프라이빗 엔드포인트를 사용하는 것이 좋습니다. DNS 확인 시 중복 항목 또는 충돌을 방지하려면 이 방법을 사용합니다.
동일한 가상 네트워크 내에서 동일하거나 다른 서브넷에 여러 프라이빗 엔드포인트를 만들 수 있습니다. 하나의 구독에서 만들 수 있는 프라이빗 엔드포인트 수는 제한됩니다. 자세한 내용은Azure 제한을 참조하세요.
프라이빗 링크 리소스를 포함하는 구독은 Micosoft 네트워크 리소스 공급자에 등록해야 합니다. 프라이빗 엔드포인트를 포함하는 구독은 Micosoft 네트워크 리소스 공급자에도 등록해야 합니다. 자세한 내용은Azure Resource Providers를 참조하세요.
프라이빗 링크 리소스
프라이빗 링크 리소스는 지정된 프라이빗 엔드포인트의 대상입니다. 다음 표에는 프라이빗 엔드포인트를 지원하는 사용 가능한 리소스를 나와 있습니다.
프라이빗 엔드포인트를 사용하는 경우 트래픽은 프라이빗 링크 리소스로 보호됩니다. 플랫폼은 네트워크 연결의 유효성을 검사하여 지정된 프라이빗 링크 리소스에 도달하는 연결만 허용합니다. 동일한 Azure 서비스 내에서 더 많은 하위 리소스에 액세스하려면 해당 대상이 있는 더 많은 프라이빗 엔드포인트가 필요합니다. 예를 들어 Azure Storage 경우파일및blob하위 리소스에 액세스하려면 별도의 프라이빗 엔드포인트가 필요합니다.
프라이빗 엔드포인트는 Azure 서비스에 비공개로 액세스할 수 있는 IP 주소를 제공하지만 공용 네트워크 액세스를 반드시 제한하지는 않습니다. 그러나 다른 모든 Azure 서비스에는 추가액세스 제어가 필요합니다. 이러한 컨트롤은 리소스에 추가 네트워크 보안 계층을 제공하여 프라이빗 링크 리소스와 연결된 Azure 서비스에 대한 액세스를 방지하는 데 도움이 되는 보호를 제공합니다.
프라이빗 엔드포인트는 네트워크 정책을 지원합니다. 네트워크 정책을 사용하면 NSG(네트워크 보안 그룹), UDR(사용자 정의 경로) 및 ASG(애플리케이션 보안 그룹)를 지원할 수 있습니다. 프라이빗 엔드포인트에 대한 네트워크 정책을 사용하도록 설정하는 방법에 대한 자세한 내용은프라이빗 엔드포인트에 대한 네트워크 정책 관리를 참조하세요. 프라이빗 엔드포인트에서 ASG를 사용하려면프라이빗 엔드포인트를 사용하여 ASG(애플리케이션 보안 그룹) 구성을 참조하세요.
승인 워크플로를 사용하여 프라이빗 링크 리소스에 액세스
다음 연결 승인 방법을 사용하여 프라이빗 링크 리소스에 연결할 수 있습니다.
자동 승인: 사용자가 특정 프라이빗 링크 리소스를 소유하거나 권한이 있는 경우 이 방법을 사용합니다. 필요한 권한은 다음 형식의 프라이빗 링크 리소스 종류를 기준으로 합니다.
수동 요청: 필요한 사용 권한이 없고 액세스를 요청하려는 경우 이 방법을 사용합니다. 승인 워크플로가 시작됩니다. 프라이빗 엔드포인트와 이후의 프라이빗 엔드포인트 연결은보류 중상태로 만들어집니다. Private Link 리소스 소유자가 연결을 승인해야 합니다. 승인된 후 다음 승인 워크플로 다이어그램에 표시된 것처럼 프라이빗 엔드포인트가 트래픽을 정상적으로 보낼 수 있습니다.
프라이빗 엔드포인트 연결을 통해 프라이빗 링크 리소스 소유자는 다음을 수행할 수 있습니다.
모든 프라이빗 엔드포인트 연결 세부 정보를 검토합니다.
프라이빗 엔드포인트 연결을 승인합니다. 해당 프라이빗 엔드포인트는 트래픽을 프라이빗 링크 리소스로 보낼 수 있도록 사용하도록 설정됩니다.
프라이빗 엔드포인트 연결을 거부합니다. 해당 프라이빗 엔드포인트는 상태를 반영하도록 업데이트됩니다.
모든 상태의 프라이빗 엔드포인트 연결을 삭제합니다. 해당 프라이빗 엔드포인트는 작업을 반영하기 위해 연결이 끊긴 상태로 업데이트됩니다. 프라이빗 엔드포인트 소유자는 이 시점에서만 리소스를 삭제할 수 있습니다.
참고
승인됨 상태의 프라이빗 엔드포인트만 지정된 프라이빗 링크 리소스에 트래픽을 보낼 수 있습니다.
별칭을 사용하여 연결
별칭은 서비스 소유자가 표준 부하 분산 장치 뒤에 프라이빗 링크 서비스를 만들 때 생성되는 고유한 모니커입니다. 서비스 소유자는 이 별칭을 서비스 소비자와 오프라인으로 공유할 수 있습니다.
소비자는 리소스 URI 또는 별칭을 사용하여 프라이빗 링크 서비스에 대한 연결을 요청할 수 있습니다. 별칭을 사용하여 연결하려면 수동 연결 승인 방법을 사용하여 프라이빗 엔드포인트를 만듭니다. 수동 연결 승인 방법을 사용하려면 프라이빗 엔드포인트 만들기 흐름에서 수동 요청 매개 변수를True로 설정합니다. 자세한 내용은New-AzPrivateEndpoint및az network private-endpoint create를 참조하세요.
참고
소비자의 구독이 공급자 쪽에 허용 목록에 있는 경우 이 수동 요청을 자동으로 승인할 수 있습니다. 자세한 내용을 보려면서비스 액세스 제어로 이동하세요.
DNS 구성
프라이빗 링크 리소스에 연결하는 데 사용하는 DNS 설정이 중요합니다. 기존 Azure 서비스에는 공용 엔드포인트를 통해 연결할 때 사용할 DNS 구성이 이미 있을 수 있습니다. 프라이빗 엔드포인트를 통해 동일한 서비스에 연결하려면 프라이빗 DNS 영역을 통해 구성되는 별도의 DNS 설정이 필요합니다. 연결에 FQDN(정규화된 도메인 이름)을 사용하는 경우 DNS 설정이 올바른지 확인합니다. 프라이빗 엔드포인트의 개인 IP 주소를 확인하려면 DNS 구성을 변경합니다.
프라이빗 엔드포인트와 연결된 네트워크 인터페이스에는 DNS를 구성하는 데 필요한 정보가 포함되어 있습니다. 이 정보에는 프라이빗 링크 리소스에 대한 FQDN 및 개인 IP 주소가 포함됩니다.
Azure Kubernetes Service (AKS) Azure Application Gateway HD Insight Recovery Services Vaults Third party Private Link 서비스
네트워크 보안 그룹
테이블 확장
제한 사항설명
프라이빗 엔드포인트 네트워크 인터페이스에서 유효 경로 및 보안 규칙을 사용할 수 없습니다.
유효 경로 및 보안 규칙이 Azure Portal에서 프라이빗 엔드포인트 NIC에 대해 표시되지 않습니다.
NSG 흐름 로그가 지원되지 않습니다.
NSG 흐름 로그를 프라이빗 엔드포인트로 향하는 인바운드 트래픽에 대해 사용할 수 없습니다.
애플리케이션 보안 그룹의 구성원이 50명 이내입니다.
50은 프라이빗 엔드포인트 서브넷에서 NSG에 연결되는 각 ASG에 연결할 수 있는 IP 구성 수입니다. 구성원이 50명을 초과하면 연결 오류가 발생할 수 있습니다.
대상 포트 범위는 최대 250K까지 지원됩니다.
대상 포트 범위는 SourceAddressPrefixes, DestinationAddressPrefixes 및 DestinationPortRanges을 곱한 값으로 지원됩니다.
인바운드 규칙 예: 1개 원본 * 1개 대상 * 4K portRanges = 4K 유효 10개 원본 * 10개 대상 * 10 portRanges = 1K 유효 50개 원본 * 50개 대상 * 50portRanges = 125K 유효 50개 원본 * 50개 대상 * 100portRanges = 250K 유효 100개 원본 * 100개 대상 * 100portRanges = 1M 유효하지 않음, NSG에 원본/대상/포트가 너무 많습니다.
원본 포트 필터링은 *로 해석됩니다.
원본 포트 필터링은 프라이빗 엔드포인트를 대상으로 하는 트래픽의 유효한 트래픽 필터링 시나리오로 사용되지 않습니다.
일부 지역에서는 기능을 사용할 수 없습니다.
현재 다음 지역에서 사용할 수 없음: 인도 서부 오스트레일리아 중부 2 남아프리카 공화국 서부 브라질 남동부 모든 정부 지역 모든 중국 지역
NSG 추가 고려 사항
프라이빗 엔드포인트에서 거부된 아웃바운드 트래픽은 서비스 공급자가 트래픽을 생성할 수 없기 때문에 유효한 시나리오가 아닙니다.
다음 서비스는 프라이빗 엔드포인트를 사용하고 NSG 보안 필터를 추가할 때 모든 대상 포트를 열어야 할 수 있습니다.
VNet(가상 네트워크) 서비스 엔드포인트는 Azure 백본 네트워크에서 최적화된 경로를 통해 Azure 서비스에 대한 안전한 직접 연결을 제공합니다. 엔드포인트를 사용하면 가상 네트워크에 대해 중요한 Azure 서비스 리소스를 보호할 수 있습니다. 서비스 엔드포인트를 통해 VNet의 개인 IP 주소는 VNet에 공용 IP 주소가 없어도 Azure 서비스의 엔드포인트에 연결할 수 있습니다.
참고
Azure 플랫폼에서 호스트되는 서비스에 대한 보안 및 개인 액세스를 위해 Azure Private Link 및 프라이빗 엔드포인트를 사용하는 것이 좋습니다. Azure Private Link는 Azure Storage 또는 Azure SQL과 같은 Azure 서비스에 대해 선택한 가상 네트워크에 네트워크 인터페이스를 프로비전합니다. 자세한 내용은Azure Private Link및프라이빗 엔드포인트란?을 참조하세요.
서비스 엔드포인트는 다음 Azure 서비스 및 지역에서 제공됩니다.Microsoft.*리소스는 괄호 안에 있습니다. 서비스에 대한 서비스 엔드포인트를 구성하는 동안 서브넷 쪽에서 이 리소스를 사용하도록 설정합니다.
일반 공급
Azure Storage(Microsoft.Storage): 일반적으로 모든 Azure 지역에서 제공됩니다.
Azure 서비스 리소스의 보안 향상: VNet 프라이빗 주소 공간은 겹칠 수 있습니다. 겹치는 공간을 사용하여 VNet에서 발생하는 트래픽을 고유하게 식별할 수 없습니다. 서비스 엔드포인트는 VNet ID를 서비스로 확장하여 Azure 서비스 리소스를 가상 네트워크에 안전하게 연결합니다. 가상 네트워크에서 서비스 엔드포인트를 사용하면 가상 네트워크 규칙을 추가하여 가상 네트워크에 대한 Azure 서비스 리소스를 보호할 수 있습니다. 규칙을 추가하면 리소스에 대한 퍼블릭 인터넷 액세스가 완전히 제거되고 가상 네트워크의 트래픽만 허용하여 보안이 향상됩니다.
Virtual Network의 Azure 서비스 트래픽에 대한 최적의 라우팅: 현재 온-프레미스 및/또는 가상 어플라이언스에 인터넷 트래픽을 강제하는 가상 네트워크의 모든 경로는 Azure 서비스 트래픽이 인터넷 트래픽과 동일한 경로를 사용하도록 강제할 수도 있습니다. 서비스 엔드포인트는 Azure 트래픽에 대한 최적의 라우팅을 제공합니다.
엔드포인트는 가상 네트워크의 서비스 트래픽을 직접 Microsoft Azure 백본 네트워크의 서비스로 항상 이동시킵니다. 트래픽을 Azure 백본 네트워크에 유지하면 서비스 트래픽에 영향을 주지 않고 강제 터널링을 통해 가상 네트워크의 아웃바운드 인터넷 트래픽을 계속 감사하고 모니터링할 수 있습니다. 사용자 정의 경로 및 강제 터널링에 대한 자세한 내용은Azure 가상 네트워크 트래픽 라우팅을 참조하세요.
관리 오버 헤드를 덜 사용하여 간단히 설정: IP 방화벽을 통해 Azure 리소스를 보호하기 위해 가상 네트워크에서 예약된 공용 IP 주소가 더 이상 필요하지 않습니다. 서비스 엔드포인트를 설정하는 데 NAT(Network Address Translation) 또는 게이트웨이 디바이스가 필요하지 않습니다. 서브넷에서 단일 선택을 통해 서비스 엔드포인트를 구성할 수 있습니다. 엔드포인트를 유지하기 위한 추가 오버헤드가 없습니다.
제한 사항
이 기능은 Azure Resource Manager 배포 모델을 통해 배포된 가상 네트워크에만 사용할 수 있습니다.
엔드포인트는 Azure 가상 네트워크에서 구성된 서브넷에서 활성화됩니다. 온-프레미스 서비스에서 Azure 서비스로의 트래픽에 엔드포인트를 사용할 수 없습니다. 자세한 내용은온-프레미스에서 Azure 서비스 액세스 보안 유지를 참조하세요.
Azure SQL의 경우 서비스 엔드포인트는 가상 네트워크의 지역 내에서 Azure 서비스 트래픽에만 적용됩니다.
Azure Data Lake Storage(ADLS) Gen 1의 경우 VNet 통합 기능은 동일한 지역 내의 가상 네트워크에서만 사용할 수 있습니다. ADLS Gen1에 대한 가상 네트워크 통합에서는 가상 네트워크와 Microsoft Entra ID 간에 가상 네트워크 서비스 엔드포인트 보안을 사용하여 액세스 토큰에서 추가 보안 클레임을 생성하게 됩니다. 그런 다음, 이러한 클레임을 사용하여 Data Lake Storage Gen1 계정에 대해 가상 네트워크를 인증하고 액세스를 허용합니다. 서비스 엔드포인트를 지원하는 서비스에 나열된Microsoft.AzureActiveDirectory태그는 ADLS Gen 1에 서비스 엔드포인트를 지원하는 데 사용됩니다. Microsoft Entra ID는 태생적으로 서비스 엔드포인트를 지원하지 않습니다. Azure Data Lake Store Gen1 VNet 통합에 대한 자세한 내용은Azure Data Lake Storage Gen1 네트워크 보안을 참조하세요.
활성 VNet 규칙이 구성된 지원되는 각 서비스에 의해 가상 네트워크를 최대 200개의 서로 다른 구독 및 지역과 연결할 수 있습니다.
가상 네트워크에 대한 Azure 서비스 보호
가상 네트워크 서비스 엔드포인트는 Azure 서비스에 가상 네트워크의 ID를 제공합니다. 가상 네트워크에서 서비스 엔드포인트를 사용하면 가상 네트워크 규칙을 추가하여 가상 네트워크에 대한 Azure 서비스 리소스를 보호할 수 있습니다.
현재 가상 네트워크의 Azure 서비스 트래픽은 공용 IP 주소를 원본 IP 주소로 사용합니다. 서비스 엔드포인트에서 서비스 트래픽은 가상 네트워크의 Azure 서비스에 액세스할 때 가상 네트워크 프라이빗 주소를 원본 IP 주소로 사용하도록 전환됩니다. 이 스위치를 사용하면 IP 방화벽에서 사용되는 예약된 공용 IP 주소가 필요 없이 서비스에 액세스할 수 있습니다.
참고
서비스 엔드포인트를 사용하면 서비스 트래픽에 대한 서브넷의 가상 머신 원본 IP 주소가 공용 IPv4 주소에서 프라이빗 IPv4 주소로 전환됩니다. Azure 공용 IP 주소를 사용하는 기존 Azure 서비스 방화벽 규칙은 더 이상 이 스위치에 작동하지 않습니다. 서비스 엔드포인트를 설정하기 전에 Azure 서비스 방화벽 규칙에서 이 스위치를 허용해야 합니다. 서비스 엔드포인트를 구성하는 동안 이 서브넷의 서비스 트래픽이 일시적으로 중단될 수도 있습니다.
온-프레미스에서 Azure 서비스 액세스 보안 유지
기본적으로 가상 네트워크에 대해 보호된 Azure 서비스 리소스는 온-프레미스 네트워크에서 연결할 수 없습니다. 온-프레미스의 트래픽을 허용하려는 경우 온-프레미스 또는 ExpressRoute의 공용 IP 주소(일반적으로 NAT)도 허용해야 합니다. Azure 서비스 리소스에 대한 IP 방화벽 구성을 통해 해당 IP 주소를 추가할 수 있습니다.
ExpressRoute: 사내에서 Microsoft 피어링을 위해ExpressRoute를 사용하는 경우 사용 중인 NAT IP 주소를 식별해야 합니다. NAT IP 주소는 고객이 제공하거나 서비스 공급자가 제공합니다. 서비스 리소스에 대한 액세스를 허용하려면 리소스 IP 방화벽 설정에서 이러한 공용 IP 주소를 허용해야 합니다. ExpressRoute Microsoft 피어링용 NAT에 대한 자세한 내용은ExpressRoute NAT 요구 사항을 참조하세요.
구성
가상 네트워크의 서브넷에서 서비스 엔드포인트를 구성합니다. 엔드포인트는 해당 서브넷 내에서 실행되는 모든 컴퓨팅 인스턴스를 사용합니다.
서브넷에 지원되는 모든 Azure 서비스(예: Azure Storage, Azure SQL Database)에 여러 개의 서비스 엔드포인트를 구성할 수 있습니다.
Azure SQL Database의 경우 가상 네트워크는 Azure 서비스 리소스와 동일한 지역에 있어야 합니다. 다른 모든 서비스의 경우 모든 지역의 가상 네트워크에 대한 Azure 서비스 리소스를 보호할 수 있습니다.
엔드포인트가 구성된 가상 네트워크는 Azure 서비스 리소스와 동일하거나 다른 구독에 구성될 수 있습니다. 엔드포인트를 설정하고 Azure 서비스를 보호하는 데 필요한 사용 권한에 대한 자세한 내용은프로비저닝을 참조하세요.
지원되는 서비스의 경우 서비스 엔드포인트를 사용하여 가상 네트워크에 대한 기존 또는 새로운 리소스를 보호할 수 있습니다.
고려 사항
서비스 엔드포인트를 사용하도록 설정한 후에 원본 IP 주소는 해당 서브넷의 서비스와 통신할 때 공용 IPv4 주소가 아닌 개인 IPv4 주소를 사용하도록 전환됩니다. 이 전환 중에 서비스에 대한 기존의 모든 오픈 TCP 연결이 닫힙니다. 서브넷의 서비스에 서비스 엔드포인트를 사용하거나 사용하지 않도록 설정하는 경우 중요한 작업이 실행되지 않아야 합니다. 또한 IP 주소를 전환한 후에 애플리케이션이 Azure 서비스에 자동으로 연결될 수 있어야 합니다.
IP 주소 전환은 가상 네트워크의 서비스 트래픽에만 영향을 줍니다. 가상 머신에 할당된 공용 IPv4 주소 간에 주소가 지정된 다른 모든 트래픽에는 영향이 없습니다. Azure 서비스의 경우 Azure 공용 IP 주소를 사용하는 기존 방화벽 규칙이 있는 경우 이러한 규칙은 가상 네트워크 프라이빗 주소로 전환하는 동시에 작동이 중지됩니다.
서비스 엔드포인트에서 Azure 서비스의 DNS 항목은 현재 상태로 유지되고 Azure 서비스에 할당된 공용 IP 주소로 계속 사용됩니다.
서비스 엔드포인트의 NSG(네트워크 보안 그룹):
기본적으로 NSG는 아웃바운드 인터넷 트래픽을 허용하고 VNet에서 Azure 서비스로의 트래픽도 허용합니다. 이 트래픽은 서비스 엔드포인트와 그대로 계속 작동합니다.
모든 아웃바운드 인터넷 트래픽을 거부하고 특정 Azure 서비스에 대한 트래픽만 허용하려는 경우 NSG에서서비스 태그를 사용하여 수행할 수 있습니다. NSG 규칙에서 대상으로 지원되는 Azure 서비스를 지정할 수 있습니다. 또한 Azure에서는 각 태그의 기반이 되는 IP 주소의 유지 관리도 제공합니다. 자세한 내용은NSG의 Azure 서비스 태그를 참조하세요.
시나리오
피어링되거나 연결된 여러 가상 네트워크: 하나의 가상 네트워크 또는 여러 가상 네트워크의 여러 서브넷에 대한 Azure 서비스를 보호하려면 각 서브넷에서 서비스 엔드포인트를 독립적으로 활성화하고 모든 서브넷에 대한 Azure 서비스 리소스를 보호할 수 있습니다.
가상 네트워크에서 Azure 서비스로 아웃바운드 트래픽 필터링: 가상 네트워크에서 Azure 서비스로 전송된 트래픽을 검사하거나 필터링하려는 경우 해당 가상 네트워크 내에서 네트워크 가상 어플라이언스를 배포할 수 있습니다. 네트워크 가상 어플라이언스를 배포한 서브넷에 서비스 엔드포인트를 적용하고 이 서브넷에 대한 Azure 서비스 리소스만을 보호할 수 있습니다. 네트워크 가상 어플라이언스 필터링을 사용하여 가상 네트워크에서 특정 Azure 리소스로의 Azure 서비스 액세스만을 제한하도록 하려는 경우 이 시나리오가 유용할 수 있습니다. 자세한 내용은네트워크 가상 어플라이언스에서 송신을 참조하세요.
가상 네트워크에 직접 배포된 서비스에 대한 Azure 리소스 보호: 다양한 Azure 서비스를 가상 네트워크의 특정 서브넷에 직접 배포할 수 있습니다. 관리되는 서비스 서브넷에서 서비스 엔드포인트를 설정하여관리되는 서비스서브넷에 대한 Azure 서비스 리소스를 보호할 수 있습니다.
Azure 가상 머신의 디스크 트래픽: 관리 디스크 및 비관리 디스크에 대한 가상 머신 디스크 트래픽은 Azure Storage의 서비스 엔드포인트 라우팅 변경의 영향을 받지 않습니다. 이 트래픽에는 탑재 및 탑재 해제뿐만 아니라 diskIO도 포함됩니다. 서비스 엔드포인트 및Azure Storage 네트워크 규칙을 통해 REST 액세스를 네트워크를 선택하도록 페이지 Blob으로 제한할 수 있습니다.
로깅 및 문제 해결
서비스 엔드포인트를 특정 서비스에 구성하면 서비스 엔드포인트 경로가 다음 항목에 적용되는지 유효성을 검사합니다.
서비스 진단에서 모든 서비스 요청의 원본 IP 주소 유효성을 검사합니다. 서비스 엔드포인트에서 모든 새로운 요청은 요청의 원본 IP 주소를 가상 네트워크 개인 IP 주소로 표시하고 가상 네트워크에서 요청한 클라이언트에 할당됩니다. 엔드포인트가 없는 경우 주소는 Azure 공용 IP 주소입니다.
서브넷의 모든 네트워크 인터페이스에서 유효 경로를 볼 수 있습니다. 서비스에 대한 경로:
각 서비스의 주소를 지정하는 구체적인 기본 경로를 표시합니다.
VirtualNetworkServiceEndpoint의 nextHopType이 있습니다.
강제 터널링 경로에 비해 서비스에 대한 직접 연결이 더 효과적임을 나타냅니다.
참고
서비스 엔드포인트 경로는 Azure 서비스의 주소 접두사에 대한 BGP 경로를 재정의합니다. 자세한 내용은유효 경로 관련 문제 해결을 참조하세요.
프로비저닝
가상 네트워크에 대한 쓰기 권한이 있는 사용자는 가상 네트워크에서 독립적으로 서비스 엔드포인트를 구성할 수 있습니다. VNet에 대한 Azure 서비스 리소스를 보호하려면 추가된 서브넷에 대한Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action권한이 사용자에게 있어야 합니다. 기본 제공 서비스 관리자 역할은 기본적으로 이 권한을 포함합니다. 사용자 지정 역할을 만들어 권한을 수정할 수 있습니다.
가상 네트워크 및 Azure 서비스 리소스가 동일한 구독이나 다른 구독에 있을 수 있습니다. Azure Storage 및 Azure Key Vault와 같은 특정 Azure 서비스(일부는 아님)는 다른 AD(Active Directory) 테넌트 간에 서비스 엔드포인트도 지원합니다. 즉, 가상 네트워크 및 Azure 서비스 리소스는 다른 AD(Active Directory) 테넌트에 있을 수 있습니다. 자세한 내용은 개별 서비스 설명서를 확인하세요.
가격 책정 및 제한
서비스 엔드포인트 사용에 따른 추가 비용은 없습니다. Azure 서비스(Azure Storage, Azure SQL Database 등)의 현재 가격 책정 모델은 현재 상태로 적용됩니다.
가상 네트워크에서 서비스 엔드포인트의 총합에 제한이 없습니다.
특정 Azure 서비스(예: Azure Storage 계정)는 리소스 보안에 사용되는 서브넷의 수에 제한을 적용할 수 있습니다. 자세한 내용은다음 단계섹션에서 다양한 서비스의 설명서를 참조하세요.
VNet 서비스 엔드포인트 정책
VNet 서비스 엔드포인트 정책을 사용하면 Azure 서비스에 대한 가상 네트워크 트래픽을 필터링할 수 있습니다. 이 필터는 서비스 엔드포인트에 대한 특정 Azure 서비스 리소스만 허용합니다. 서비스 엔드포인트 정책은 Azure 서비스의 가상 네트워크 트래픽에 대한 세부적인 액세스 제어를 제공합니다. 자세한 내용은가상 네트워크 서비스 엔드포인트 정책을 참조하세요.
다음은 Azure에 Palo Alto의 VM-Series Virtual Appliance를 배포하면서 얻은 몇 가지 반작용을 요약한 것입니다. 이것은 가이드라기보다는 내가 취한 단계를 반영한 것이지만 아래 정보를 적절하다고 생각되는 대로 사용할 수 있습니다. 개략적으로 Azure에 디바이스를 배포한 다음, Azure의 VNet(Virtual Network)에서 트래픽을 적절하게 라우팅할 수 있도록 Palo Alto의 내부 "내장"을 구성해야 합니다. 설명된 단계는 Palo Alto VM-Series 어플라이언스의 8.0 및 8.1 버전 모두에 적용되어야 합니다.
또한 이 자습서에서는 스케일 아웃 아키텍처를 배포하려고 한다고 가정합니다. 이렇게 하면 단일 인스턴스가 푸시하려는 대역폭의 양에 압도되지 않도록 할 수 있습니다. 단일 인스턴스를 찾고 있는 경우에도 계속 따라갈 수 있습니다.
Azure에서 어플라이언스 배포Deploy the appliance in Azure
Virtual Palo Altos를 배포할 때 설명서에서는 Azure Marketplace(https://azuremarketplace.microsoft.com/en-us/marketplace/apps/paloaltonetworks.vmseries-ngfw?tab=Overview에서 찾을 수 있음)를 통해 만드는 것을 권장합니다. 개인적으로, 나는 명명 규칙에 대한 많은 통제력이 없고, 규모를 위해 둘 이상의 어플라이언스를 배포 할 수 없으며, 가용성 집합을 지정할 수 없으며, 관리 디스크를 활용할 수 없기 때문에 이러한 방식으로 어플라이언스를 배포하는 것을 좋아하지 않습니다. 또한 31자보다 큰 암호를 지정하면 Palo Alto 디바이스가 Azure에 배포되지 않는다는 정말 이상한 오류를 발견했습니다. 이 경우 관리 디스크, 가용성 집합, 일관된 명명법, 적절한 VM 크기 조정을 활용하고 가장 중요한 것은 크기 조정을 위해 배포하려는 가상 인스턴스의 수를 정의할 수 있는 사용자 지정 ARM 템플릿을 작성했습니다.
참고: 이 문서에서는 Panorama를 사용하는 개념을 다루지 않지만, "단일 창"에서 각 스케일 아웃 인스턴스를 중앙에서 관리합니다. 아래에서는 노드를 수동으로 설정하여 작동시키는 방법에 대해 설명합니다. ARM 템플릿 배포 시 노드를 부트스트랩하기 위해 배포 후 Panorama에 조인하는 기본 구성 파일을 생성할 수 있습니다. 부트 스트랩 파일은이 템플릿에 통합 한 것이 아니지만 템플릿을 쉽게 수정할 수 있습니다.
위에서 언급했듯이 이 기사에서는 Palo Alto가 공유 디자인 모델로 간주하는 것을 다룹니다. 다음은 시각적으로 표시되는 것의 예입니다(이 문서 하단의 메모 섹션에 나열된 Palo Alto의 참조 아키텍처 문서에서 발췌).
이 템플릿의 배포는 Azure Portal(portal.azure.com)로 이동하고,리소스 만들기를 선택하고, Azure Marketplace에서템플릿 배포를 입력하고, 만들기를 클릭하고,편집기에서 고유한 템플릿 빌드를선택하고, 코드를 편집기에 붙여넣어 수행할 수 있습니다.
또는 여기에서 이 버튼을 클릭할 수 있습니다.
다음은 템플릿에서 매개 변수가 의미하는 바에 대한 몇 가지 참고 사항입니다.
VM 크기: Palo Alto에 따라 권장되는 VM 크기는 DS3, DS4 또는 DS5여야 합니다. 이에 대한 설명서는 여기에서 찾을 수있습니다.
Network->Interfaces->Ethernet->를 선택하고ethernet1/1에 대한 링크를 선택한 후 다음과 같이 구성합니다.
인터페이스 유형:Layer3(기본값).
Config탭에서인터페이스를 Untrust-VR라우터에 할당합니다.
Config(구성) 탭에서 Security Zone(보안 영역) 드롭다운을 확장하고New Zone(새 영역)을 선택합니다.Untrust(신뢰할 수 없음)라는 새 영역을 정의하고OK(확인)를 클릭합니다.
인터페이스에 하나의 IP 주소만 할당하려는 경우IPv4탭에서 DHCP Client(DHCP 클라이언트)를 선택합니다. 둘 이상의 IP 주소를 할당하려는 경우 고정을 선택하고 Azure Portal의 인터페이스에 할당된 기본 및 보조 IP 주소를 수동으로 입력합니다. 인터페이스의 개인 IP 주소는Virtual Machines->YOURPALOMACHINE->Networking으로 이동하고 각 탭에 지정된개인 IP주소를 사용하여 찾을 수 있습니다.
참고: 가상 머신에 공용 IP 주소를 사용하지 마십시오. Azure는 트래픽을 개인 주소로 자동으로 DNAT하므로 UnTrust 인터페이스에 개인 IP 주소를 사용해야 합니다.
Automatically create default route to default gateway provided by server확인란의 선택을 취소합니다.
참고: 이 옵션을 사용하지 않도록 설정하면 이 인터페이스에서 처리되는 트래픽이 VNet의 기본 게이트웨이로 직접 흐르지 않습니다.
확인을클릭합니다.
참고: 신뢰할 수 없는 인터페이스의 경우 템플릿이 배포하지 않으므로 Azure 환경 내에서 신뢰할 수 없는 서브넷 또는 개별 방화벽 인터페이스에 연결된 NSG가 있는지 확인합니다(추가할 수 있지만 이미 NSG가 있는 경우 덮어쓰지 않으려고 합니다). Azure Load Balancer의 설명서에 따라 인터넷에서 들어오는 트래픽을 허용하려면 NIC 또는 서브넷에 연결된 NSG가 필요합니다.
트러스트 인터페이스 구성
Network->Interfaces->Ethernet->을 선택하고ethernet1/2에 대한 링크를 선택한 후 다음과 같이 구성합니다.
인터페이스 유형:Layer3(기본값).
Config탭에서Trust-VR라우터에 인터페이스를 할당합니다.
Config(구성) 탭에서 Security Zone(보안 영역) 드롭다운을 확장하고New Zone(새 영역)을 선택합니다.Trust(신뢰)라는 새 영역을 정의하고OK(확인)를 클릭합니다.
인터페이스에 하나의 IP 주소만 할당하려는 경우IPv4탭에서 DHCP Client(DHCP 클라이언트)를 선택합니다. 둘 이상의 IP 주소를 할당하려는 경우 고정을 선택하고 Azure Portal의 인터페이스에 할당된 기본 및 보조 IP 주소를 수동으로 입력합니다. 인터페이스의 개인 IP 주소는Virtual Machines->YOURPALOMACHINE->Networking으로 이동하고 각 탭에 지정된 개인 IP 주소를 사용하여 찾을 수 있습니다.
Automatically create default route to default gateway provided by server확인란의 선택을 취소합니다.
참고: 이 옵션을 사용하지 않도록 설정하면 이 인터페이스에서 처리되는 트래픽이 VNet의 기본 게이트웨이로 직접 흐르지 않습니다.
확인을클릭합니다.
오른쪽 상단에서커밋을 클릭합니다. 인터페이스의 링크 상태가 작동 중인지 확인합니다(Palo Alto 사용자 인터페이스에서 인터페이스가 녹색으로 바뀌어야 함).
Static Routes(정적 경로 정의)
Palo Alto는 트래픽을 인터넷으로 라우팅하는 방법과 서브넷으로 트래픽을 라우팅하는 방법을 이해해야 합니다. 이 섹션에서 볼 수 있듯이 각 Azure Load Balancer에서 제출된 상태 프로브의 처리를 처리하는 데 도움이 되는 두 개의 별도 가상 라우터가 필요합니다.
새 Virtual Router 및 Static Route to the Internet(인터넷에 대한 고정 경로)을 생성합니다.
Network(네트워크) -> Virtual Router(가상 라우터)를 선택합니다.
하단에서추가를 클릭합니다.
이름을Untrust-VR로 설정합니다.
고정 경로선택 ->IPv4->추가
인터넷 트래픽을 송신하기 위한 고정 경로 생성
이름:인터넷
대상:0.0.0.0/0
인터페이스:이더넷 1/1
다음 홉:IP 주소
IP 주소:Untrust 인터페이스가 배포된 서브넷의 기본 게이트웨이 IP 주소를 사용합니다.
참고: 이를 찾으려면 Azure Portal(portal.azure.com)로 이동하여모든 서비스->가상 네트워크->가상 네트워크->서브넷을 선택하고 신뢰할 수 없는 인터페이스가 있는 서브넷의 첫 번째 IP 주소를 사용합니다. 예를 들어 서브넷의 주소 범위가 10.5.15.0/24인 경우 10.5.15.1을 IP 주소로 사용합니다. 서브넷이 10.5.15.128/25 인 경우 129 10.5.15.129를 IP 주소로 사용합니다.
정적 경로를 생성하여 인터넷에서 신뢰할 수 있는 VR로 트래픽 이동
이름:내부 경로
대상:vnet 주소 공간
인터페이스:없음
다음 홉:다음 VR
트러스트-VR
확인을클릭합니다.
Azure 서브넷에 대한 새 가상 라우터 및 고정 경로 만들기Create a new Virtual Router and Static Route to your Azure Subnets
Network(네트워크) -> Virtual Router(가상 라우터)를 선택합니다.
하단에서추가를 클릭합니다.
이름을Trust-VR로 설정합니다.
고정 경로선택 ->IPv4->추가
신뢰할 수 있는 인터페이스에서 Azure로 트래픽을 보내는 고정 경로 만들기Create a Static Route to send traffic to Azure from your trusted interface
이름:AzureVNet
대상:vnet 주소 공간
인터페이스:이더넷 1/2
다음 홉:IP 주소
IP 주소:Trust 인터페이스가 배포된 서브넷의 기본 게이트웨이의 IP 주소를 사용합니다.
참고: 이를 찾으려면 Azure Portal(portal.azure.com)로 이동하여모든 서비스->가상 네트워크->가상 네트워크->서브넷을선택하고 트러스트 인터페이스가 있는 서브넷의 첫 번째 IP 주소를 사용합니다. 예를 들어 서브넷의 주소 범위가 10.5.15.0/24인 경우 10.5.15.1을 IP 주소로 사용합니다. 서브넷이 10.5.15.128/25 인 경우 129 10.5.15.129를 IP 주소로 사용합니다.
Trust에서 수신된 인터넷 트래픽을 Untrust Virtual Router로 이동하기 위한 고정 경로 생성
이름:인터넷
대상:0.0.0.0/0
인터페이스:없음
다음 홉:다음 VR
언트러스트 VR
확인을클릭합니다.
오른쪽 상단에서커밋을클릭합니다.
Azure Load Balancer에 대한 상태 프로브 구성Configure Health Probes for Azure Load Balancer
스케일 아웃 시나리오를 배포하는 경우Azure Load Balancer의 IP 주소인 168.63.129.16에서 TCP 프로브를 승인해야 합니다. Azure 상태 프로브는 특정 IP 주소(168.63.129.16)에서 제공됩니다. 이 경우 로드 밸런서에 대한 응답을 다시 허용하기 위해 정적 경로가 필요합니다. 이 문서에서는 Azure Load Balancer가 Palo Alto 인스턴스가 정상인지 확인하기 위해 연결할 수 있도록 Trust 인터페이스에서 SSH를 엄격하게 구성합니다.
인터페이스에 대한 Palo Alto SSH 서비스 구성
먼저 인터페이스 관리 프로필을 생성해야 합니다
네트워크->네트워크 프로파일->Interface Mgmt를 선택합니다.
버튼 왼쪽에서추가를 클릭합니다.
다음 구성을 사용합니다
이름:SSH-MP
관리 서비스:SSH
허용된 IP 주소:168.63.129.16/32
확인을클릭합니다.
다음으로 Trust 인터페이스에 프로필을 할당해야 합니다
네트워크선택 ->인터페이스->ethernet1/2에 대한 링크 선택
고급탭을 선택합니다.
관리 프로필을SSH-MP로 설정합니다.
확인을클릭합니다.
다음으로 Untrust 인터페이스에 프로필을 할당해야 합니다
네트워크선택 ->인터페이스->ethernet1/1에 대한 링크 선택
고급탭을 선택합니다.
관리 프로필을SSH-MP로 설정합니다.
확인을클릭합니다.
신뢰할 수 없는 인터페이스에서 Azure Load Balancer 상태 프로브에 대한 정적 경로 만들기Create a static route for the Azure Load Balancer Health Probes on the Untrust Interface
다음으로, 0.0.0.0/0 규칙으로 인해 상태 프로브가 Untrust 인터페이스에서 빠져나가도록 지시해야 합니다.
네트워크->가상 라우터->Untrust-VR을 선택합니다.
고정 경로선택 ->IPv4->추가
다음 구성을 사용합니다
이름:AzureLBHealthProbe
대상:168.63.129.16/32
인터페이스:이더넷 1/1
다음 홉:IP 주소
IP 주소:Trust 인터페이스가 배포된 서브넷의 기본 게이트웨이의 IP 주소를 사용합니다.
참고: 이를 찾으려면 Azure Portal(portal.azure.com)로 이동하여모든 서비스->가상 네트워크->가상 네트워크->서브넷을선택하고 신뢰 인터페이스가 있는 서브넷의 첫 번째 IP 주소를 사용합니다. 예를 들어 서브넷의 주소 범위가 10.5.15.0/24인 경우 10.5.15.1을 IP 주소로 사용합니다. 서브넷이 10.5.15.128/25 인 경우 129 10.5.15.129를 IP 주소로 사용합니다.
확인을클릭합니다.
트러스트 인터페이스에서 Azure Load Balancer 상태 프로브에 대한 고정 경로 만들기Create a static route for the Azure Load Balancer Health Probes on the trust interface
다음으로, 0.0.0.0/0 규칙으로 인해 상태 프로브가 Trust 인터페이스에서 벗어나도록 지시해야 합니다.
IP 주소:Trust 인터페이스가 배포된 서브넷의 기본 게이트웨이의 IP 주소를 사용합니다.
참고: 이를 찾으려면 Azure Portal(portal.azure.com)로 이동하여모든 서비스->가상 네트워크->가상 네트워크->서브넷을선택하고 신뢰 인터페이스가 있는 서브넷의 첫 번째 IP 주소를 사용합니다. 예를 들어 서브넷의 주소 범위가 10.5.15.0/24인 경우 10.5.15.1을 IP 주소로 사용합니다. 서브넷이 10.5.15.128/25 인 경우 129 10.5.15.129를 IP 주소로 사용합니다.
확인을클릭합니다.
오른쪽 상단에서커밋을 클릭합니다.
인터넷으로 향하는 내부 트래픽에 대한 NAT 규칙 만들기
Untrust 인터페이스의 주소를 통해 인터넷으로 향하는 모든 이그레스 트래픽을 NAT해야 하므로 인터넷의 반환 트래픽은 디바이스의 Untrust 인터페이스를 통해 다시 들어옵니다.
Policies(정책)- >NAT로 이동합니다.
Add(추가)를 클릭합니다.
일반탭에서 다음 구성을 사용합니다
이름:UntrustToInternet
설명:인터넷으로 향하는 모든 신뢰할 수 있는 트래픽을 신뢰할 수 없는 인터페이스로 NAT하는 규칙
Original Packet(원본 패킷) 탭에서 다음 구성을 사용합니다
Source Zone(소스 영역):Add(추가)를 클릭하고Trust(신뢰)를 선택합니다.
대상 영역:신뢰할 수 없음
대상 인터페이스:이더넷 1/1
서비스:모두확인
Source Address(소스 주소):Add(추가)를 클릭하고Trust zone의 Internal Address(내부 주소) 공간을 사용합니다.
대상 주소:모두선택
Translated Packet(변환된패킷) 탭에서 다음 구성을 사용합니다
변환 유형:동적 IP 및 포트
주소 유형:인터페이스 주소
인터페이스:이더넷 1/1
IP 주소:없음
대상 주소 변환 변환 유형:없음
확인을클릭합니다.
오른쪽 상단에서커밋을클릭합니다.
Palo Alto 어플라이언스 업데이트
기본적으로 Palo Alto는 8.0.X 시리즈에 8.0.0을 배포하고 8.1.X 시리즈에 8.1.0을 배포합니다. 이 경우 Palo Alto는 지원 사례를 지원하기 전에 어플라이언스를 해당 시리즈의 최신 버전으로 업그레이드할 것을 강력히 권장합니다.
이렇게 하려면Device->Dynamic Updates로 이동하여 왼쪽 하단의Check Now를 클릭하고 사용 가능한 업데이트 목록에서 최신 빌드를다운로드>.
참고: 업데이트 프로세스를 수행하려면 장치를 재부팅해야 하며 20분 정도 걸릴 수 있습니다.
요약
이 시점에서 작동하는 스케일 아웃 Palo Alto 배포가 있어야 합니다. 모든 것이 순조롭게 진행되었다면 관리 인터페이스에서 공용 IP를 제거하거나 최소한 원래 있는 단일 공용 IP 주소로 범위를 지정하는 것이 좋습니다. 여기로 이동하여 공용 IP 주소를 찾을 수 있습니다https://jackstromberg.com/whats-my-ip-address/
Azure 프라이빗 DNS는 가상 네트워크에 안정적이고 안전한 DNS 서비스를 제공합니다. Azure Private DNS는 사용자 지정 DNS 솔루션을 구성할 필요 없이 가상 네트워크의 도메인 이름을 관리하고 확인합니다. 프라이빗 DNS 영역을 사용하면 배포 중에 Azure에서 제공한 이름 대신 고유한 사용자 지정 도메인 이름을 사용할 수 있습니다. 사용자 지정 도메인 이름을 사용하면 조직의 요구 사항에 가장 적합하도록 가상 네트워크 아키텍처를 조정할 수 있습니다. 가상 네트워크와 연결된 가상 네트워크 내에서 VM(가상 머신)에 대한 이름을 확인할 수 있게 해줍니다. 또한 분할-수평 보기를 사용해 영역을 구성할 수도 있습니다. 그러면 프라이빗 DNS 영역과 공용 DNS 영역이 이름을 공유할 수 있습니다.
가상 네트워크에서 프라이빗 DNS 영역의 레코드를 확인하려면 가상 네트워크를 해당 영역과 연결해야 합니다. 연결된 가상 네트워크는 전체 액세스 권한을 가지며 프라이빗 영역에 게시된 모든 DNS 레코드를 확인할 수 있습니다.가상 네트워크 링크에 대한자동 등록을 사용하도록 설정할 수도 있습니다. 가상 네트워크 연결에 대한 자동 등록을 사용하도록 설정하면 해당 가상 네트워크의 가상 머신에 대한 DNS 레코드가 프라이빗 영역에 등록됩니다. 자동 등록을 사용할 수 있게 되면 Azure DNS는 가상 머신이 생성되거나, 해당 IP 주소를 변경하거나, 삭제될 때마다 영역 레코드를 업데이트합니다.
참고
개인 DNS 영역에 .local도메인을사용하지 않는 것이 좋습니다. 일부 운영 체제는 이를 지원하지 않습니다.
프라이빗 영역 복원력
프라이빗 DNS 영역을 만들 때 Azure는 영역 데이터를 전역 리소스로 저장합니다. 즉 프라이빗 영역은 단일 VNet 또는 지역에 종속되지 않습니다. 동일한 프라이빗 영역을 다른 지역의 여러 VNet에 연결할 수 있습니다. 하나의 VNet에서 서비스가 중단된 경우 프라이빗 영역을 계속 사용할 수 있습니다. 자세한 내용은Azure 프라이빗 DNS 영역 복원력을 참조하세요.
이점
Azure 프라이빗 DNS는 다음과 같은 이점을 누릴 수 있습니다.
사용자 지정 DNS 솔루션이 필요 없음. 이전에는 많은 고객이 가상 네트워크에서 DNS 영역을 관리하기 위해 사용자 지정 DNS 솔루션을 만들었습니다. 이제 기본 Azure 인프라를 사용하여 DNS 영역을 관리할 수 있으므로 사용자 지정 DNS 솔루션을 만들고 관리해야 하는 부담이 사라졌습니다.
모든 공용 DNS 레코드 형식을 사용합니다.Azure DNS는 A, AAAA, CNAME, MX, PTR, SOA, SRV 및 TXT 레코드를 지원합니다.
자동 호스트 레코드 관리.Azure는 사용자 지정 DNS 레코드를 호스팅할 뿐 아니라 VM의 호스트 이름 레코드를 지정된 가상 네트워크에 자동으로 보존합니다. 이 시나리오에서는 사용자 지정 DNS 솔루션을 만들거나 애플리케이션을 수정할 필요 없이 사용하는 도메인 이름을 최적화할 수 있습니다.
가상 네트워크 간의 호스트 이름 확인.Azure에서 제공하는 호스트 이름과는 달리, 프라이빗 DNS 영역은 가상 네트워크 간에 공유할 수 있습니다. 이 기능은 가상 네트워크 피어링 같은 교차 네트워크 및 서비스 검색 시나리오를 단순화합니다.
친숙한 도구 및 사용자 환경. 이 서비스는 학습 곡선을 단축할 수 있도록 잘 설정된 Azure DNS 도구(Azure Portal, Azure PowerShell, Azure CLI, Azure Resource Manager 템플릿, REST API)를 사용합니다.
수평 분할 DNS 지원.Azure DNS를 사용하면 이름이 같고 가상 네트워크 내 그리고 공용 인터넷의 다른 답변을 확인하는 영역을 만들 수 있습니다. 분할 수평 DNS에 대한 일반적인 시나리오는 가상 네트워크 내에서 사용할 수 있는 전용 서비스 버전을 제공하는 것입니다.
모든 Azure 지역에서 사용 가능. Azure DNS 프라이빗 영역 기능은 Azure 퍼블릭 클라우드의 모든 Azure 지역에서 사용할 수 있습니다.
기능
Azure 프라이빗 DNS는 다음과 같은 기능을 제공합니다.
자동 등록이 사용 설정된 프라이빗 영역에 연결된 가상 네트워크에서 가상 머신 자동 등록. 가상 머신이 개인 IP 주소를 가리키는 A 레코드로 프라이빗 영역에 등록됩니다. 자동 등록이 사용 설정된 가상 네트워크 연결에서 가상 머신이 삭제되면 Azure DNS는 연결된 프라이빗 영역에서 해당 DNS 레코드도 자동으로 제거합니다.
프라이빗 영역에 연결된 가상 네트워크 전체에서 정방향 DNS 확인이 지원됩니다. 가상 네트워크 간 DNS 확인의 경우 가상 네트워크가 서로 연결되는 명시적 종속성은 없습니다. 그러나 다른 시나리오(예: HTTP 트래픽)를 위해 가상 네트워크를 피어링할 수도 있습니다.
DNS 역방향 조회는 가상 네트워크 범위 내에서 지원됩니다. 프라이빗 영역에 연결된 개인 IP에 대한 역방향 DNS 조회에서는 호스트/레코드 이름과 영역 이름이 접미사로 포함된 FQDN이 반환됩니다.
기타 고려 사항
Azure 프라이빗 DNS의 제한 사항은 다음과 같습니다.
VM DNS 레코드의 자동 등록이 활성화된 경우 특정 가상 네트워크를 하나의 프라이빗 영역에만 연결할 수 있습니다. 그러나 단일 DNS 영역에 여러 가상 네트워크를 연결할 수 있습니다.
역방향 DNS는 연결된 가상 네트워크의 개인 IP 공간에 대해서만 작동합니다.
연결된 가상 네트워크의 개인 IP 주소에 대한 역방향 DNS는 가상 머신의 기본 접미사로internal.cloudapp.net을 반환합니다. 자동 등록이 사용하도록 설정된 프라이빗 영역에 연결된 가상 네트워크의 경우 개인 IP 주소에 대한 역방향 DNS는 두 개의 FQDN을 반환합니다. 하나는 기본적으로 접미사가internal.cloudapp.net이고 다른 하나는 프라이빗 영역 접미사가 있습니다.
Azure DNS Private Resolver는 VM 기반 DNS 서버를 배포하지 않고 온-프레미스 환경에서 Azure DNS 프라이빗 영역을 쿼리하거나 그 반대로 쿼리할 수 있는 새로운 서비스입니다.
작동 방식
Azure DNS Private Resolver에는Azure Virtual Network가 필요합니다. 가상 네트워크 내에서 Azure DNS Private Resolver를 만들면 DNS 쿼리의 대상으로 사용할 수 있는 하나 이상의인바운드 엔드포인트가 설정됩니다. 확인자의아웃바운드 엔드포인트는 구성하는DNS 전달 규칙 집합을 기반으로 하여 DNS 쿼리를 처리합니다. 규칙 집합에 연결된 네트워크에서 시작된 DNS 쿼리는 다른 DNS 서버에 보낼 수 있습니다.
Azure DNS Private Resolver를 사용하기 위해 VM(가상 머신)의 DNS 클라이언트 설정을 변경할 필요가 없습니다.
Azure DNS Private Resolver를 사용할 때의 DNS 쿼리 프로세스는 다음과 같이 요약됩니다.
가상 네트워크의 클라이언트에서 DNS 쿼리를 실행합니다.
이 가상 네트워크에 대한 DNS 서버가사용자 지정되면 쿼리를 지정된 IP 주소로 전달합니다.
기본(Azure 제공) DNS 서버가 가상 네트워크에 구성되어 있고동일한 가상 네트워크에 연결된 프라이빗 DNS 영역이 있는 경우 이러한 영역을 참조합니다.
인바운드 엔드포인트를 사용하면 프라이빗 가상 네트워크 주소 공간의 일부인 IP 주소를 통해 온-프레미스 또는 다른 프라이빗 위치에서 이름을 확인할 수 있습니다. 온-프레미스에서 Azure 프라이빗 DNS 영역을 확인하려면 인바운드 엔드포인트의 IP 주소를 온-프레미스 DNS 조건부 전달자에 입력합니다. 온-프레미스 DNS 조건부 전달자는 가상 네트워크에 대한 네트워크 연결이 있어야 합니다.
인바운드 엔드포인트에는 프로비저닝된 VNet의 서브넷이 필요합니다. 서브넷은Microsoft.Network/dnsResolvers에만 위임할 수 있으며 다른 서비스에는 사용할 수 없습니다. 인바운드 엔드포인트에서 받은 DNS 쿼리는 Azure로 들어갑니다. 자동 등록 또는 Private Link 사용 서비스를 사용하는 VM을 포함하여 프라이빗 DNS 영역이 있는 시나리오에서 이름을 확인할 수 있습니다.
아웃바운드 엔드포인트를 사용하면 이름 확인을 조건부로 Azure에서 온-프레미스, 다른 클라우드 공급자 또는 외부 DNS 서버로 전달할 수 있습니다. 이 엔드포인트에는 해당 서브넷에서 실행되는 다른 서비스가 없고Microsoft.Network/dnsResolvers에만 위임할 수 있는 프로비전된 VNet의 전용 서브넷이 필요합니다. 아웃바운드 엔드포인트에 보낸 DNS 쿼리는 Azure에서 나갑니다.
가상 네트워크 링크
가상 네트워크 링크는 DNS 전달 규칙 집합을 사용하여 아웃바운드 엔드포인트에 연결된 가상 네트워크에 대한 이름 확인을 사용하도록 설정합니다. 1:1 관계입니다.
DNS 전달 규칙 집합
DNS 전달 규칙 집합은 하나 이상의 아웃바운드 엔드포인트에 적용하거나 하나 이상의 가상 네트워크에 연결할 수 있는 DNS 전달 규칙(최대 1000개) 그룹입니다. 1:N 관계입니다. 규칙 집합은 특정 아웃바운드 엔드포인트와 연결됩니다. 자세한 내용은DNS 전달 규칙 집합을 참조하세요.
DNS 전달 규칙
DNS 전달 규칙에는 조건부 전달에 사용할 하나 이상의 대상 DNS 서버가 포함되며 다음으로 표시됩니다.
도메인 이름
대상 IP 주소
대상 포트 및 프로토콜(UDP 또는 TCP)
제한 사항
현재 Azure DNS Private Resolver에 적용되는 제한은 다음과 같습니다.
DNS 프라이빗 확인자1
테이블 확장
리소스제한
구독당 DNS 프라이빗 확인자
15
DNS 프라이빗 확인자당 인바운드 엔드포인트
5
DNS 프라이빗 확인자당 아웃바운드 엔드포인트
5
DNS 전달 규칙 집합당 전달 규칙
1000
DNS 전달 규칙 집합당 가상 네트워크 링크
500
DNS 전달 규칙 집합당 아웃바운드 엔드포인트
2
아웃바운드 엔드포인트당 DNS 전달 규칙 집합
2
전달 규칙당 대상 DNS 서버
6
엔드포인트당 QPS
10,000
1포털이 업데이트될 때까지 Azure Portal에서 다른 한도가 적용될 수 있습니다. PowerShell을 사용하여 가장 최근 한도까지 요소를 프로비전합니다.
가상 네트워크 제한 사항
가상 네트워크와 관련된 제한 사항은 다음과 같습니다.
암호화가 사용하도록 설정된 VNet은 Azure DNS Private Resolver를 지원하지 않습니다.
DNS 확인자는 DNS 확인자와 동일한 지역의 가상 네트워크만 참조할 수 있습니다.
가상 네트워크는 여러 DNS 확인자 간에 공유할 수 없습니다. 단일 가상 네트워크는 단일 DNS 확인자에서만 참조할 수 있습니다.
서브넷 제한 사항
DNS 확인자에 사용되는 서브넷에 대한 제한 사항은 다음과 같습니다.
서브넷은 최소 /28 주소 공간 또는 최대 /24 주소 공간이어야 합니다. /28 서브넷은 현재 엔드포인트 한도를 수용하기에 충분합니다. /27에서 /24까지의 서브넷 크기는 이러한 한도가 변경되는 경우 유연성을 제공할 수 있습니다.
서브넷은 여러 DNS 확인자 엔드포인트 간에 공유할 수 없습니다. 단일 서브넷은 단일 DNS 확인자 엔드포인트에서만 사용할 수 있습니다.
DNS 확인자 인바운드 엔드포인트에 대한 모든 IP 구성은 동일한 서브넷을 참조해야 합니다. 단일 DNS 확인자 인바운드 엔드포인트에 대한 IP 구성은 여러 서브넷을 포함할 수 없습니다.
DNS 확인자 인바운드 엔드포인트에 사용되는 서브넷은 부모 DNS 확인자에서 참조하는 가상 네트워크 내에 있어야 합니다.
서브넷은Microsoft.Network/dnsResolvers에만 위임할 수 있으며 다른 서비스에는 사용할 수 없습니다.
아웃바운드 엔드포인트 제한 사항
아웃바운드 엔드포인트에 대한 제한 사항은 다음과 같습니다.
DNS 전달 규칙 집합과 그 아래의 가상 네트워크 링크가 삭제되지 않으면 아웃바운드 엔드포인트를 삭제할 수 없습니다.
규칙 집합 제한
규칙 집합은 최대 1000개의 규칙을 가질 수 있습니다.
규칙 집합의 교차 테넌트 연결은 지원되지 않습니다.
기타 제한 사항
IPv6 사용 서브넷은 지원되지 않습니다.
DNS Private Resolver는 Azure ExpressRoute FastPath를 지원하지 않습니다.