네트워크/MPLS

MPLS PHP (feat. Label 제거하기 )

고미-고미 2022. 4. 5. 08:07
728x90

● MPLS PHP (Penultimate hop popping) 란?

 

PHP (Penultimate hop popping)의 의미는 Penultimate (끝에서 두번째) + hop (컴퓨터 네트워크에서 출발지와 목적지 사이에 위치한 경로의 한 부분) + popping (훌쩍 가버리기) 라는 단어의 조합으로 "컴퓨터 네트워크 경로에서 끝에서 두번째 위치에서 훌쩍 가버리기" 라는 의미 입니다. 

 

MPLS PHP는 단어가 가지고 있는 의미 그대로 최종 목적지 이전 마지막 Egress LSR에서 Label을 제거하는 기술 입니다. 

 

● MPLS PHP (Penultimate hop popping) 특징

  • MPLS 성능 최적화를 위해 사용 합니다. PHP 기능을 사용 함으로써 LFIB Lookup을 1회 줄일 수 있어 처리시간이 단축 됩니다. 
  • PHP 기능을 수행하기 위한 암시적 (Implicit, Label 3) & 명시적 (Explicit, Label 0) Null Label이 존재하며, 기본 동작은 Implicit Null Label을 사용하며, QoS를 사용할 경우 Explicit Null Label을 사용 합니다. 1)
  • Edge Egress LSR에 연결 된 네트워크 대역에 대해서만 POP Label 정보로 LDP Neighbor에게 전달 됩니다. 
  • LFIB에서 확인 할 수 있는 POP과 Untagged는 다른 개념 입니다. 2) 

 

  • PHP를 사용하지 않으면 LFIB를 참조 후 Label 제거
  • FIB를 참조하여 Next-Hop으로 Packet을 전달

∴ PHP를 사용하지 않을 경우 이중 참조 (Double Lookup)을 사용하게 되어 최적화 되지 못함

 

  • PHP기능을 사용하여 Label이 제거 후 Last Egress LSR에게 전달 됨.
  • LFIB & FIB를 Double Lookup 에서 Only FIB Lookup으로 참조 횟수를 감소시켜 최적화 포워딩 수행

 


1) MPLS에서 0 ~ 15번의 Label은 특별한 용도로 예약되어 있습니다. Label 0은 Explicit Null Label, Label 3은 Implicit Null Label, Label 1은 Router Alter Label, Label 14는 OAM Alter Label로 예약되어 있고 언급되지 않은 Label은 아직 할당되지 않았습니다. 

 

QoS, MPLS VPN, MPLS TE를 사용 시 MPLS Header의 Exp Field 정보를 사용해야 합니다. Explicit Null Label을 사용하면 Egress LSR은 Explicit Label만 제거하고 그 다음 Label 값을 이용하여 패킷 전달 또는 QoS를 수행 합니다. 반대로 Implicit Null을 사용하면 Label 전체가 제거 되기 때문에 Label Stack을 활용한 트래픽 우회 또는 QoS 기능을 사용할 수 없습니다.

 

2) POP은 Edge Egress LSR에게 전달할 때 Label 삭제 후 전달 할 것을 의미하며, Untagged는 Label 정보가 없는 것 입니다. 

 

 

 

728x90