목차

소개

배경 정보

iBGP PE-CE 구현

BGP 고객 경로 특성

구성

새 명령

ATTR_SET 자세히 보기

다음 홉의 처리

RD

Local-AS를 사용하는 iBGP PE-CE 기능

서로 다른 VRF 사이트 간 경로 교환 규칙

CE-to-CE VRF-Lite 리플렉션

PE 라우터의 이전 Cisco IOS

VRF의 eBGP용 Next-hop-self

소개

이 문서에서는 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입니다.이 기능을 구축하려는 동기는 다음과 같습니다.

- 고객은 eBGP(External Border Gateway Protocol)를 재정의로 구축하지 않고도 VRF의 여러 사이트에 단일 ASN(Autonomous System Number)을 하나만 추가하기를 원합니다.

- 고객은 SP(Service Provider) 코어가 하나의 투명 RR(Route Reflector)인 것처럼 CE 라우터에 내부 경로 리플렉션을 제공하려고 합니다.

이 기능을 사용하면 VRF 사이트의 ASN이 SP 코어와 같을 수 있습니다.그러나 VRF 사이트의 ASN이 SP 코어의 ASN과 다른 경우 AS(Local-Autonomous System) 기능을 사용하여 동일하게 표시될 수 있습니다.

iBGP PE-CE 구현

이 기능을 작동시키기 위한 두 가지 주요 부분은 다음과 같습니다.

- SP 코어를 통해 투명한 방식으로 VPN BGP 특성을 전달하기 위해 BGP 프로토콜에 새 특성 ATTR_SET이 추가되었습니다.

- VRF의 CE 라우터에 대한 iBGP 세션에 대한 RR로 설정하고 VPNv4 네이버(기타 PE 라우터 또는 RR)에 대한 RR로 설정합니다.

새 ATTR_SET 속성을 사용하면 SP에서 고객의 모든 BGP 속성을 투명하게 전달할 수 있으며 SP 속성 및 BGP 정책을 방해하지 않습니다.이러한 특성은 클러스터 목록, 로컬 환경 설정, 커뮤니티 등입니다.

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를 향한 경로를 반영합니다.

이 작업이 제대로 작동하려면 다음을 수행해야 합니다.

- iBGP PE-CE 기능을 지원하는 PE1 및 PE2에 대한 코드 보유

- PE1 및 PE2를 구성하여 해당 CE 라우터에 대한 BGP 세션에서 경로 리플렉션을 수행합니다.

- CE 라우터에 대한 BGP 세션에 대한 PE 라우터에 next-hop-self를 설정합니다.

- 각 VPN 사이트에서 서로 다른 RD(Route Distinguishers)를 사용하는지 확인합니다.

구성

그림 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

참고:PE에 CE 네이버에 대한 neighbor <internal-CE> internal-vpn-client 명령이 없는 경우 CE에서 SP RS/PE 라우터로 접두사를 전파하지 않습니다.

참고:PE가 VRF의 RR이 아닌 경우 RRs/PE 라우터에서 CE 라우터로 접두사를 전파하지 않습니다.

새 명령

이 기능을 작동시키기 위한 새로운 명령은 neighbor <internal-CE> internal-vpn-client입니다.CE 라우터에 대한 iBGP 세션에 대해서만 PE 라우터에서 구성해야 합니다.

참고:iBGP PE-CE VRF-Lite(Multi-VRF CE) 기능은 neighbor <internal-CE> internal-vpn-client 명령 없이 계속 지원됩니다.

참고:neighbor <internal-CE> internal-vpn-client 명령이 구성되면 neighbor <internal-CE> route-reflector-client 및 neighbor <internal-CE> next-hop-self 명령도 자동으로 컨피그레이션에 추가됩니다.neighbor <internal-CE> route-reflector-client 및 neighbor <internal-CE> next-hop-self 명령(또는 둘 다)을 제거하고 다시 로드하면 자동으로 컨피그레이션에 다시 추가됩니다.

ATTR_SET 자세히 보기

그림 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,

참고:PE1이 RR에서 자체 업데이트를 수신한 다음 삭제했습니다.이는 PE1과 PE2가 RR에서 동일한 업데이트 그룹에 있기 때문입니다.

참고:16진수로 전체 업데이트 메시지를 덤프하려면 debug BGP updates 명령에 detail 키워드를 사용합니다.

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를 실행할 수 있다는 장점이 있습니다.

RD

RFC 6368에서는 동일한 VPN의 서로 다른 VRF 사이트에서 서로 다른(고유) RD를 사용하는 것이 좋습니다.Cisco IOS에서 이 기능은 필수입니다.

Local-AS를 사용하는 iBGP PE-CE 기능

그림 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에 대한 규칙을 준수합니다.

서로 다른 VRF 사이트 간 경로 교환 규칙

ATTR_SET에는 원래 VRF의 발신자 AS가 포함됩니다.이 시작 AS는 ATTR_SET를 제거한 후 CE 라우터에 접두사를 보낼 때 원격 PE에서 확인합니다.

사례 1:원래 AS가 CE 라우터에 대해 구성된 AS와 일치하는 경우 PE가 대상 VRF로 경로를 가져올 때 ATTR_SET 속성에서 BGP 속성이 가져옵니다.

사례 2:Originating AS(원래 AS)가 CE 라우터에 대해 구성된 AS와 일치하지 않으면 생성된 경로의 속성 집합이 다음과 같이 설정됩니다.

1. 경로 속성은 ATTR_SET 속성에 포함된 속성으로 설정됩니다.

2. iBGP 관련 특성은 무시됩니다(LOCAL_PREF, ORIGINATOR 및 CLUSTER_LIST).

3. ATTR_SET 속성에 포함된 원본 AS 번호는 AS_PATH에 접두사가 되고 소스와 대상 AS 간의 외부 BGP 피어링에 적용되는 규칙을 따릅니다.

4. VRF와 연결된 자동 시스템이 VPN 공급자 자동 시스템과 동일하고 VPN 경로의 AS_PATH 특성이 비어 있지 않은 경우 VRF 경로의 AS_PATH 특성 앞에 추가됩니다.

그림 3을 참조하십시오. CE1 및 PE1에는 AS 65000이 있으며 iBGP PE-CE 기능으로 구성됩니다.CE2에는 ASN 65001이 있습니다. 즉, PE2와 CE2 간에 eBGP가 있습니다.

그림 3

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 속성에 표시됨).

CE-to-CE VRF-Lite 리플렉션

그림 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

PE 라우터의 이전 Cisco IOS

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 라우터에 해당 기능을 지원할 코드가 있어야 하며 기능이 활성화되어 있어야 합니다.

VRF의 eBGP용 Next-hop-self

그림 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 인접 디바이스에 유효합니다.