호빗의 인간세상 탐험기

MPLS (Multi Protocol Label Switching) #1 본문

IT이야기

MPLS (Multi Protocol Label Switching) #1

딜레이라마 2017. 3. 19. 21:28
반응형

MPLS (Multi Protocol Label Switching) 개요
 
IP Routing
 
기존의 IP Routing을 하기 위해서 RIP, IGRP, EIGRP, OSPF, BGP 라우팅 프로토콜을 이용하여 라우터에 라우팅 테이블을 구성하였다.
또한, IP Routing 기반에 데이터 전송은 해당 데이터의 목적지 주소를 라우팅 테이블을 참조하여 넥스트-홉에게 전달 및 포워딩 하는 방법이다.
이러한 동작을 각각의 라우터에서 반복적으로 동작하여 해당 목적지로 데이터 전송이 보장된다.
즉, 라우터는 해당 패켓이 도착하면, 라우팅 프로토콜로 학습한 경로 정보를 라우팅 테이블에서 참조하여, 넥스트-홉에게 전달한다.
 
MPLS(Multi Protocol Label Switching)
 
MPLS는 기존의 IP Routing 데이터 전송 방식과 다르게, 데이터의 목적지 IP 주소를 확인하는 대신 ‘Label’이라고 불리는 패켓에 더해진 식별자를 확인하여 목적지까지 데이터를 전달 및 포워딩을 실시한다.
또한, IP 주소가 어떤 Label를 사용할 것인지를 광고하게 된다. 각각의 라우터는 라우팅 테이블과 동시에 Label 테이블을 학습한다.
즉, MPLS에서는 기존의 라우터의 동작 방식에 새로운 ‘Label’ 정보를 광고 및 학습하는 동작 방식이라 정의할 수 있다.
 
- Multi Protocol 지원 : 다양한 네트워크 환경(Ethernet, ATM, Frame-Relay, Etc)에서 동작이 가능하다.
 
- Label Switching : 일반 데이터에 일정 크기의 헤더를 삽입하여, 이 헤더의 일부를 필드에 저장되어 있는 값을 이용하여 데이터를 스위칭 한다.
 
- MPLS : 패켓을 수신한 라우터는 먼저, 최초의 목적지 IP 주소와 Label 테이블을 참조하여 Label를 추가한다.
Label 정보를 확인한 라우터는 포워딩을 반복적으로 실시하며, 목적지까지 데이터가 전송되었다면 Label를 삭제한다.
이처럼, MPLS 구성망에서 데이터가 목적지까지 포워딩되는 경로는 단일 경로로 인식할 수 있다.
 
MPLS Corner : Traffic Engineering
 
MPLS는 Label를 사용하여, 해당 데이터를 포워딩하는 동작을 최적화를 하는 것에 초점을 맞춰, 라우터 고속화를 목적으로한 기술이었다.
현재에는 Layer 3 스위치와 Layer 3 스위칭 기반으로 하드웨어 자체적으로 IP 패켓에 대해서 고속으로 포워딩이 가능하기 때문에, MPLS가 이 문제를 맡는 것은 중요하지 않게 되었다.
현재 MPLS는 다음과 같은 역할을 가지고 동작하게 된다.
 
- IGP 프로토콜을 이용하여 IP Routing을 할 경우, 목적지 IP 주소를 라우팅 테이블를 참조하여 해당 경로에 대해서 Metric을 측정하여 최적의 경로를 선택한다.
만약, 해당 트래픽들이 최적의 경로를 많이 사용하게 되면, 즉 어떠한 링크에 치우치는 것에 의해서 대역폭 부족 현상이 발생될 수 있다..
 
- Traffic Engineering : MPLS는 명시적인 경로를 미리 선정하여 최적의 경로의 대역폭 부족 현상을 해결하는 동시에 링크 효율도 높일 수 있게 된다.
 
MPLS Corner : MPLS VPN
 
기존 VPN은 적지 않은 과부화의 문제점을 나타내고 있는 반면에, MPLS VPN은 기존의 VPN 보다 과부화가 적으며 최적의 상태를 유지할 수 있는 장점을 가지고 있다.
- 공유 IP/MPLS 망을 구축하여, 사용자 별로 논리적으로 분리된 VPN망을 제공한다.
- 사용자측에서는 MPLS를 인식하는 일이 없기 때문에 기존 라우터를 그대로 사용하는 것이 가능하다.
- 서로 다른 사용자들은 동일한 IP 주소를 중복하여 사용해도 문제되지 않는다.
- 별도의 추가적인 VPN 장비가 필요 없는 고성능 VPN 서비스가 가능하다.
- 투자비용 및 유지비용이 저렴하다.
 
MPLS Terms
 
기본적으로 MPLS를 구성할 때 사용하는 MPLS 라우터 및 용어는 다음과 같다.
 
- Label : 일반 패켓 헤더에 덧붙여진 추가 정보를 뜻하며, 이 헤더 이름을 ‘Shim Header’라고 정의한다. MPLS에서는 Label에 저장된 값을 이용하여 스위칭을 실시한다.
 
- Label Switching : 데이터 전송이 아닌 데이터에 Label를 추가하고 여기에 포함된 값을 이용하여 Layer 2 기반에서 바로 스위칭 하는 방법을 말한다. 그리고 이 스위칭은 목적지까지 가기 위한 경로를 라우팅 테이블에서 참조하지 않으며, 그대신 Label의 값을 이용하여 Layer 2 스위칭을 실시한다.
 
