본문 바로가기

미국 IT 이야기

Cisco ISR 4451 Router을 이용한 Azure ExpressRoute Private Peering

Cisco ISR 4451 라우터를 이용해 Azure ExpressRoute Private Peering하는 과정을 설명한다. 아래 다이어그램에서 Partner Edge는 ISP (Internet Service Provider)이고, Customer Network에 Cisco ISR 4451가 놓여있다고 생각하면 된다. 

 

 

 

Azure ExpressRoute을 사용하기 위해서는 Customer Network에 몇 개의 라우터가 필요한가요?

 

 Customer Network (사용자)에 2개의 ISR 라우터를 사용해도 되고, 1개의 라우터로 사용해도 된다. 라우터를 몇개 사용하느냐에 따라서 Cisco ISR 라우터의 config는 바뀌어야 한다. 라우터를 한개만 사용할 경우 VRF (Virtual Routing and Forwarder)를 사용해서 Primary와 Secondary ExpressRoute을 독립적으로 관리해야 한다. 라우터가 2개일 경우에는 VRF을 사용하지 않아도 된다. Cisco ISR과 ASR은 VRF을 기본적으로 지원한다. 이 포스팅을 위해서 사용한 Router는 ISR 4451이며, 아래가 IOS 버전이다. 이 포스팅에서는 ISR 4451 1대로 ExpressRoute을 연결하는 것을 포커스하려고 한다. 또한 ExpressRoute은 BGP Protocol을 이용하기에, 해당 라우터가 BGP 프로토콜을 지원하는지도 확인해야 한다. 

 

Cisco ISR 4451 Router - Cisco IOS XE Software, Version 17.03.04a

 

 

Azure ExpressRoute을 1개의 라우터로 연결할 경우, 몇 개의 Interface가 라우터에서 필요한가요? 

 

  아래와 같이 벤더들에게 handoff type 와 몇개의 라우터가 필요한지 사전 조사를 해놓는다. 각 벤더마다 다르지만, 자기들만의 Config가 있기에 handoff가 1개일수도 있고 2개일 수도 있다. Lumen의 경우에는 Single connection (즉, 한개의 인터페이스만 제공한다) 반면에 Crown Castle의 경우에는 2개의 handoff를 제공한다고 말하고 있다. 이렇게 ExpressRoute circuit을 주문하기 전에 Customer Network Site에 필요한 정보를 미리 수집해 놓는 것을 추천한다. 인터페이스가 1개가 필요한 경우, Dot1Q와 같은 tagging을 통해서 Primary connection과 Secondary connection을 만들어준다. 즉, 라우터가 이러한 기능을 서포트해주어야지 가능하다. 

 

 

 

Customer Network와 Partner Edge (ISP)간 Physical Connection (Interfaces)

 

 아래의 스크린 샷은 ExpresRoute 1Gbps을 주문한 내역이고, Handoff type은 1000LX (Single Mode)이다. Location A는 Customer Network 사이트이고 Location Z는 Azure data center (U.S East) 이다. 서킷 주문서에는 Handoff type (1000LX) 만 적혀있고, 몇개의 handoff을 제공할 것인지는 나와있지 않다. 그렇기 때문에 몇개의 physical connection (interfaces)을 제공할 것인지 벤더와 미리 사전 확인을 해야한다

 

Azure ExpressRoute Order Form (U.S East - Ashburn, VA site)

 

EVC (Ethernet Virtual Connection) - ExpressRoute은 Virtual Connection을 보통 사용한다. EVC의 종류는 Standard, Business Priority, Business Critical, Mission Critical 등의 분류로 나눠진다. 

 

 

ExpressRoute 서킷은 Primary connection과 Secondary connection으로 구성된다. 즉, Partner Edge에서 Microsoft Edge간의 경로를 이중화하여서 두 사이트 간의 네트워크 장애를 피하기 위해서이다. ISR 1개로 ExpressRoute을 연결했을 때는 single point of failure가 생길 수 있다. 그러므로 많은 경우 ExpressRoute을 다른 사이트에서 연결하여서 Site에 대한 single point of failure를 예방하도록 디자인한다. 즉, 첫번째 다이어그램에서 Partner Edge 라우터인 ISR 4451이 다운되어도 Customer’s network는 다른 ExpressRoute 경로를 통해서 Microsoft Edge에 연결되도록 ExpressRoute 이중화를 사용한다

 

 

 

ExpressRoute은 Microsoft Peering과 Private Peering으로 나눠진다

 

Azure ExpressRoute의 Physical, Logical connection에 대해서 살펴보았다. 이제 Azure ExpressRoute의 두가지 다른 peering에 대해서 살펴보자. Azure ExpressRoute은 Microsoft peering과 Private peering이 있다.

 

 

