목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경

아키텍처

구성

다음을 확인합니다.

문제 해결

관련 정보

소개

이 문서에서는 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이 전달 경로에 있습니다.

참고: 이 아키텍처를 통해 모든 MPLS 서비스가 제공됩니다. 예를 들어 PE 라우터 간에 MPLS VPN 또는 MPLS L2VPN이 제공됩니다. 이러한 패킷에 대한 데이터 플레인의 차이점은 이제 레이블 스택에 세 개의 레이블이 있는 반면, Unified MPLS를 사용하지 않을 때 레이블 스택에 두 개의 레이블이 있다는 것입니다.

두 가지 시나리오가 있습니다.

- ABR은 ABR이 네트워크의 어그리게이션 부분에 광고한(BGP에 의해 반영) 접두사에 대해 다음 홉을 자체 홉으로 설정하지 않습니다. 따라서 ABR은 코어 IGP에서 어그리게이션 IGP로 ABR의 루프백 접두사를 재배포해야 합니다. 이 작업을 수행하더라도 확장성이 유지됩니다. 코어의 ABR 루프백 접두사만 어그리게이션 부품에 광고해야 하며, 원격 어그리게이션 부품의 PE 라우터의 루프백 접두사는 광고해야 합니다.

- ABR은 ABR에서 어그리게이션 부품으로 광고한(BGP에 의해 반영) 접두사에 대해 다음 홉을 셀프(self)로 설정합니다. 따라서 ABR은 코어 IGP에서 어그리게이션 IGP로 ABR의 루프백 접두사를 재배포할 필요가 없습니다.

두 시나리오에서 ABR은 네트워크의 어그리게이션 부분에서 코어 부품으로 ABR이 광고한(BGP에 의해 반영) 접두사에 대해 다음 홉을 셀프(self)로 설정합니다. 이 작업을 수행하지 않으면 ABR은 어그리게이션 IGP에서 코어 IGP로 PE의 루프백 접두사를 재배포해야 합니다. 이렇게 하면 확장성이 없습니다.

반사된 iBGP 경로에 대한 next hop을 self로 설정하려면 neighbor x.x.x next-hop-self-all 명령을 구성해야 합니다.

구성

시나리오 2에 대한 PE 라우터 및 ABR의 컨피그레이션입니다.

참고: 토폴로지는 그림 2에 나와 있습니다. 서비스 예는 xconnect(MPLS L2VPN)입니다. PE 라우터와 ABR 간에는 IPv4 + 레이블에 대한 BGP가 있습니다.

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

참고: 코어 IGP(ospf 1)를 어그리게이션 IGP(ospf2 또는 ospf 3)로 재배포하려면 route-map을 사용합니다. 이 경로 맵은 RR의 루프백 접두사가 어그리게이션 IGP로 재배포될 수 있도록 합니다. 그 이유는 RR의 루프백 접두사가 코어 IGP(ospf 1)에만 직접 광고되기 때문입니다. 그러나 PE 라우터의 BGP가 RR의 루프백을 통해 피어링할 수 있도록 RR의 루프백 접두사를 어그리게이션 IGP에서도 알고 있어야 합니다.

다음을 확인합니다.

컨트롤 플레인 작동을 확인하려면 그림 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

참고: Hop 5는 ?5 * * * ?. 라우터 P2에 traceroute의 소스 IP 주소 10.100.1.4(PE1)에 대한 경로가 없기 때문입니다. 따라서 라우터 P2는 ICMP(Internet Control Message Protocol) 오류 메시지를 다시 PE1로 보낼 수 없습니다. Unified MPLS의 포인트는 한 어그리게이션 부품에 있는 모든 PE 라우터의 루프백 접두사가 다른 어그리게이션 부품의 IGP에 표시되지 않도록 하는 것입니다. 라우터 P2는 원래 레이블 스택과 함께 ICMP 오류 메시지를 전달하려고 시도하지 않습니다. 이는 원래 레이블 스택에 하나의 레이블만 있기 때문입니다. 패킷의 이 원래 레이블 스택에 두 개 이상의 레이블이 있는 경우 ICMP 오류 메시지가 LSP를 따라 전달되고 traceroute의 소스로 돌아갈 수 있습니다. 원래 레이블 스택에 레이블이 하나만 있는 경우 ICMP 오류 메시지를 생성하는 라우터는 경로 조회를 시도하고 라우팅 테이블을 사용하여 라우팅을 시도합니다(원래 레이블 스택을 사용하지 않음).

P2#show ip route 10.100.1.4

% Subnet not in table

문제 해결

현재 이 컨피그레이션에 사용할 수 있는 특정 문제 해결 정보가 없습니다.

관련 정보

- 원활한 MPLS 아키텍처

- 기술 지원 및 문서 − Cisco Systems