728x90

이전 블로그 게시물 에서는 허브 앤 스포크 토폴로지에서 Azure VMware Solution(AVS) 환경의 모의 구축을 시작하기 위한 기본 환경을 배포하는 방법을 살펴보았습니다. 마지막 섹션 에서는 VPN과 스포크 VM 간의 트래픽을 조회할 때 매트릭스 결함을 발견했습니다. 이 블로그 게시물에서는 이 문제를 해결하는 방법을 살펴보겠습니다 .

또한 AVS 배포에서 Express Route 회로를 연결하기 위한 AVS 전송 vNet의 첫 번째 구성 요소를 소개하고 VMware 워크로드에 기본 BGP 경로를 주입하는 방법 도 소개합니다 .

이 블로그 게시물에 설명된 구성 요소와 네트워크 설계는 데모 목적으로만 제공됩니다. 프로덕션 환경에서 사용하기 위한 것이 아니며 Azure 모범 사례를 나타내는 것도 아닙니다. 모의 및 학습 목적으로만 있는 그대로 제공됩니다.

실험실 환경과 이미 다룬 3가지 첫 단계에 대한 자세한 내용은 1부를 참조하세요 .

4단계 – GatewaySubnet의 사용자 정의 경로

비대칭 라우팅 문제를 완화하기 위해 GatewaySubnetVPN 클라이언트에서 들어오는 트래픽이 NVA 어플라이언스로 라우팅되도록 사용자 정의 경로를 추가합니다 .

GatewaySubnet의 사용자 정의 경로

사용자 정의 경로(UDR)는 GatewaySubnet아래와 같이 구성됩니다.

  • 10.100.201.0/24(일명 spoke1-vnet)를 통해nva-vm.nic[0].ipaddress
  • 10.100.202.0/24(일명 spoke2-vnet)를 통해nva-vm.nic[0].ipaddress

Azure Portal에서는 다음과 같습니다.

GatewaySubnet의 사용자 정의 경로

물론, 사용된 IP 주소 계획에 따라 여러 경로를 공통 접두사 아래에 단순화하고 그룹화하는 것이 가능합니다.

경로 분석(s4)

이 지점에서 우리는 VPN 클라이언트-스포크와 스포크-VPN 대상지 모두가 hub-nva어플라이언스를 통과하는 것을 볼 수 있습니다.

대칭 트래픽을 통한 경로 분석

예: VPN 클라이언트에서 ping 세션이 진행되는 동안 에코 요청 과 에코 응답이spoke-1-vm 모두 : 를 통해서만 전송되는 것을 볼 수 있습니다 .hub-nva

ubuntu@hub-nva:~$ sudo tcpdump -nni eth0  icmp
# output
IP 10.100.204.2 > 10.100.201.4: ICMP echo request, id 1002, seq 1, length 64
IP 10.100.200.68 > 10.100.201.4: ICMP echo request, id 1002, seq 1, length 64
IP 10.100.201.4 > 10.100.200.68: ICMP echo reply, id 1002, seq 1, length 64
IP 10.100.201.4 > 10.100.204.2: ICMP echo reply, id 1002, seq 1, length 64
 
세게 때리다

이제 모든 네트워크 트래픽이 .를 통과합니다 hub-nva. 즉, 비대칭 라우팅 문제가 해결되었습니다.

Azure UDR에 대한 추가 정보

Azure의 UDR에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

5단계 – AVS 전송 vNet 소개

Azure VMware 솔루션(AVS)은 Express Route 회로 기반 외부 연결을 제공합니다. 이를 위해서는 AVS 환경 외부로 Express Route 회로를 '연결'해야 합니다. 가장 일반적인 방법은 AVS Express Route 회로를 기존 온프레미스 Express Route 회로에 매핑하고 Express Route Global Reach를 통해 두 회로 간의 연결을 제공하는 것 입니다 . 즉, 전이적 연결(transitive connection)을 구현합니다.

