728x90

이전 블로그 게시물( 1부  2부 )에서는 Azure VMware Solution(AVS) 배포를 포함한 허브 앤 스포크 토폴로지의 기본 구성 요소 배포에 대해 다루었습니다.

첫 번째 게시물에서는 허브 앤 스포크 환경의 모형을 구축하고 구성했습니다. 두 번째 게시물에서는 AVS 환경을 AVS 트랜짓 가상 네트워크(vNet) 에 연결 하고 AVS 워크로드에 기본 경로를 알렸습니다. 이 기본 경로는 아직 저희 어플라이언스를 사용하지 않고 , 인터넷에 연결하기 위해 hub-vna배포된 어플라이언스를 사용했습니다.avs-transit-vnet

avs-transit-vnet이 단계에서는 전체 h&s 토폴로지를 통합 하고 hub-nvaVM을 사용하여 다음을 포함한 모든 필수 필터링을 관리합니다.

  • 스포크 투 스포크
  • 스포크 투 온프레미스(또는 그 반대)
  • 인터넷 브레이크아웃

AVS가 스포크처럼 동작하기를 원하므로 이 규칙을 AVS에도 적용할 것입니다 avs-transit-vnet.

이 블로그 게시물에 설명된 구성 요소와 네트워크 설계는 데모 목적으로만 제공됩니다. 프로덕션 환경에서 사용하기 위한 것이 아니며 Azure 모범 사례를 나타내는 것도 아닙니다. 모의 및 학습 목적으로만 있는 그대로 제공됩니다.

7단계 – AVS에 허브 기본 경로 광고

먼저, 에 적용되는 새 UDR에 몇 가지 경로를 추가해야 합니다 nva-subnet. 추가된 경로는 hub-nva를 통해 AVS 관련 트래픽을 전파할 수 있도록 합니다 avs-bgp-vm. 랩 설정에서는 두 개의 접두사에 대해 이 작업을 수행합니다.

  • AVS 관리:10.100.100.0/22
  • AVS 작업 부하:10.100.110.0/24

또한 어플라이언스 를 통해 기본 경로를 추가하려면 bgp-subnet내부 에 적용된 UDR을 업데이트해야 합니다 .avs-transit-vnethub-nva

AVS에 허브 기본 경로를 광고합니다.

경로 분석(s7)

NIC 에 적용 가능한 새로운 경로를 확인할 수 있습니다 hub-nva.

az network nic show-effective-route-table \
  --ids /subscriptions/<sub-id>/resourceGroups/nva-testing-RG/providers/Microsoft.Network/networkInterfaces/hub-nva-nic \
  -o table
Source    State    Address Prefix    Next Hop Type     Next Hop IP
--------  -------  ----------------  ----------------  -------------
Default   Active   10.100.200.0/24   VnetLocal
Default   Active   10.100.202.0/24   VNetPeering
Default   Active   10.100.201.0/24   VNetPeering
Default   Active   10.100.203.0/24   VNetPeering
Default   Active   0.0.0.0/0         Internet
...
User      Active   10.100.110.0/24   VirtualAppliance  10.100.203.68 # <--- AVS workload
User      Active   10.100.100.0/22   VirtualAppliance  10.100.203.68 # <--- AVS management
 
세게 때리다

AVS 이동 중 UDRbgp-subnet

스포크-투-스포크와 인터넷 브레이크아웃에 의존하고자 하므로 , 내부 에 적용된 UDR을 변경하여 통과를 보장 hub-nva해야 합니다 .bgp-subnetavs-transit-vnethub-nva

AVS 전송 bgp-subnet의 UDR

그리고 효과적인 경로에 대한 결과는 다음과 같습니다.

az network nic show-effective-route-table \
  --ids /subscriptions/<sub-id>/resourceGroups/nva-testing-RG/providers/Microsoft.Network/networkInterfaces/avs-bgp-nic \
  -o table
Source                 State    Address Prefix     Next Hop Type          Next Hop IP
---------------------  -------  -----------------  ---------------------  -------------
Default                Active   10.100.203.0/24    VnetLocal
Default                Active   10.100.200.0/24    VNetPeering
VirtualNetworkGateway  Active   10.100.100.64/26   VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.109.0/24    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.101.0/25    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.100.0/26    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.110.0/24    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.111.0/24    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.113.0/24    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.114.0/24    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.100.192/32  VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.103.0/26    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.101.128/25  VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Active   10.100.102.0/25    VirtualNetworkGateway  10.24.132.60
VirtualNetworkGateway  Invalid  0.0.0.0/0          VirtualNetworkGateway  10.100.203.68
User                   Active   0.0.0.0/0          VirtualAppliance       10.100.200.68 # <--- Default route via hub-nva
 
세게 때리다

