이 문서에서는 Cisco IOS®에서 PE(Provider Edge)와 CE(Customer Edge) 간 iBGP(Internal Border Gateway Protocol)가 구현되는 방법에 대해 설명합니다.
새로운 iBGP PE-CE 기능이 지원되기 전까지는 PE와 CE 간의 iBGP(따라서 PE 라우터의 VRF(Virtual Routing and Forwarding) 인터페이스에서)가 공식적으로 지원되지 않았습니다.한 가지 예외는 VRF-Lite(Multi-VRF CE) 설정의 VRF 인터페이스에서 iBGP입니다.이 기능을 구축하려는 동기는 다음과 같습니다.
이 기능을 사용하면 VRF 사이트의 ASN이 SP 코어와 같을 수 있습니다.그러나 VRF 사이트의 ASN이 SP 코어의 ASN과 다른 경우 AS(Local-Autonomous System) 기능을 사용하여 동일하게 표시될 수 있습니다.
이 기능을 작동시키기 위한 두 가지 주요 부분은 다음과 같습니다.
새 ATTR_SET 속성을 사용하면 SP에서 고객의 모든 BGP 속성을 투명하게 전달할 수 있으며 SP 속성 및 BGP 정책을 방해하지 않습니다.이러한 특성은 클러스터 목록, 로컬 환경 설정, 커뮤니티 등입니다.
ATTR_SET는 SP 고객의 VPN BGP 특성을 전달하기 위해 사용되는 새로운 BGP 속성입니다.선택적 전이적 특성입니다.이 특성에서는 MP_REACH 및 MP_UNREACH 특성을 제외한 BGP 업데이트 메시지의 모든 고객 BGP 특성을 전달할 수 있습니다.
ATTR_SET 속성의 형식은 다음과 같습니다.
+------------------------------+
| Attr Flags (O|T) Code = 128 |
+------------------------------+
| Attr. Length (1 or 2 octets) |
+------------------------------+
| Origin AS (4 octets) |
+------------------------------+
| Path Attributes (variable) |
+------------------------------+
특성 플래그는 일반 BGP 특성 플래그입니다(RFC 4271 참조). 특성 길이는 특성 길이가 1 또는 28진인지 여부를 나타냅니다.원본 AS 필드의 목적은 AS_PATH를 적절하게 조작하지 않고 한 AS에서 시작된 한 경로의 누수를 다른 AS로 유출하는 것을 방지하기 위한 것입니다.가변 길이 Path Attributes 필드는 SP 코어를 통해 전달되어야 하는 VPN BGP 특성을 전달합니다.
이그레스 PE 라우터에서 VPN BGP 특성이 이 특성으로 푸시됩니다.인그레스 PE 라우터에서 이러한 특성은 BGP 접두사를 CE 라우터로 보내기 전에 특성에서 팝업됩니다.이 특성은 SP 네트워크와 고객 VPN 간에 BGP 특성을 격리하고 그 반대의 경우도 제공합니다.예를 들어 VPN 네트워크 내에서 SP 경로 리플렉션 클러스터 목록 특성이 표시되지 않고 고려됩니다.또한 SP 네트워크 내에서 VPN 경로 리플렉션 클러스터 목록 특성이 표시되지 않고 고려됩니다.
SP 네트워크를 통해 고객 BGP 접두사를 전달하는 방법을 보려면 그림 1을 참조하십시오.
그림 1
CE1 및 CE2는 SP 네트워크와 동일한 AS에 있습니다.65000. PE1에는 CE1에 대해 구성된 iBGP가 있습니다. PE1은 SP 네트워크의 RR에 접두사 10.100.1.1/32의 경로를 반영합니다.RR은 PE 라우터에 대한 iBGP 경로를 평소와 같이 반영합니다.PE2는 CE2를 향한 경로를 반영합니다.
이 작업이 제대로 작동하려면 다음을 수행해야 합니다.
그림 1을 참조하십시오.
다음은 PE1 및 PE2에 필요한 컨피그레이션입니다.
PE1
vrf definition customer1
rd 65000:1
route-target export 1:1
route-target import 1:1
!
address-family ipv4
exit-address-family
router bgp 65000
bgp log-neighbor-changes
neighbor 192.168.100.3 remote-as 65000
neighbor 192.168.100.3 update-source Loopback0
!
address-family vpnv4
neighbor 192.168.100.3 activate
neighbor 192.168.100.3 send-community extended
exit-address-family
!
address-family ipv4 vrf customer1
neighbor 10.1.1.4 remote-as 65000
neighbor 10.1.1.4 activate
neighbor 10.1.1.4 internal-vpn-client
neighbor 10.1.1.4 route-reflector-client
neighbor 10.1.1.4 next-hop-self
exit-address-family
PE2
vrf definition customer1
rd 65000:2
route-target export 1:1
route-target import 1:1
!
address-family ipv4
exit-address-family
router bgp 65000
bgp log-neighbor-changes
neighbor 192.168.100.3 remote-as 65000
neighbor 192.168.100.3 update-source Loopback0
!
address-family vpnv4
neighbor 192.168.100.3 activate
neighbor 192.168.100.3 send-community extended
exit-address-family
!
address-family ipv4 vrf customer1
neighbor 10.1.2.5 remote-as 65000
neighbor 10.1.2.5 activate
neighbor 10.1.2.5 internal-vpn-client
neighbor 10.1.2.5 route-reflector-client
neighbor 10.1.2.5 next-hop-self
exit-address-family
이 기능을 작동시키기 위한 새로운 명령은 neighbor <internal-CE> internal-vpn-client입니다.CE 라우터에 대한 iBGP 세션에 대해서만 PE 라우터에서 구성해야 합니다.
그림 1을 참조하십시오.
CE1에서 광고하는 접두사입니다.
CE1#show bgp ipv4 unicast 10.100.1.1/32
BGP routing table entry for 10.100.1.1/32, version 2
Paths: (1 available, best #1, table default)
Advertised to update-groups:
4
Refresh Epoch 1
Local
0.0.0.0 from 0.0.0.0 (10.100.1.1)
Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
rx pathid: 0, tx pathid: 0x0
PE1은 CE1에서 BGP 접두사 10.100.1.1/32을 수신하면 이를 두 번 저장합니다.
PE1#show bgp vpnv4 unicast all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 21
Paths: (2 available, best #1, table customer1)
Advertised to update-groups:
5
Refresh Epoch 1
Local, (Received from ibgp-pece RR-client)
10.1.1.4 (via vrf customer1) from 10.1.1.4 (10.100.1.1)
Origin IGP, metric 0, localpref 200, valid, internal, best
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
Local, (Received from ibgp-pece RR-client), (ibgp sourced)
10.1.1.4 (via vrf customer1) from 10.1.1.4 (10.100.1.1)
Origin IGP, localpref 100, valid, internal
Extended Community: RT:1:1
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0
첫 번째 경로는 CE1에서 수신되므로 PE1의 실제 경로입니다.
두 번째 경로는 RR/PE 라우터에 광고되는 경로입니다.IBGP 소싱으로 표시됩니다.여기에는 ATTR_SET 속성이 포함됩니다.이 경로에 하나 이상의 RT(Route Targets)가 연결되어 있습니다.
PE1은 다음과 같이 접두사를 광고합니다.
PE1#show bgp vpnv4 unicast all neighbors 192.168.100.3 advertised-routes
BGP table version is 7, local router ID is 192.168.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 65000:1 (default for vrf customer1)
*>i 10.100.1.1/32 10.1.1.4 0 200 0 i
Total number of prefixes 1
RR에서 경로를 확인하는 방법은 다음과 같습니다.
RR#show bgp vpnv4 un all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 10
Paths: (1 available, best #1, no table)
Advertised to update-groups:
3
Refresh Epoch 1
Local, (Received from a RR-client)
192.168.100.1 (metric 11) (via default) from 192.168.100.1 (192.168.100.1)
Origin IGP, localpref 100, valid, internal, best
Extended Community: RT:1:1
Originator: 10.100.1.1, Cluster list: 192.168.100.1
ATTR_SET Attribute:
Originator AS 65000
Origin IGP
Aspath
Med 0
LocalPref 200
Cluster list
192.168.100.1,
Originator 10.100.1.1
mpls labels in/out nolabel/18
rx pathid: 0, tx pathid: 0x0
코어에 있는 이 VPNv4 유니캐스트 접두사의 로컬 기본 설정은 100입니다. ATTR_SET에서 원래 로컬 환경 설정인 200이 저장됩니다.그러나 이는 SP 코어의 RR에 영향을 주지 않습니다.
PE2에서는 다음과 같이 접두사가 표시됩니다.
PE2#show bgp vpnv4 unicast all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 5
Paths: (1 available, best #1, no table)
Not advertised to any peer
Refresh Epoch 2
Local
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, localpref 100, valid, internal, best
Extended Community: RT:1:1
Originator: 10.100.1.1, Cluster list: 192.168.100.3, 192.168.100.1
ATTR_SET Attribute:
Originator AS 65000
Origin IGP
Aspath
Med 0
LocalPref 200
Cluster list
192.168.100.1,
Originator 10.100.1.1
mpls labels in/out nolabel/18
rx pathid: 0, tx pathid: 0x0
BGP routing table entry for 65000:2:10.100.1.1/32, version 6
Paths: (1 available, best #1, table customer1)
Advertised to update-groups:
1
Refresh Epoch 2
Local, imported path from 65000:1:10.100.1.1/32 (global)
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator AS(ibgp-pece): 65000
Originator: 10.100.1.1, Cluster list: 192.168.100.1
mpls labels in/out nolabel/18
rx pathid:0, tx pathid: 0x0
첫 번째 경로는 ATTR_SET와 함께 RR에서 받은 경로입니다.RD는 원래 RD인 65000:1입니다.두 번째 경로는 RD 65000:1이 있는 VRF 테이블에서 가져온 경로입니다. ATTR_SET이 제거되었습니다.
다음은 CE2에서 볼 수 있는 경로입니다.
CE2#show bgp ipv4 unicast 10.100.1.1/32
BGP routing table entry for 10.100.1.1/32, version 10
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
Local
10.1.2.2 from 10.1.2.2 (192.168.100.2)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator: 10.100.1.1, Cluster list: 192.168.100.2, 192.168.100.1
rx pathid: 0, tx pathid: 0x0
next-hop은 10.1.2.2(PE2)입니다. 클러스터 목록에는 라우터 PE1 및 PE2가 포함되어 있습니다. 이러한 RR은 VPN 내에서 중요합니다.SP RR(10.100.1.3)이 클러스터 목록에 없습니다.
로컬 환경 설정 200은 SP 네트워크 전반의 VPN 내부에서 보존됩니다.
debug bgp vpnv4 unicast updates 명령은 SP 네트워크에서 전파된 업데이트를 표시합니다.
PE1#
BGP(4): Revise route installing 1 of 1 routes for 10.100.1.1/32 -> 10.1.1.4
(customer1) to customer1 IP table
BGP(4): 192.168.100.3 NEXT_HOP changed SELF for ibgp rr-client pe-ce net
65000:1:10.100.1.1/32,
BGP(4): 192.168.100.3 Net 65000:1:10.100.1.1/32 from ibgp-pece 10.1.1.4 format
ATTR_SET
BGP(4): (base) 192.168.100.3 send UPDATE (format) 65000:1:10.100.1.1/32, next
192.168.100.1, label 16, metric 0, path Local, extended community RT:1:1
BGP: 192.168.100.3 Next hop is our own address 192.168.100.1
BGP: 192.168.100.3 Route Reflector cluster loop; Received cluster-id 192.168.100.1
BGP: 192.168.100.3 RR in same cluster. Reflected update dropped
RR#
BGP(4): 192.168.100.1 rcvd UPDATE w/ attr: nexthop 192.168.100.1, origin i, localpref
100, originator 10.100.1.1, clusterlist 192.168.100.1, extended community RT:1:1,
[ATTR_SET attribute: originator AS 65000, origin IGP, aspath , med 0, localpref 200,
cluster list 192.168.100.1 , originator 10.100.1.1]
BGP(4): 192.168.100.1 rcvd 65000:1:10.100.1.1/32, label 16
RT address family is not configured. Can't create RTC route
BGP(4): (base) 192.168.100.1 send UPDATE (format) 65000:1:10.100.1.1/32, next
192.168.100.1, label 16, metric 0, path Local, extended community RT:1:1
PE2#
BGP(4): 192.168.100.3 rcvd UPDATE w/ attr: nexthop 192.168.100.1, origin i, localpref
100, originator 10.100.1.1, clusterlist 192.168.100.3 192.168.100.1, extended community
RT:1:1, [ATTR_SET attribute: originator AS 65000, origin IGP, aspath , med 0, localpref
200, cluster list 192.168.100.1 , originator 10.100.1.1]
BGP(4): 192.168.100.3 rcvd 65000:1:10.100.1.1/32, label 16
RT address family is not configured. Can't create RTC route
BGP(4): Revise route installing 1 of 1 routes for 10.100.1.1/32 -> 192.168.100.1
(customer1) to customer1 IP table
BGP(4): 10.1.2.5 NEXT_HOP is set to self for net 65000:2:10.100.1.1/32,
PE2# debug bgp vpnv4 unicast updates detail
BGP updates debugging is on with detail for address family: VPNv4 Unicast
PE2#
BGP(4): 192.168.100.3 rcvd UPDATE w/ attr: nexthop 192.168.100.1, origin i,
localpref 100, originator 10.100.1.1, clusterlist 192.168.100.3 192.168.100.1,
extended community RT:1:1, [ATTR_SET attribute: originator AS 65000, origin IGP,
aspath , med 0, localpref 200, cluster list 192.168.100.1 , originator 10.100.1.1]
BGP(4): 192.168.100.3 rcvd 65000:1:10.100.1.1/32, label 17
RT address family is not configured. Can't create RTC route
BGP: 192.168.100.3 rcv update length 125
BGP: 192.168.100.3 rcv update dump: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
0090 0200 00
PE2#00 7980 0E21 0001 800C 0000 0000 0000 0000 C0A8 6401 0078 0001 1100 00FD E800
0000 010A 6401 0140 0101 0040 0200 4005 0400 0000 64C0 1008 0002 0001 0000 0001 800A
08C0 A864 03C0 A864 0180 0904 0A64 0101 C080 2700 00FD E840 0101 0040 0200 8004 0400
0000 0040 0504 0000 00C8 800A 04C0 A864 0180 0904 0A64 0101
BGP(4): Revise route installing 1 of 1 routes for 10.100.1.1/32 -> 192.168.100.1
(customer1) to customer1 IP table
BGP(4): 10.1.2.5 NEXT_HOP is set to self for net 65000:2:10.100.1.1/32,
이 기능을 사용하려면 PE 라우터에 Next-hop-self를 구성해야 합니다.그 이유는 일반적으로 next-hop이 iBGP로 변경되지 않고 전송되기 때문입니다.그러나 여기에는 두 개의 개별 네트워크가 있습니다.별도의 IGP(Interior Gateway Protocols)를 실행하는 VPN 네트워크 및 SP 네트워크. 따라서 IGP 메트릭을 쉽게 비교하고 두 네트워크 간의 최적 경로 계산에 사용할 수 없습니다.RFC 6368에서 선택한 접근 방식은 CE에 대한 iBGP 세션에 대해 next-hop-self가 필수적으로 지정되므로 앞서 설명한 문제를 모두 함께 해결할 필요가 없습니다.VRF 사이트가 이 접근 방식으로 다른 IGP를 실행할 수 있다는 장점이 있습니다.
RFC 6368에서는 동일한 VPN의 서로 다른 VRF 사이트에서 서로 다른(고유) RD를 사용하는 것이 좋습니다.Cisco IOS에서 이 기능은 필수입니다.
그림 2를 참조하십시오. VPN customer1에는 ASN 65001이 있습니다.
그림 2
CE1은 AS 65001에 있습니다. PE1의 관점에서 이 내부 BGP를 만들려면 iBGP local-as 기능이 필요합니다.
CE1
router bgp 65001
bgp log-neighbor-changes
network 10.100.1.1 mask 255.255.255.255
neighbor 10.1.1.1 remote-as 65001
PE1
router bgp 65000
bgp log-neighbor-changes
neighbor 192.168.100.3 remote-as 65000
neighbor 192.168.100.3 update-source Loopback0
!
address-family vpnv4
neighbor 192.168.100.3 activate
neighbor 192.168.100.3 send-community extended
exit-address-family
!
address-family ipv4 vrf customer1
neighbor 10.1.1.4 remote-as 65001
neighbor 10.1.1.4 local-as 65001
neighbor 10.1.1.4 activate
neighbor 10.1.1.4 internal-vpn-client
neighbor 10.1.1.4 route-reflector-client
neighbor 10.1.1.4 next-hop-self
exit-address-family
PE2 및 CE2도 이와 비슷하게 구성됩니다.
PE1은 다음과 같이 BGP 접두사를 확인합니다.
PE1#show bgp vpnv4 unicast all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 41
Paths: (2 available, best #1, table customer1)
Advertised to update-groups:
5
Refresh Epoch 1
Local, (Received from ibgp-pece RR-client)
10.1.1.4 (via vrf customer1) from 10.1.1.4 (10.100.1.1)
Origin IGP, metric 0, localpref 200, valid, internal, best
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
Local, (Received from ibgp-pece RR-client), (ibgp sourced)
10.1.1.4 (via vrf customer1) from 10.1.1.4 (10.100.1.1)
Origin IGP, localpref 100, valid, internal
Extended Community: RT:1:1
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0
접두사는 내부 BGP입니다.
PE2는 다음과 같은 내용을 확인합니다.
PE2#show bgp vpnv4 unicast all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 33
Paths: (1 available, best #1, no table)
Not advertised to any peer
Refresh Epoch 5
Local
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, localpref 100, valid, internal, best
Extended Community: RT:1:1
Originator: 10.100.1.1, Cluster list: 192.168.100.3, 192.168.100.1
ATTR_SET Attribute:
Originator AS 65001
Origin IGP
Aspath
Med 0
LocalPref 200
Cluster list
192.168.100.1,
Originator 10.100.1.1
mpls labels in/out nolabel/18
rx pathid: 0, tx pathid: 0x0
BGP routing table entry for 65000:2:10.100.1.1/32, version 34
Paths: (1 available, best #1, table customer1)
Advertised to update-groups:
5
Refresh Epoch 2
Local, imported path from 65000:1:10.100.1.1/32 (global)
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator AS(ibgp-pece): 65001
Originator: 10.100.1.1, Cluster list: 192.168.100.1
mpls labels in/out nolabel/18
rx pathid: 0, tx pathid: 0x0
발신자 AS는 PE2에서 CE2로 접두사를 전송할 때 사용되는 AS인 65001입니다. 따라서 AS는 보존되며 이 예제의 로컬 환경설정도 유지됩니다.
CE2#show bgp ipv4 unicast 10.100.1.1/32
BGP routing table entry for 10.100.1.1/32, version 3
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
Local
10.1.2.2 from 10.1.2.2 (192.168.100.2)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator: 10.100.1.1, Cluster list: 192.168.100.2, 192.168.100.1
rx pathid: 0, tx pathid: 0x0
AS 경로 대신 로컬 경로가 표시됩니다.이는 라우터 CE2의 구성된 ASN이기도 한 AS 65001에서 시작된 내부 BGP 경로임을 의미합니다. 모든 BGP 속성은 ATTR_SET 속성에서 가져온 것입니다.다음 섹션의 케이스 1에 대한 규칙을 준수합니다.
ATTR_SET에는 원래 VRF의 발신자 AS가 포함됩니다.이 시작 AS는 ATTR_SET를 제거한 후 CE 라우터에 접두사를 보낼 때 원격 PE에서 확인합니다.
사례 1:원래 AS가 CE 라우터에 대해 구성된 AS와 일치하는 경우 PE가 대상 VRF로 경로를 가져올 때 ATTR_SET 속성에서 BGP 속성이 가져옵니다.
사례 2:Originating AS(원래 AS)가 CE 라우터에 대해 구성된 AS와 일치하지 않으면 생성된 경로의 속성 집합이 다음과 같이 설정됩니다.
PE2는 다음과 같이 경로를 봅니다.
PE2#show bgp vpnv4 unicast all 10.100.1.1/32
BGP routing table entry for 65000:1:10.100.1.1/32, version 43
Paths: (1 available, best #1, no table)
Not advertised to any peer
Refresh Epoch 6
Local
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, localpref 100, valid, internal, best
Extended Community: RT:1:1
Originator: 10.100.1.1, Cluster list: 192.168.100.3, 192.168.100.1
ATTR_SET Attribute:
Originator AS 65000
Origin IGP
Aspath
Med 0
LocalPref 200
Cluster list
192.168.100.1,
Originator 10.100.1.1
mpls labels in/out nolabel/17
rx pathid: 0, tx pathid: 0x0
BGP routing table entry for 65000:2:10.100.1.1/32, version 44
Paths: (1 available, best #1, table customer1)
Advertised to update-groups:
6
Refresh Epoch 6
Local, imported path from 65000:1:10.100.1.1/32 (global)
192.168.100.1 (metric 21) (via default) from 192.168.100.3 (192.168.100.3)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator AS(ibgp-pece): 65000
Originator: 10.100.1.1, Cluster list: 192.168.100.1
mpls labels in/out nolabel/17
rx pathid: 0, tx pathid: 0x0
CE2에서 볼 수 있는 접두사입니다.
CE2#show bgp ipv4 unicast 10.100.1.1/32
BGP routing table entry for 10.100.1.1/32, version 5
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
65000
10.1.2.2 from 10.1.2.2 (192.168.100.2)
Origin IGP, localpref 100, valid, external, best
rx pathid: 0, tx pathid: 0x0
사례 2입니다. ATTR_SET 속성에 포함된 원본 AS 번호는 PE2에 의해 AS_PATH에 접두사로 추가되고 소스와 대상 AS 간의 eBGP 피어링에 적용되는 규칙을 따릅니다.iBGP 관련 속성은 CE2에 알릴 경로를 생성할 때 PE2에서 무시됩니다. 따라서 로컬 기본 설정은 200이 아니라 100입니다(ATTR_SET 속성에 표시됨).
그림 4를 참조하십시오.
그림 4
그림 4는 PE1에 연결된 추가 CE 라우터 CE3을 보여줍니다. CE1과 CE3은 모두 동일한 VRF 인스턴스에서 PE1에 연결되어 있습니다.customer1. 즉, CE1과 CE3은 PE1의 Multi-VRF CE 라우터(VRF-Lite라고도 함)입니다. PE1은 접두사를 CE1에서 CE3으로 광고할 때 자신을 next-hop으로 지정합니다. 이 동작을 원하지 않으면 PE1에서 10.1.3.6 next-hop-unchanged 인접 디바이스를 구성할 수 있습니다. 이를 구성하려면 10.1.3.6 self-hop-self-neighbor를 제거해야 합니다. PE1에서 CE3는 CE1의 경로를 CE1에서 해당 BGP 접두사의 next-hop으로 봅니다.이 작업을 수행하려면 CE3의 라우팅 테이블에 해당 BGP next-hop에 대한 경로가 필요합니다. 라우터에 다른 next-hop IP 주소에 대한 경로가 있는지 확인하려면 IGP(Dynamic Routing Protocol) 또는 CE1, PE1 및 CE3의 고정 경로가 필요합니다.그러나 이 구성에 문제가 있습니다.
PE1의 컨피그레이션은 다음과 같습니다.
router bgp 65000
!
address-family ipv4 vrf customer1
neighbor 10.1.1.4 remote-as 65000
neighbor 10.1.1.4 activate
neighbor 10.1.1.4 internal-vpn-client
neighbor 10.1.1.4 route-reflector-client
neighbor 10.1.1.4 next-hop-self
neighbor 10.1.3.6 remote-as 65000
neighbor 10.1.3.6 activate
neighbor 10.1.3.6 internal-vpn-client
neighbor 10.1.3.6 route-reflector-client
neighbor 10.1.3.6 next-hop-unchanged
exit-address-family
CE3에서는 CE1의 접두사가 잘 표시됩니다.
CE3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 9
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
Local
10.1.1.4 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator: 10.100.1.1, Cluster list: 192.168.100.1
rx pathid: 0, tx pathid: 0x0
그러나 CE2의 접두사는 다음과 같이 CE3에 표시됩니다.
CE3#show bgp ipv4 unicast 10.100.1.2
BGP routing table entry for 10.100.1.2/32, version 0
Paths: (1 available, no best path)
Not advertised to any peer
Refresh Epoch 1
Local
192.168.100.2 (inaccessible) from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 10.100.1.2, Cluster list: 192.168.100.1, 192.168.100.2
rx pathid: 0, tx pathid: 0
BGP next-hop은 192.168.100.2이며, PE2의 루프백 IP 주소입니다. 접두사 10.100.1.2/32을 CE3에 광고할 때 BGP next-hop을 자체에 재작성하지 않았습니다. 이렇게 하면 CE3에서 이 접두사를 사용할 수 없습니다.
따라서 MPLS-VPN과 iBGP VRF-Lite 전반에 걸쳐 iBGP PE-CE 기능이 혼합된 경우에는 항상 PE 라우터에 next-hop-self가 있는지 확인해야 합니다.
PE 라우터가 PE에서 로컬로 VRF 인터페이스를 통해 한 CE에서 다른 CE로의 iBGP 경로를 반영하는 RR인 경우 next-hop을 유지할 수 없습니다.MPLS VPN 네트워크에서 iBGP PE-CE를 실행할 때 CE 라우터에 대한 iBGP 세션에 internal-vpn-client를 사용해야 합니다.PE 라우터의 VRF에 둘 이상의 로컬 CE가 있는 경우 해당 BGP 피어에 대해 next-hop-self를 유지해야 합니다.
경로 맵을 확인하여 다른 PE 라우터에서 수신한 접두사에 대해 next-hop을 셀프(self)로 설정할 수 있지만 로컬에 연결된 다른 CE 라우터에서 반사 접두사에 대해서는 설정할 수 없습니다.그러나 현재 아웃바운드 route-map에서 next-hop을 self로 설정하는 것은 지원되지 않습니다.해당 컨피그레이션은 다음과 같습니다.
router bgp 65000
address-family ipv4 vrf customer1
neighbor 10.1.1.4 remote-as 65000
neighbor 10.1.1.4 activate
neighbor 10.1.1.4 internal-vpn-client
neighbor 10.1.1.4 route-reflector-client
neighbor 10.1.1.4 next-hop-self
neighbor 10.1.3.6 remote-as 65000
neighbor 10.1.3.6 activate
neighbor 10.1.3.6 internal-vpn-client
neighbor 10.1.3.6 route-reflector-client
neighbor 10.1.3.6 route-map NH-setting out
exit-address-family
ip prefix-list PE-loopbacks seq 10 permit 192.168.100.0/24 ge 32
!
route-map NH-setting permit 10
description set next-hop to self for prefixes from other PE routers
match ip route-source prefix-list PE-loopbacks
set ip next-hop self
!
route-map NH-setting permit 20
description advertise prefixes with next-hop other than the prefix-list in
route-map entry 10 above
!
그러나 이는 지원되지 않습니다.
PE1(config)#route-map NH-setting permit 10
PE1(config-route-map)# set ip next-hop self
% "NH-setting" used as BGP outbound route-map, set use own IP/IPv6 address for the nexthop not supported
PE1이 iBGP PE-CE 기능이 없는 이전 Cisco IOS 소프트웨어를 실행하는 경우, PE1은 반영된 iBGP 접두사에 대한 next-hop으로 자신을 설정하지 않습니다.즉, CE1(10.100.1.1)에서 CE2-via PE1까지 반영된 BGP 접두사(10.100.1.1/32)이 다음 홉으로 CE1(10.1.1.4)이 지정됩니다.
CE3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 32
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
Local
10.1.1.4 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 200, valid, internal, best
Originator: 10.100.1.1, Cluster list: 192.168.100.1
rx pathid: 0, tx pathid: 0x0
PE1은 다음 접두사에 대해 next-hop-self를 수행하지 않으므로 CE2(10.100.1.2/32)의 접두사는 PE2와 함께 next-hop으로 표시됩니다.
CE3#show bgp ipv4 unicast 10.100.1.2
BGP routing table entry for 10.100.1.2/32, version 0
Paths: (1 available, no best path)
Not advertised to any peer
Refresh Epoch 1
Local
192.168.100.2 (inaccessible) from 10.1.3.1 (192.168.100.1)
Origin IGP, localpref 100, valid, internal
Originator: 10.100.1.2, Cluster list: 192.168.100.1, 192.168.100.3, 192.168.100.2
ATTR_SET Attribute:
Originator AS 65000
Origin IGP
Aspath
Med 0
LocalPref 100
Cluster list
192.168.100.2,
Originator 10.100.1.2
rx pathid: 0, tx pathid: 0
iBGP PE-CE 기능이 제대로 작동하려면 기능이 활성화된 VPN에 대한 모든 PE 라우터에 해당 기능을 지원할 코드가 있어야 하며 기능이 활성화되어 있어야 합니다.
그림 5를 참조하십시오.
그림 5
그림 5는 VRF-Lite 설정을 보여줍니다.PE1에서 CE4로의 세션은 eBGP입니다.PE1에서 CE3으로의 세션은 여전히 iBGP입니다.
eBGP 접두사의 경우, VRF의 iBGP 인접 디바이스로 접두사를 광고할 때 next-hop은 항상 자체 로 설정됩니다.이는 VRF를 통해 iBGP 인접 디바이스로 향하는 세션에 next-hop-self set이 있는지 여부에 관계없이 가능합니다.
그림 5에서 CE3는 PE1이 있는 CE4의 접두사를 next-hop으로 봅니다.
CE3#show bgp ipv4 unicast 10.100.1.4
BGP routing table entry for 10.100.1.4/32, version 103
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
65004
10.1.3.1 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
이는 PE1의 next-hop-self-on CE3 또는 without에서 발생합니다.
PE1에서 CE3 및 CE4를 향하는 인터페이스가 VRF에 있지 않고 글로벌 상황에서 CE3을 향하는 next-hop-self가 다른 역할을 합니다.
PE1에서 CE3로 향하는 next-hop-self가 없다면 다음을 볼 수 있습니다.
PE1#show bgp vrf customer1 vpnv4 unicast neighbors 10.1.3.6
BGP neighbor is 10.1.3.6, vrf customer1, remote AS 65000, internal link
...
For address family: VPNv4 Unicast
Translates address family IPv4 Unicast for VRF customer1
Session: 10.1.3.6
BGP table version 1, neighbor version 1/0
Output queue size : 0
Index 12, Advertise bit 0
Route-Reflector Client
12 update-group member
Slow-peer detection is disabled
Slow-peer split-update-group dynamic is disabled
Interface associated: (none)
next-hop-self가 암시적으로 활성화되어 있지만 출력은 이를 나타내지 않습니다.
PE1에서 CE3으로 향하는 next-hop-self를 사용하면 다음과 같은 효과를 거둘 수 있습니다.
PE1#show bgp vrf customer1 vpnv4 unicast neighbors 10.1.3.6
BGP neighbor is 10.1.3.6, vrf customer1, remote AS 65000, internal link
..
For address family: VPNv4 Unicast
...
NEXT_HOP is always this router for eBGP paths
반면, CE3 및 CE4에 대한 인터페이스가 글로벌 컨텍스트에 있는 경우 next-hop-self가 구성되지 않은 경우 CE4의 접두사에 대한 next-hop은 CE4 자체입니다.
CE3#show bgp ipv4 unicast 10.100.1.4
BGP routing table entry for 10.100.1.4/32, version 124
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
65004
10.1.4.7 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
PE1에서 CE3으로 향하는 next-hop-self의 경우:
CE3#show bgp ipv4 unicast 10.100.1.4
BGP routing table entry for 10.100.1.4/32, version 125
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
65004
10.1.3.1 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
이는 RFC 4364를 기반으로 했습니다.
VRF 인터페이스를 통해 iBGP 세션을 향해 eBGP 접두사에 대한 next-hop-self를 설정하지 않으려면 next-hop-unchanged를 구성해야 합니다.이에 대한 지원은 Cisco 버그 ID CSCuj11720에서만 발생했습니다.
router bgp 65000
...
address-family ipv4 vrf customer1
neighbor 10.1.1.4 remote-as 65000
neighbor 10.1.1.4 activate
neighbor 10.1.1.4 route-reflector-client
neighbor 10.1.3.6 remote-as 65000
neighbor 10.1.3.6 activate
neighbor 10.1.3.6 route-reflector-client
neighbor 10.1.3.6 next-hop-unchanged
neighbor 10.1.4.7 remote-as 65004
neighbor 10.1.4.7 activate
exit-address-family
이제 CE3에서는 CE4를 CE4에서 광고하는 접두사의 다음 홉으로 간주합니다.
CE3#show bgp ipv4 unicast 10.100.1.4
BGP routing table entry for 10.100.1.4/32, version 130
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 3
65004
10.1.4.7 from 10.1.3.1 (192.168.100.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Cisco 버그 ID CSCuj11720 이전에 Cisco IOS 코드에서 CE3에 대한 iBGP 세션에 대해 next-hop-unchanged 키워드를 구성하려고 하면 다음 오류가 발생합니다.
PE1(config-router-af)# neighbor 10.1.3.6 next-hop-unchanged
%BGP: Can propagate the nexthop only to multi-hop EBGP neighbor
Cisco 버그 ID CSCuj11720 이후 next-hop-unchanged 키워드는 multi-hop eBGP 인접 디바이스 및 iBGP VRF-Lite 인접 디바이스에 유효합니다.