하지만 이 설정은 AVS 배포를 허브-스포크 토폴로지의 스포크로 간주할 수 있는 방법을 제공하지 않습니다. AVS와 온프레미스 간의 네트워크 트래픽이 .를 우회하기 때문입니다 hub-nva. 이 문제를 해결하기 위해 AVS 배포에서 Express Route 회로를 연결하고 AVS와 온프레미스 간의 트래픽이 .를 통해 라우팅되도록 트랜짓 vNet을hub-nva 도입합니다 .

여기에서는 avs-transit-vnetAVS 배포에서 Express Route 회로를 착륙시키기 위해 Express Route Gateway가 필요합니다.

AVS 트랜짓 vNet 소개

경로 분석(s5)

vNet 생성이 완료되고 AVS ER 회로 설정이 완료되면 이 단계에서 AVS 기반 VM과 통신할 수 있는 가능성이 있는지 확인하기 위해 효과적인 경로를 살펴볼 수 있습니다.

az network nic show-effective-route-table \
  --ids /subscriptions/<sub-id>/resourceGroups/nva-testing-RG/providers/Microsoft.Network/networkInterfaces/hub-nva-nic \
  -o table
# output
Source                 State    Address Prefix    Next Hop Type          Next Hop IP
---------------------  -------  ----------------  ---------------------  -------------
Default                Active   10.100.200.0/24   VnetLocal
Default                Active   10.100.202.0/24   VNetPeering
Default                Active   10.100.201.0/24   VNetPeering
Default                Active   10.100.203.0/24   VNetPeering
VirtualNetworkGateway  Active   10.100.204.0/24   VirtualNetworkGateway  20.160.147.74
 
세게 때리다

물론, 경로가 없으면 연결도 없습니다.

ubuntu@hub-nva:~$ ping 10.100.100.2 -c3
# output
PING 10.100.100.2 (10.100.100.2) 56(84) bytes of data.
--- 10.100.100.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2029ms
 
세게 때리다

AVS 연결 설정 에 따라 Express Route 연결에서 발표된 경로를 사용하여 인터넷이나 다른 Azure 리소스에 도달하는 경우 발표된 경로가 없기 때문에 AVS 외부 리소스와 통신할 수 없습니다.

AVS 연결에 대한 추가 정보

AVS 연결에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

6단계 – AVS에 기본 경로 광고

현재 단계에서는 AVS에 기본 경로(0.0.0.0/0)를 공지할 예정입니다. 이 블로그 게시물 시리즈의 핵심 주제대로, 단계별로 진행하며 가장 간단한 해결책인 AVS에서 기본 경로 공지부터 시작할 것입니다 avs-transit-vnet. 그리고 허브 앤 스포크 토폴로지의 이전 구성 요소는 일시적으로 무시하겠습니다.

첫째, AVS 트랜짓 토폴로지 에 몇 가지 추가 구성 요소를 추가해야 합니다 .

  • VM avs-bgp-vm에서:
    • BGP 경로 발표 시작
    • AVS에서 들어오는 트래픽을 라우팅합니다.
  • Azure SDN에서 경로 공지를 전파하기 위한 Azure Route Server( ARS )
    • 이 ARS 구성 요소는 가상 네트워크 게이트웨이를avs-bgp-vm 통해 BGP 피어에서 AVS로 들어오는 경로를 제공하고 피어링 됩니다 .
  • . 에서 광고하는 기본 경로를 재정의하는 경로 테이블 ( UDR) avs-bgp-vm입니다. 그렇지 않으면 VM은 자신을 전체 vNET의 기본 경로로 광고하고, VM에서 보낸 트래픽을 포함하여 인터넷으로 향하는 트래픽을 계속 전송합니다 .
AVS에 기본 경로를 광고합니다.

avs-transit-vnet앞서 언급했듯이 이는 첫 번째이자 임시 단계입니다. AVS 배포를 위해 인터넷 연결이 이루어진 이 설정을 검증하면 다음 단계를 이해하고 준비하는 데 도움이 됩니다.

AVS 인터넷 연결 설정

Azure VMware 솔루션은 인터넷 연결을 위한 세 가지 옵션을 제공합니다.

이 블로그 게시물 시리즈에서는 AVS가 Express Route 회로를 통해 발표된 기본 경로에서 인터넷 연결을 받도록 구성되어 있다고 생각해 보겠습니다 .