Microsoft peering이란 Azure에서 지원하는 서비스, 예를들면, TEAMs, Office 365, SharePoint online, OneDrive, Dynamic 365 등의 public 서비스를 인터넷이 아닌 private line을 이용해서 더 빠르게 연결할 때 사용한다.

 

 

Private peering은 위의 나열한 Azure public service 이외의 다른 Azure 서비스와 연결할 때 사용한다. 예를들면, Virtual machine, Azure SQL, Blob, File, 그리고 Azure VMware Solution과 같이 Virtual Network와 연결되는 모든 서비스는 private peering으로 연결할 수 있다.

 

 

Private peering으로 연결되는 모든 Azure 서비스는 인터넷으로 연결되는 서비스보다 당연히 더 빠른 속도로 연결이 가능하며, 모두에게 오픈된 연결이 아니기 때문에 보안 측면에서 인터넷에 비해 안전하다. Microsoft peering은 public IP를 사용하고, Private peering은 private IP를 사용하는 것도 큰 차이점이다. Azure File과 같은 서비스는 public으로도 사용 가능하지만, Azure File을 Private Endpoint와 연결했을 때는 private IP를 통해서도 Azure File에 접근할 수 있다. 즉, Azure의 서비스 중 virtual network와 연결이 가능하면, private peering이 가능하다고 생각하면 된다. 

 

 

2022.05.31 - [미국 IT 이야기] - Azure File Share을 이용한 Network File Share 비용 절감

 

Azure File Share을 이용한 Network File Share 비용 절감

Azure File Share는 기존 Network File Share (SMB)을 클라우드로 옮기면서 동시에 비용 절감을 할 수 있는 대표적인 Microsoft Azure의 서비스이다. 클라우드의 장점중 하나는 바로 기존 인프라를 사용하지 않

washington.doniq.net




ExpressRoute을 주문한 후에 Azure Portal에서 ExpressRoute을 만들어준다

Provider를 통해서 ExpressRoute Circuit 주문을 마쳤다면, 이제 Azure Portal을 통해서 ExpressRoute 을 만들어주어야 한다. 이때 사용되는 정보는 Provider (예를들면 AT&T), Peering Location (이것은 벤더가 가르쳐준다. 아래의 스크린 샷에서는 Washington DC), Bandwidth, SKU, Billing Model이다. Peering Location을 제외한 나머지 정보는 내가 직접 결정하여야 한다. 예를들면, ExpresRoute을 vWAN과 같은 리소스에 연결할 경우에는 Premium SKU을 사용해야만 한다. 참고로 Premium SKU는 Standard SKU에 비해서 더 많은 Route 정보를 전달할 수 있다. Billing model을 Metered로 설정할 경우에는 Bandwidth 사용한 정도에 따라서 요금이 책정되며, Unlimited는 사용료는 비싸지만, 사용 제한이 없이 정액제가 되는 것이다. Metered에서 Unlimited로는 변경할 수 있으나, 그 반대로 Unlimited에서 Metered로는 바꿀수 없다는 것도 명심하자. 

 

Azure Portal을 통해서 ExpressRoute을 Config 해준다

 

 

Azure Portal에서 ExpressRoute이 만들어진 후에는 Private peering을 설정해준다. 아래와 같이 총 3개의 Peering이 있는데, Azure Public은 이제 사용되지 않고, Microsoft peering과 Private peering만 ExpressRoute에서 지원하고 있다. Azure Private peering을 위해서는 Primary subnet과 Secondary subnet이 필요하며, Private IP 이다. 이 정보 역시 사용자가 직접 Azure Portal을 통해서 Config을 한다. 

 

3 kinds of Azure peering

 

Private Peering에 필요한 것은 Peer ASN (BGP를 사용하기 위해), 2개의 subnet (보통 /30) 그리고 VLAN ID (Dot1Q tagging)이다. 특별히 Peer ASN 65515 - 65520까지는 Azure에서 사용하기 때문에 이를 피해야 한다. 2개의 subent에 Customer Network에서 사용되고 있지 않는 서브넷을 사용해야 한다. 

 

Azure private peering

 

참고로, Microsoft peering을 할 경우 아래와 같이 Peer ASN 번호가 Private이 아니며, IP address도 private이 아닌 public IP를 사용해야 한다. 

ExpressRoute Azure Microsoft peering

 

 

Cisco ISR 4451 Configuration for ExpressRoute

 

이 포스팅에서는 1개의 인터페이스인 경우와 2개의 인터페이스 모두를 다룰 것이다. 물론 라우터는 ISR 4451 1대만을 이용할 것이다. 먼저 1개의 인터페이스를 사용할 경우 ISR-4451의 Config을 살펴본다. 

 

 

