MPLS(Multi protocol Label Switching)
MPLS는 IETF에서 정의한 프로토콜로서 IP기반의 네트워크의 문제점을 극복하기 위한 것이며, 서비스 provideor의 core networks 또는 대기업 네트워크에서 주로 쓰인다.
MPLS의 핵심 기능은 IP네트워크 내부에 가상 경로(Virtual Circuits)를 구성하는 것이다. 이 가상 경로는 LSP(label switched paths)라 불린다. 이 LSP는 ATM이나 Frame relay networks상의 가상 경로와 유사하다.
MPLS구성도
MPLS 동작개념도
MPLS 동작방식
위 MPLS구성도에서 보여진 바와 같이, LSRs은 패킷들을 교체하는 핵심 장비이며, LERs은 외부 네트워크와 연결하고, 경로를 결정하고, 라벨을 부착/제거하는 종단 장비이다. 하나의 LSP는 end-to-end forwarding path를 구성하는 switch hops의 연결이다. LSP는 ingress LER에서 시작하여 하나 또는 여러 LSRs를 거쳐, egress LER에서 끝난다.
하나의 패킷이 MPLS 네트워크에 도착하면, ingress LER이 그 패킷을 제어하는데, 해당 패킷의 IP address를 보고, 경로를 결정하고, LSP할당 및 라벨을 부착한다. 그 패킷은 LSP로 forward되어지고, LER에 이를 때까지 LSR들을 거쳐서 이동한다. LER에 도착하면 레벨은 제거되고, 표준 IP Routing방식으로 보내진다.
기본(default) MPLS 라벨 할당과 라벨 forwarding 프로세스는 직접 연계될(attached)네트워크에 대한 정보를 알고 있는 개별 라벨 스위칭 장비와 함께 시작한다. OSPF나 BGP와 같은 라우팅 프로토콜이 라우팅 테이블을 구성하고, MPLS 장비는 그 때 라우팅 정보로부터 라벨 포워팅 테이블을 구성하고 이를 이웃 장비들에게 라벨정보를 배포한다. 그 테이블은 라벨이 어떻게 적용될 것인지의 정보를 제공하고, 하나의 라벨은 라우터가 결정한 포워딩 정보를 알려주는 짧은 표현형태이다.
< MPLS 라벨 할당 방식>
위 그림을 한번 봐 볼까? 겁나 복잡해 보이지만, 실제로는 간단하다네.
먼저 상단 우측의 LER2에는 2개의 네트워크 prefiexs가 있는데, Label9는 172.16, Label10은 129.10에 할당되어 있고
LER2는 이 라벨 할당 정보를 MPLS내부의 LSR들에 배포한다. 이 때, LER2는 '야 너네들, 나한테 172.16으로 가는 패킷 보낼 때는
라벨9붙이고, 129.10으로 보내는 것에는 라벨10붙여.잉?"라고 한다.
MPLS내부의 LSR은 LER2와 LER3로부터 라벨할당정보를 받아서 내부에서 자신들의 라벨테이블을 만든다.
<MPLS Label Forwarding>
실제 라벨 포워딩 방식을 한번 살펴보자고...
1.한 패킷이 ingress edge router LER1에 도착하면, LER1은 패킷의 IP주소를 검사하고 어떤 LSP를 사용하여야 할지 결졍한다. LER1의 라벨포워딩테이블은 prefix 172.18은 라벨3로 할당되어 있고 포트는 하나이므로, 포트0으로 해당 패킷을 라벨3로하여 보낸다.
2.LER1으로 보내진 패킷은 middle LSR에 도착하고, LSR은 label3를 자신의 라벨포워딩테이블에서 찾아본다. 거기에는 inlabel3은 172.18이며 이것은 outlabel9인 것과 해당 label이 포트0에 할당된 것을 확인하고 포트0,라벨9로 다시 보내는데. 이 때 해당 패킷의 라벨은 3에서 9로 교체한다.(Label Switching)
3.다음 hop으로 패킷이 도착하면, LER2는 라벨을 검사하고 이것이 라우팅테이블에서 라벨9가 포트0인것을 확인한다. LER2는 egress LER이므로, 더 이상의 라벨은 필요없으며, 기존의 라벨은 버려지고, 해당 패킷은 IP network 172.16으로 포워드된다.
라벨스위칭은 core LSR들에서 발생하고, ingress와 egress LER에서는 발생하지 않는다. swap operation은 incoming label을 조사하고, outgoing label과 output port를 결정하는 과정으로 구성되어 있다.
참고 RFC
- RFC 2702 (Requirements for Traffic Engineering Over MPLS, September 1999)
- RFC 3031 (Multiprotocol Label Switching Architecture, January 2001)
- RFC 3033 (Signaling for the Internet Protocol, January 2001)
- RFC 3036 (LDP Specification, January 2001)
참고자료 : http://www.linktionary.com/m/mpls.html
이 글은 스프링노트에서 작성되었습니다.