AVS 인터넷 연결 설정

경로 분석(s6)

새로운 구성 요소와 연결 생성이 완료되면 다음과 같은 효과적인 경로를 살펴보고 결과를 확인할 수 있습니다.

배포된 Azure Route Server 에서 BGP 피어를 볼 수 있습니다.

az network routeserver peering show -g nva-testing-RG \
  -n avs-rs-bgp-connection --routeserver AVSTransitRouterServer \
  -o table
# output
Name                   PeerAsn    PeerIp         ProvisioningState    ResourceGroup
---------------------  ---------  -------------  -------------------  ---------------
avs-rs-bgp-connection  65002      10.100.203.68  Succeeded            nva-testing-RG
 
세게 때리다

그리고 BGP 피어가 광고한 학습된 경로를 확인 해야 합니다 .

az network routeserver peering list-learned-routes \
  -g nva-testing-RG -n avs-rs-bgp-connection \
  --routeserver AVSTransitRouterServer -o table
# output
Issue: no route displayed there!
 
세게 때리다
문제: 경로가 표시되지 않음

명령 list-learned-routes이 예상대로 작동하지 않습니다. 현재 이 문제를 조사 중입니다. 그동안 PowerShell 명령을 사용하여 Get-AzRouteServerPeerLearnedRoute경로를 표시하겠습니다.

PowerShell을 사용하면 광고된 경로가 표시됩니다.

$routes = @{
    RouteServerName = 'AVSTransitRouterServer'
    ResourceGroupName = 'nva-testing-RG'
    PeerName = 'avs-rs-bgp-connection'
}
Get-AzRouteServerPeerLearnedRoute @routes | ft
LocalAddress  Network   NextHop       SourcePeer    Origin AsPath Weight
------------  -------   -------       ----------    ------ ------ ------
10.100.203.36 0.0.0.0/0 10.100.203.68 10.100.203.68 EBgp   65002   32768
10.100.203.37 0.0.0.0/0 10.100.203.68 10.100.203.68 EBgp   65002   32768
 
파워셸

avs-bgp-vm이 (가) 자신을 기본 경로의 다음 홉으로 광고하고 있음 을 알 수 있습니다 . 이는 예상되는 동작입니다.

테스트(s6)

AVS에 호스팅된 VM에서 다음을 통해 인터넷에 접속할 수 있습니다 avs-bgp-vm.

ubuntu@avs-vm-100-10:~$ mtr 1.1.1.1 --report
HOST: avs-vm-100-10                Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%    10    0.1   0.2   0.1   0.2   0.0
  2.|-- 100.64.176.0               0.0%    10    0.2   0.3   0.2   0.3   0.0
  3.|-- 100.72.18.17               0.0%    10    0.9   0.8   0.7   0.9   0.1
  4.|-- 10.100.100.233             0.0%    10    1.0   1.0   0.9   1.1   0.1
  5.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  6.|-- 10.100.203.68              0.0%    10    3.2   4.0   2.6   7.3   2.0 # <--- avs-bgp-vm
  7.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  8.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  9.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 10.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 11.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 12.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 13.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 14.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 15.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 16.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 17.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 18.|-- one.one.one.one            0.0%    10    5.7   4.9   3.9   9.6   1.7
 
세게 때리다

이전 경로 추적 보고서에서는 이 시나리오에서 예상한 대로 라우터나 NVA처럼 작동하는 10.100.203.68IP가 있습니까 ?avs-bgp-vm

하지만 분명히 이는 h&s 토폴로지의 나머지 부분에 대한 표준 스포크 동작과는 다릅니다. 이 단계는 앞으로 필요한 일부 구성 요소를 준비하기 위한 것일 뿐입니다.

Azure Route Server를 통한 AVS 연결에 대한 추가 정보

Azure에서 Azure Route Server를 통한 AVS 연결에 대해 자세히 알아보려면 다음 게시물을 꼭 읽어보세요.

2부 – 결론