- LER(Label Edge Router) : 사용자 및 가입자 네트워크가 연결된 라우터를 뜻한다. LER는 사용자 및 가입자 네트워크에서 들어오는 일반 패켓에 Label를 추가하여 MPLS 패켓으로 전환하는 역할을 맡고 있다.
 
- LSR(Label Switch Router) : MPLS Provider 네트워크의 백본에 연결되어 있는 라우터를 뜻한다. LER로부터 전달받은 MPLS 패켓에서 Label 정보를 확인하여 자신의 LFIB에서 순차적으로 검사한다.
 
- LSP(Label Switch Path) : MPLS를 구성한 라우터와 라우터 상호간에 생기는 경로를 뜻한다. MPLS 패켓은 바로 LSP 경로를 이용하여 전송된다.
 
- LDP(Label Dynamic Protocol) : MPLS를 구성한 라우터와 라우터 상호간에 LSP를 동적으로 생성하는 프로토콜을 뜻한다. 또한, 설정된 회선의 대역폭 사용률에 따라 자동으로 생성할 수 있다.
 
Label
 
Label이란 일반 패켓 헤더에 덧붙혀진 추가 정보를 뜻하며, 이 헤더 이름을 ‘Shim Header’라고 정의한다. MPLS에서는 Label에 저장된 값을 이용하여 L2 스위칭을 실시한다.
 
- ‘Shim Header’는 Ethernet이나 Point-to-Point Protocol 환경에서는 기존 데이터에 덧붙이며, Frame-Relay 환경에서는 DLCI Field에 저장, ATM 환경에서는 VCI, VPI에 저장된다.
 
- 위의 그림을 보면, Label은 L2 Header와 L3 Header 사이에 추가되며, 크기는 4 bytes를 사용한다. 또한, L3 Header 앞에 위치하고 잇기 때문에 프로세서에 의해서 Layer 3로 올라가기 이전에 처리된다.
 
- 기존 Ethernet 환경의 최대 프레임 싸이즈는 1500 Byte와 Tailer(FCS) 18 Byte를 합한 1518 Byte이다. 여기에다가 Label 4 Byte를 추가하면 1522 byte으로 증가 되기 때문에 패켓은 폐기될 것이다.
 
- 즉, Label이 추가된 프레임은 기존의 프레임에 4 Byte ‘Shim Header’가 추가된 것으로 MTU 싸이즈에 문제가 될 수 있기 때문에, ‘Shim Header’가 추가된 패켓은 폐기될 것이다.
 
- 4 Byte의 ‘Shim Header’가 추가 MPLS 패켓이 폐기 되는 것을 막기 위해서는 Ethernet Header의 Field 중 상위 프로토콜에 대한 값을 저장하고 있는 Type Field(2 Bytes)에 현재 프레임이 MPLS 패켓이라는 것을 인식해야 한다.
 
- Ethernet Header의 Type Field값이 0x8847로 저장되면, 라우터는 해당 데이터가 MPLS 패켓으로 인식하여 패켓을 폐기하지 않는다.
 
Label Format
 
4 Byte로 구성된 Label에서 첫 번째 20 bit는 Label 값이 저장되는 Field이다. 이 Field의 크기는 20 Bit이므로 2^20(1,048,575)개만큼 Label를 생성할 수 있다. MPLS를 구성한 라우터는 이 Field에 저장되어 있는 Label의 값을 사용한다.
 
- Label 20 Bits: MPLS의 Label 값이 저장된 Field이다. 목적지로 가는 경로 상에 있는 라우터들은 라우팅 테이블을 참조하지 않고, 이 Filed의 값을 이용하여 넥스트-홉으로 데이터를 전송한다. 라우터는 이를 위해 Label의 값을 순차적으로 검사하는데 필요한 LFIB(Label Forwarding Information Base)라는 Label 관련 테이블을 생성한다. (Label의 값 중에 0~15는 예약된 값이며, 일반적으로, 100,000부터 1,048,575 사이의 Label이 동적으로 할당된다.)
 
- Cos 3 bits : 데이터 전송할 때 서비스 정책이나 우선순위에 따라 차별화된 Qos 서비스 제공할 때 사용된다.
 
- Stack bit : Label의 Stacking에 대한 정보를 저장한다. Stack이란, 쌓아 올린다는 뜻이며, 데이터를 저장하는 구조의 한 형태로써 LIFO(Last In First Out)로 동작한다. MPLS에서 Label Stacking은 중요한 기능을 수행한다. 예를 들어, 일정 구간의 네트워크를 지나는 동안 원래의 데이터에 대한 Label 값이 변경되지 않고 그대로 유지되고 싶을 때는 원래 Label 위에 해당 구간에서 사용되는 Label을 Stack하여 내부의 Label이 영향 받지 않도록 할 수 있다. 만약, Stack bit가 ‘0’이면 원래 Label에 또 다른 Label이 Stack되었다는 의미이다.

반응형

'IT이야기' 카테고리의 다른 글

RAID (레이드) 레벨과 구성방식  (0) 2017.03.22
CBAC, PAM 의 이해와 예시  (0) 2017.03.19
DLP 관리  (0) 2017.03.19
삼성노트북 USB 인식방법  (0) 2017.03.19
데이터베이스 설계의 기본원리2  (0) 2017.03.14
Comments