마지막 줄에서 기본 경로가 이제 hub-nvaVM( 10.100.200.68)을 통해 이동하고 있음을 알 수 있습니다.

테스트(s7)

이 단계에서 AVS를 오가는 트래픽은 와 hub-nva를 통과합니다 avs-bgp-vm. 각 라우팅 어플라이언스를 스누핑하거나 traceroute스포크 VM으로의 의 결과를 확인하여 이를 쉽게 확인할 수 있습니다.

ubuntu@avs-vm-100-10:~$ mtr 10.100.201.4 --report
HOST: avs-vm-100-10              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%    10    0.2   0.2   0.1   0.2   0.0
  2.|-- 100.64.176.0               0.0%    10    0.2   0.2   0.2   0.3   0.0
  3.|-- 100.72.18.17               0.0%    10    0.8   0.8   0.7   1.1   0.1
  4.|-- 10.100.100.237             0.0%    10    1.1   1.2   1.1   1.4   0.1
  5.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  6.|-- 10.100.203.68              0.0%    10    3.1   3.1   2.7   5.6   0.9 # <--- avs-bgp-vm
  7.|-- 10.100.200.68              0.0%    10    4.5   4.8   3.4   7.6   1.6 # <--- hub-nva
  8.|-- 10.100.201.4               0.0%    10    4.1   6.6   4.1   9.3   1.8 # <--- spoke-vm
 
세게 때리다

여기서 우리는 홉 6  7avs-bgp-vm 에서 ( 10.100.203.68)와 hub-nva( ) 의 IP 주소를 볼 수 있습니다 10.100.200.68. 인터넷 대상에서도 동일한 동작을 재현할 수 있습니다.

스포크 VM과 AVS 기반 VM 간 네트워크 흐름 개요

안타깝게도 온프레미스(VPN) 리소스에서는 두 avs-transit-vnet리소스 모두 사용할 수 없습니다. 해당 대상에 대해 광고된 경로가 없기 때문입니다.

8단계 – 온프레미스의 AVS

이전 단계에서 발견한 대로 온프레미스 리소스에는 두 AVS 리소스 중 어느 하나와도 통신하기 위해 광고된 경로가 없습니다 avs-transit-vnet.

현재 단계에서는 다음을 추가하여 이러한 부족함을 완화할 것입니다.

  1. UDR의 새로운 경로 avs-transit-vnet와 AVS 리소스 GatewaySubnet.
    • 랩 설정에서 경로를 단순화하기 위해 Azure 리소스(AVS 리소스 포함)의 글로벌 접두사를 단일 경로로 광고합니다.10.100.0.0/16
    • 이 UDR은 VPN 게이트웨이에서 리소스에 대한 네트워크 경로를 찾는 데 사용됩니다.
  2. VPN 구성에서 사용자 지정 경로를 사용하면 VPN 클라이언트가 대상 리소스에 대한 네트워크 트래픽이 VPN을 통과해야 함을 지정할 수 있습니다.
    • UDR의 경우 모든 리소스에 대한 글로벌 접두사를 사용하여 설정에서 사용자 지정 경로 알림을 간소화합니다.10.100.0.0/16
온프레미스에서 AVS로의 연결 구성

테스트(s8)

VPN 클라이언트에서 10.100.0.0/16VPN 경로에 사용자 지정 경로( )가 추가된 것을 쉽게 볼 수 있습니다.

AVS 기반 VM을 사용하여 P2S VPN 클라이언트의 연결을 확인하면 다음과 같습니다.

ubuntu@vpn-client:~$ ping 10.100.110.10 -c3
# output
PING 10.100.110.10 (10.100.110.10) 56(84) bytes of data.
64 bytes from 10.100.110.10: icmp_seq=1 ttl=57 time=52.3 ms
64 bytes from 10.100.110.10: icmp_seq=2 ttl=57 time=30.1 ms
64 bytes from 10.100.110.10: icmp_seq=3 ttl=57 time=52.9 ms
--- 10.100.110.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 30.097/45.119/52.947/10.625 ms
 
세게 때리다

경로 분석(s8)

P2S VN 클라이언트와 AVS 기반 VM 간 네트워크 흐름 개요

 온프레미스 에서 AVS 로의 교환에서는 다음 라우팅 구성 요소가 사용됩니다.

  1. VPN 클라이언트 측에서 사용자 지정 경로는 Azure 글로벌 접두사 및/또는 AVS 리소스와 일치하는 리소스에 대한 경로를 광고합니다.
  2. VPN 게이트웨이는 연결된 UDR을hub-nva 사용하여 다음 홉으로 사용합니다 .
  3. AVS 기반 리소스에 대한 경로를 찾기 위해 UDR hub-nva을 다음 홉으로 사용합니다 .avs-bgp-vm
  4. vNET 피어링은 리소스 간 통신을 가능하게 합니다 hub-vnet.avs-transit-vnet
  5. 에서 avs-transit-vnetAVS 리소스에 대한 경로는 AVS에 연결된 Express Route Gateway 에서 직접 광고되고 AVS BGP 경로를 전파합니다.