두 번째 부분에서는 VPN Gateway에 적용 가능한 새로운 경로 테이블을 구성하여 비대칭 라우팅 문제를 완화하는 방법을 살펴보았고 , Azure Route Server 의 도움으로 Azure VMware Solution 배포 에 BGP 경로를 광고하기 위한 네트워크 구성 요소를 생성했습니다 .

다음 (그리고 아마도 마지막) 부분에서는 이 AVS 전송 토폴로지를 허브 앤 스포크 토폴로지에서 일반 스포크로 구성하는 방법을 살펴보겠습니다. 또한 Azure Route Server를 활용하여 온프레미스 연결 구성을 간소화하는 방법도 다룹니다 .

728x90
728x90

 BGP (Border Gateway Protocol) 란?

 

BGP는 소규모 네트워크 망을 위한 프로토콜이 아닌 대규모 네트워크 망에 적합한 라우팅 프로토콜 입니다. 그리고 OSPF, RIB, EIGRP 와 같은 IGP (Inter Gateway Protocol)는 Fast Convergence에 중점을 두지만 BGP는 Fast Convergence가 아닌 안정성에 더 중점을 두고 맞춰서 설계된 라우팅 프로토콜 입니다.

 

 

 BGP (Border Gateway Protocol) 특징

  • TCP를 이용한 신뢰성 있는 라우팅 업데이트 수행
    - TCP Port 179을 사용하여 Neighbor 사이 신뢰 관계를 맺고, 업데이트가 누락되지 않도록 합니다. 

  • KeepAlive를 이용한 Neighbor 상태 확인
    - KeepAlive를 이용하여 Neighbor의 상태를 확인 합니다. 기본적인 Timer는 Hello TIme 60초, Hold Time 180초 이며 Hold TIme 이내 Hello 메시지가 들어오지 않으면 Neighbor가 죽은 것으로 판단 합니다. 

  • 주기적인 BGP 업데이트 수행
    - iBGP는 5초, eBGP는 30초 간격으로 BGP 업데이트가 수행 됩니다. 라우팅에 변화가 생길 때 마다 업데이트가 발생하게 되면 네트워크 자원소모가 많기 때문에 일정 주기로 업데이트가 수행 됩니다. 업데이트 간격 사이에 발생하는 변화는 반영하지 않고 최종 상태만 업데이트를 수행 합니다. 

  • 최적 경로 선출을 위한 다양한 기준 
    - IGP와 달리 BGP는 최적 경로 선출을 위해 CISCO 기준 11개의 기준이 있으며 해당 값을 비교하여 최적 경로로 선출 된 항목만 라우팅 테이블에 내려 갑니다. 최적 경로로 선출되지 못하더라도 BGP Table에는 존재 합니다.

  • 다양한 경로 속성 (Well-Known속성과 Optional 속성)
    - BGP는 경로 정보 전달 시 다양한 정보를 전달 합니다. 경로 정보에 포함되는 정보는 Well-Known 속성과 Optional 속성이 존재 합니다.  Well-Known 속성은 다시 Mandatory과 Discretionary로 분류 되며 모든 장비에서 지원 합니다. Optional 속성은 전달 가능한 속성 (Transitive Optional Attribute)와 전달 하지 못하는 속성 (Non-Transitive Optional Attribute)로 나뉘며 장비에 따라 지원여부를 확인해 보아야 합니다. 

  • BGP 경로 속성을 이용한 트래픽 조절
    - Local AS에서 외부로 경로를 전송할 때는 다양한 방법(Weight, Local Preference, ETC...)으로 제어가 가능하지만 유입되는 트래픽을 조절 할 수 있는 방법이 AS Path를 추가하는 방법만 존재 합니다. 

  • 인접하지 않아도 BGP Neighbor 관계 수립 가능
    - 다른 라우팅 프로토콜과 달리 BGP는 인접하지 않은 라우터와도 BGP Neighbor 관계를 맺을 수 있습니다. Neighbor를 맺기 위해 사용되는 IP까지 도달할 수 있다면 Neighbor 관계를 맺는데 문제가 없습니다. 

  • 다양한 프로토콜 지원 (MP-BGP)
    - RFC 2858번이 추가 되면서 BGP는 IP 이외 다른 프로토콜들도 지원 할 수 있게 되면서 MP BGP라는 이름으로 얻게 되었습니다. address family identifier (AFI)는 IPv4, IPv6와 관련이 있고, subsequent addressfamily identifier (SAFI)를 이용하여 유니캐스트 또는 멀티캐스트 트래픽 전송이 가능해졌습니다. 

    원래 BGP는 IPv4만 수용 가능했기에 BGP Database Table을 하나만 관리 했으나 AFI 와 SAFI 기능이 추가 되면서 BGP Database는 address family와 sub-address family 기준으로 별도로 생성되고 관리 됩니다. 
