BGP (Border Gateway Protocol) 최적 경로 선출 - AIGP, AS-PATH
● BGP 최적 경로 선출 - AIGP (Accumulated Interior Gateway Protocol) 소개
Accumulated Interior Gateway Protocol (AIGP)는 optional non-transitive path 속성이고 AS내에서 광고할 때 포함되는 정보 입니다. 일반적으로 BGP는 확장성 문제 및 개별 AS에서 최적 경로 선출을 위해 다른 라우팅 정책을 사용하기 때문에 메트릭은 최적경로 선출에서 우선순위가 낮습니다.
AIGP는 여러개의 AS를 사용하고 각각의 AS 영역에서 유일한 IGP 라우팅을 사용하는 환경일 경우 BGP에게 개념적으로 경로 메트릭을 계산할 수 있는 방법을 제공 합니다. BGP는 AIGP를 사용하여 경로 메트릭 기반으로 라우팅 결정을 할 수 있는 능력을 제공 합니다.
일반적으로 회사는 하나의 AS 번호를 부여받아 관리합니다. 하지만 아래와 같은 경우 하나의 회사이지만 여러개의 AS를 운영/관리 할 수 있습니다.
- 네트워크 규모가 커서 IGP만으로 관리 할 수 없는 경우
- IGP로 수행할 수 없는 특별한 라우팅 정책이 필요한 경우
- 회사 인수/합병으로 인해 AS가 추가 될 경우
- BGP Confederation을 사용하는 경우
- seamless MPLS를 사용하는 경우
● AIGP (Accumulated Interior Gateway Protocol) 사용이 필요한 경우
일반적으로 3개의 AS에서 기본적인 BGP 구성을 통해 네트워크를 광고할 경우 AS1에서 AS3의 네트워크에 도달하기 위해 AS1에서 AS3의 경로로 바로 트래픽이 전달 됩니다. 이는 Shortest Path 기준에 의해 최적경로가 선출 되기 때문 입니다. 하지만 AS1과 AS3이 연결되는 라우터의 IGP 메트릭이 다른 구간 보다 높기 때문에 (링크 속도가 낮음) 결과적으로 Sub Optimal Paht가 됩니다. AS1에서 AS3으로 가기위한 Optimal Path는 AS1 - AS2 - AS3의 경로로 트래픽이 이동하는 것 입니다.
AIGP를 활성화 시키면 BGP 최적경로 선출 알고리즘은 Shotrest Path & MED 보다 AIGP Metric를 최적 경로 선출 알고리즘 상위 우선순위에 위치시키며 이를 활용 합니다.
● Default BGP vs AIGP (Accumulated Interior Gateway Protocol)
기본 BGP 설정 사용과 AIGP를 적용 테스트를 통해 각각의 환경에서 최적경로가 선출되는 구성을 확인하고 AIGP 설정 방법을 확인 합니다.
○ 공통 설정
- AS123
- R1 Loopback address 1.1.1.1/32 BGP 광고 및 OSPF 광고
- R1 - R2 - R3 OSPF 광고 및 COST 값 조정
- R2 - R4 eBGP 구성, R3 - R5 eBGP 구성, iBGP 설정 시 next-hop-self 옵션 설정 - AS456
- R6 6.6.6.6/32 BGP 광고 및 OSPF 광고
- R4 - R5 - R6 OSPF 광고 및 COST 값 조정
- R2 - R4 eBGP 구성, R3 - R5 eBGP 구성, iBGP 설정 시 next-hop-self 옵션 설정
○ Default BGP 사용 시 최적경로 선출
R1#show ip bgp 6.6.6.6
BGP routing table entry for 6.6.6.6/32, version 3
Paths: (2 available, best #2, table default)
Flag: 0x100
Not advertised to any peer
Refresh Epoch 1
456
3.3.3.3 (metric 40) from 3.3.3.3 (3.3.3.3)
Origin IGP, metric 0, localpref 100, valid, internal
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
456
2.2.2.2 (metric 20) from 2.2.2.2 (2.2.2.2)
Origin IGP, metric 0, localpref 100, valid, internal, best (베스트)
rx pathid: 0, tx pathid: 0x0
R1 BGP 테이블에서 6.6.6.6 조회 시 R2를 Best로 선출하여 트래픽은 R1 - R2 - R4 - R6으로 전달 됩니다. 하지만 AS456 입장에서 6.6.6.6/32 까지의 Metric을 확인 하면 R4보다 R5가 더 낮은 메트릭을 가지지만 전체적인 구성에서 메트릭을 확인 하면 R4를 통하는 것이 최적 경로 입니다.
- R2를 통해 전달 할 경우: 10 + 20 + 10 = 40 (전체 메트릭, AS123 BEST)
- R3을 통해 전달 할 경우: 30 + 10 + 10 = 50 (전체 메트릭)
R6#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 4
Paths: (2 available, best #1, table default)
Flag: 0x100
Not advertised to any peer
Refresh Epoch 1
123
5.5.5.5 (metric 20) from 5.5.5.5 (5.5.5.5)
Origin IGP, metric 0, localpref 100, valid, internal, best (베스트)
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
123
4.4.4.4 (metric 30) from 4.4.4.4 (4.4.4.4)
Origin IGP, metric 0, localpref 100, valid, internal
rx pathid: 0, tx pathid: 0
R6 BGP 테이블에서 1.1.1.1 조회 시 R5를 Best로 선출하여 트래픽은 R6 - R5 - R2 - R1으로 전달 됩니다. R5가 Best로 선출된 이유는 Next-Hop까지의 Metric을 비교했을 경우 R4보다 R5가 Metric이 낮기 때문에 선출되었습니다. 개별 AS에서는 최적 경로를 선출 했지만 결과적으로 Sub-Optimal Path 경로로 트래픽이 전달 됩니다.
- R4를 통해 전달 할 경우: 10 + 20 + 10 = 40 (전체 메트릭)
- R5을 통해 전달 할 경우: 30 + 10 + 10 = 50 (전체 메트릭, AS456 BEST)
○ AIGP 사용 시 최적경로 선출
R1#show ip bgp 6.6.6.6
BGP routing table entry for 6.6.6.6/32, version 5
Paths: (2 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 2
456
2.2.2.2 (metric 20) from 2.2.2.2 (2.2.2.2)
Origin IGP, aigp-metric 30, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 2
456
3.3.3.3 (metric 40) from 3.3.3.3 (3.3.3.3)
Origin IGP, aigp-metric 20, metric 0, localpref 100, valid, internal
rx pathid: 0, tx pathid: 0
R1 BGP 테이블에서 6.6.6.6/32 조회하면 R2를 BEST로 선출한 것을 확인 할 수 있다. 세부적인 정보를 보면 Next-Hop까지 가지위한 Metric 20과 AIGP-Metric 30 (R4 to R6's 6.6.6.6 까지 도달하기 위한 Metric)을 확인 할 수 있다.
R6#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 5
Paths: (2 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 2
123
4.4.4.4 (metric 30) from 4.4.4.4 (4.4.4.4)
Origin IGP, aigp-metric 20, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 2
123
5.5.5.5 (metric 20) from 5.5.5.5 (5.5.5.5)
Origin IGP, aigp-metric 40, metric 0, localpref 100, valid, internal
rx pathid: 0, tx pathid: 0
R6 BGP 테이블에서 1.1.1.1/32 조회하면 R4를 BEST로 선출한 것을 확인 할 수 있다. 세부적인 정보를 보면 Next-Hop까지 가지위한 Metric 30과 AIGP-Metric 20 (R2 to R1's 1.1.1.1 까지 도달하기 위한 Metric)을 확인 할 수 있다.
BGP AIGP 속성을 이용하여 IGP처럼 Metric 정보를 활용하여 최적경로 선출을 수행 할 수 있다는 것을 확인하였다. 기존 BGP 최적경로 알고리즘을 통해서 트래픽 제어가 가능하지만 네트워크 관리자가 여러 AS를 관리하고 연동 해야 한다면 AIGP를 사용을 고려해볼만 하다.
● AIGP (Accumulated Interior Gateway Protocol) 설정 방법
hostname R1
router bgp 123
network 1.1.1.1 mask 255.255.255.255
neighbor 2.2.2.2 remote-as 123
neighbor 2.2.2.2 update-source Loopback0
neighbor 2.2.2.2 aigp
neighbor 2.2.2.2 route-map AIGP out
neighbor 3.3.3.3 remote-as 123
neighbor 3.3.3.3 update-source Loopback0
neighbor 3.3.3.3 aigp
neighbor 3.3.3.3 route-map AIGP out
!
ip access-list standard R1_L0
permit 1.1.1.1
!
route-map AIGP permit 10
match ip address R1_L0
set aigp-metric igp-metric
!
end
hostname R2
router bgp 123
neighbor 1.1.1.1 remote-as 123
neighbor 1.1.1.1 update-source Loopback0
neighbor 1.1.1.1 aigp
neighbor 1.1.1.1 next-hop-self
neighbor 3.3.3.3 remote-as 123
neighbor 3.3.3.3 update-source Loopback0
neighbor 3.3.3.3 aigp
neighbor 3.3.3.3 next-hop-self
neighbor 192.168.24.4 remote-as 456
neighbor 192.168.24.4 aigp
나머지 설정은 R1, R2 참조
● AIGP (Accumulated Interior Gateway Protocol) 결론
BGP가 AIGP 속성을 사용하면 IGP처럼 Metric 기반으로 최적 경로를 선출 할 수 있게 됩니다. 기존의 방식은 하나의 AS에서 최적경로 선출을 위해 정책을 수립했다면 AIGP는 다수의 AS를 통합 관리하는 목적으로 네트워크 전체를 위해 최적경로 선출을 할 수 있습니다.
AS Prepending이나 MED와 같은 방법을 사용해도 되지만 AIGP를 사용하게 되면 복잡도가 감소하기 때문에 관리의 편의성을 취할 수 있습니다.
AIGP를 사용하기 위해서 각각의 AS는 동일한 IGP를 사용해야 합니다. 서로 다른 IGP를 사용하게 되면 예상치 못한 경로로 트래픽이 전달 될 수 있기 때문 입니다.