반대 방향으로:

  1. Azure Route 서버avs-gbp-vm  조합하면 AVS 기반 워크로드에 대한 기본( ) 경로가 제공됩니다 .0.0.0.0/0
    • 6a) 기본 경로는 BGP를 통해 발표됩니다.avs-transit-vnet
    • 6b) Azure Route Server는 Azure SDN에서 경로 광고를 전파하고 경로는 Express Route 회로를 통해 AVS 워크로드에 광고될 수 있습니다.
  2. vNET 피어링은 리소스 간 통신을 가능하게 합니다 hub-vnet.avs-transit-vnet
  3. 에서 hub-vnetVPN 기반 워크로드로의 경로는 VPN 게이트웨이 에서 직접 광고됩니다 .

9단계 – 허브 vNet의 Azure 서버

hub-nvaBGP 기능과 Azure Route Server를 함께 사용하면 Azure에서 사용되는 네트워크 접두사를 VPN 가상 네트워크 게이트웨이 에 광고하고 . 의 경로 테이블을 유지 관리하지 않아도 됩니다 GatewaySubnet.

이전 설정과 비교해서 다음이 제거되었습니다 .

  • VPN 구성의 사용자 지정 경로
  • GatewaySubnet 에 연결된 UDR

그리고 우리는 이렇게 덧붙였습니다 .

  • 새로운 Azure Route 서버
  • hub-nva(랩의 글로벌 Azure 접두사를 사용했지만 이는 더 구체적인 공지일 수 있음) 에서 광고된 BGP 경로
  • Azure Route Serverhub-nva 간의 BGP 피어링
허브 vNet의 Azure 서버

경로 분석(s9)

Azure Route Server 에서 BGP 피어가 예상 경로를 주입하고 있는 것을 확인할 수 있습니다.

$routes = @{
    RouteServerName = 'HubRouterServer'
    ResourceGroupName = 'nva-testing-RG'
    PeerName = 'hub-rs-bgp-connection'
}
Get-AzRouteServerPeerLearnedRoute @routes | ft
# output
LocalAddress  Network       NextHop       SourcePeer    Origin AsPath Weight
------------  -------       -------       ----------    ------ ------ ------
10.100.200.36 10.100.0.0/16 10.100.200.68 10.100.200.68 EBgp   65001  32768
10.100.200.37 10.100.0.0/16 10.100.200.68 10.100.200.68 EBgp   65001  32768
 
파워셸

VPN 게이트웨이 에서도 광고된 경로를 볼 수 있습니다.

az network vnet-gateway list-learned-routes -n hub-vpn-gateway -g nva-testing-RG -o table
# output
Network            NextHop        Origin    SourcePeer     AsPath    Weight
-----------------  -------------  --------  -------------  --------  --------
10.100.200.0/24                   Network   10.100.200.5             32768
10.100.201.0/24                   Network   10.100.200.5             32768
10.100.202.0/24                   Network   10.100.200.5             32768
10.100.204.0/25                   Network   10.100.200.5             32768
10.100.204.128/25  10.100.200.4   IBgp      10.100.200.4             32768
10.100.204.128/25  10.100.200.4   IBgp      10.100.200.36            32768
10.100.204.128/25  10.100.200.4   IBgp      10.100.200.37            32768
10.100.0.0/16      10.100.200.68  IBgp      10.100.200.36  65001     32768 # <--- BGP route from hub-nva
10.100.0.0/16      10.100.200.68  IBgp      10.100.200.37  65001     32768 # <--- BGP route from hub-nva
10.100.200.0/24                   Network   10.100.200.4             32768
10.100.201.0/24                   Network   10.100.200.4             32768
10.100.202.0/24                   Network   10.100.200.4             32768
10.100.204.128/25                 Network   10.100.200.4             32768
10.100.204.0/25    10.100.200.5   IBgp      10.100.200.5             32768
10.100.204.0/25    10.100.200.5   IBgp      10.100.200.36            32768
10.100.204.0/25    10.100.200.5   IBgp      10.100.200.37            32768
10.100.0.0/16      10.100.200.68  IBgp      10.100.200.36  65001     32768 # <--- BGP route from hub-nva
10.100.0.0/16      10.100.200.68  IBgp      10.100.200.37  65001     32768 # <--- BGP route from hub-nva
 
세게 때리다

VPN 클라이언트에서도 vNET 피어링 간의 경로를 사용할 수 있습니다.