728x90
728x90

● BGP (Border Gateway Protocol) Design

 

BGP를 구성하는 방법은 일반적으로 Single-Homing, Dual-Homing, Multi-Homing 3가지를 소개합니다. 시간이 지나며 용어의 변경이 발생하여 Dual-Homing은 모두 Multi-Homing 방법으로 소개 되고 있으며, Single-Homing 방법은 굳이 BGP를 사용할 필요가 없어 소개 되지 않습니다. 

 

Redundancy와 Traffic Handling 목적으로 BGP 세션을 추가로 맺습니다. BGP 세션을 맺는 방법에 따라 4가지의 시나리오를 생각할 수 있습니다.

 

  ○ BGP (Border Gateway Protocol) Multi-Homing Design 종류

 

구성 설명
  ■ Client가 동일한 SP (Service Provider) Router와 eBGP  세션을 맺는 방법 입니다. eBGP Peer가 2개가 생기지만 Best-Path Selection Algorithm에 의해서 하나의 경로만 사용 가능하며 주 목적은 Link Redundancy 입니다. 

■ AS Prepending or MED를 사용하여 유입되는 트래픽을 조절할 수 있습니다. (A, C 트래픽은 Line 1, B,D 트래픽은 Line 2 로 들어오게 조절 가능)

■ 단일 SP Router와 eBGP 세션을 맺기 때문에 Client or SP측 네트워크 장비에 문제가 발생 하거나 내부 네트워크에 문제가 발생 또는 Client Router에 문제가 발생하면 장애가 발생합니다.
  ■ Client가 동일한 SP를 사용하지만 서로 다른 Router와 eBGP 세션을 맺는 방법 입니다. eBGP Peer가 2개가 생기지만 Best-Path Selection Algorithm에 의해서 하나의 경로만 사용 가능하며 주 목적은 Link or Device Redundancy 입니다.

■ AS Prepending or MED를 사용하여 유입되는 트래픽을 조절할 수 있습니다. (A, C 트래픽은 Line 1, B,D 트래픽은 Line 2 로 들어오게 조절 가능)

■ 동일 SP의 다른 라우터와 BGP 세션을 맺기 때문에 장비 장애에 대비할 수 있지만 SP 내부 네트워크에 문제가 발생 또는 Client Router에 문제가 발생하면 장애가 발생합니다.

  ■ Client가 서로 다른 SP와 eBGP 세션을 맺는 방법 입니다. 다른 SP에 연결 되기 때문에 Link & Device Redundancy 효과와 SP내부 네트워크 장애가 발생하더라도 서비스는 유지 됩니다. 

■ 서로 다른 AS로 부터 BGP 정보를 받아오기 때문에 AS Path 기준으로 서로 다른 경로가 선택 될 수 있어 동일 SP에 연결하는 구조보다 더 최적화된 트래픽 관리가 가능 합니다. 

■ Client Router는 단일 장비이기 때문에 단일 실패 지점이 될 수 있으며, Transit Network가 되지 않도록 필터링이 필요 합니다.
  ■ Client Router를 iBGP로 연동하고 서로 다른 SP와 eBGP 연결을 수행 합니다. Link & Device Redundancy 효과와 SP내부 네트워크 장애 그리고 Client Router에 문제가 발생하더라도 서비스는 유지 됩니다. 

■ 가장 일반적으로 사용하는 eBGP를 맺는 방법 입니다. 서로 달느 AS와 연결되기 때문에 Transit Network가 되지 않도록 필터링이 필요 합니다.

 

