Cloud/Azure

CrossTenant VNet Peering 과 Hub & Spoke Network 구성

좌니홍 2023. 4. 14. 18:12

지난 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)