이 문서에서는 Cisco IOS© IPv6 PE(Provider Edge Router)가 데이터 평면에서 두 개의 MPLS(Multiprotocol Label Switching) 레이블을 사용하는 이유를 설명합니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
A. 6PE는 두 개의 레이블을 사용합니다.
맨 위 레이블은 전송 레이블입니다. 이 레이블은 LDP(Label Distribution Protocol) 또는 MPLS TE(Traffic Engineering)에 의해 홉별로 할당됩니다.
아래쪽 레이블은 BGP(Border Gateway Protocol)에서 할당하고 PE(Provider Edge) 라우터 간의 iBGP(internal BGP)에서 광고하는 레이블입니다.
6PE가 릴리스되었을 때 MPLS 코어 라우터(P 라우터) 중 IPv6를 인식할 수 있는 라우터가 없어야 한다는 것이 주된 요구 사항입니다. 이러한 요구 사항으로 인해 데이터 플레인에서 두 개의 레이블이 필요했습니다. 6PE가 두 라벨을 모두 필요로 하는 이유는 두 가지이다.
PHP 기능
전송 레이블만 사용하고 PHP(Penultimate Hop Popping)를 사용하는 경우, Penultimate Hop 라우터(P 라우터)는 IPv6를 이해해야 합니다.
PHP를 사용하는 경우 이 최종 홉 라우터는 MPLS 레이블을 제거하고 패킷을 IPv6 패킷으로 전달해야 합니다. 이 P 라우터는 패킷이 IPv6임을 알아야 합니다. P 라우터는 IPv6에 올바른 레이어 2 캡슐화 유형을 사용해야 하기 때문입니다. (캡슐화 유형은 IPv6와 IPv4에 따라 다름) 예를 들어 이더넷의 경우 캡슐화 유형은 IPv6의 경우 0x86DD이고, IPv4의 경우 0x0800입니다.) Penultimate 홉 라우터가 IPv6를 지원하지 않는 경우 IPv6 패킷에 대한 IPv4의 레이어 2 캡슐화 유형을 사용할 수 있습니다. 그러면 이그레스 PE 라우터는 패킷이 IPv4라고 간주합니다.
IPv4 및 IPv6 헤더 모두에 TTL(time-to-live) 처리가 있습니다. IPv6에서는 필드를 Hop Limit이라고 합니다. IPv4 및 IPv6 필드는 헤더의 서로 다른 위치에 있습니다. 또한 IPv4 헤더의 Header Checksum도 변경해야 합니다. IPv6에 헤더 체크섬 필드가 없습니다. Penultimate 홉 라우터가 IPv6을 지원하지 않는 경우 라우터가 헤더에서 TTL 필드 및 헤더 체크섬 필드를 찾을 것으로 예상하므로 IPv6 패킷의 형식이 잘못됩니다.
이러한 차이점 때문에 Penultimate 홉 라우터는 IPv6 패킷임을 알아야 합니다. 이 라우터는 IPv6 FEC(Forwarding Equivalence Class)에 레이블을 지정하지 않았고 MPLS 헤더에 캡슐화 필드가 없으므로 패킷이 IPv6 패킷임을 어떻게 알 수 있습니까? 레이블 스택 후 첫 번째 니블을 스캔하고 값이 6이면 패킷이 IPv6임을 확인할 수 있습니다. 그러나 이는 최종 홉 라우터가 IPv6을 지원해야 함을 의미합니다.
이 시나리오는 명시적 null 레이블이 사용되는 경우(따라서 PHP가 없는 경우) 작동할 수 있습니다. 그러나, 그 결정은 PHP를 요구하는 것이었다.
로드 밸런싱
P 라우터의 일반적인 로드 밸런싱은 이 프로세스를 따릅니다. P 라우터는 레이블 스택의 끝으로 이동하여 레이블 스택 후 첫 번째 니블을 확인하여 IPv4 패킷인지 확인합니다.
니블의 값이 4이면 MPLS 페이로드는 IPv4 패킷이며, P 라우터는 소스 및 목적지 IPv4 주소를 해싱하여 로드 밸런싱을 수행합니다.
P 라우터가 IPv6를 지원하고 니블 값이 6이면 P 라우터는 소스 및 대상 IPv6 주소를 해싱하여 로드 밸런싱을 수행합니다.
P 라우터가 IPv6를 지원하지 않고 니블 값이 4가 아닌 경우(패킷이 IPv6 패킷인 경우 6일 수 있음), P 라우터는 IPv4 패킷이 아니라고 판단하고 아래쪽 레이블을 기준으로 로드 밸런싱 결정을 수행합니다.
6PE 시나리오에서는 인그레스 PE 라우터를 향해 BGP에 IPv6 접두사 하나를 광고하는 두 개의 이그레스 PE 라우터가 있다고 가정합니다. 이 IPv6 접두사는 BGP에서 서로 다른 두 레이블로 광고됩니다. 따라서 데이터 평면에서 아래쪽 레이블은 두 레이블 중 하나가 됩니다. 이렇게 하면 P 라우터가 플로우별로 하단 레이블의 로드 밸런싱을 수행할 수 있습니다.
6PE가 MPLS 코어를 통해 6PE 패킷을 전송하기 위해 전송 레이블만 사용한 경우, P 라우터가 IPv6를 지원하지 않는 한 P 라우터는 플로우별로 이러한 패킷을 로드 밸런싱할 수 없습니다. P 라우터가 IPv6를 지원하는 경우 로드 밸런싱을 결정하기 위해 소스 및 대상 IPv6 주소를 사용할 수 있습니다.