● BGP Transit Network 

 

Transit Netwok란 고객의 네트워크가 SP 네트워크 처럼 동작되어 다른 네트워크 트래픽이 우리 네트워크를 경유해서 전달되는 것을 의미 합니다. 고객은 SP와 eBGP를 연결할 때 Transit Network가 되지 않도록 네트워크 필터링을 설정 해 주어야 합니다. 

 

 

회사 BGP 네트워크가 위와 같은 환경으로 구성되어 있을 경우 SP3은 10.64.1.0/24 네트워크 정보를 2가지 경로를 통해 학습 합니다. 하나는 SP1 - SP2 - SP4의 경로를 통해 학습하고 다른 하나는 SP4 - AS500을 통해 학습 합니다. BGP 최적 경로 선출 알고리즘에 의해 AS PATH가 짧은 SP4 - AS500 의 경로가 최적 경로로 선출 되고 고객 네트워크인 AS500이 의도치 않게 Transit Network로 동작 하게 됩니다. 

 

Transit Network로 동작하지 않도록 하기 위해 SP와 연결하는 라우터는 필터링을 통해서 Transit Network로 동작하지 않도록 해야 합니다. 일반적으로 SP와 연결 할 때 정규식(Regular Expression)을 이용하여 Local AS만 광고하고 SP로 부터는 BGP 정보를 받지 않는 정책을 가장 많이 사용 합니다.

728x90
728x90

● BGP (Border Gateway Protocol) Types (iBGP & eBGP)

 

BGP Session 관계를 맺는 AS에 따라 iBGP와 eBGP 2가지 타입으로 분류가 되며 서로 다른 특성을 부여 받게 됩니다. 

  • Internal BGP (iBGP)
    - 같은 AS 번호 아래에 있는 라우터와 BGP 관계를 맺거나 같은 BGP Confederation 에 참여하고 라우터와 BGP 관계를 맺을 때 iBGP라고 합니다. iBGP에게 전달 받은 경로의 AD (Administrative Distance)는 200으로 Routing Table에 표기 됩니다. 
  • External BGP (eBGP)
    - 다른 AS 번호에 소속 되어 있는 라우터와 BGP 관계를 맺을 때 eBGP라고 합니다. eBGP에게 전달 받은 경로의 AD는 20으로 Routing Table에 표기 됩니다. 

 

  ○ iBGP

 

같은 AS내에서 BGP 관계가 필요한 이유는 다양한 라우팅 정책이 필요하거나 AS 번호 사이에서 경로 정보를 전달 할 때 누락되지 않아야 하기 때문입니다. 

 

AS 65100과 AS 65300 사이에 위치한 "AS 65200"은 BGP로 전달 받은 경로 정보를 누락없이 전달해야 하기 때문에 BGP 관계를 맺어 전달하는 것이 가장 안전 합니다. R2와 R4는 iBGP 관계를 맺어 eBGP로 받은 경로 정보를 안정적으로 전달 할 수 있습니다. 

 

R3은 BGP Neighbor 관계를 맺고 있지 않기 때문에 외부 AS로 가는 경로를 알지 못합니다. R3이 외부 AS경로를 학습하기 위해서는 BGP 라우터의 재분배를 통해 경로정보를 학습할 수 있지만 유연성이 저해되고, BGP 정책이 누락 되기 때문에 재분배 대신 BGP를  사용하는 것이 일반적 입니다.

 

다만, iBGP는 학습한 경로를 1 HOP 떨어진 iBGP로만 전달 할 수 있는 제약이 있습니다. (R2가 광고하는 외부 경로 정보는 R3까지 전달되고 R4까지 전달 되지 않습니다.) 이런 제약을 극복하기 위해 iBGP Full-Mesh 구조로 구성하거나 RR (Route Reflector)를 구성하여 사용 합니다.

 

 

 

  ○ eBGP

 