VPN 클라이언트의 경로

테스트(s9)

VPN 클라이언트에서 AVS 기반 VM에 도달하면 토폴로지의 구성 요소를 볼 수 있습니다.

ubuntu@vpn-client:~$ mtr 10.100.110.10 -r
# output
Start: 2023-02-09T17:21:35+0100
HOST: vpn-client                  Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- vpn-client                 0.0%    10    0.5   0.5   0.3   1.0   0.3
  2.|-- 10.100.200.68              0.0%    10   21.0  53.3  20.6 307.4  89.7
  3.|-- 10.100.203.68              0.0%    10   25.4  44.5  21.6 207.4  57.8
  4.|-- 10.100.203.4               0.0%    10   36.0  42.4  21.9 120.7  29.9
  5.|-- 10.100.100.233             0.0%    10   54.0  32.0  23.8  59.9  13.5
  6.|-- 10.100.100.65              0.0%    10   49.3  39.8  24.6  55.8  12.5
  7.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  8.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  9.|-- 10.100.110.10              0.0%    10   60.5  37.4  22.7  64.9  18.2
 
세게 때리다

mtr다음 다이어그램에서 추적 의 홉 번호를 일치시켰습니다 (홉 세트는 AVS 네트워크 스택의 일부이며 여기에 문서화되지 않음을 고려):

mtr 네트워크 도구 추적에 표시된 라우팅 홉 다이어그램

Azure Route Server를 통한 AVS 연결에 대한 추가 정보

Azure Route Server에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

3부 – 결론

이 시리즈의 마지막 3개 게시물에서는 Azure VMware 솔루션 배포에 허브 및 스포크 토폴로지를 도입하는 맥락에서 Azure 네트워킹과 관련된 많은 주제를 다루었습니다 .

Azure 제품(예: Azure Route Server)의 성능과 기능(예: UDR의 경로 전파)을 보여주기 위해 이 모형 설정을 단계별로 만들었습니다.

마지막 단계에서는 hub-nvaAVS 환경, 스포크 vNet 및 온프레미스 리소스에서 트래픽을 라우팅하고 필터링할 수 있는 중앙 VM을 갖춘 작업 설정이 있습니다.

참고 : 이 게시물에 설명된 설정은 구성 요소의 고가용성 및 중복성 부족으로 인해 프로덕션 환경에서 사용하기에 적합하지 않습니다. Azure 네트워킹 제품과 기능의 성능을 보여주기 위한 모형일 뿐입니다.

이 시리즈를 즐겁게 읽으시고 Azure 네트워킹에 대해 새로운 것을 배우셨기를 바랍니다. 앞으로 이 시리즈를 확장하여 다음과 같은 새로운 주제와 사용 사례를 담은 게시물이 더 많이 올라올 예정입니다.

  • 구성 요소의 높은 가용성 및 중복성
  • hub-nvaBGP 를 사용한 동적 라우팅avs-spoke-nva
728x90
728x90

이전 블로그 게시물 에서는 허브 앤 스포크 토폴로지에서 Azure VMware Solution(AVS) 환경의 모의 구축을 시작하기 위한 기본 환경을 배포하는 방법을 살펴보았습니다. 마지막 섹션 에서는 VPN과 스포크 VM 간의 트래픽을 조회할 때 매트릭스 결함을 발견했습니다. 이 블로그 게시물에서는 이 문제를 해결하는 방법을 살펴보겠습니다 .

또한 AVS 배포에서 Express Route 회로를 연결하기 위한 AVS 전송 vNet의 첫 번째 구성 요소를 소개하고 VMware 워크로드에 기본 BGP 경로를 주입하는 방법 도 소개합니다 .

이 블로그 게시물에 설명된 구성 요소와 네트워크 설계는 데모 목적으로만 제공됩니다. 프로덕션 환경에서 사용하기 위한 것이 아니며 Azure 모범 사례를 나타내는 것도 아닙니다. 모의 및 학습 목적으로만 있는 그대로 제공됩니다.

실험실 환경과 이미 다룬 3가지 첫 단계에 대한 자세한 내용은 1부를 참조하세요 .

4단계 – GatewaySubnet의 사용자 정의 경로

비대칭 라우팅 문제를 완화하기 위해 GatewaySubnetVPN 클라이언트에서 들어오는 트래픽이 NVA 어플라이언스로 라우팅되도록 사용자 정의 경로를 추가합니다 .

GatewaySubnet의 사용자 정의 경로

사용자 정의 경로(UDR)는 GatewaySubnet아래와 같이 구성됩니다.

  • 10.100.201.0/24(일명 spoke1-vnet)를 통해nva-vm.nic[0].ipaddress
  • 10.100.202.0/24(일명 spoke2-vnet)를 통해nva-vm.nic[0].ipaddress

