이 문서에서는 MPLS(Unified Multiprotocol Label Switching)의 목적에 대해 설명하고 컨피그레이션 예를 제공합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
Unified MPLS의 목적은 확장입니다. 네트워크의 일부에는 다양한 유형의 플랫폼과 서비스가 있는 MPLS 네트워크를 확장하려면 네트워크를 다른 영역으로 분할하는 것이 좋습니다. 일반적인 설계에서는 중앙에 어그리게이션이 있는 코어가 있는 계층을 도입합니다. 확장하기 위해 코어와 어그리게이션 간에 서로 다른 IGP(Interior Gateway Protocols)가 있을 수 있습니다. 확장하려면 IGP 접두사를 한 IGP에서 다른 IGP로 배포할 수 없습니다. 한 IGP에서 다른 IGP로 IGP 접두사를 배포하지 않으면 엔드 투 엔드 LSP(Label-Switched Path)가 불가능합니다.
MPLS 서비스를 엔드 투 엔드 제공하기 위해서는 LSP가 엔드 투 엔드 되어야 합니다. 목표는 MPLS 서비스(MPLS VPN, MPLS L2VPN)를 그대로 유지하면서 더 큰 확장성을 도입하는 것입니다. 이를 위해 일부 IGP 접두사를 BGP(Border Gateway Protocol)(PE(Provider Edge) 라우터의 루프백 접두사)로 이동한 다음 접두사를 종단간 배포합니다.
그림 1은 다음과 같은 세 가지 영역을 가진 네트워크를 보여줍니다. 하나의 코어 및 2개의 어그리게이션 영역이 있습니다. 각 영역은 ABR(Area Border Router)에서 재배포하지 않고 자체 IGP를 실행합니다. 엔드 투 엔드 MPLS LSP를 제공하려면 BGP를 사용해야 합니다. BGP는 전체 도메인에 걸쳐 레이블이 있는 PE 라우터의 루프를 광고하고 엔드 투 엔드 LSP를 제공합니다. BGP는 RFC 3107을 사용하여 PE와 ABR 간에 구축됩니다. 즉 BGP가 IPv4 접두사 + 레이블(AFI/SAFI 1/4)을 전송합니다.
네트워크의 코어 및 어그리게이션 부분이 통합되고 엔드 투 엔드 LSP가 제공되므로 Unified MPLS 솔루션을 "Impls MPLS"라고도 합니다.
새로운 기술 또는 프로토콜은 여기에서 사용되지 않으며 MPLS, LDP(Label Distribution Protocol), IGP 및 BGP만 사용됩니다. 네트워크의 한 부분에서 다른 부분으로 PE 라우터의 루프백 접두사를 배포하지 않으려면 BGP에서 접두사를 전달해야 합니다. iBGP(Internal Border Gateway Protocol)는 한 네트워크에서 사용되므로 접두사의 다음 홉은 네트워크의 다른 부분에 있는 IGP에서 알지 못하는 PE 라우터의 루프백 접두사입니다. 즉, 다음 hop 주소를 사용하여 IGP 접두사로 재귀할 수 없습니다. 이 방법은 ABR 라우터의 RR(Route Reflectors)을 만들고 다음 홉을 자체(반사된 iBGP 접두사에 대해서도)로 설정하는 것입니다. 이것을 작동시키기 위해서는 새로운 손잡이가 필요하다.
RR만 이 아키텍처를 지원하기 위해 최신 소프트웨어를 필요로 합니다. RR은 다음 홉이 자신에게 설정된 BGP 접두사를 알리므로 BGP 접두사에 로컬 MPLS 레이블을 할당합니다. 즉, 데이터 평면에서 이러한 엔드 투 엔드 LSP에 전달된 패킷에 레이블 스택에 추가 MPLS 레이블이 있습니다. RR이 전달 경로에 있습니다.
두 가지 시나리오가 있습니다.
두 시나리오에서 ABR은 네트워크의 어그리게이션 부분에서 코어 부품으로 ABR이 광고한(BGP에 의해 반영) 접두사에 대해 다음 홉을 셀프(self)로 설정합니다. 이 작업을 수행하지 않으면 ABR은 어그리게이션 IGP에서 코어 IGP로 PE의 루프백 접두사를 재배포해야 합니다. 이렇게 하면 확장성이 없습니다.
반사된 iBGP 경로에 대한 next hop을 self로 설정하려면 neighbor x.x.x next-hop-self-all 명령을 구성해야 합니다.
시나리오 2에 대한 PE 라우터 및 ABR의 컨피그레이션입니다.
PE1
interface Loopback0
ip address 10.100.1.4 255.255.255.255
!
interface Ethernet1/0
no ip address
xconnect 10.100.1.5 100 encapsulation mpls
!
router ospf 2
network 10.2.0.0 0.0.255.255 area 0
network 10.100.1.4 0.0.0.0 area 0
!
router bgp 1
bgp log-neighbor-changes
network 10.100.1.4 mask 255.255.255.255
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 send-label
RR1
interface Loopback0
ip address 10.100.1.1 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.1 0.0.0.0 area 0
!
router ospf 2
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf2
network 10.2.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 next-hop-self all
neighbor 10.100.1.2 send-label
neighbor 10.100.1.4 remote-as 1
neighbor 10.100.1.4 update-source Loopback0
neighbor 10.100.1.4 route-reflector-client
neighbor 10.100.1.4 next-hop-self all
neighbor 10.100.1.4 send-label
ip prefix-list prefix-list-ospf1-into-ospf2 seq 5 permit 10.100.1.1/32
route-map ospf1-into-ospf2 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf2
RR2
interface Loopback0
ip address 10.100.1.2 255.255.255.255
router ospf 1
network 10.1.0.0 0.0.255.255 area 0
network 10.100.1.2 0.0.0.0 area 0
!
router ospf 3
redistribute ospf 1 subnets match internal route-map ospf1-into-ospf3
network 10.3.0.0 0.0.255.255 area 0
!
router bgp 1
bgp log-neighbor-changes
neighbor 10.100.1.1 remote-as 1
neighbor 10.100.1.1 update-source Loopback0
neighbor 10.100.1.1 next-hop-self all
neighbor 10.100.1.1 send-label
neighbor 10.100.1.5 remote-as 1
neighbor 10.100.1.5 update-source Loopback0
neighbor 10.100.1.5 route-reflector-client
neighbor 10.100.1.5 next-hop-self all
neighbor 10.100.1.5 send-label
ip prefix-list prefix-list-ospf1-into-ospf3 seq 5 permit 10.100.1.2/32
route-map ospf1-into-ospf3 permit 10
match ip address prefix-list prefix-list-ospf1-into-ospf3
PE2
interface Loopback0
ip address 10.100.1.5 255.255.255.255
interface Ethernet1/0
no ip address
xconnect 10.100.1.4 100 encapsulation mpls
router ospf 3
network 10.3.0.0 0.0.255.255 area 0
network 10.100.1.5 0.0.0.0 area 0
router bgp 1
bgp log-neighbor-changes
network 10.100.1.5 mask 255.255.255.255
neighbor 10.100.1.2 remote-as 1
neighbor 10.100.1.2 update-source Loopback0
neighbor 10.100.1.2 send-label
컨트롤 플레인 작동을 확인하려면 그림 2를 참조하십시오.
MPLS 레이블 광고를 확인하려면 그림 3을 참조하십시오.
패킷 전달을 확인하려면 그림 4를 참조하십시오.
패킷이 PE1에서 PE2로 전달되는 방법입니다. PE2의 루프백 접두사는 10.100.1.5/32이므로 해당 접두사가 중요합니다.
PE1#show ip route 10.100.1.5
Routing entry for 10.100.1.5/32
Known via "bgp 1", distance 200, metric 0, type internal
Last update from 10.100.1.1 00:11:12 ago
Routing Descriptor Blocks:
* 10.100.1.1, from 10.100.1.1, 00:11:12 ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: 22
PE1#show ip cef 10.100.1.5
10.100.1.5/32
nexthop 10.2.2.6 Ethernet0/0 label 19 22
PE1#show ip cef 10.100.1.5 detail
10.100.1.5/32, epoch 0, flags rib defined all labels
1 RR source [no flags]
recursive via 10.100.1.1 label 22
nexthop 10.2.2.6 Ethernet0/0 label 19
PE1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 0.0.0.0 imp-null/nolabel
10.100.1.5/32 10.100.1.1 nolabel/22
P1#show mpls forwarding-table labels 19 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
19 Pop Label 10.100.1.1/32 603468 Et1/0 10.2.1.1
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000101AABBCC0006018847
No output feature configured
RR1#show mpls forwarding-table labels 22 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
22 21 10.100.1.5/32 575278 Et0/0 10.1.1.3
MAC/Encaps=14/22, MRU=1496, Label Stack{17 21}
AABBCC000300AABBCC0001008847 0001100000015000
No output feature configured
RR1#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.4 19/imp-null
10.100.1.5/32 10.100.1.2 22/21
P3#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.2/32 664306 Et1/0 10.1.2.2
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000201AABBCC0003018847
No output feature configured
RR2#show mpls forwarding-table labels 21 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
21 17 10.100.1.5/32 615958 Et0/0 10.3.1.7
MAC/Encaps=14/18, MRU=1500, Label Stack{17}
AABBCC000700AABBCC0002008847 00011000
No output feature configured
RR2#show bgp ipv4 unicast labels
Network Next Hop In label/Out label
10.100.1.4/32 10.100.1.1 22/19
10.100.1.5/32 10.100.1.5 21/imp-null
P2#show mpls forwarding-table labels 17 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 Pop Label 10.100.1.5/32 639957 Et1/0 10.3.2.5
MAC/Encaps=14/14, MRU=1504, Label Stack{}
AABBCC000500AABBCC0007018847
No output feature configured
PE1#trace
Protocol [ip]:
Target IP address: 10.100.1.5
Source address: 10.100.1.4
DSCP Value [0]:
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 10.100.1.5
VRF info: (vrf in name/id, vrf out name/id)
1 10.2.2.6 [MPLS: Labels 19/22 Exp 0] 3 msec 3 msec 3 msec
2 10.2.1.1 [MPLS: Label 22 Exp 0] 3 msec 3 msec 3 msec
3 10.1.1.3 [MPLS: Labels 17/21 Exp 0] 3 msec 3 msec 2 msec
4 10.1.2.2 [MPLS: Label 21 Exp 0] 2 msec 3 msec 2 msec
5 * * *
6 10.3.2.5 4 msec * 4 msec
P2#show ip route 10.100.1.4
% Subnet not in table
현재 이 컨피그레이션에 사용할 수 있는 특정 문제 해결 정보가 없습니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
03-Jul-2013 |
최초 릴리스 |