interface GigabitEthernet0/0/1

 description Azure ExpressRoute ONE interface (Physical 인터페이스)

 no ip address

 negotiation auto

!

interface GigabitEthernet0/0/1.445

 description Azure ExpressRoute Sub-interface for Primary

 encapsulation dot1Q 445

 ip vrf forwarding vrf1

 ip address 10.191.190.1 255.255.255.252

 bfd interval 300 min_rx 300 multiplier 3 (BFD interface enabled)

!

interface GigabitEthernet0/0/1.747

 description Azure ExpressRoute Sub-interface for Secondary

 encapsulation dot1Q 747

 ip vrf forwarding vrf2

 ip address 10.191.190.5 255.255.255.252

 bfd interval 300 min_rx 300 multiplier 3 (BFD interface enabled)

 

 

Cisco ISR 4451 dot1q VLAN tagging for ExpressRoute

 

Customer Network와 Partner Edge에는 1개의 ISR 4451가 있고, 라우터의 G0/0/1 인터페이스로 두 네트워크가 연결되어 있다. 한 인터페이스만 사용하기에 dot1Q tagging을 사용해서 Primary와 Secondary connection을 분리해준다. 이때 사용된 Tagging VLAN은 445와 747이다. 이 정보는 Azure Portal에서 사용한 VLAN ID와 다르다. Azure portal에서 사용한 VLAN ID (예를들어 537)Partner Edge에서 사용되어진다. 그리고 VLAN 445와 747은 Partner가 따로 제공해주기 때문에 Azure Portal에서는 아무리 찾아도 찾을 수 없다. 이것이 1개의 Interface을 통해서 ExpressRoute을 연결할 때 명심해야할 점이다. 보통의 경우 Azure portal에 사용할 VLAN ID는 Partner가 제공해준다. 그리고, Partner의 네트워크에서 사용할 두개의 VLAN ID (445, 747)을 고객에게 부여하는 형식이다. 

 

Cisco ISR 4451 VRF (Virtual Routing and Forwarding)을 이용한 ExpressRoute 연결

 

VRF1과 2의 RD 값을 지정해준다. 그리고 VRF와 Global Route을 교환해주기 위해서 아래와 같이 Route Leaking을 해준다. 

 

ip vrf vrf1

 rd 65522:1

 route-target export 65522:1 

 route-target import 65522:1

!

ip vrf vrf2

 rd 65522:2

 route-target export 65522:2

 route-target import 65522:2

 

 

 

ExpressRoute은 BFD (Bidrectional Forwarding Detection)을 지원한다. BFD를 사용하면 MSEE (Microsoft Enterprise Edge)와 CE간의 장애가 발생했을 때 이를 빨리 찾아준다. 즉, 장애가 생기면 문제가 생긴 네트워크를 라우팅 테이블에서 지워서 다른 Route을 찾도록 도와준다. MSEE의 라우터는 보통의 경우 BGP keep-alive 와 hold time을 각각 60초와 180초로 지정해놓는다. 그로인해 링크 장애가 발생했을 때 BGP 측면에서는 최대 180초까지 기다렸다가 다른 컨넥션을 찾는다. 이러한 이유로 BGP keep-alive와 hold time을 더 작게 (예를들어 10초)로 하는 경우가 있는데, 이것은 그리 추천되는 방식이 아니다. BFD는 이러한 문제를 쉽게 해결해준다. 

 

 

BFD가 위의 그림과 같이 Partner Edge와 Microsoft Edge 사이의 네트워크 장애를 빨리 찾아낼 수 있다. 하지만, Microsoft Edge 와 ExpressRoute gateway 사이의 컨넥션은 빠르게 바뀐 경로를 업데이트 하는데 시간이 걸린다는 아쉬움이 있다. BFD는 Microsoft private peering에서 기본적으로 지원하고 있다. 즉, Partner Edge 혹은 Customer Edge 쪽에서 BFD를 활성화 시켜주면 이 기능을 바로 사용할 수 있다. BFD를 활성화하기 위해서는 Interface와 BGP 세션 모두에서 해줘야 한다. 특별히 ExpressRoute circuit이 여러개가 있는 Geo-redundant site인 경우, BFD를 이용하면 failover를 빨리 할 수 있는 장점이 있다. 

 

 

 

이제 BGP 설정만 해주면 Private Peering 이 완성된다. Private Peering을 위해서 사용되는 Azure ASN은 12076이다. 

 