서로 다른 AS에 속해 있는 라우터간 Neighbor 관계를 맺으면 eBGP가 됩니다. 외부와 연결되는 eBGP는 iBGP와 비교하여 아래와 같은 차이점이 존재 합니다. 

  • eBGP의 TIme-To-Live (TTL)값은 1이 기본값 입니다. Multi-Hop eBGP Neighbor 관계를 맺기 위해 TTL값을 늘려줘야 합니다. iBGP의 TTL값은 255 입니다.
  • eBGP가 경로를 광고하면 Local AS 번호가 추가 됩니다. eBGP는 수신한 경로 정보에 Local AS 번호가 포함되어 있으면 Routing Loop라고 판단하고 해당 경로정보를 버립니다.
  • eBGP Neighbor 관계를 맺을 때는 물리 인터페이스에 부여된 주소를 사용하고 iBGP Neighbor 관계를 맺을 때는 Loopback 인터페이스 주소를 사용하는 것이 일반적 입니다. 

iBGP와 eBGP 구성을 위한 설정의 근간은 remote-as를 제외하고 크게 다르지 않으나, 세부적으로 Neighbor 관계를 맺기 위한 인터페이스 선정, Next-Hop 문제, TTL, AD, iBGP Update Issue 및 기타등등 등이 존재하기 때문에 이 부분을 고려하여 설정 하여야 합니다.

728x90
728x90

● BGP (Border Gateway Protocol) 최적 경로 선출

 

BGP 최적 경로 선출기준은 IGP 보다 풍부하며 또한 선출 기준에 따라 우선순위가 있습니다. 또한 최적 경로 선택 알고리즘은 AS로 들어오는 트래픽 또는 나가는 트래픽에 영향을 줍니다.

 

 BGP (Border Gateway Protocol) 최적 경로 선출 기준

 

BGP 경로 광고에는 Network Layer Reachability Information (NLRI)와 Path Attributes (PAs)가 포함되어 있습니다. NLRI는 Network Prefix, Network Prefix Length와 AS Path, Origin 같은 정보들로 이루어져 있습니다. BGP Table에는 동일한 목적지에 대해 여러개의 경로가 있으며, 경로에 포함된 속성들이 최적 경로 선출에 영향을 주게 됩니다. 

 

