CrossTenant VNet Peering 과 Hub & Spoke Network 구성
지난 Site2Site VPN 구성 글(아래)에 이어서, 다른 테넌트의 VNet 과 Peering 하는 방법 및 다른 테넌트의 VNet 을 Hub 로 활용해 통신할 수 있는 방법에 대해 알아보고자 합니다.
https://johnnyhong.tistory.com/5
S2S(Site-to-Site) VPN Azure
Libreswan(Internet Key Exchange Daemon for Linux) 을 활용해 Azure 와 S2S VPN 을 맺는 방법을 알아보고자 합니다. Azure 측에서 Site-to-Site VPN 을 어떻게 맺는지 쉽게 연습해볼 수 있습니다. Architecture 는 아래와 같
johnnyhong.tistory.com
아래의 아키텍쳐로 구성할 것이며 위의 구성에서 변한 것이 있다면 각 VNet, Subnet 의 CIDR 값과 라우팅입니다.
On-Prem 측에서 라우팅 잡을 때 10.20.0.0/16 까지 다 Libreswan 으로 넘길 수 있도록 prefix 값을 11 로 주었습니다.
Ex)10.0.0.0/11
위의 아키텍쳐를 구성하려고 하는 목표는 왼쪽 OnPremVM 과 오른쪽 ClooVM 간 통신이 가능하게 끔 하는 것입니다.
현재 A Tenant 까지는 VPN 구성 및 Routing 까지 모두 해둔 상태입니다. 그리고 B Tenant 에는 간단한 VNet 세팅과 VM 배포까지 마친 상태입니다. 그래서 CrossTenant VNet Peering 을 맺어주고 라우팅 구성만 확인해주면 되는 상황입니다.
CrossTenant VNet Peering 을 맺어주는 절차는 아래와 같습니다.
1. 각 테넌트의 AAD 디렉터리에 게스트 사용자 추가
2. VNet IAM 을 활용해 게스트 사용자에게 네트워크 기여자 역할 할당
3. Peering 작업 (중간에 있는 VNet 을 허브처럼 이용하는 것이라 꼭 Virtual Network Gateway 를 사용하는 것에 체크)
4. 라우팅 체크
5. 네트워크 이상유무 Ping 테스트
1. 각 테넌트의 AAD 디렉터리에 게스트 사용자 추가
A Tenant 의 Azure Active Directory 에서 진행하였습니다.
Manage 아래 Users > New user > Invite external user 를 클릭합니다.
Tenant B 에서 리소스를 만들던 메일주소를 입력하고 Send invite message 를 체크한 후, Review + invite 를 클릭합니다.
초대 메시지가 메일에 들어오면 게스트 등록 절차를 모두 마쳐주십시오.(해당 절차를 밟지 않으면 추후 VNet Peering 시, 상대방의 테넌트가 보이지 않게 됩니다.)
B Tenant 의 Azure Active Directory 에서도 A Tenant 의 리소스를 만들던 메일주소를 게스트로 초대합니다.
2. VNet IAM 을 활용해 게스트 사용자에게 네트워크 기여자 역할 할당
A Tenant 의 중간에 있는 HubVNet 으로 접근 > IAM > Add > Add role assignment 를 클릭합니다.
Role 에 Network 를 검색하고 Network Contributor 를 선택한 후, Next 를 클릭합니다.
추가했던 Guest User 를 선택해주고 Review + assign 클릭해줍니다.
B Tenant 의 VNet 에서도 위와 같이 네트워크 기여자 역할을 추가했던 게스트 유저에게 할당해줍니다.
3. Peering 작업
A Tenant 의 중간 Hub 역할을 하는 VNet 에서 Peerings > Add 를 클릭합니다.
Allow > Allow > Use this virtual network's gateway or Route Server(이것을 체크해줘야만 지금 세팅에서 Hub 역할을 해줄 수 있습니다.) 를 선택하고 아래로 스크롤 다운해줍니다.
I know my resource ID 체크해주시고 B Tenant 의 VNet Resource ID 를 복사하여 붙여넣기 해줍니다.
해당 Resource ID 는 VNet > Properties 에 있습니다.
그리고 자신의 Directory 가 아닌 B Tenant 의 Directory 를 선택해주고 Authenticate 를 클릭해줍니다.
그 후, Add 를 클릭해줍니다.
B Tenant 의 VNet 에서도 Peering 을 추가해줘야 합니다.
B Tenant 의 VNet Peerings > Add 를 클릭합니다.
Allow > Allow > Use the remote virtual network's gateway or Route Server(Hub VNet 에 위치한 Virtual Network Gateway 를 사용한다는 뜻입니다.)
I know my resource ID 체크해주시고 A Tenant 의 VNet Resource ID 를 복사하여 붙여넣기 해줍니다.
해당 Resource ID 는 A Tenant VNet > Properties 에 있습니다.
그리고 자신의 Directory 가 아닌 A Tenant 의 Directory 를 선택해주고 Authenticate 를 클릭해줍니다.
그 후, Add 를 클릭해줍니다.
양쪽으로 Peering 세팅을 마쳐주면 아래와 같이 Peering 상태가 Connected 된 것을 확인할 수 있습니다. Gateway transit 의 경우는 Hub 에서는 Enabled, Spoke 측에서는 Disabled 된 것까지 확인 가능합니다.
4. 라우팅 체크
모든 세팅은 끝났고 라우팅 체크를 해보겠습니다.
각 VNet 에 위치한 VM NIC 의 Effective routes 를 보면 확인할 수 있습니다.
가장 왼쪽에 위치한 On-Prem VM(192.168.0.5)
중간 Hub 에 위치한 VM(10.10.0.4)
오른쪽 Spoke 에 위치한 VM(10.20.0.4)
6. 네트워크 이상유무 Ping 테스트
OnPremVM(192.168.0.5) -> SpokeVM(10.20.0.4)
SpokeVM(10.20.0.4) -> OnPremVM(192.168.0.5)