router bgp 65522

 bgp router-id 10.200.201.10

 

 !

 address-family ipv4 vrf vrf1

  bgp router-id 10.191.190.2

  neighbor 10.191.190.2 remote-as 12076

  neighbor 10.191.190.2 fall-over bfd (BFD BGP session enabled)

  neighbor 10.191.190.2 activate

 

 exit-address-family

 !

 address-family ipv4 vrf vrf2

  bgp router-id 10.191.190.6

  neighbor 10.191.190.6 remote-as 12076 

  neighbor 10.191.190.6 fall-over bfd (BFD BGP session enabled)

  neighbor 10.191.190.6 activate

 

 exit-address-family



Partner Edge에서 Customer Network까지 2개의 인터페이스를 통해 연결될 경우를 살펴보자.  2개의 인터페이스 셋업은 조금 다르지만, 전체적으로 아주 흡사하다. 1개의 인터페이스를 통해서 ExpressRoute을 설정할 경우, Sub-interface에 IP를 할당했지만, 2개의 인터페이스의 경우는 BDI를 인터페이스에 IP를 할당한다. 

 

 

interface GigabitEthernet0/0/1
 ip vrf forwarding vrf1 (VRF #1)
 no ip address
 negotiation auto
 service instance 1 ethernet (dot1q tagging을 사용하기 위해서 service instance을 사용)
  encapsulation dot1q 537 (VLAN ID from Azure Portal)
  bridge-domain 1 (BDI 1)
 !
!
interface GigabitEthernet0/0/2
 ip vrf forwarding vrf2 (VRF #2)
 no ip address
 negotiation auto
 service instance 2 ethernet (dot1q tagging을 사용하기 위해서 service instance을 사용)
  encapsulation dot1q 537 (VLAN ID from Azure Portal)
  bridge-domain 2 (BDI 2)

 

 

interface BDI1
 ip vrf forwarding vrf1
 ip address 10.191.185.5 255.255.255.252 (IP address는 BDI interface에 할당)
 encapsulation dot1Q 537
!
interface BDI2
 ip vrf forwarding vrf2
 ip address 10.191.185.1 255.255.255.252 (IP address는 BDI interface에 할당)
 encapsulation dot1Q 537
 

 

 

VRF와 Global Route Leak을 위한 컨피그는 동일하다. 

 

ip vrf vrf1

 rd 65522:1

 route-target export 65522:1 

 route-target import 65522:1

!

ip vrf vrf2

 rd 65522:2

 route-target export 65522:2

 route-target import 65522:2

 

 

BGP config 역시 동일하다. 

 

 

router bgp 65522

 bgp router-id 10.200.201.10

 

 !

 address-family ipv4 vrf vrf1

  bgp router-id 10.191.190.2

  neighbor 10.191.190.2 remote-as 12076

  neighbor 10.191.190.2 fall-over bfd (BFD BGP session enabled)

  neighbor 10.191.190.2 activate

 

 exit-address-family

 !

 address-family ipv4 vrf vrf2

  bgp router-id 10.191.190.6

  neighbor 10.191.190.6 remote-as 12076 

  neighbor 10.191.190.6 fall-over bfd (BFD BGP session enabled)

  neighbor 10.191.190.6 activate

 

 exit-address-family

 

 

 

결론

Cisco ISR 혹은 ASR을 통해서 Azure ExpressRoute Private Peering을 할 경우, Service Provider가 몇개의 Interface을 Handoff 해주냐에 따라서 Configuration이 달라진다. 더불어 ExpressRoute을 연결시 1개의 라우터 혹은 2개의 라우터에 따라서 Configuration 역시 달라진다. 이번 포스팅에서는 1개의 라우터와 1개 혹은 2개의 인터페이스를 이용한 Azure ExpressRouote Private Peering을 해보았다. 또한 Azure ExpressRoute의 Requirement는 2개의 BGP sessions이므로 VRF와 같이 Virtual routig을 이용하지 않으면 라우터 1개로 ExpressRoute Private Peering을 할 수 없다.

 

 결국 Service Provider, Interface number, Router에 따라 Azure ExpressRoute의 컨피그를 바꿔주어야 한다. 이번 포스팅의 ExpressRoute Private Peering의 BGP 설정은 아주 단순했다. 다음 포스팅에서는 VRF 설정과 static route 그리고 connected interface을 BGP로 재분배하는 것에 대해서 살펴보도록 한다. 

 

 

2022.08.06 - [미국 IT 이야기] - Cisco ISR 4451 Router을 이용한 Azure ExpressRoute Private Peering - Part2

 

Cisco ISR 4451 Router을 이용한 Azure ExpressRoute Private Peering - Part2

이전 포스팅에서는 Cisco ISR 4451 라우터 1대를 이용해서 Azure ExpressRoute Private Peering의 기본 연결을 다루었다. (아래 링크) 이번 포스팅에서는 Cisco ISR 라우터와 Azure ExpressRoute의 BGP 연결에 대..

washington.doniq.net