Azure Portal에서는 다음과 같습니다.

GatewaySubnet의 사용자 정의 경로

물론, 사용된 IP 주소 계획에 따라 여러 경로를 공통 접두사 아래에 단순화하고 그룹화하는 것이 가능합니다.

경로 분석(s4)

이 지점에서 우리는 VPN 클라이언트-스포크와 스포크-VPN 대상지 모두가 hub-nva어플라이언스를 통과하는 것을 볼 수 있습니다.

대칭 트래픽을 통한 경로 분석

예: VPN 클라이언트에서 ping 세션이 진행되는 동안 에코 요청 과 에코 응답이spoke-1-vm 모두 : 를 통해서만 전송되는 것을 볼 수 있습니다 .hub-nva

ubuntu@hub-nva:~$ sudo tcpdump -nni eth0  icmp
# output
IP 10.100.204.2 > 10.100.201.4: ICMP echo request, id 1002, seq 1, length 64
IP 10.100.200.68 > 10.100.201.4: ICMP echo request, id 1002, seq 1, length 64
IP 10.100.201.4 > 10.100.200.68: ICMP echo reply, id 1002, seq 1, length 64
IP 10.100.201.4 > 10.100.204.2: ICMP echo reply, id 1002, seq 1, length 64
 
세게 때리다

이제 모든 네트워크 트래픽이 .를 통과합니다 hub-nva. 즉, 비대칭 라우팅 문제가 해결되었습니다.

Azure UDR에 대한 추가 정보

Azure의 UDR에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

5단계 – AVS 전송 vNet 소개

Azure VMware 솔루션(AVS)은 Express Route 회로 기반 외부 연결을 제공합니다. 이를 위해서는 AVS 환경 외부로 Express Route 회로를 '연결'해야 합니다. 가장 일반적인 방법은 AVS Express Route 회로를 기존 온프레미스 Express Route 회로에 매핑하고 Express Route Global Reach를 통해 두 회로 간의 연결을 제공하는 것 입니다 . 즉, 전이적 연결(transitive connection)을 구현합니다.

하지만 이 설정은 AVS 배포를 허브-스포크 토폴로지의 스포크로 간주할 수 있는 방법을 제공하지 않습니다. AVS와 온프레미스 간의 네트워크 트래픽이 .를 우회하기 때문입니다 hub-nva. 이 문제를 해결하기 위해 AVS 배포에서 Express Route 회로를 연결하고 AVS와 온프레미스 간의 트래픽이 .를 통해 라우팅되도록 트랜짓 vNet을hub-nva 도입합니다 .

여기에서는 avs-transit-vnetAVS 배포에서 Express Route 회로를 착륙시키기 위해 Express Route Gateway가 필요합니다.

AVS 트랜짓 vNet 소개

경로 분석(s5)

vNet 생성이 완료되고 AVS ER 회로 설정이 완료되면 이 단계에서 AVS 기반 VM과 통신할 수 있는 가능성이 있는지 확인하기 위해 효과적인 경로를 살펴볼 수 있습니다.

az network nic show-effective-route-table \
  --ids /subscriptions/<sub-id>/resourceGroups/nva-testing-RG/providers/Microsoft.Network/networkInterfaces/hub-nva-nic \
  -o table
# output
Source                 State    Address Prefix    Next Hop Type          Next Hop IP
---------------------  -------  ----------------  ---------------------  -------------
Default                Active   10.100.200.0/24   VnetLocal
Default                Active   10.100.202.0/24   VNetPeering
Default                Active   10.100.201.0/24   VNetPeering
Default                Active   10.100.203.0/24   VNetPeering
VirtualNetworkGateway  Active   10.100.204.0/24   VirtualNetworkGateway  20.160.147.74
 
세게 때리다

물론, 경로가 없으면 연결도 없습니다.

ubuntu@hub-nva:~$ ping 10.100.100.2 -c3
# output
PING 10.100.100.2 (10.100.100.2) 56(84) bytes of data.
--- 10.100.100.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2029ms
 
세게 때리다

AVS 연결 설정 에 따라 Express Route 연결에서 발표된 경로를 사용하여 인터넷이나 다른 Azure 리소스에 도달하는 경우 발표된 경로가 없기 때문에 AVS 외부 리소스와 통신할 수 없습니다.

AVS 연결에 대한 추가 정보

AVS 연결에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

6단계 – AVS에 기본 경로 광고

현재 단계에서는 AVS에 기본 경로(0.0.0.0/0)를 공지할 예정입니다. 이 블로그 게시물 시리즈의 핵심 주제대로, 단계별로 진행하며 가장 간단한 해결책인 AVS에서 기본 경로 공지부터 시작할 것입니다 avs-transit-vnet. 그리고 허브 앤 스포크 토폴로지의 이전 구성 요소는 일시적으로 무시하겠습니다.

