hub and spoke 구조는 Virtual WAN을 사용하지 않고 virtual network 로만 구성하고자 할때 Azure에서 권장하는 구조입니다. 일반적으로 온프레미스와 virtual network gateway간 연결해서 사용할 때 자주 볼 수 있는 아키텍쳐이며, 본 포스트는 아래와 같은 구조에서 virtual machine끼리 통신하도록 하는 예제입니다.
단순 vnet peering 만으로는 spoke1-vm과 spoke2-vm간 통신이 불가능하고, route tables라는 리소스를 생성해서 적용해 줘야 합니다. Azure 공식 문서에는 잠깐의 언급만 하고 자세히 다루지는 않아서 본 포스트에서 spoke1-vm과 spoke2-vm간 통신하는 예제를 다루어 보았습니다.
*링크 : Create, change, or delete an Azure virtual network peering | Microsoft Docs
리소스 그룹 생성
포털에 resource group 검색 후 create 버튼 클릭
virtual network 생성
총 3개의 vnet을 생성합니다.
hub-vnet : 10.50.0.0/16, default 10.50.1.0/24, GatewaySubnet 10.50.2.0/24
(게이트웨이 서브넷 이름은 무조건 'GatewaySubnet'이어야 함)
spoke1-vnet : 10.60.0.0/16, default 10.60.1.0/24
spoke2-vnet : 10.61.0.0/16, default 10.61.1.0/24
spoke1-vnet과 spoke2-vnet도 위와 같이 생성합니다.
Virtual network gateway 생성
포털에서 virtual network gateway 검색 후 create 클릭
피어링 설정
hub-vnet과 spoke1-vnet간 vnet peering을, hub-vnet과 spoke2-vnet간 vnet peering을 맺습니다
add 버튼 클릭
hub-vnet과 spoke2-vnet에 대해서도 위와 같이 설정해 줍니다.
Virtual Machine 생성
spoke1-vm과 spoke2-vm을 생성합니다.
아래 화면처럼 spoke1-vnet을 선택해 줍니다.
spoke2-vm에 대해서도 위와 같이 생성해 줍니다.
spoke1-vm에 ssh 연결해서 spoke2-vm으로 ping을 보내면 전부 packet loss 됨을 확인할 수 있습니다.
Route tables 생성 및 적용
spoke1-udr, spoke2-udr을 각각 만들어 줍니다
*udr : user defined route
Routes 탭에서 add 버튼을 클릭한 후, destination ip addresses에 spoke2-vnet의 대역을 입력합니다
(마찬가지로 spoke2-udr에는 spoke1-vnet의 대역을 입력합니다)
route 생성 후, 아래와 같이 spoke1-vnet의 default 서브넷, spoke2-vnet의 default 서브넷에 각각 적용시켜 줍니다
route table 을 각 서브넷에 적용 후, spoke1-vm에서 spoke2-vm으로 ping을 날리면 정상적으로 패킷 송수신이 되는 것을 확인하실 수 있습니다.
테스트가 완료되었을 경우 resource group을 삭제합니다.
'IT이야기 > Azure' 카테고리의 다른 글
네트워크 보안 그룹 (0) | 2024.10.18 |
---|---|
가상 네트워크 서비스 태그 (0) | 2024.10.18 |
Azure VM에 중첩 가상화 구성하기 (0) | 2024.07.18 |
Windows RRAS를 사용하여 Azure VPN Gateway와 S2S VPN 연결 (0) | 2024.04.24 |
Azure Firewall - 라우팅, DNAT, 네트워크 규칙(Network rule) (0) | 2024.04.24 |