소개
이 문서에서는 BGP(Border Gateway Protocol)의 AIGP(Accumulated Interior Gateway Protocol) 메트릭 및 사용 사례에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- BGP
- 원활한 MPLS(Multiprotocol Label Switching) 네트워크
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 네트워크가 가동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
배경 정보
이 섹션에서는 AIGP 메트릭의 개요와 그 사용과 관련하여 몇 가지 중요한 고려 사항을 제공합니다.
아시다시피 IGP는 Interior Gateway Protocol의 약자로 단일 관리 도메인 내에서 실행되는 라우팅 프로토콜의 그룹을 나타냅니다. IGP는 메트릭 값을 기반으로 경로 선택 결정을 내립니다.
BGP는 다수의 독립적인 AS(Autonomous Systems)를 통해 라우팅을 제공하도록 설계되었으며, 각 관리 간에 조정이 제한되거나 전혀 이루어지지 않습니다. 메트릭을 사용하여 경로 선택 결정을 내리지 않습니다. 그러나 단일 관리에서 여러 개의 연속 BGP 네트워크를 실행하는 구축이 있습니다. 그러한 경우 IGP처럼 BGP가 메트릭을 기반으로 경로를 선택하는 것이 단일 관리 도메인 내에서 바람직할 수 있습니다.
누적된 내부 게이트웨이 프로토콜 특성
AIGP 메트릭(RFC7311을 통해 정의됨)은 선택적 비전이성 BGP 경로 속성입니다. AIGP 속성의 값 필드는 유형/길이/값 요소(TLVs) 집합으로 정의됩니다. BGP AIGP TLV에는 Accumulated IGP Metric이 포함되어 있습니다.
참고: 선택적 비전이적 특성(예: AIGP)을 지원하지 않는 BGP 라우터는 이러한 특성을 삭제하고 다른 BGP 피어에 전달해서는 안 됩니다. AIGP 메트릭은 완전히 다른 자율 시스템(내부 AS 경계에서만) 간의 전이성을 의도하지 않습니다.
샘플 활용 사례
1. Multi-ASN 네트워크
오늘날에는 여러 가지 이유로 여러 ASN으로 세분화되는 단일 관리 도메인에 속한 네트워크가 많습니다. 여기에는 여러 가지 이유가 있을 수 있습니다.
- IGP 척도
- 한 사업자 네트워크를 다른 네트워크 사업자가 구매했지만 내부에서 BGP ASN을 병합하지 않았습니다
- 비즈니스 부서마다 내부적으로 각기 다른 네트워크를 가지고 있음
- Sub-AS와 BGP 연합
- 원활한 MPLS 등
이러한 네트워크에서 BGP가 IGP 메트릭을 기반으로 결정을 내리도록 허용하면 노드가 서로 다른 두 ASN에 있는 경우에도 BGP가 두 노드 간의 가장 짧은 엔드 투 엔드 경로를 선택할 수 있습니다.
예: 2개의 BGP ASN, ASN 1 및 ASN 2로 세분되는 ABC 네트워크. 이들은 ASBR을 피어링 중이며 링크 IGP 비용은 대역폭을 나타냅니다. 여기서의 목표는 PE11과 PE21 사이에 종단간 최적 경로를 갖는 것이다.
AIGP가 없는 다중 ASN 네트워크
참고:
- Add-path가 RR1/2에서 활성화되어 NH를 PEx로 둘 다 광고한다고 가정합니다.
- 앞서 언급한 시나리오에서 사용된 디바이스는 모두 Cisco IOS-XE에서 실행됩니다.
PE11#sh bgp ipv4 unicast 10.0.21.21/32
BGP routing table entry for 10.0.21.21/32, version 20
Paths: (2 available, best #2, table default)
Not advertised to any peer
Refresh Epoch 3
2
192.168.0.12 (metric 211) from 192.168.11.11 (192.168.11.11)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 192.168.0.12, Cluster list: 192.168.11.11
rx pathid: 0x1, tx pathid: 0
Refresh Epoch 3
2
192.168.0.11 (metric 201) from 192.168.11.11 (192.168.11.11)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 192.168.0.11, Cluster list: 192.168.11.11
rx pathid: 0x0, tx pathid: 0x0
토폴로지에서 AiGP가 활성화되면(PE11, PE32, ASBR1x, ASBR2x, RR1, RR2), PE11은 엔드 투 엔드 IGP 비용이 가장 낮은 경로를 선택합니다.
AIGP를 사용하는 다중 ASN 네트워크
설정
PEx, ASBRx, RRn:
AIGP 기능 구성:
router bgp ASN
neighbor <NBR_IP> aigp
!
참고: BGP 피어링은 이 새로운 기능을 협상하기 위해 삭제 및 재설정(re-establish)합니다. 따라서 유지 관리 창에서 수행하는 것이 좋습니다.
접두사에 대한 AIGP 메트릭을 광고합니다.
PE21:
route-map SET_AIGP permit 10
set aigp-metric igp-metric
!
router bgp 2
address-family {ipv4|ipv6} unicast
network 10.0.21.21 mask 255.255.255.255 route-map SET_AIGP
!
확인
PE11#sh bgp ipv4 unicast 10.0.21.21/32
BGP routing table entry for 10.0.21.21/32, version 21
Paths: (2 available, best #2, table default)
Not advertised to any peer
Refresh Epoch 3
2
192.168.0.11 (metric 201) from 192.168.11.11 (192.168.11.11)
Origin IGP, aigp-metric 501, metric 0, localpref 100, valid, internal
Originator: 192.168.0.11, Cluster list: 192.168.11.11
rx pathid: 0x1, tx pathid: 0
Refresh Epoch 3
2
192.168.0.12 (metric 211) from 192.168.11.11 (192.168.11.11)
Origin IGP, aigp-metric 201, metric 0, localpref 100, valid, internal, best
Originator: 192.168.0.12, Cluster list: 192.168.11.11
rx pathid: 0x0, tx pathid: 0x0
2. 원활한 MPLS(단일 ASN)
대규모 통신 사업자 코어 네트워크에서는 일반적으로 전송 네트워크가 서로 다른 IGP 도메인으로 세분화되고 BGP Labeled Unicast를 사용하여 함께 스티칭되어 엔드 투 엔드 LSP(Labeled Switched Path)를 제공합니다. 보더 라우터는 BGP LU AF에서 NHS(Next Hop Self)를 수행합니다.
IGP/LDP는 로컬 영역/도메인에서만 접두사/레이블 정보를 전달합니다. 그런 다음 BGP는 영역 경계에서 경로를 BGP로 재배포하여 모든 원격 영역/도메인에 접두사/레이블을 전달합니다. 그런 다음 경로/레이블은 LSP를 사용하여 광고됩니다. 경로의 다음 홉은 각 ABR에서 로컬 라우터로 변경되므로 영역/도메인 경계를 넘어 IGP 경로를 유출할 필요가 없습니다.
이 토폴로지 다이어그램에는 2개의 IGP 도메인(CORE 및 Access-1)으로 구분되는 단일 BGP 도메인이 있습니다. 각 링크 옆에 표시된 숫자는 해당 링크의 IGP 비용/메트릭을 나타냅니다.
AIGP가 없는 원활한 MPLS 네트워크
과제: PS-Core에서 eNB/gNB(CSR15에 연결됨)로의 하향 트래픽이 eNB/gNB(CSR15에 연결됨)에서 PS-Core로의 상향 트래픽에 비해 비대칭 하위 최적 경로를 취하고 있으며, 이는 모빌리티 트래픽의 레이턴시 문제를 야기합니다.
관찰
- 동일한 어그리게이션 라우터가 여러 액세스 도메인(예: 앞서 언급한 이미지의 AGG102)에 대한 공통 보더 라우터의 역할을 하는 지리적 보더 시나리오에서 주로 관찰됩니다.
- 상향 트래픽의 경우 CSR(Cell-Site Router) 라우터가 가장 가까운 보더 라우터를 선택합니다. 예를 들어, CSR15는 AGG102를 NextHop으로 선택합니다.
- 하향 트래픽의 경우 SAR(Service Aggregation Router)도 가장 가까운 경계 라우터를 선택합니다. 예를 들어, SAR150은 AGG101을 선택합니다(cost 180 < 200).
디바이스 로그 - 초기
업스트림 트래픽 - CSR15에서 SAR150으로
RP/0/0/CPU0:CSR15#traceroute mpls ipv4 10.0.2.150/32 so 10.0.2.15
Tracing MPLS Label Switched Path to 10.0.2.150/32, timeout is 2 seconds
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
0 10.15.102.15 MRU 1500 [Labels: explicit-null/16150 Exp: 0/0]
L 1 10.15.102.102 MRU 1500 [Labels: 16150 Exp: 0] 0 ms !!!! AGG102
. 2 * !!!! P112 does not have a route to CSR15
! 3 10.112.150.150 20 ms !!!! SAR150
다운스트림 트래픽 - SAR150에서 CSR15로
RP/0/0/CPU0:SAR150#traceroute mpls ipv4 10.0.2.15/32 source 10.0.2.150
Tracing MPLS Label Switched Path to 10.0.2.15/32, timeout is 2 seconds
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
0 10.101.150.150 MRU 1500 [Labels: explicit-null/16015 Exp: 0/0]
L 1 10.101.150.101 MRU 1500 [Labels: 16015 Exp: 0] 10 ms !!! AGG101
L 2 10.11.101.11 MRU 1500 [Labels: 16015 Exp: 0] 10 ms !!! CSR11
L 3 10.11.12.12 MRU 1500 [Labels: 16015 Exp: 0] 10 ms !!! CSR12
L 4 10.12.13.13 MRU 1500 [Labels: 16015 Exp: 0] 20 ms !!! CSR13
L 5 10.13.14.14 MRU 1500 [Labels: explicit-null Exp: 0] 30 ms !!! CSR14
! 6 10.14.15.15 30 ms !!! CSR15
AIGP 솔루션
여기서의 목표는 SAR 라우터와 CSR 라우터 간에 엔드 투 엔드 최적 경로를 제공하는 것입니다. BGP Labeled Unicast(RFC 3107)는 SAR에서 CSR 라우터까지의 거리를 계산하는 데 사용됩니다. 각 코어 링크에서 사용 가능한 대역폭은 IGP 비용에 매핑되므로 BGP는 각 PE 간에 이 비용을 올바르게 전달해야 합니다. 이 기능은 AiGP를 사용하여 구현됩니다.
AIGP를 통한 원활한 MPLS 네트워크AIGP를 통한 원활한 MPLS 네트워크
참고:
- Add-path가 RR1/2, AGG, CSR 및 SAR 디바이스에서 활성화되어 NH를 모두 광고한다고 가정합니다.
- 앞서 언급한 시나리오에서 사용되는 모든 디바이스는 Cisco IOS-XR 기반 디바이스입니다.
설정
AiGP 경로 특성 기능은 BGP 피어 간에 동의해야 합니다. AiGP 메트릭은 AiGP 지원 피어 간의 접두사 광고에만 포함됩니다. AIGP 기능은 개별 BGP 피어 및 특정 BGP 주소군에 대해 구성됩니다.
router bgp ASN
neighbor <NBR_IP>
address-family ipv4 unicast
aigp [disable]
AIGP 메트릭은 32비트(0~4,294,967,295) 값입니다. 재배포 중, 네트워크 명령문을 통한 경로 생성 중 또는 경로 맵/경로 정책 접두사 수신 중에 설정할 수 있습니다.
route-policy AIGP_POLICY
set aigp-metric igp-cost
end-policy
!
router bgp ASN
address-family {ipv4|ipv6} unicast
network <NETWORK/MASK> route-policy AIGP_POLICY
or
redistribute {ospf|isis} {process-id} route-policy AIGP_POLICY metric VALUE
!
참고:
- 재배포된 경로의 경우 AiGP 특성에 할당된 값은 경로에 대한 iGP next hop의 값 또는 경로 정책에 의해 설정된 값입니다.
- BGP로 재배포된 고정 경로의 경우 할당된 값은 경로에 대한 다음 홉 값 또는 경로 정책에 의해 설정된 값입니다.
- 경로는 network 문을 통해 BGP로 가져옵니다. 할당된 값은 경로에 대한 다음 홉 값 또는 경로 정책에 의해 설정된 값입니다.
샘플 설정
CSR15:
! Additional config lines related to AIGP are marked in RED color
route-policy SID($SID)
set label-index $SID
set aigp-metric igp-cost
end-policy
!
router bgp 1
address-family ipv4 unicast
network 10.0.2.15/32 route-policy SID(15)
neighbor-group RR
address-family ipv4 labeled-unicast
aigp
!
!
!
참고: 모든 해당 BGP 피어링 디바이스에서 유사한 컨피그레이션이 수행되었습니다.
디바이스 로그 - AIGP 구현 후
다운스트림 트래픽 - SAR150에서 CSR15로
RP/0/0/CPU0:SAR150#sh bgp ipv4 labeled-unicast 10.0.2.15/32
BGP routing table entry for 10.0.2.15/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 411 411
Local Label: 16015
Last Modified: Oct 24 11:05:26.796 for 00:00:04
Paths: (2 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
Local
10.0.2.102 (metric 200) from 10.0.2.100 (10.0.2.15)
Received Label 16015
Origin IGP, metric 0, localpref 100, aigp metric 20, valid, internal, best, group-best, labeled-unicast
Received Path ID 1, Local Path ID 1, version 410
Originator: 10.0.2.15, Cluster list: 10.0.2.100, 10.0.2.102
Total AIGP metric 220
Label-Index: 15
Path #2: Received by speaker 0
Not advertised to any peer
Local
10.0.2.101 (metric 180) from 10.0.2.100 (10.0.2.15)
Received Label 16015
Origin IGP, metric 0, localpref 100, aigp metric 60, valid, internal, backup, add-path, labeled-unicast
Received Path ID 8, Local Path ID 7, version 411
Originator: 10.0.2.15, Cluster list: 10.0.2.100, 10.0.2.101
Total AIGP metric 240
Label-Index: 15
RP/0/0/CPU0:SAR150#traceroute mpls ipv4 10.0.2.15/32 so 10.0.2.150
Tracing MPLS Label Switched Path to 10.0.2.15/32, timeout is 2 seconds
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
0 10.112.150.150 MRU 1500 [Labels: 16102/16015 Exp: 0/0]
L 1 10.112.150.112 MRU 1500 [Labels: explicit-null/16015 Exp: 0/0] 10 ms !!! P112
L 2 10.102.112.102 MRU 1500 [Labels: explicit-null Exp: 0] 10 ms !!! AGG102
! 3 10.15.102.15 20 ms !!! CSR15
업스트림 트래픽 - CSR15에서 SAR150으로
RP/0/0/CPU0:CSR15#traceroute mpls ipv4 10.0.2.150/32 source 10.0.2.15
Tracing MPLS Label Switched Path to 10.0.2.150/32, timeout is 2 seconds
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
0 10.15.102.15 MRU 1500 [Labels: explicit-null/16150 Exp: 0/0]
L 1 10.15.102.102 MRU 1500 [Labels: 16150 Exp: 0] 10 ms !!! AGG102
. 2 * !!! P112 does not have a route to CSR15
! 3 10.112.150.150 30 ms !!! SAR150
고려할 사항
- IGP 비용이 변경되면(예: 링크 끊김 등으로 인한 물리적 토폴로지 변경) BGP도 그에 따라 변경됩니다. 이로 인해 BGP 경로 이탈이 발생할 수 있습니다. 이 컨버전스는 또한 중요하지 않은 이벤트에 대해 구성된 BGP Next Hop Trigger 지연 값에 따라 달라집니다.
- AiGP를 도입함으로써 BGP의 최적 경로 선택이 수정된다. BGP 로컬 기본 설정 뒤와 AS_PATH 특성 앞에 BGP AIGP를 넣습니다. 따라서 앞에 AS_PATH에 대한 기존 정책이 있는 경우 해당 정책을 다시 검토해야 할 수 있습니다.
- AIGP 메트릭이 있는 경로와 없는 경로가 둘 있으면 BGP는 항상 AIGP 메트릭이 있는 경로를 선호합니다.
AIGP 무시
BGP(Border Gateway Protocol)를 실행 중인 디바이스는 한 경로에 AIGP 메트릭이 없는 경우 두 경로 간의 최적 경로 선택 프로세스 중에 AIGP 메트릭을 무시하도록 구성할 수도 있습니다. 라우터 컨피그레이션bgp bestpath aigp ignore 모드에서 명령 사용 디바이스를 기본 작업으로 되돌리려면 이 명령의 no 형식을 사용합니다.
[no] bgp bestpath aigp ignore
기본적으로 BGP는 항상 AIGP 메트릭이 있는 경로를 선호합니다. AIGP 메트릭이 있는 경로와 없는 경로가 있는 경우 명령을 실행하면 BGP에서 bgp bestpath aigp ignore AIGP 메트릭이 없는 것처럼 최상의 경로 계산을 수행합니다.
결론
BGP AIGP 특성은 특정 틈새 사용 사례를 해결하기 위해 개발되었지만 신중하게 사용해야 합니다.
관련 정보