본문 바로가기

IT Tech/Network

[네트워크] MPLS 개념, 정리 노트

반응형




MPLS 기초 개념




1. Label

일반 패킷에 덧붙여진 추가 Header로 'Shim Header' 라고 합니다.
Ethernet, PPP는 L2/L3 Header 사이에 4Byte 크기로 덧붙는 형태를 띄며, ATM은 VCI와 VPI에 F/R은 DLCI 필드에 저장됩니다.





전체 패킷 사이즈
[Ethernet Header,Tailer(FCS)(18 Byte) + MTU]1518 Byte + Shim Header(4 Byte)
==>1522 Byte

Maximum MTU 사이즈 초과로 이를 Drop하지 않고 처리하기 위해서 L2 헤더의 EtherType 필드에 0x8847 의 값을 주어 MPLS 패킷임을 알려주어야 합니다.












<Label Format>



Label(20b) :  (1~1,048,575), 라우팅 테이블의 Lookup없이 이 값을 이용해 Next-Hop으로 데이타를 전송합니다. 라우터는 이를 위해 Label의 값을 인덱스로 하는 별토의 Label Table인 LFIB(Label Forwarding Information Base)을 구성합니다.

0~15 의 값은 예약되어 있고 시스코 IOS는 16-100,000 사이의 값을 사용한다.


EXP(3b) : EXPerimental 비트는 QoS 값을 표시할 때 사용, 0-7 사이의 값을 가진다.

BoS(Bottom of Stack bit, 1b) : Label의 Stacking에 대한 정보를 저장. MPLS에서 Label Stacking은 중요한 기능을 합니다.

Stack의 Bottom
BoS의 값이 0 : 현재 라벨 다음에 또 라른 라벨이 있음.
BoS의 값이 1 : 마지막 라벨

예를 들어, 일정 구간의 네트워크를 지나는 동안 원래의 데이터에 대한 Label 값이 변경되지 않고 그대로 유지되고 싶을 때는 원래의 Label 위에 해당 구간에서 사용되는 Label을 쌓아 올려 내부의 Label이 영향을 받지 않도록 할 수 있습니다.

라벨 수량에는 제한이 없으며 MPLS VPN에서는 2개의 라벨을 사용하는 경우가 많고, 경우에 따라 5개 이상의 라벨을 사용할 수도 있다.

TTL(8b) : IP Header에 있는 TTL의 기능과 같다. 패킷의 루프를 방지하기 위한 필드입니다.

- IP Header에 있는 TTL 값을 복사해서 LSR에서 shim header 처리할 때마다 1씩 감소시킨다.
- MPLS 망을 벗어나는 egress LSR(LER)에서 shim 헤더의 TTL값을 복사하여 IP 헤더의 TTL에 삽입한다.

- ATM과 같이 중간의 LSR에서 TTL 처리를 할 수 없는 경우에는 LSR의 hop 수만큼 미리 TTL값을 조정해서 shim 헤더에 삽입한다.






2. Label Switching

라우팅 방식의 데이터 전송이 아닌 데이터에 Label을 추가하고, 이 값을 이용해 L2 기반에서 Switching하는 방식을 제안.

[참고]
Switching은 L2 기반의 네트워크 환경에서 Frame을 전송하는 기술이고,  Routing은 L3기반의 Packet을 전송하는 기술.





2.1 LER

LER (Label Edge Router) 가입자 네트워크가 연결된 라우터로 FEC(Forwarding Equivalence Class)라고 하는 목적지 주소에 할당된 Label을 추가하여 MPLS 패킷으로 만드는 역할을 담당. <FEC와 Label Binding> ==> MPLS VPN의 경우 2개의 label을 추가합니다.

목적지 LER은 MPLS패킷에서 Label을 제거하여 원래의 IP 패킷으로 만듭니다.

목적지 LER은 굳이 Label정보가 필요없기때문에PHP(Penultimate Hop Popping)이란 기능을 사용해서 label에 Implicit-NULL(Label 3) 값을 넣어 바로전 라우터에게 전달하면 이와 같은 Label을 받은 라우터는 패킷을 보내기 전 모든 Label을 제거하고 순수한 IP 패킷만을 전송하게 할 수 있습니다. MPLS-TP에서는 비활성화(RFC6373).

