Azure 방화벽 + 라우트테이블 + Virtual WAN 테스트
본 포스트는 아래 링크에 나와있는 애져 공식 문서를 참고하였습니다.
Route traffic through NVAs by using custom settings - Azure Virtual WAN | Microsoft Docs
Route traffic through NVAs by using custom settings - Azure Virtual WAN
Learn about Virtual WAN routing scenarios to route traffic through Network Virtual Appliances (NVAs). In this scenario, you route traffic through NVAs by using a different NVA for internet-bound traffic and custom settings.
docs.microsoft.com
핸즈온랩 아키텍쳐는 아래와 같습니다.
*UDR : User Defined Routes, Azure 포탈에서는 Route table이라는 이름의 리소스
*편의를 위해 spoke2-vnet과 spoke2-vm은 생성하지 않아도 무방
*Azure Firewall은 무조건 AzureFirewallSubnet이라는 서브넷을 생성하고 배포해야 함. 테스트는 기본 정책인 all deny로 진행(별도 설정 필요 X)되며 다만 VM ssh 연결을 위한 DNAT 규칙만 적용.
이 테스트를 통해 알아보고자 하는 점은 아래와 같습니다.
1. 우선 UDR을 적용하지 않고, spoke1-vm에서 spoke3-vm로 ssh 통신 확인
2. UDR을 적용하고 나서 spoke1-vm에서 spoke3-vm로 ssh 통신 확인(private ip). UDR로 인해 트래픽이 Azure Firewall로 가면서 통신이 안될지, 아니면 virtual hub의 defaultroutetable을 참고해서 통신이 될지
3. UDR을 적용하고 나서 spoke1-vm과 spoke3-vm간 통신 확인(public ip)
1. 리소스 그룹 생성
vhub-test-rg
2. virtual wan 생성
test-vwan
3. virtual hub 생성
test-vhub
4. spoke1-vnet, spoke1-vm 생성
5. spoke3-vnet, spoke3-vm 생성
6. test-vhub과 spoke1-vnet간, test-vhub과 spoke3-vnet간 vnet peering 맺기
7. test-vwan의 overview 페이지에서 network topology 확인
8. spoke1-vm과 spoke3-vm간 ssh 연결 확인
9. fw-vnet, test-fw 생성
*편의를 위해서 classic 버전의 firewall을 생성하였습니다.
10. spoke1-vnet과 fw-vnet간, spoke3-vnet과 fw-vnet간 vnet peering 맺기
11. udr(0.0.0.0/0 --> FW private ip)생성
12. 아래 Next hop address에서는 test-fw의 private ip를 적어줍니다.
13. test-fw에 dnat 룰 지정
*지정해주지 않을 경우 로컬에서 public ip를 통한 ssh 연결이 안됩니다(0.0.0.0/0트래픽에 대해 fw의 private ip로 라우팅을 정해줬기 때문에).
Destination Address는 firewall의 public ip를, translated address는 spoke1-vm의 private ip를 적어줍니다.
14. 로컬에서 spoke1-vm에 ssh 연결
firewall의 public ip, 22번 포트로 접속
15. spoke1-vm과 spoke3-vm간 private ip로 ssh 연결 확인 O
16. spoke1-vm과 spoke3-vm간 public ip로 ssh 연결 확인 X, connection timed out