이 문서에서는 MPLS 네트워크에서 TE(Multiprotocol Label Switching) 터널을 구현하기 위한 샘플 컨피그레이션을 제공합니다. TE 터널을 통해 MPLS VPN의 이점을 얻으려면 두 가지가 네트워크에 공존해야 합니다. 이 문서에서는 MPLS VPN over TE 터널 내의 패킷 전달이 실패할 수 있는 이유를 설명하는 다양한 시나리오를 설명합니다. 가능한 솔루션도 제공합니다.
이 문서의 독자는 다음 주제에 대해 알고 있어야 합니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
이 토폴로지에 나와 있는 것처럼 간단한 MPLS VPN 컨피그레이션에서 PE1(Provider Edge 1)은 PE2에서 직접 MPBGP(Multiprotocol Border Gateway Protocol)를 통해 VPN 접두사 172.16.13.0/24에 대한 VPN 레이블(Label 1[L1])을 학습하고 다음 홉은 PE2 루프백 주소로 사용됩니다. PE1은 다음 홉의 P1에서 LDP(Label Distribution Protocol)를 통해 PE2 루프백 주소의 레이블(L2)을 학습합니다.
VPN 접두사 172.16.13.13에 데이터를 전달할 때 PE1은 L2가 있는 레이블 스택 {L2 L1}을 외부 레이블로 사용합니다. L2는 LSR(Transit Label Switch Router), P1. P2가 외부 L2를 팝업하고 하나의 L1만 사용하여 패킷을 PE2에 전달합니다. P2가 L2를 팝업하는 이유를 더 잘 이해하려면 RFC 3031 에서 PHP(Penultimate hop) 포팅(Php)에 대한 섹션 3.16을 참조하십시오. 따라서 VPN IP 버전 4(IPv4) 접두사 172.16.13.0/24에 대한 패킷은 MPLS 네트워크를 통해 레이블로 전환됩니다.
P 라우터가 {L2 L1} 레이블 스택 대신 L1(VPN 레이블)을 유일한 외부 레이블로 받은 패킷을 받는 경우 MPLS VPN 전달 작업이 실패합니다. 이는 LFIB(Label Forwarding Information Base)에 패킷을 전환하기 위한 L1이 없는 IP 라우터이기 때문입니다.
MPLS TE는 RSVP(Resource Reservation Protocol)를 사용하여 레이블을 교환합니다. 라우터가 TE 및 TDP(Tag Distribution Protocol)/LDP에 대해 구성된 경우, 라우터는 지정된 접두사에 대해 LDP 및 RSVP에서 서로 다른 레이블을 받습니다. LDP와 RSVP의 레이블은 모든 상황에서 동일할 필요는 없습니다. LDP 인터페이스를 통해 접두사를 학습하는 경우 라우터는 전달 테이블에 LDP 레이블을 설치하고, 접두사가 TE 터널 인터페이스를 통해 학습되는 경우 전달 테이블에 RSVP 레이블을 설치합니다.
일반 TE 터널(터널에서 LDP/TDP가 활성화되지 않은 경우)의 경우, 인그레스 LSR(TE 터널의 헤드엔드에 있는 LSR)은 TE 터널을 통해 학습된 모든 경로의 TE 터널에 도달하는 데 사용되는 것과 동일한 레이블을 사용합니다.
예를 들어, 터널을 통해 접두사 10.11.11.11/32을 학습하는 PE1에서 P2까지의 TE 터널이 있습니다. P2의 터널 끝은 10.5.5.5이고 PE1에서 10.5.5.5에 도달할 레이블은 L3입니다. 그런 다음 PE1은 L3을 사용하여 TE 터널을 통해 학습된 목적지 10.11.11.11/32에 연결합니다.
위 시나리오에서 PE1과 P2 간에 TE 터널이 있을 경우 PE1이 데이터를 Customer Edge 2(CE2)로 전달하는 것을 고려하십시오. L4가 VPN 레이블인 경우 PE1은 레이블 스택이 {L3 L4}인 데이터를 전달합니다. P1은 L3을 팝업하고 P2는 L4로 패킷을 수신합니다. PE2는 외부 레이블 L4로 패킷을 올바르게 전달할 수 있는 유일한 LSR입니다. P2는 PE2로 MPBGP 세션이 없으므로 PE2에서 L4를 수신하지 않습니다. 따라서 P2는 L2에 대한 지식이 없으므로 패킷을 삭제합니다.
다음 구성 및 show 출력은 이를 보여주고 이 문제에 대한 가능한 한 가지 해결책을 보여줍니다.
구성 파일의 관련 부분만 여기에 포함됩니다.
PE1 |
---|
hostname PE1 ip cef ! ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! mpls traffic-eng tunnels ! interface Loopback0 ip address 10.2.2.2 255.255.255.255 no ip directed-broadcast ! interface Ethernet2/0/1 ip vrf forwarding aqua ip address 172.16.1.2 255.255.255.0 ! interface Ethernet2/0/2 ip address 10.7.7.2 255.255.255.0 ip router isis mpls traffic-eng tunnels tag-switching ip ! router isis passive-interface Loopback0 net 47.1234.2222.2222.2222.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! router bgp 1 bgp log-neighbor-changes neighbor 10.11.11.11 remote-as 1 neighbor 10.11.11.11 update-source Loopback0 ! address-family vpnv4 neighbor 10.11.11.11 activate neighbor 10.11.11.11 send-community extended exit-address-family ! address-family ipv4 neighbor 10.11.11.11 activate no auto-summary no synchronization exit-address-family ! address-family ipv4 vrf aqua redistribute connected no auto-summary no synchronization exit-address-family |
PE2 |
---|
hostname PE2 ! ip vrf aqua rd 100:1 route-target export 1:1 route-target import 1:1 ! mpls traffic-eng tunnels ! interface Loopback0 ip address 10.11.11.11 255.255.255.255 ! interface POS0/1 ip address 10.12.12.10 255.255.255.0 ip router isis mpls traffic-eng tunnels tag-switching ip crc 16 clock source internal ! interface POS5/1 ip vrf forwarding aqua ip address 172.16.13.11 255.255.255.0 crc 32 clock source internal ! router isis passive-interface Loopback0 mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 net 47.1234.1010.1010.1010.00 is-type level-1 metric-style wide ! router bgp 1 bgp log-neighbor-changes neighbor 10.2.2.2 remote-as 1 neighbor 10.2.2.2 update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor 10.2.2.2 activate neighbor 10.2.2.2 send-community extended exit-address-family ! address-family ipv4 vrf aqua redistribute connected no auto-summary no synchronization exit-address-family ! |
PE2는 PE1과 PE2 간의 MPBGP 피어링을 통해 PE1 VPN IPv4 접두사 172.16.1.0/24을 학습합니다. 다음은 다음과 같습니다.
PE2# show ip route vrf aqua Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR Gateway of last resort is not set 10.0.0.0/24 is subnetted, 2 subnets B 172.16.1.0 [200/0] via 10.2.2.2, 16:09:10 C 172.16.13.0 is directly connected, POS5/1
마찬가지로, PE1은 PE1과 PE2 간의 MPBGP 피어링을 통해 PE2 VPN IPv4 접두사 172.16.13.0/24을 학습합니다. 다음은 다음과 같습니다.
PE1# show ip route vrf aqua Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR Gateway of last resort is not set 10.0.0.0/24 is subnetted, 2 subnets B 172.16.13.0 [200/0] via 10.11.11.11, 16:09:49 C 172.16.1.0 is directly connected, Ethernet2/0/1 PE1# show ip route vrf aqua 172.16.13.13 Routing entry for 172.16.13.0/24 Known via "bgp 1", distance 200, metric 0, type internal Last update from 10.11.11.11 16:13:19 ago Routing Descriptor Blocks: * 10.11.11.11 (Default-IP-Routing-Table), from 10.11.11.11, 16:13:19 ago Route metric is 0, traffic share count is 1 AS Hops 0, BGP network version 0 PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} !--- The label stack used to reach 172.16.13.13 is !--- {17 12308}, where 17 is the outer label to reach next hop 10.11.11.11 !--- and 12308 is the VPN IPv4 label for 172.16.13.0/24. PE1# show ip cef 10.11.11.11 10.11.11.11/32, version 31, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: 21 fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} via 10.7.7.7, Ethernet2/0/2, 1 dependency next hop 10.7.7.7, Ethernet2/0/2 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} !--- Outer label 17 is used to reach next hop 10.11.11.11.
따라서 CE1은 위에 표시된 것처럼 PE1에 레이블 스택 {17 12308}을 사용하여 구성된 VPN 라우팅 및 포워딩(VRF) 인스턴스 "aqua"를 통해 CE2 네트워크에서 172.16.13.13에 연결할 수 있습니다.
이 ping 출력은 연결을 확인합니다.
CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
PE 라우터 간에 TE 터널이 구축되어 자동 알림이 사용되는 경우 TE 터널 인터페이스를 통해 이그레스 PE BGP next hop에 연결할 수 있습니다. 따라서 PE1은 TE 레이블을 사용하여 PE2에 연결합니다.
참고: MPLS TE는 LDP와 독립적입니다. 즉, PE에서 PE로의 터널이 완전히 메쉬되어 있는 경우 라우터에서 LDP를 효과적으로 비활성화할 수 있으며 TE 터널 인터페이스에서 LDP를 실행할 필요가 없습니다. 그러나 VPNv4(VPN version 4) 경로의 BGP next hop에 대한 모든 터널을 구축해야 합니다. 이 구성의 예에서 이 BGP next hop이 PE2, 10.11.11.11의 Loopback0임을 확인할 수 있습니다. 이 루프백은 PE1에서 PE2로의 터널에 대한 터널 대상이기도 합니다. 이 예에서는 반환 트래픽에 대해 PE2에서 PE1까지의 터널이 있는 경우 코어에서 LDP를 비활성화할 수 있는 이유를 설명합니다. 그런 다음 CE에서 CE로 전달하면 TE 터널을 통해 전달되는 모든 VPNv4 트래픽에서 작동합니다. BGP next hop이 TE 터널 대상과 동일하지 않으면 LDP가 코어 및 TE 터널에서 실행되어야 합니다.
PE 터널을 설정하기 위한 PE1의 추가 컨피그레이션은 다음과 같습니다.
PE1 |
---|
PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast no ip route-cache distributed tunnel destination 10.11.11.11 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end |
PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.11.11.11, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 12308} !--- The label stack to reach 172.16.13.13 is {19 12308}. !--- BGP next hop for the VPNv4 prefix is 10.11.11.11, which is !--- the same as the TE tunnel destination. PE1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 40, type level-1 Redistributing via isis Last update from 10.11.11.11 on Tunnel0, 00:02:09 ago Routing Descriptor Blocks: * 10.11.11.11, from 10.11.11.11, via Tunnel0 !--- The route is via Tunnel0. Route metric is 40, traffic share count is 1
이제 Tunnel0을 통해 다음 홉에 연결하는 데 사용되는 외부 레이블을 확인합니다.
PE1# show mpls traffic-eng tunnels tunnel 0 Name: PE1_t0 (Tunnel0) Destination: 10.11.11.11 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, type dynamic (Basis for Setup, path weight 30) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) AutoRoute: enabled LockDown: disabled Loadshare: 0 bw-based auto-bw: disabled InLabel : - OutLabel : Ethernet2/0/2, 19 !--- Label 19 from RSVP is used to reach destination 10.11.11.11/32. RSVP Signalling Info: Src 10.2.2.2, Dst 10.11.11.11, Tun_Id 0, Tun_Instance 31 RSVP Path Info: My Address: 10.7.7.2 Explicit Route: 10.7.7.7 10.8.8.7 10.8.8.5 10.12.12.10 10.11.11.11 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits RSVP Resv Info: Record Route: NONE Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=Inf Shortest Unconstrained Path Info: Path Weight: 30 (TE) Explicit Route: 10.7.7.2 10.7.7.7 10.8.8.7 10.8.8.5 10.12.12.10 10.11.11.11 History: Tunnel: Time since created: 17 hours, 17 minutes Time since path change: 32 minutes, 54 seconds Current LSP: Uptime: 32 minutes, 54 seconds Prior LSP: ID: path option 10 [14] Removal Trigger: tunnel shutdown
이 정보를 빠르게 볼 수 있는 또 다른 방법은 다음과 같이 show 명령의 출력 한정자를 사용하는 것입니다.
PE1# show mpls traffic-eng tunnels tunnel 0 | include Label InLabel : - OutLabel : Ethernet2/0/2, 19 !--- This is the label to reach 10.11.11.11.
태그 스택을 확인합니다. Tunnel0을 통해 next hop 10.11.11.0으로 패킷을 전달하는 데 사용되는 TE 레이블인 19입니다.
PE1# show tag forwarding-table 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 21 Pop tag 10.11.11.11/32 0 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{19}, via Et2/0/2 00603E2B02410060835887428847 00013000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE1#
따라서 PE1은 레이블 스택이 {19 12308}인 172.16.13.13으로 향하는 패킷을 전송합니다. P1은 레이블 19를 교체합니다. 패킷은 P2에 도달하며, 이 패킷은 외부 레이블을 팝업합니다. 그런 다음 패킷이 레이블 12308과 함께 PE2로 전달됩니다.
PE2에서 12308이라는 레이블이 있는 패킷은 전달 테이블의 정보에 따라 수신 및 전환됩니다. 다음은 다음과 같습니다.
PE2# show tag for tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12256 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE2#
참고: 발신 태그가 Aggregate이므로 No Outgoing interface가 표시됩니다. 레이블과 연결된 접두사가 직접 연결된 경로이기 때문입니다.
CE1에서 CE2의 호스트로 ping하는 작업은 TE 터널을 통한 VPN 연결을 확인합니다.
CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/13/36 ms CE1#
PE1의 기본 컨피그레이션을 통한 추가 TE 컨피그레이션은 다음과 같습니다.
PE1 |
---|
PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast no ip route-cache distributed tunnel destination 10.5.5.5 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end ! |
PE1 VRF Aqua의 접두사 172.16.13.13 경로를 확인합니다. 레이블 스택 {19 12308}을 사용하여 next hop 10.11.11.11/32(over Tunnel0)을 가리킵니다.
PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.5.5.5, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 12308} PE1#
외부 레이블인 Label 19는 다음 홉의 10.11.11.11/32에 연결하는 데 사용됩니다.
PE1# show ip cef 10.11.11.11 10.11.11.11/32, version 37 0 packets, 0 bytes tag information set local tag: 21 fast tag rewrite with Tu0, point2point, tags imposed {19} via 10.5.5.5, Tunnel0, 1 dependency next hop 10.5.5.5, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19} PE1# show mpls traffic-eng tunnels tunnel 0 Name: PE1_t0 (Tunnel0) Destination: 10.5.5.5 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, type dynamic (Basis for Setup, path weight 20) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) AutoRoute: enabled LockDown: disabled Loadshare: 0 bw-based auto-bw: disabled InLabel : - OutLabel : Ethernet2/0/2, 19 RSVP Signalling Info: Src 10.2.2.2, Dst 10.5.5.5, Tun_Id 0, Tun_Instance 33 RSVP Path Info: My Address: 10.7.7.2 Explicit Route: 10.7.7.7 10.8.8.7 10.8.8.5 10.5.5.5 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits RSVP Resv Info: Record Route: NONE Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=Inf Shortest Unconstrained Path Info: Path Weight: 20 (TE) Explicit Route: 10.7.7.2 10.7.7.7 10.8.8.7 10.8.8.5 10.5.5.5 History: Tunnel: Time since created: 17 hours, 31 minutes Time since path change: 8 minutes, 49 seconds Current LSP: Uptime: 8 minutes, 49 seconds Selection: reoptimation Prior LSP: ID: path option 10 [31] Removal Trigger: path verification failed PE1# PE1# show mpls traffic-eng tunnels tunnel 0 | i Label InLabel : - OutLabel : Ethernet2/0/2, 19 PE1#
PE1의 패킷이 레이블 스택이 {19 12308}인 TE 터널을 통해 전송됩니다. P1은 패킷을 수신하면 태그 19를 팝업하고 레이블 스택이 {12308}인 패킷을 전송합니다. show 명령은 이를 확인합니다.
P1> show tag for tag 19 Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 19 Pop tag 10.2.2.2 0 [33] 2130 Et2/0 10.8.8.5 P1> P1> show tag for tag 19 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 19 Pop tag 10.2.2.2 0 [33] 2257 Et2/0 10.8.8.5 MAC/Encaps=14/14, MTU=1504, Tag Stack{} 006009E08B0300603E2B02408847 No output feature configured P1>
P2가 레이블 스택이 {12308}인 패킷을 받으면 LFIB를 확인하고 일치하는 항목이 없으므로 패킷을 삭제합니다. P2의 show 명령 출력입니다.
P2# show tag forwarding-table tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface P2# P2# 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 7w4d: TAG: Et0/3: recvd: CoS=0, TTL=253, Tag(s)=12308 P2# P2#
이 문제의 해결책은 TE 터널에서 TDP/LDP를 활성화하고 태그 전환 인터페이스로 만드는 것입니다. 솔루션에 표시된 예에서 TDP는 PE1의 Tunnel0에서 활성화됩니다. P2는 직접 헬로를 허용하고 직접 TDP 인접 디바이스를 형성하도록 구성됩니다. 따라서 PE1은 LDP를 통해 P2에서 10.11.11.11에 대한 레이블을 받습니다. 이제 Tunnel0이 태그 전환 인터페이스로 설정되었고 TDP가 10.11.11.11 트래픽에 대해 활성화되었으므로 PE1은 두 레이블을 모두 사용합니다. RSVP 레이블을 사용하여 TE Tailend에 연결하고 TDP 레이블을 사용하여 10.11.11.11에 연결합니다.
이 시나리오에서 PE1은 레이블 스택 {L2 L3 L1}을 사용하여 다음 항목이 true인 경우 데이터를 CE2로 전달합니다.
L1은 VPN 레이블입니다.
L2는 TE 맞춤엔드에 도달하기 위한 RSVP 레이블입니다.
L3은 10.11.11.11(P2에서 수신)에 연결할 TDP 레이블입니다.
이 솔루션은 TE 터널을 통해 TDP를 활성화하는 것입니다.
다음은 TDP가 활성화된 PE1의 TE 터널 컨피그레이션입니다. 추가는 굵은 글씨로 되어 있다.
PE1 |
---|
PE1# show run interface tunnel 0 ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast no ip route-cache distributed tag-switching ip !--- This enables TDP. tunnel destination 10.5.5.5 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end ! |
이것은 TE 터널의 끝에 지정 TDP Hello를 수락하기 위한 추가 컨피그레이션입니다.
P2# show run | i directed-hello tag-switching tdp discovery directed-hello accept !--- This configures P2 to accept directed TDP hellos. P2#
PE1# show tag tdp neighbor | i Peer Peer TDP Ident: 10.7.7.7:0; Local TDP Ident 10.2.2.2:0 Peer TDP Ident: 10.5.5.5:0; Local TDP Ident 10.2.2.2:0 PE1# PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 11 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Tu0, point2point, tags imposed {19 18 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.5.5.5, Tunnel0 via 10.11.11.11/32 valid adjacency tag rewrite with Tu0, point2point, tags imposed {19 18 12308} PE1# PE1# show mpls traffic-eng tunnels tunnel 0 | i Label InLabel : - OutLabel : Ethernet2/0/2, 19 !--- This is the TE label learned via RSVP. PE1# PE1# show tag tdp bind 10.11.11.11 32 tib entry: 10.11.11.11/32, rev 20 local binding: tag: 21 remote binding: tsr: 10.7.7.7:0, tag: 17 remote binding: tsr: 10.5.5.5:0, tag: 18 !--- This is the TDP label from P2.
P1은 레이블 스택이 {19 18 12308}인 패킷을 받으면 태그 19를 팝업하고 레이블 스택이 {18 12308}인 패킷을 P2로 전송합니다. P2는 레이블 18에 대해 LFIB를 확인한 다음 태그를 팝업하고 PE1에 대한 발신 인터페이스 PO2/0/0을 통해 전송합니다. PE1은 레이블 12308로 패킷을 수신하고 스위치에 성공적으로 전송합니다. CE2.
P2# show tag for tag 18 Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 Pop tag 10.11.11.11/32 117496 POS2/0/0 point2point P2# show tag tdp discovery Local TDP Identifier: 10.5.5.5:0 Discovery Sources: Interfaces: Ethernet0/3 (tdp): xmit/recv TDP Id: 10.7.7.7:0 POS2/0/0 (tdp): xmit/recv TDP Id: 10.11.11.11:0 Directed Hellos: 10.5.5.5 -> 10.2.2.2 (tdp): passive, xmit/recv TDP Id: 10.2.2.2:0 P2# show tag tdp neighbor 10.2.2.2 Peer TDP Ident: 10.2.2.2:0; Local TDP Ident 10.5.5.5:0 TCP connection: 10.2.2.2.711 - 10.5.5.5.11690 State: Oper; PIEs sent/rcvd: 469/465; Downstream Up time: 01:41:08 TDP discovery sources: Directed Hello 10.5.5.5 -> 10.2.2.2, passive Addresses bound to peer TDP Ident: 10.7.7.2 172.16.47.166 10.2.2.2 PE1# show tag tdp neighbor 10.5.5.5 Peer TDP Ident: 10.5.5.5:0; Local TDP Ident 10.2.2.2:0 TCP connection: 10.5.5.5.11690 - 10.2.2.2.711 State: Oper; PIEs sent/rcvd: 438/441; Downstream Up time: 01:35:08 TDP discovery sources: Directed Hello 10.2.2.2 -> 10.5.5.5, active !--- This indicates the directed neighbor. Addresses bound to peer TDP Ident: 10.5.5.5 10.12.12.5 10.8.8.5 PE1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 40, type level-1 Redistributing via isis B Last update from 10.5.5.5 on Tunnel0, 01:52:21 ago Routing Descriptor Blocks: * 10.5.5.5, from 10.11.11.11, via Tunnel0 Route metric is 40, traffic share count is 1
CE1에서 CE2의 호스트로 ping 명령을 실행하여 솔루션을 확인합니다.
CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms CE1#
PE1의 터널 컨피그레이션은 다음과 같습니다.
PE1 |
---|
P1# show run interface tunnel 0 Building configuration... Current configuration : 255 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast ip route-cache distributed tunnel destination 10.5.5.5 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end |
CE2 172.16.13.13으로 향하는 패킷이 여기에서 어떻게 스위칭되는지 확인합니다. show ip cef 명령 출력에서는 대상 172.16.13.13에 대한 패킷이 레이블 스택 {17 12308}과(와) 스위칭되는 것을 보여줍니다.
PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308}
P1은 이 패킷을 수신하면 외부 레이블 17을 제거하고 IP 라우팅 테이블을 검색한 후 패킷을 Tunnel0으로 전환합니다. 이 출력에서 implicit-nullOutLabel을 확인합니다. 이는 발신 인터페이스가 레이블 전환되지 않았음을 의미합니다.
P1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 52 0 packets, 0 bytes tag information set local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {} via 10.5.5.5, Tunnel0, 0 dependencies next hop 10.5.5.5, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {} P1# show mpls traffic-eng tunnel tunnel 0 | i Label InLabel : - OutLabel : Ethernet2/0, implicit-null P1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 882 Tu0 point2point MAC/Encaps=14/14, MTU=1500, Tag Stack{}, via Et2/0 006009E08B0300603E2B02408847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# show ip route 10.11.11.11 Routing entry for 10.11.11.11/32 Known via "isis", distance 115, metric 30, type level-1 Redistributing via isis Last update from 10.5.5.5 on Tunnel0, 00:03:20 ago Routing Descriptor Blocks: * 10.5.5.5, from 10.11.11.11, via Tunnel0 Route metric is 30, traffic share count is 1
P2가 레이블 12308의 패킷을 수신하면 포워딩 테이블을 살펴봅니다. P2는 CE2에서 VPN 태그 12308을 인식할 수 없으므로 패킷을 삭제합니다.
P2# show tag for tag 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface
이렇게 하면 CE2로 향하는 VPN 패킷의 경로가 끊어집니다. CE2 172.16.13.13/32으로 ping을 통해 확인할 수 있습니다.
PE1# CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) CE1#
그 해결책은 터널을 통해 LDP/TDP를 활성화하는 것이다. 다음 섹션에서는 이 솔루션에 대해 설명합니다.
터널에서 LDP가 활성화되면 P1의 컨피그레이션이 여기에 표시된 것처럼 나타납니다. 추가는 굵은 글씨로 되어 있다.
PE1 |
---|
P1# show run interface tunnel 0 Building configuration... Current configuration : 273 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast ip route-cache distributed mpls label protocol ldp tunnel destination 10.5.5.5 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end ! |
PE1은 레이블 스택이 {17 12308}인 접두사 172.16.13.13/32으로 패킷을 전송합니다.
PE1# PE1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 21 17 10.11.11.11/32 0 Et2/0/2 10.7.7.7 MAC/Encaps=14/18, MTU=1500, Tag Stack{17} 00603E2B02410060835887428847 00011000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE1# PE1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 60, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: 21 fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} via 10.7.7.7, Ethernet2/0/2, 1 dependency next hop 10.7.7.7, Ethernet2/0/2 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17} PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308}
P1은 레이블 스택이 {17 12308}인 패킷을 수신하고 LFIB에서 레이블 17을 찾습니다.
P1# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 18 10.11.11.11/32 1158 Tu0 point2point MAC/Encaps=14/18, MTU=1496, Tag Stack{18}, via Et2/0 006009E08B0300603E2B02408847 00012000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# P1# show ip cef 10.11.11.11 detail 10.11.11.11/32, version 52 0 packets, 0 bytes tag information set local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {18} via 10.5.5.5, Tunnel0, 0 dependencies next hop 10.5.5.5, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {18}
레이블 17을 레이블 18로 교체해야 함을 보여 줍니다. 따라서 해당 패킷은 터널 인터페이스를 통해 레이블 스택 {18 12308}으로 전환됩니다.
P2는 레이블 스택이 {18 12308}인 터널 인터페이스를 통해 패킷을 수신합니다. 태그 18을 팝업하고(pendultimate hop 라우터이므로) 레이블을 12308로 사용하여 패킷을 PE2로 전환합니다.
P2# show tag for tag 18 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 18 Pop tag 10.11.11.11/32 127645 PO2/0/0 point2point MAC/Encaps=4/4, MTU=4474, Tag Stack{} 0F008847 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P2#
PE2는 레이블이 12308인 패킷을 수신하며, 패킷을 CE2로 성공적으로 전환합니다.
PE2# show tag forwarding tags 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12256 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE2# CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms CE1#
PE1 |
---|
P1# show run interface tunnel 0 Building configuration... Current configuration : 258 bytes ! interface Tunnel0 ip unnumbered Loopback0 no ip directed-broadcast ip route-cache distributed tunnel destination 10.11.11.11 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic end |
PE1은 레이블 스택 {17 12308}을 사용하여 다음 홉으로 172.16.13.13으로 향하는 패킷을 전송합니다.
PE1# show ip cef vrf aqua 172.16.13.13 172.16.13.0/24, version 18, cached adjacency 10.7.7.7 0 packets, 0 bytes tag information set local tag: VPN route head fast tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308} via 10.11.11.11, 0 dependencies, recursive next hop 10.7.7.7, Ethernet2/0/2 via 10.11.11.11/32 valid cached adjacency tag rewrite with Et2/0/2, 10.7.7.7, tags imposed {17 12308}
P1은 레이블 스택이 {17 12308}인 패킷을 받습니다. P1은 LFIB 테이블을 살펴보고 태그 스택 {17}을 확인하고 레이블이 {17}인 패킷을 P2로 전환합니다.
P1# show tag for 10.11.11.11 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 411 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{17}, via Et2/0 006009E08B0300603E2B02408847 00011000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Untagged 10.11.11.11/32 685 Tu0 point2point MAC/Encaps=14/18, MTU=1500, Tag Stack{17}, via Et2/0 006009E08B0300603E2B02408847 00011000 No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P1# P1# show ip cef 10.11.11.11 10.11.11.11/32, version 67 0 packets, 0 bytes tag information set local tag: 17 fast tag rewrite with Tu0, point2point, tags imposed {17} via 10.11.11.11, Tunnel0, 0 dependencies next hop 10.11.11.11, Tunnel0 valid adjacency tag rewrite with Tu0, point2point, tags imposed {17}
P2는 레이블 스택이 {17 12308}인 패킷을 수신합니다. P2는 penultimate hop 라우터이며 레이블 17을 표시합니다.
P2# show tag for tag 17 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 17 Pop tag 10.7.7.7 0 [5] 535 PO2/0/0 point2point MAC/Encaps=4/4, MTU=4474, Tag Stack{} 0F008847 No output feature configured P2#
그런 다음 PE2는 레이블 12308의 패킷을 수신합니다. P2는 레이블 12308의 대상이 직접 연결되어 있음을 인식합니다. 따라서 CE1에서 CE2로의 ping은 10입니다.
PE2# show tag for tag 12308 detail Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 12308 Aggregate 172.16.13.0/24[V] 12776 MAC/Encaps=0/0, MTU=0, Tag Stack{} VPN route: aqua No output feature configured Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 PE2#
참고: 발신 태그가 Aggregate이므로 No Outgoing interface가 표시됩니다. 레이블과 연결된 접두사가 직접 연결된 경로이기 때문입니다.
CE1# ping 172.16.13.13 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.13.13, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms CE1#
필드 알림을 참조하십시오. 자세한 내용은 MPLS VPN with TE 및 MPLS InterAS Advisory on Cisco IOS® Software를 참조하십시오.
이그레스 PE에서 TE 터널이 종료되면 추가 컨피그레이션 없이 MPLS VPN과 TE가 함께 작동합니다. IP 라우터에서 TE 터널이 종료될 때(코어의 PE가 시작되기 전) 패킷이 VPN 레이블을 외부 레이블로 가지고 도달하기 때문에 MPLS VPN 트래픽 전달이 실패합니다. 이 레이블은 이러한 디바이스의 LFIB에 없습니다. 따라서 이러한 중간 라우터는 최종 목적지인 VPN 고객 네트워크로 패킷을 전달할 수 없습니다. 이러한 경우 TE 터널에서 LDP/TDP를 활성화하여 문제를 해결해야 합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
10-Aug-2005 |
최초 릴리스 |