해당 속성들을 이용하여 BGP는 최적 경로를 선출하게 됩니다. 최적 경로 선출에 사용되는 기준은 총 11가지가 있습니다. 우선순위가 높은 기준이 먼저소개 됩니다. (오름차순)

  1. Longest Matching Rule 적용
    - 가장 상세한 경로정보를 우선시 하는 기준으로 최적 경로 선출시 가장 먼저 적용됩니다. 다음과 같이 경로 정보를 수신한다면 192.168.0.0/16 보다 192.168.1.0/24 경로 정보를 우선 시 하게 됩니다. /24보다는 /25 를 더 우선 합니다.

  2. Weight (Cisco Only)
    - Cisco 장비에서만 적용되는 우선순위로 Local BGP 라우터에서 수신한 BGP경로가 다수 있을 때 최적 경로 선출에 사용되는 기준이며, 해당 값은 다른 BGP 라우터에게 전달 되지 않습니다.
    - Weight 값의 범위는 0 부터 65,535 까지이며 Weight 값은 inbound route-map을 통해 설정하거나 특정 Neighbor에게 Weight 값을 설정하여 사용 합니다. 

  3. Local Preference (LOCAL_PREF or LP)
    - Local Preference는 Well-Known Discretionary Path Attribute이며 BGP 업데이트 메시지에 포함되는 속성 입니다. Local Preference는 eBGP에게 전달 되지 않으며 iBGP에서 최적 경로 선출 목적으로 사용 됩니다. 
    - 0부터 4,294,967,295사이의 값을 가질 수 있으며 기본값은 100 입니다. LP 값이 높은 경로가 최적 경로로 선출 됩니다.

  4. Local Originated (Network Statement, Redistribution, Aggregation)
    - 외부 Peer에 의해 BGP 테이블에 삽입된 경로 보다, Locally Router가 Network 명령어를 통해 BGP 테이블에 삽입한 경로를 우선시 합니다. 

  5. AIGP (Accumulated  Interior Gateway Protocol)
    - Accumulated IGP (AIGP) 는 Optional Non-Transitive 경로 속성이며, AS 내부에서만 전달이 되는 값 입니다.IGP의 경로를 BGP에 재분배하고, IGP의 메트릭 값을 이용하여 BGP가 최적 경로 선출에 사용 합니다. AIGP를 BGP Peer에게 전달하기 위해 Route-Map을 사용해야 합니다. 

    다수의 BGP AS를 관리하는 환경에서 사용 가능하며, IGP에 사용되는 IP 주소체계가 겹치지 않고 고유해야 하는 제약사항이 있습니다. 일반적인 엔터프라이즈 환경에서 적합하지 않습니다.

  6. Shortest AS Path
    - 목적지로 향하는 다양한 경로가 존재할 경우, 가장 짧은 AS 길이를 가진 경로를 선호 합니다. BGP에서 AS는 HOP Count와 같으며 짧을 수록 우선순위가 높습니다. 해당 규칙을 이용하여 BGP 트래픽 유입을 제어할 수 있습니다. AS Prepending을 사용하여 AS를 추가할 수 있습니다.

  7. Origin Type
    - Well-known mandatory BGP 속성 입니다. Network 명령어를 통해서 광고한 경로는 IGP or i 의 코드를 받고 재분배 네트워크는 imcomplete or ? 코드를 받습니다. IGP를 더 선호 합니다. 

  8. Lowest MED (Multiple-Exit Discriminator)
    - Optional Non-Transitive 속성이며 32 bit 값 (0 to 4,294,967,295)으로 표현하며 메트릭 이라고 부릅니다. BGP에서 네트워크를 광고 또는 재분배 할 때 IGP 경로 메트릭을 자동으로 설정하며 eBGP에게 경로를 학습할 때 MED값을 전달 받지 못한다면 기본값은 0 입니다. 만약 MED를 eBGP에게 수신한다면 다른 iBGP Peer에게 전달 하지만 다시 eBGP에게 전달하진 않습니다. 

    MED값을 MED 사용의 목적은 다른 Inbound Traffic을 제어하기 위한 목적으로 사용되며 낮은 MED를 더 선호 합니다.

  9. eBGP Over iBGP
    - BGP 경로를 학습하는 방법은 iBGP, eBPG, Confederation AS에게 받는 3가지 방법이 있으며, 이중에서 eBGP Peer에게 받은 경로를 가장 선호 합니다. eBGP > Confederation AS > iBGP 우선순위를 가집니다. 

  10. Lowest IGP Next-Hop Metric
    - BGP Next-Hop 주소의 IGP 메트릭 값이 가장 낮은 것을 선호 합니다. 낮은 것을 선호하는 이유는 Next Hop의 IGP Metric값이 낮으면 Next-Hop까지 더 빨리 도달하기 때문 입니다. 
  11. Oldest Path Prefer eBGP 
    - 상기 조건까지 모두 동일하다면 BGP 테이블에 먼저 학습된 경로를 선호 합니다. 가장 오래된 eBGP 경로이기 때문에 더 안정적이라 판단 합니다. 

  12. Lowest BGP Router ID
    - 가장 낮은 Router ID를 가진 eBGP 라우터를 더 선호합니다. 만약 경로를 Route Reflextor로 부터 받았다면 Router ID 대신 Originator ID를 사용 합니다. 

  13. Minium Cluster list Length
    - The cluster list 는 non-transitive BGP 속성이며 최소 Cluster List 길이를 더 선호 합니다. Route Reflector가 Cluster ID를 Cluster List에 추가하며 Route Reflector는 해당 정보를 이용하여 Routing Loop가 발생하지 않도록 합니다. 

  14. Lowest Neighbor Address
    - BGP Peer가 2개의 물리적인 링크를 통해 Neighbor 관계를 맺을 경우 가장 낮은 Neighbor 주소를 가진 경로를 더 선호 합니다. iBGP Peer 한정으로 적용되는 규칙으로 Neighbor 주소가 가장 낮은 것을 선호 합니다. (eBGP이 경우 오래된 경로를 우선 한다는 규칙이 있어 여기에는 해당 하지 않습니다.)
728x90

+ Recent posts