첫째, AVS 트랜짓 토폴로지 에 몇 가지 추가 구성 요소를 추가해야 합니다 .

  • VM avs-bgp-vm에서:
    • BGP 경로 발표 시작
    • AVS에서 들어오는 트래픽을 라우팅합니다.
  • Azure SDN에서 경로 공지를 전파하기 위한 Azure Route Server( ARS )
    • 이 ARS 구성 요소는 가상 네트워크 게이트웨이를avs-bgp-vm 통해 BGP 피어에서 AVS로 들어오는 경로를 제공하고 피어링 됩니다 .
  • . 에서 광고하는 기본 경로를 재정의하는 경로 테이블 ( UDR) avs-bgp-vm입니다. 그렇지 않으면 VM은 자신을 전체 vNET의 기본 경로로 광고하고, VM에서 보낸 트래픽을 포함하여 인터넷으로 향하는 트래픽을 계속 전송합니다 .
AVS에 기본 경로를 광고합니다.

avs-transit-vnet앞서 언급했듯이 이는 첫 번째이자 임시 단계입니다. AVS 배포를 위해 인터넷 연결이 이루어진 이 설정을 검증하면 다음 단계를 이해하고 준비하는 데 도움이 됩니다.

AVS 인터넷 연결 설정

Azure VMware 솔루션은 인터넷 연결을 위한 세 가지 옵션을 제공합니다.

이 블로그 게시물 시리즈에서는 AVS가 Express Route 회로를 통해 발표된 기본 경로에서 인터넷 연결을 받도록 구성되어 있다고 생각해 보겠습니다 .

AVS 인터넷 연결 설정

경로 분석(s6)

새로운 구성 요소와 연결 생성이 완료되면 다음과 같은 효과적인 경로를 살펴보고 결과를 확인할 수 있습니다.

배포된 Azure Route Server 에서 BGP 피어를 볼 수 있습니다.

az network routeserver peering show -g nva-testing-RG \
  -n avs-rs-bgp-connection --routeserver AVSTransitRouterServer \
  -o table
# output
Name                   PeerAsn    PeerIp         ProvisioningState    ResourceGroup
---------------------  ---------  -------------  -------------------  ---------------
avs-rs-bgp-connection  65002      10.100.203.68  Succeeded            nva-testing-RG
 
세게 때리다

그리고 BGP 피어가 광고한 학습된 경로를 확인 해야 합니다 .

az network routeserver peering list-learned-routes \
  -g nva-testing-RG -n avs-rs-bgp-connection \
  --routeserver AVSTransitRouterServer -o table
# output
Issue: no route displayed there!
 
세게 때리다
문제: 경로가 표시되지 않음

명령 list-learned-routes이 예상대로 작동하지 않습니다. 현재 이 문제를 조사 중입니다. 그동안 PowerShell 명령을 사용하여 Get-AzRouteServerPeerLearnedRoute경로를 표시하겠습니다.

PowerShell을 사용하면 광고된 경로가 표시됩니다.

$routes = @{
    RouteServerName = 'AVSTransitRouterServer'
    ResourceGroupName = 'nva-testing-RG'
    PeerName = 'avs-rs-bgp-connection'
}
Get-AzRouteServerPeerLearnedRoute @routes | ft
LocalAddress  Network   NextHop       SourcePeer    Origin AsPath Weight
------------  -------   -------       ----------    ------ ------ ------
10.100.203.36 0.0.0.0/0 10.100.203.68 10.100.203.68 EBgp   65002   32768
10.100.203.37 0.0.0.0/0 10.100.203.68 10.100.203.68 EBgp   65002   32768
 
파워셸

avs-bgp-vm이 (가) 자신을 기본 경로의 다음 홉으로 광고하고 있음 을 알 수 있습니다 . 이는 예상되는 동작입니다.

테스트(s6)

AVS에 호스팅된 VM에서 다음을 통해 인터넷에 접속할 수 있습니다 avs-bgp-vm.

ubuntu@avs-vm-100-10:~$ mtr 1.1.1.1 --report
HOST: avs-vm-100-10                Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%    10    0.1   0.2   0.1   0.2   0.0
  2.|-- 100.64.176.0               0.0%    10    0.2   0.3   0.2   0.3   0.0
  3.|-- 100.72.18.17               0.0%    10    0.9   0.8   0.7   0.9   0.1
  4.|-- 10.100.100.233             0.0%    10    1.0   1.0   0.9   1.1   0.1
  5.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  6.|-- 10.100.203.68              0.0%    10    3.2   4.0   2.6   7.3   2.0 # <--- avs-bgp-vm
  7.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  8.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  9.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 10.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 11.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 12.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 13.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 14.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 15.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 16.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 17.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 18.|-- one.one.one.one            0.0%    10    5.7   4.9   3.9   9.6   1.7
 