PUSH수행하는 라우터를 Ingress Router, POP수행하는 라우터를 Egress Router라고 부릅니다. 이들 사이에는 MPLS 패킷이 지다나딜 수 있는 경로가 생기게 되는데 이것을 LSP(Label Switch Path)라고 합니다.


[참고1]
FEC(Forwarding Equivalence Class)는 동일한 MPLS 경로를 이용하여 전송되는 패킷의 그룹을 의미하며, 같은 FEC 그룹에 속한 패킷들은 동일한 Label을 부여받는다. 패킷이 어떤 FEC에 속하는지 결정하는 것은 처음 수신한 MPLS 라우터 즉, ingress LSR이다.

동일한 FEC그룹에 해당하는 패킷은 다음과 같다.

1. Destination Network 가 같은 패킷
2. 같은 Multicast Group에 속한 패킷
3. BGP Next Hop IP 주소가 동일한 패킷

[참고 2]

일반 패킷에 Label을 붙이는 LER의 동작을 'PUSH'라고 하며 반대로 Label을 제거하는 것을 'POP'이라고 합니다. 이러한 용어들은 데이터 구조 중 Stack에서 사용하는 용어로서 Label의 추가와 삭제에도 그대로 사용되고 있습니다.



[정리]
출발지 LER은 가입자측 패킷의 IP Header 중 목적지 주소에 해당하는 정보를 보고 해당 FEC에 Binding된 Label을 패킷에 Push하여 MPLS 패킷으로 만들고 이를 Next-Hop으로 설정된 라우터로 전송합니다. 목적지 LER은 Label을 제거한 후 일반 IP 패킷으로 만든 다음 자신의 라우팅 테이블에서 최적의 경로를 Lookup한 후 목적지 네트워크로 전송합니다.








2.2 LSR

LSR(Label Switch Router)은 MPLS 네트워크의 중간 즉, Provider 네트워크의 백본에 연결되어 있는 라우터.


패킷의 Label을 보고 자신의 LFIB 테이블에서 일치하는 Entry를 찾아 해당하는 Incoming Label을 Outgoing Label로 Swap하고 연결된 Interface로 내보냅니다.







3. LSP


MPLS에서 Ingress와 Egress 라우터 사이에 생기를 경로를 LSP(Label Switch Path)라고 하며, 두 라우터 간에 생성되는 LSP를 흔히 'MPLS Tunnel'이라고 표한합니다. (MPLS 패킷만이 지나다닐 수 있는 유일한 길이란 의미)





4. LDP


LSP는 Dynamic하게 생성되기도 하며 설정된 회선의 대역폭 사용률에 따라 자동적으로 생성될 수도 있습니다. 전자는 LDP(Label Distribution Protocol)를 사용하는 경우이며, 후자는 RSVP-TE(Resource Reservation Protocol-Traffic Engineering)이나 CR-LDP(Constraint Route LDP)등 Signaling 프로토콜을 사용하며 LSP를 생성함에 있어 전자에 비해 여러 가지 제약 조건들을 갖고 있습니다.

LDP는 라우팅 정보를 교환하여 일관된 라우팅 테이블을 만들듯이 자신의 Label 정보를 교환함으로서 최종적으로 목적지로 가기 위한 Label 테이블을 만듭니다.

LDP는 최초Neighbor를 찾기 위해 UDP를 사용하지만, 신뢰성 확보를 위해 이후의 전송 프로토콜로 TCP(Port 646)를 사용합니다.



[LDP Message]
Discovery Message : Hello Message를 Multicast로 전송. 응답을 하면 LDP 세션을 열고 연결을 시도.
Adjacency Message : 이웃을 맺기 위해 초기 설정을 조정합니다. (Label 할당 방법, Label의 범위, Keepalive 간격 등등)
Label Advertisement Message : 각자가 갖고 있는 Label 정보를 교환
Notification Message : 에러 메시지





MPLS 개념의 스터디중 중요내용만 간추림








반응형