허브 및 스포크 토폴로지는 네트워크 리소스를 통합하고 네트워크 서비스를 중앙 집중화하는 Azure의 일반적인 네트워크 아키텍처 패턴입니다. 이 토폴로지에서는 여러 구독 또는 테넌트에 배포된 가상 네트워크에 대한 네트워크 연결 및 보안을 제공합니다.
허브 및 스포크 아키텍처는 다음 두 가지 방법으로 구현할 수 있습니다.
- 자체 관리형 허브 및 스포크 (기존): 허브 가상 네트워크 및 라우팅 구성에 대한 모든 권한을 유지 관리합니다.
- Virtual WAN: Microsoft는 허브 가상 네트워크를 관리하고 라우팅 의도 및 라우팅 정책과 같은 기능을 통해 관리를 간소화합니다.
이 문서에서는 허브 가상 네트워크 및 Azure Firewall 배포를 완전히 파악하고 제어할 수 있는 자체 관리형 허브 및 스포크 토폴로지에 중점을 둡니다.
AVNM(Azure Virtual Network Manager)을 사용하여 자체 관리형 허브 및 스포크 구현의 관리 오버헤드를 줄일 수 있습니다. AVNM은 Azure Route Tables의 구성을 자동화할 수 있지만 수동 접근 방식에 비해 전반적인 디자인과 기술은 변경되지 않습니다. 이 문서의 내용은 AVNM을 사용하든, 자체 관리형 허브 및 스포크 토폴로지를 수동으로 구성하든 관계없이 적용됩니다.
스포크 가상 네트워크의 Azure Route Tables에 대한 대안은 스포크 가상 네트워크의 기본 경로 주입에 설명된 대로 Azure Route Server를 사용하여 서브넷에 경로를 삽입하는 것입니다. 그러나 이 패턴은 Azure Route Server와 VPN 또는 ExpressRoute 가상 네트워크 게이트웨이 간의 상호 작용에서 발생할 수 있는 복잡성으로 인해 일반적으로 사용되지 않습니다.
자체 관리형 허브 및 스포크 설정에서:
- 허브: VPN, ExpressRoute 또는 Software-Defined 광역 네트워크(SD-WAN)를 통해 온-프레미스 네트워크에 대한 중앙 연결 지점 역할을 하는 가상 네트워크입니다. 방화벽과 같은 네트워크 보안 디바이스는 허브 가상 네트워크에 배포됩니다.
- 스포크: 허브와 피어하고 워크로드를 호스트하는 가상 네트워크입니다.
여러 지역에 분산된 워크로드의 경우 일반적으로 지역당 하나의 허브를 배포하여 해당 지역의 스포크에서 트래픽을 집계합니다. 다음 다이어그램은 각 지역에 두 개의 스포크 가상 네트워크가 있는 2개 지역 자체 관리형 허브 및 스포크 아키텍처를 보여 줍니다.
단일 지역 허브 및 스포크 아키텍처
다중 지역 디자인을 이해하려면 먼저 단일 지역 개념을 이해해야 합니다. 다음 다이어그램은 첫 번째 지역에 대한 라우팅 테이블 구성을 보여줍니다.
단일 지역 디자인의 각 잠재적 트래픽 흐름에 대한 라우팅 요구 사항을 고려하여 사용자 정의 경로 구성을 이해합니다.
-
스포크 간 트래픽: 스포크는 서로 피어링되지 않으며, 가상 네트워크 피어링은 전이적이지 않습니다. 각 스포크는 기본적으로 허브 가상 네트워크로 라우팅하는 방법을 알고 있지만 다른 스포크에는 라우팅하지 않습니다. 모든 스포크 서브넷에 적용되는
0.0.0.0/0의 경로는 스포크-스포크 트래픽을 포함합니다. -
스포크-인터넷 트래픽: 스포크 경로 테이블의 경로는
0.0.0.0/0공용 인터넷으로 전송되는 트래픽도 포함합니다. 이 경로는 기본적으로 공용 서브넷에 포함된 시스템 경로를 덮어씁니다. 자세한 내용은 Azure의 기본 아웃바운드 액세스를 참조하세요. -
인터넷-스포크 트래픽: 인터넷에서 스포크로의 트래픽은 일반적으로 Azure Firewall을 먼저 통과합니다. Azure Firewall에는 원본 IP 주소(원본 네트워크 주소 변환 또는 SNAT)도 변환하는 DNAT(대상 네트워크 주소 변환) 규칙이 구성되어 있습니다. 스포크 워크로드는 트래픽이 Azure Firewall 서브넷에서 들어오는 것으로 간주합니다. 가상 네트워크 피어링에서 허브()
10.1.0.0/24로 시스템 경로를 만들므로 스포크는 반환 트래픽을 라우팅하는 방법을 알 수 있습니다. -
온-프레미스에서 스포크로 및 스포크에서 온-프레미스로의 트래픽: 각 방향을 개별적으로 고려합니다.
-
온프레미스-스포크 트래픽: 트래픽이 온프레미스 네트워크에서 VPN 또는 ExpressRoute 게이트웨이로 도달합니다. Azure에서 기본 라우팅을 사용하면 시스템 경로가 각 스포크에 대한 GatewaySubnet(및 허브 가상 네트워크의 다른 서브넷)에 만들어집니다. 이러한 시스템 경로를 재정의하고 다음 홉을 Azure Firewall의 개인 IP 주소로 설정해야 합니다. 이 예제에서는 게이트웨이 서브넷과 연결된 경로 테이블에 각 스포크(
10.1.1.0/24및10.1.2.0/24)에 대해 하나씩 두 개의 경로가 필요합니다. 모든 스포크 가상 네트워크를 포괄하는 요약을 사용하는 것은 작동하지 않습니다. 왜냐하면 게이트웨이 서브넷의 가상 네트워크 피어링에 의해 주입된 시스템 경로가 요약에 비해 더 구체적 이기 때문입니다. 이 경로 테이블에는 전파 게이트웨이 경로 토글을 사용하도록 설정해야 합니다( 예로 설정). 그렇지 않으면 게이트웨이 라우팅을 예측할 수 없게 될 수 있습니다. -
스포크에서 온프레미스로의 트래픽: 허브와 스포크 간의 가상 네트워크 피어링에는 허브 쪽에서 게이트웨이 전송 허용을 사용하도록 설정하고, 스포크 쪽에서는 원격 게이트웨이를 사용하도록 설정해야 합니다. 이러한 설정은 VPN 및 ExpressRoute 게이트웨이가 BGP(Border Gateway Protocol)를 통해 스포크 접두사를 온-프레미스 네트워크에 보급하도록 하는 데 필요합니다. 또한 이러한 설정은 기본적으로 온-프레미스에서 Azure로 보급된 접두사를 스포크가 학습하도록 만듭니다. 온-프레미스 접두사는 스포크 경로 테이블의 사용자 정의 경로
0.0.0.0/0보다 더 구체적이므로 스포크에서 온-프레미스로의 트래픽은 기본적으로 방화벽을 우회합니다. 이 상황을 방지하려면 스포크 경로 테이블에서 게이트웨이 경로 전파 토글을 No로 설정하여 온-프레미스 접두사를 학습하지 않도록 하고, 온-프레미스로의 트래픽에는0.0.0.0/0경로가 사용되도록 합니다.
-
온프레미스-스포크 트래픽: 트래픽이 온프레미스 네트워크에서 VPN 또는 ExpressRoute 게이트웨이로 도달합니다. Azure에서 기본 라우팅을 사용하면 시스템 경로가 각 스포크에 대한 GatewaySubnet(및 허브 가상 네트워크의 다른 서브넷)에 만들어집니다. 이러한 시스템 경로를 재정의하고 다음 홉을 Azure Firewall의 개인 IP 주소로 설정해야 합니다. 이 예제에서는 게이트웨이 서브넷과 연결된 경로 테이블에 각 스포크(
참고
네트워크 요약 대신 게이트웨이 서브넷과 연결된 경로 테이블에서 정확한 스포크 가상 네트워크 IP 접두사를 사용합니다. 스포크로 가상 네트워크 피어링에 의해 도입된 시스템 경로는 좀 더 구체적이기 때문에 사용자 정의 경로를 재정의합니다.
Azure Virtual Network Manager를 사용하여 스포크 서브넷과 연결된 경로 테이블과 게이트웨이 서브넷과 연결된 경로 테이블을 모두 관리하여 관리 오버헤드를 줄일 수 있습니다. 자세한 내용은 Azure Firewall을 다음 홉으로 사용하세요.
허브 가상 네트워크 워크로드
허브 가상 네트워크(예: Active Directory 도메인 컨트롤러, DNS 서버 또는 기타 공유 인프라)에 워크로드를 배포하면 허브 및 스포크 디자인의 복잡성이 증가합니다. 허브에 워크로드를 배치하지 않고 대신 공유 서비스에 대한 전용 스포크에 배포하는 것이 좋습니다.
이 섹션에서는 이 복잡성이 요구 사항에 적합한지 여부를 평가할 수 있도록 허브 워크로드에 필요한 구성에 대해 설명합니다. 또한 비대칭 트래픽 및 패킷 삭제를 일으킬 수 있는 일반적인 실수에 대해서도 설명합니다.
다음 다이어그램은 허브 가상 네트워크에 워크로드 서브넷이 있는 단일 지역 디자인을 보여 줍니다.
중요한 세부 정보는 게이트웨이 서브넷과 스포크 서브넷 모두에서 구성된 사용자 정의 경로가 전체 허브 가상 네트워크 접두사용이 아닌 특정 워크로드 서브넷에 대해 정의된다는 것입니다.
-
게이트웨이 서브넷 구성: 전체 허브 가상 네트워크에 대한 게이트웨이 서브넷의 경로를 구성하면(
10.1.0.0/24이 예제에서는) 허브 가상 네트워크에 대한 시스템 경로가 재정의됩니다. 이로 인해 VPN 또는 ExpressRoute 게이트웨이 간의 서브넷 내 제어 트래픽이 방화벽으로 전송되어 게이트웨이 작업이 중단될 수 있습니다. -
스포크 서브넷 구성: 전체 허브 가상 네트워크에 대한 스포크 서브넷의 경로 구성(
10.1.0.0/24이 예제에서는)은 허브 가상 네트워크와의 피어링에서 만든 시스템 경로를 재정의합니다. 허브로 전송되는 모든 트래픽은 Azure Firewall로 전송됩니다. 여기에는 Azure Firewall 자체에서 비롯된 트래픽, 예를 들어 원본 네트워크 주소 변환(SNAT)을 통해 인터넷에서 스포크로 가는 트래픽도 포함됩니다. 이 구성은 비대칭 트래픽을 도입하고 패킷을 삭제합니다.
참고
허브 가상 네트워크에 워크로드를 배포하는 경우 사용자 정의 경로에서 전체 가상 네트워크 IP 접두사를 사용하지 마세요.
서브넷 간 트래픽 검사
현재 설정에서 스포크 간 트래픽은 방화벽으로 전송되지만 스포크 내 트래픽은 스포크 가상 네트워크 내에 유지되며 네트워크 보안 그룹을 사용하여 제어됩니다. 이 디자인은 가상 네트워크를 보안 경계로 간주합니다. 방화벽은 가상 네트워크를 종료하거나 들어오는 트래픽만 검사합니다.
동일한 스포크 가상 네트워크의 서브넷 간 트래픽을 검사하려면 다음 다이어그램과 같이 스포크 서브넷과 연결된 경로 테이블을 수정합니다.
이전 다이어그램에서는 각 스포크 가상 네트워크에 두 개의 스포크 서브넷이 도입되었으며 가상 네트워크 A2의 스포크에 대한 경로 테이블이 설명되어 있습니다. 서브넷 간 트래픽을 방화벽으로 보내려면 각 서브넷에 설치할 경로가 다르기 때문에 모든 서브넷에 별도의 경로 테이블이 있어야 합니다.
서브넷 A21의 경우 다음 두 개의 추가 경로가 필요합니다.
-
10.1.2.0/24로의 경로: 가상 네트워크 내 트래픽에 대한 시스템 경로를 재정의합니다. 다른 경로가 없으면 모든 가상 네트워크 내 트래픽이 동일한 서브넷에 있는 가상 머신 간의 트래픽도 Azure Firewall로 전송됩니다. -
다음 홉
10.1.2.0/26를 사용하여 라우팅: 이전 경로에 대한 예외이므로 이 특정 서브넷 내의 트래픽은 방화벽으로 전송되지 않지만 가상 네트워크 내에서 로컬로 라우팅됩니다. 이 경로는 각 서브넷에만 적용되므로 각 서브넷에 대해 별도의 경로 테이블이 필요합니다.
SD-WAN 가상 네트워크 장비
VPN 또는 ExpressRoute 게이트웨이 대신 SD-WAN NVA(네트워크 가상 어플라이언스)를 사용하는 경우 다음 다이어그램과 같이 디자인이 비슷합니다.
Azure에서 SD-WAN NVA를 통합하는 방법에는 여러 가지가 있습니다. 자세한 내용은 Azure 허브 및 스포크 네트워크 토폴로지와의SD-WAN 통합을 참조하세요. 이 문서에서는 트래픽을 SD-WAN 네트워크로 라우팅하는 가장 일반적인 방법 중 하나인 Azure Route Server를 사용하는 통합을 보여 줍니다. SD-WAN NVA는 BGP를 통해 온-프레미스 접두사를 Azure Route Server에 보급합니다. Azure Route Server는 Azure Firewall이 온-프레미스 네트워크에 대한 라우팅 정보를 갖도록 Azure Firewall 서브넷에 이러한 접두사를 삽입합니다. 스포크 경로 테이블에서 "게이트웨이 경로 전파" 옵션을 사용할 수 없으므로 스포크는 온-프레미스 접두사를 학습하지 않습니다.
NVA 서브넷과 연결된 경로 테이블에서 각 스포크 가상 네트워크의 접두사를 구성하지 않으려면 전용 가상 네트워크에 SD-WAN NVA를 배치할 수 있습니다. NVA 가상 네트워크는 직접 피어링되지 않으므로 스포크 접두사를 학습하지 않으며 다음 다이어그램과 같이 요약 경로가 가능합니다.
다중 지역 허브 및 스포크 아키텍처
단일 허브 및 스포크 지역 내에서 트래픽이 작동하는 방식을 이해한 후에는 디자인을 다중 지역 아키텍처로 확장하는 것이 간단합니다. 다음 다이어그램은 두 지역(A 및 B)의 허브를 사용하여 업데이트된 네트워크 디자인을 보여 줍니다.
구성에 추가되는 유일한 방법은 각 지역의 Azure Firewall 서브넷과 연결된 경로 테이블입니다. 각 허브 가상 네트워크는 직접 피어링된 가상 네트워크의 접두사만 알고 있으므로 원격 스포크의 접두사에 대한 라우팅이 없습니다. 각 지역의 트래픽이 해당 Azure Firewall로 라우팅되도록 각 Azure Firewall 서브넷에 대한 사용자 정의 경로를 추가합니다.
이 예제에서는 각 지역을 쉽게 요약할 수 있습니다.
- 지역 A에 접두사 포함
10.1.0.0/16 - 지역 B에는
10.2.0.0/16의 접두사가 포함되어 있습니다.
쉽게 요약되는 각 지역에서 IP 주소를 정의하면 라우팅 구성이 더 간단해집니다. 그렇지 않으면 각 원격 스포크에 대해 하나의 경로를 만들어야 합니다.
방화벽이 VPN 및 ExpressRoute 게이트웨이에서 온-프레미스 경로를 학습할 수 있도록 Azure Firewall 서브넷 경로 테이블에서 게이트웨이 경로 전파 를 사용하도록 설정합니다.
참고
관리 NIC 없이 Azure Firewall을 배포하는 경우 Azure Firewall 서브넷은 이전에 설명한 대로 더 구체적인 경로를 추가하기 위해 다음 홉 "인터넷"이 있는 기본 경로가 필요합니다.
다중 지역 환경에서 사용자 정의 경로 관리를 간소화하기 위해 Azure Virtual Network Manager를 사용할 수 있습니다. 자세한 내용은 AVNM을 사용하여 여러 허브 및 스포크 토폴로지에서 사용자 정의 경로 관리를 참조하세요.
다음 단계
- Azure Azure Firewall을 배포 및 구성하는 방법에 대해 알아봅니다.