세게 때리다

이전 경로 추적 보고서에서는 이 시나리오에서 예상한 대로 라우터나 NVA처럼 작동하는 10.100.203.68IP가 있습니까 ?avs-bgp-vm

하지만 분명히 이는 h&s 토폴로지의 나머지 부분에 대한 표준 스포크 동작과는 다릅니다. 이 단계는 앞으로 필요한 일부 구성 요소를 준비하기 위한 것일 뿐입니다.

Azure Route Server를 통한 AVS 연결에 대한 추가 정보

Azure에서 Azure Route Server를 통한 AVS 연결에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

2부 – 결론

두 번째 부분에서는 VPN Gateway에 적용 가능한 새로운 경로 테이블을 구성하여 비대칭 라우팅 문제를 완화하는 방법을 살펴보았고 , Azure Route Server 의 도움으로 Azure VMware Solution 배포 에 BGP 경로를 광고하기 위한 네트워크 구성 요소를 생성했습니다 .

다음 (그리고 아마도 마지막) 부분에서는 이 AVS 전송 토폴로지를 허브 앤 스포크 토폴로지에서 일반 스포크로 구성하는 방법을 살펴보겠습니다. 또한 Azure Route Server를 활용하여 온프레미스 연결 구성을 간소화하는 방법도 다룹니다 .

728x90
728x90
  • 시나리오 : 최근 계약 중에 한 고객이 기존 랜딩 존에 Azure VMware 솔루션을 배포하고 싶어했습니다. 이 LZ는 이미 여러 Azure 구독에 배포된 여러 스포크 환경을 제공하기 위해 배포되었습니다. 우리가 마주친 과제 중 하나는 고객이 기존 허브 앤 스포크 모델을 사용하고 허브 VNET에서 Azure 방화벽을 사용하여 기본적으로 이 방화벽을 활용하여 아웃바운드 통신을 위해 인터넷에 도달하는 것이었습니다.허브에 있는 Azure Firewall을 사용하려면 직면하게 될 과제는 AVS에 대한 기본 경로를 광고하는 것입니다. (0.0.0.0/0). 이 블로그는 이 특정 사용 사례를 다룹니다.
  • AVS를 배포하는 경우, 이탈/아웃바운드 트래픽을 위한 방화벽을 배포할 수 있는 방법은 여러 가지가 있습니다. 하나는 AVS 내부, 즉 타사 NGFW이거나, 다른 하나는 Azure LZ 외부입니다.
  • 해결책 : AVS는 VNET에 호스팅되지 않고 Azure에 자체 네트워킹 구조가 있습니다. 서브넷에 연결할 때처럼 UDR을 연결할 수 없습니다.
    AVS에는 UDR 개념이 없으므로 인터넷 바운드 트래픽을 Azure Firewall로 강제할 수 없습니다.
    AVS는 BGP를 통해 모든 경로를 동적으로 학습하므로 이러한 경로를 다른 방식으로 AVS에 푸시해야 합니다.
  • 해결책은 허브 VNET에 Azure Route 서버를 두고 ARS와 BGP 피어링을 할 수 있는 NVA를 배포한 다음 NVA가 Azure Firewall을 가리키는 기본 경로를 푸시하는 것입니다.
    이 NVA는 BGP가 가능한 모든 장치가 될 수 있습니다. Cisco, Palo Alto 또는 FortiGate 어플라이언스가 될 수 있습니다.
    고객에게 3P NVA 어플라이언스가 없는 경우 Azure의 Linux VM에 오픈 소스 FRR을 배포할 수 있습니다.

이 아키텍처의 Visio 파일 다운로드

AVS 네트워킹 옵션

타사(3P) NVA 옵션을 살펴보기 전에 AVS와 관련된 여러 네트워킹 시나리오가 문서화된 공식 문서를 공유하고 싶었습니다. 여기에는 Secure Hub를 사용한 vWAN 접근 방식, 기본적으로 Hub의 Azure Firewall이 포함되어 있습니다. 이것을 강조하는 이유는 배포가 그린필드이고 고객이 Azure Firewall로 진행하려는 경우 vWAN을 사용할 수 있고 BGP 피어를 수행하고 기본 경로를 푸시하기 위해 타사(3P) NVA 장치가 필요하지 않기 때문입니다. 이는 쉽게 수행할 수 있습니다.

아래 설명서는 네트워크 설계에 도움이 될 것입니다.
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/azure-vmware/network-hub-spoke

또한 아래 가이드는 전체 네트워크 설계에 도움이 됩니다.
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/azure-vmware/network-design-guide-intro

허브 VNET의 Azure Route Server

저는 먼저 ARS에 대해 설명하고 AVS를 계획할 때 허브에 ARS가 필요한 이유에 대해 설명하려고 했습니다.

Hub VNET에 ARS를 배포하는 데는 몇 가지 주요 이유가 있습니다.

  • AVS를 배포하고 Hub VNET에 연결하려고 할 때 Hub VNET에 Express Route Gateway를 배포하고 AVS Dedicated ExR 회로에 연결합니다.
    AVS 내부에 있는 모든 네트워크 세그먼트를 Hub와 피어링된 모든 Spoke VNET에 광고하기 위해 ARS는 수동 개입 없이 동적으로 이를 수행합니다.
  • ARS는 기존 방화벽을 활용할 수 있도록 기본 경로(0.0.0.0/0)를 AVS에 게시하는 데도 도움이 됩니다. 또한, AVS에서 스포크 VNET으로 가는 모든 통신을 NGFW를 통해 전달하려는 경우에도 이를 구현할 수 있습니다.
  • Azure VPN Gateway를 사용하여 온-프레미스와 Azure 간에 VPN S2S IPSec 터널을 구축한 경우, 온-프레미스 경로를 AVS로 전파하고 AVS에 연결된 ExR Gateway와 VPN Gateway 간의 전송 연결을 활성화하려면 ARS가 필요합니다.

위의 모든 사항을 위해서는 허브 VNET에 Azure Route Server가 필요합니다.

참고: ARS를 배포할 때 배포가 완료될 때까지 잠시 다운타임이 발생하므로 이에 따라 계획하십시오.
ARS에는 Active-Active VPN Gateway가 필요합니다. 이 배포 방법이 없는 VPN이 있는 경우 ARS를 배포하기 전에 먼저 Active-Active 모드를 활성화해야 합니다.

Azure 방화벽을 갖춘 AVS

이제 AVS 네트워킹 시나리오를 공유하고 ARS가 필요한 이유를 설명하는 기초 작업이 완료되었으므로 Azure Firewall과 함께 AVS를 살펴보고 실제로 어떻게 작동하는지 자세히 알아보겠습니다.

언급했듯이 AVS에 UDR을 연결하여 인터넷 트래픽이 Azure Firewall을 통과하도록 강제할 수는 없습니다. AVS는 무료인 전용 Express 경로 회로와 함께 배포됩니다. AVS에서 제공하는 ExR 회로에 연결할 수 있는 Express Route 게이트웨이를 만들어야 합니다. 이 작업이 완료되면 HUB VNET에 연결되고 이제 BGP를 통해 Express Route 게이트웨이를 통해 AVS에 경로를 푸시할 수 있습니다. 이 경로는 기본 경로 0.0.0.0/0 또는 다른 경로가 될 수 있습니다.

ARS에 연결하고 기본 경로를 광고하려면 타사 NVA 장치가 필요하며, 그런 다음 AVS에 광고됩니다. 그런 다음 경로는 T0 및 T1 게이트웨이에서 수신됩니다.

Cisco 또는 Fortigate SDWAN과 같은 SD-WAN 장치가 있는 경우 이러한 장치는 ARS와 BGP 피어링을 수행할 수 있습니다. 그러나 3P 장치가 없는 기본 VNET 설계가 있는 경우 두 개의 Linux VM에 FRR과 같은 오픈 소스 NVA를 배포하여 고가용성을 제공할 수 있습니다. FRR이 설치되면 ARS와 BGP 피어링을 수행한 다음 BGP를 통해 AVS에 정적 경로를 게시할 수 있습니다.

아래 문서는 FRR을 설치하고 경로를 구성하는 데 도움이 됩니다.

https://github.com/Azure/Enterprise-Scale-for-AVS/tree/main/BrownField/Networking/Step-By-Step-Guides/Global Reach가 없는 AVS에 대한 Expressroute 연결#step-7—configure-routing-on-the-bgp-capable-nvas

이 NVA는 경로를 광고하는 데만 필요하며, NVA는 데이터 경로에 포함되지 않는다는 점을 명심하세요. AVS의 VM은 Express Route 게이트웨이를 통해 방화벽과 직접 통신합니다. 따라서 높은 CPU와 메모리를 가진 VM의 크기를 조정할 필요가 없습니다. AVS에 경로를 광고하는 데만 사용되기 때문입니다.

Azure Route Server는 또한 경로를 학습하고 광고하는 데에만 사용됩니다. 데이터 트래픽 흐름에는 어디에도 나오지 않습니다.

이 블로그가 여러분의 AVS 배포에 도움이 되기를 바랍니다.

즐거운 학습이 되세요!

728x90

+ Recent posts