Search
Duplicate

컴퓨터 네트워크/ MPLS(Multi-Protocol Label Switching)

MPLS 개요

(생략)
이처럼 IP의 유연성과 확장성 그리고 ATM(Asynchronous Transfer Mode), 기가비트 이더넷 등의 고속 스위칭 기술을 이용하여 인터넷의 병목 지점이었던 라우터에서 고속으로 트래픽을 처리하고 다양한 부가 서비스를 제공하고자, IETF에서는 레이블 스위칭 기술을 기반으로 MPLS를 제안하였다.
MPLS 기술은 안정성과 확장성이 검증된 IP 라우팅 프로토콜과 고속 스위칭 기술을 결합하여 패킷을 전달하는 방식으로, 네트워크 확장성과 네트워크 자원의 효과적인 운용을 위해 IP 네트워크에서 제공할 수 없었던 트래픽 엔지니어링(TE: Traffic Engineering)과 같은 새로운 기술들을 적용하였다.
결과적으로 MPLS은 IP와 ATM, 프레임 릴레이 그리고 이더넷 기술을 수용함으로써 기존 IP 네트워크의 많은 제약 사항을 해결하였고, 다양한 부가 서비스를 효괒거으로 창출할 수 있기 때문에 차세대 인터넷의 핵심 기술로 평가 받고 있다.
또한 MPLS는 기존의 목적지 기반 홉 단위(Hop-by-Hop) 라우팅 대신 레이블 스위칭 기법을 사용하였고, 고정 길이의 레이블을 이용하기 때문에 포워딩 엔진을 하드웨어로 구성하기가 쉬워 대용량 스위치의 구현을 가능하게 하였다.
초기 레이블 스위칭의 가장 큰 장점은 IP 패킷 라우팅과 2계층 스위칭 기술의 접목을 통한 성능 향상이었으나 최근 ASIC(Application Specific Integrated Circuit) 기반 3계층 스위칭 기술의 확산으로 이러한 성능 향상은 더는 큰 장점이 되지 못하고 있다.
MPLS가 각광받는 보다 큰 이유는 확장성 있는 VPN(Virtual Private Network), 트래픽 엔지니어링과 같은 기능을 제공하고, 라우팅과 포워딩의 완전한 분리를 통해 IPv6과 같은 새로운 기술들을 보다 쉽게 네트워크에 적용할 수 있다는 점을 들 수 있다.
그림 13-1은 이런 통신망의 발전 방향을 보여주고 있다.

IP 스위칭과 태그 스위칭

IP 패킷 헤더 정보를 통해 홉 단위 라우팅을 수행하였던 기존의 방식은 경로를 찾기 위해 많은 작업을 수행하기 때문에 라우터의 전송 속도를 감소시키는 주된 원인이었다.
최초 레이블 스위칭 기술은 이러한 라우터의 단점을 개선하고자 3계층 장비에 2계층 스위칭 능력을 부여함으로써 시작되었고, 시스코의 태그 스위칭(Tag Switching), IBM의 ARIS(Aggregate Route Based IP Switching), 도시바의 CSR(Cell Switching Router), 입실론(Ipsilon)의 IP 스위칭, 루슨트의 IP 네비게이터 등과 같이 다양한 형태로 비슷한 시기에 첫 선을 보였다.
레이블 스위칭 기술은 ‘Cut-Through’ 방식의 패킷 전송 기술로써 패킷 전송과 경로 설정을 완전히 분리하여 고속 전송을 구현하고자 했다. 레이블은 3계층 경로 정보와 밀접한 관련이 있으며, 레이블 스위치는 레이블을 기초로 패킷을 스위칭 한다.
즉 일단 경로 정보에 의해 레이블이 할당되면 패킷의 전송은 라우팅 정보와 상관없이 레이블에 의해서만 이루어진다.
본 절에서는 라우터 기반 네트워크에서 레이블 스위치 기반 네트워크로의 전환에 있어 촉매제가 되었던 IP 스위칭 기술과 이를 발전시켜 MPLS의 기술적인 모태가 되었던 태그 스위칭에 대해 살펴보기로 한다.

IP 스위칭(IP Switching)

레이블 스위칭의 시발점이 되었던 IP 스위칭을 처음 입실론사(현재는 Nokia)에서 제안하였을 때 엄청난 반향이 있었다.
IP 스위칭은 그림 13-2와 같이 ATM의 신호(Signaling) 기능과 관리 기능을 IP 스위치 제어기로 대체한 IP 스위치를 중심으로 동작한다.
즉 IP 스위칭은 ATM 스위치와 IP 라우팅 기능을 스위치 제어 프로토콜인 GSMP(Generic Switch Management Protocol)를 매개로 하여 결합한 형태로써, IP의 장점인 확장성, 안정성, 단순성과 ATM의 장점인 빠른 전송 속도, 대용량 대역폭, QoS 제공을 목적으로 하였다.
IP 스위칭에서는 라우팅 프로토콜에 근거한 특정 송신측과 수신측 간의 패킷 스트림을 플로우(Flow)라는 개념으로 정의하고 있다.
플로우에 속한 최초 패킷들의 트래픽 특성에 따라 라우터에서의 처리 방법이 결정되면 이후 해당 플로우 패킷들의 트래픽 특성에 따라 라우터에서의 처리 방법이 결정되면, 이후 해당 플로우 패킷들은 동일한 방법으로 전송된다.
즉 패킷 스트림은 그림 13-2의 1에서와 같이 기존의 방식처럼 라우팅될 수도 있고, 2에서와 같이 ATM 스위치에서 바로 ‘Cut-Through’ 방식을 통해 전송될 수도 있다.

IP 스위칭 동작

IP 스위칭은 ATM 스위치를 사용하기 때문에 입력 플로우에 대해 레이블 값인 VPI/VCI(Virtual Path Identifier/Virtual Channel Identifier)를 할당한다.
IP 스위치 제어기는 초기 입력 패킷들에 대해 판별 기능을 수행하여 VPI/VCI 할당 여부를 결정한다.
VPI/VCI가 설정된 이후에 입력되는 패킷들은 그림 13-2의 2에서와 같이 ATM 스위치만을 경유하여 전송된다.
플로우 판별기능은 ATM 스위치에 의해 스위칭이 이루어질 플로우와 라우팅 될 플로우를 구별하는 기능을 수행한다.
일반적으로 장시간 전송이 필요한 멀티미디어 트래픽이나 많은 양의 파일 전송, WWW에 관련된 플로우는 직접 스위칭하고, 트래픽 지속 시간이 짧고 적은 수의 패킷으로 구성되는 트래픽은 기존의 라우팅 방식으로 전송된다.
선택된 플로우에 대해서는 ATM 스위치 양단에 VPI/VCI가 설정되고, 입력 플로우의 VPI/VCI 값은 출력 VPI/VCI 값으로 바뀌어 전송된다.
따라서 IP 스위치를 이용해서 종단간(End-to-End) 고속 전송을 수행하기 위해서는 플로우와 할당된 VPI/VCI 바인딩 정보를 인접 상향노드(Upstream Node)에게 알리기 위한 방법이 필요하며, 이것이 바로 IFMP(Ipsilon Flow Management Protocol)이다.
IP 스위치 동작을 살펴보면 초기에는 인접한 IP 스위치 간에 기본적으로 설정된 VPI/VCI를 통하여 패킷을 송수신 하다가 스위칭 하기로 결정된 플로우에 대해서는 VPI/VCI 값을 할당하고, 이렇나 바인딩 정보를 상향노드(그림 13-3에서 B의 상향노드는 A)로 IFMP를 이용하여 전달한다.
모든 IP 스위치에 바인딩 정보가 전달되면 해당 플로우에 대한 종단간 ‘Cut-Through’ 경로가 설정되며, 이후 입력되는 패킷들은 ‘Cut-Through’ 경로 상으로 스위칭 된다.
그림 13-3과 같이 구성된 IP 스위치 네트워크에서 IP 스위치의 동작을 살펴보면 다음과 같다.
IP 스위치 A는 라우팅 경로를 따라 디폴트 VC를 통하여 IP 스위치 B로 패킷을 전송한다.
IP 스위치 B는 플로우 판별 기능을 통해 ‘Cut-Through’ 경로 설정을 판단하고 IFMP의 REDIRECT 메시지를 스위치 A에 전송한다.
스위치 B는 특정 플로우에 대해 VPI/VCI를 각각 5/10으로 설정하여 전송하라는 REDIRECT 메시지를 스위치 A에게 전송하고 자신의 입력 포트에 대해 동일한 내용으로 설정한다.
스위치 B로부터 REDIRECT 메시지를 받은 스위치 A는 해당 플로우 패킷에 대해 VPI/VCI를 각각 5/10으로 설정해 스위치 B로 전송한다.
스위치 C도 ‘Cut-Through’ 경로를 설정해야 한다는 판단이 내려지면 스위치 B에게 해당 플로우에 대해 VPI/VCI를 4/9로 설정하여 전송하라는 REDIRECT 메시지를 전송한다.
스위치 B는 이후 패킷의 VPI/VCI를 4/9로 전송하도록 스위치를 설정하고 VPI/VCI가 5/10으로 입력된 플로우는 ATM 스위치에서 VPI/VCI 값이 4/9로 바뀌어 전달된다.
상기 과정을 수행하고 나면 스위치 A에서 C까지 해당 플로우에 대한 완전한 스위칭 경로가 설정되어 빠른 전송이 가능하게 된다.

IFMP(Ipsilon Flow Management Protocol, RFC 1953)

IFMP는 인접한 두 노드 간에 레이블 바인딩 정보를 교환하기 위해 사용되며 그림 13-3에서와 같이 하향노드가 상향노드에게 특정 플로우와 특정 레이블을 바인딩해서 전송할 것을 요구하는 ‘하향노드 레이블 할당 방식’을 채택하고 있다.
상향노드는 하향노드의 요구를 수용할 수 있을 경우에는 받아들이고 그렇지 못한 경우에는 거절할 수 있다.
IFMP 메시지 교환을 통해 플로우의 ‘Cut-Through’ 경로가 설정되면 IP 스위치는 타임아웃 주기마다 플로우에 속한 패킷의 수신 여부를 감시한다.
만일 타임아웃 기간동안 전송된 패킷이 없는 경우에는 경로를 해제한다. 이처럼 타임아웃을 설정하여 경로를 해제하는 방식을 소프트 상태(Soft State)라고 하고, 제어 메시지를 이용하여 경로를 해제하는 방식을 하드 상태(Hard State)라고 한다.
IFMP는 소프트 상태 방식을 이용하지만 경우에 따라서는 RECLAIM 메시지를 사용하여 강제로 연결을 해제하기도 한다.
IFMP 프로토콜은 인접노드 관리 프로토콜과 바인딩 전달 프로토콜로 구성된다. 바인딩 전달 프로토콜은 REDIRECT 메시지를 처리하는 기능을 수행하며, 인접노드 관리 프로토콜은 IP 스위치 동작 초기에 인접노드와 정보를 교환하는 기능을 수행한다.

GSMP(General Switch Management Protocol)

GSMP는 ATM 기반 IP 스위치 제얼르 위한 범용 스위치 관리 프로토콜이다. GSMP는 ATM 스위치 및 연결을 제어하는 기능을 수행하며 연결 관리, 포트 관리, 구성 관리, 통계 관리 및 이벤트 관리 기능을 수행한다.
GSMP는 마스터/슬레이브 프로토콜로써 ATM 스위치는 슬레이브, IP 스위치 제어기는 마스터에 해당한다.
마스터는 다수의 슬레이브에 대해 노드의 추가, 삭제, 포트 관리 그리고 VC 연결 설정/해제 등과 같은 제어 기능을 수행한다.
먼저 GSMP 연결 관리 기능은 레이블 분배 프로토콜의 요구에 의해 스위치 입력 포트와 출력 포트간의 연결을 설정하고 해제한다.
포트 관리 기능은 스위치 포트 상태를 감시하고 검사하는 기능을 수행하며, 구성 관리 기능은 스위치의 구성 및 포트의 구성 정보를 파악을 위해 사용된다.
통계 관리 기능은 스위치 포트의 트래픽 상태를 알고자 하는 경우에 사용되는 것으로 입력 셀 수, 폐기 셀 수 등을 측정한다.
마짐가으로 이벤트 메시지는 ATM 스위치에서 발생하는 포트 추가 및 삭제와 같은 비동기 사건을 제어기에게 알려주는 기능을 수행한다.

태그 스위칭(Tag Switching)

라우터의 성능 향상과 더불어 라우팅 시스템의 확장성, 유연성 향상을 목적으로 다양한 레이블 스위칭 기법이 개발되었다. 대부분의 레이블 스위칭 기술과 같이 태그 스위칭은 라우팅과 레이블 스와핑(Lable Swapping) 기술을 결합한 방식으로, 태그는 IP 스위칭에서의 레이블과 동일한 의미를 갖는다.
그러나 태그 스위칭은 레이블 스위칭 기술 자체의 기능 향상과 더불어 대규모 네트워크에도 적용이 가능하도록 네트워크 확장성에 중점을 두고 설계 되었고, IP 스위칭과 달리 ATM 뿐만 아니라 이더넷, 프레임 릴레이 기반 라우터/스위치에도 효괒거으로 적용될 수 있다.
태그 스위칭은 포워딩과 제어를 수행하는 두 가지 요소로 구성된다. 포워딩 요소는 태그 정보와 태그 포워딩 정보를 이용하여 고속 패킷 포워딩을 수행하며, 제어 요소는 태그 스위치 간에 정확한 태그 포워딩 정보를 유지하도록 하는 역할을 담당하고 있다.
태그 스위칭 네트워크는 그림 13-4와 같이 태그 에지 라우터(TER: Tag Edge Router)와 태그 스위칭 라우터(TSR: Tag Switching Router)로 구성된다.
TER은 태그 정보가 없는 패킷(Untagged Packet)의 헤더에 태그 정보를 삽입하여 태그 패킷(Tagged Packet)으로 바꾸거나 반대로 태그 패킷을 일반 패킷으로 바꾸어 전달하는 기능을 수행한다.
TSR은 태그 패킷을 인접한 TSR이나 TER로 태그 스와핑을 통하여 고속으로 전달하는 기능을 수행한다.

태그 스위칭 동작

기존의 라우터는 OSPF(Open Shortest Path First), RIP(Routing Information Protocol), BGP(Border Gateway Protocol)와 같은 다양한 라우팅 프로토콜에 의해 제공되는 정보를 사용하여 라우팅 테이블을 생성하고, 라우팅 테이블에 근거하여 패킷을 전송한다.
그러나 TER과 TSR에서 라우팅 테이블은 패킷 전송을 위해 사용되지는 않고 TFIB(Tag Forwarding Information Base)를 구성하는데 사용되며, TFIB가 실질적인 패킷 전송에 사용된다.
TFIB는 FEC(Forwarding Equivalence Classes)와 태그 간의 로컬 바인딩 정보, FEC와 다음 홉 간의 맵핑 정보 그리고 다음 홉으로부터 수신한 태그와 FEC 사이의 원격 바인딩 정보로 구성된다.
여기서 FEC란 패킷의 목적지 IP 주소가 다를지라도 같은 방식으로 처리할 수 있는 패킷의 집합을 의미하며 FEC의 범위는 크게 IP 주소 프리픽스(예: 203.252/16)로부터 작게는 개별 IP 주소까지 될 수 있다.
TFIB 구축 과정을 구체적으로 살펴보면 다음과 같다.
우선 특정 FEC를 위한 로컬 바인딩 설정을 위해 TSR은 가용한 태그 중 하나를 선택하고, 해당 태그를 입력 태그로 하여 TFIB 엔트리를 생성한다.
TFIB 필드 중 다음 홉은 FEC 패킷들을 전송하기 위한 인접 TSR의 주소를 나타내며 출력 인터페이스는 다음 홉으로 전달할 때 사용되는 인터페이스를 의미한다.
예컨대 그림 13-4에서 TSR A에서 203.252/16과 연관되 FEC를 설정할 때 라우팅 정보를 이용해 다음 홉을 TSR B로 결정하고, 가용한 태그 중 하나를 선택하여 TFIB 엔트리를 생성한다.
선택한 태그 값을 100이라 하자. TSR B, C, D도 동일한 FEC에 대해 같은 과정을 수행하고 나면 아래 표와 같은 초기 TFIB가 구축된다.
입력 태그
출력 태그
다음 홉
출력 인터페이스
TSR A
100
?
TSR B
if1
TSR B
6
?
TSR E
if1
TSR C
17
?
TSR D
if2
TSR D
5
?
TSR E
if0
TSR E
6
?
TSR E
if0
초기 TFIB가 설정된 후 완전한 TFIB를 설정하는 과정은 다음과 같다.
우선 TSR A는 로컬 바인딩 정보를 인접한 TSR B, C로 보낸다. 그러나 TSR B는 A로부터 수신한 바인딩 정보가 자신의 라우팅 정보로 판단할 떄 다음 홉으로부터 온 것이 아니기 때문에 폐기한다.
마찬가지로 TSR B가 TSR A, D, E에 동일한 태그 바인딩 정보를 보내면 TSR D, E는 203.252/16을 위한 다음 홉이 B가 아니므로 바인딩 정보를 폐기하지만, TSR A는 해당 정보를 203.252/16 FEC를 위한 TFIB의 출력 태그를 갱신하는데 사용한다.
이런 과정을 통해 203.252/16으로의 전송에 필요한 TFIB가 아래 표와 같이 완성된다.
입력 태그
출력 태그
다음 홉
출력 인터페이스
TSR A
100
6
TSR B
if1
TSR B
6
6
TSR E
if1
TSR C
17
5
TSR D
if2
TSR D
5
6
TSR E
if0
TSR E
6
?
TSR E
if0
TSR은 로컬 태그 바인딩을 설정하고 설정된 바인딩 정보를 <주소 프리픽스, 태그> 형태로 인접 TSR로 전달하는데, 주소 프리픽스는 FEC를 지칭하며 태그는 해당 TSR이 FEC와 관련하여 사용하는 태그 값을 나타낸다.
TSR은 다른 TSR로부터 태그 바인딩 정보를 받으면 바인딩 정보의 FEC와 동일한 로컬 바인딩 정보를 TFIB에서 찾고, 특히 해당 FEC의 다음 홉으로부터 태그 바인딩 정보가 수신되었으면, 수신한 태그를 TFIB의 해당 엔트리에 삽입한다.
이처럼 인접 바인딩 정보를 수신하여 FEC 별로 TFIB를 갱신하는 과정을 원격 바인딩이라 한다.
태그 바인딩 정보를 인접한 TSR/TER로 전달하는 방법은 라우팅 프로토콜에 따라 다른데, 만약 OSPF를 사용한다면 바인딩 정보는 TDP(Tag Distribution Protocol) 프토코롱르 이용하여 전달된다.
OSPF와 같은 라우팅 프로토콜은 태그 바인딩 정보를 전달하는데 사용할 수 없는데, OSPF 라우팅 정보는 모든 OSPF 라우터에게 직접 전달되는 반면, 태그 바인딩 정보는 인접하는 라우터에게만 전달되어야 하기 때문이다.
그러나 RIP, BGP와 같은 라우팅 프로토콜을 사용한다면 라우팅 프로토콜에 태그 바인딩 정보를 피기백(Piggyback) 하여 전달할 수 있다.

TDP(Tag Distribution Protocol)

라우팅 프로토콜의 피기백을 통해 태그 바인딩 정보를 전달하는 방법은 라우팅 프로토콜에 따라 구현이 불가능할 수도 있기 때문에 태그 스위칭에서는 TDP 프로토콜을 정의하여 바인딩 정보를 전달한다.
TSR은 태그 바인딩 정보를 교환하기 위해 인접 TSR과 TDP 세션을 설정하며, TDP 메시지는 하나 이상의 프로토콜 정보 요소(PIE: Protocol Information Elements)와 헤더로 구성된다.
TDP 헤더는 버전, 길이, TDP 식별자 필드로 구성되며, 버전 필드는 TDP의 버전을 나타내고, 길이 필드는 메시지의 총 길이 그리고 TDP 식별자 필드는 메시지를 생성한 TSR을 나타내며, PEI 정보는 <타입, 길이, 값> 형태의 구조체로 되어 있다.
TDP를 이용한 바인딩 정보의 교환은 신뢰성 있고 정확한 전달을 필요로 하기 때문에 TCP를 이용한다.
태그 바인딩 정보를 인접 라우터에게 분배하는 방식에는 자동 하향 분배(Downstream Unsolicited Distribution) 방식과 요구 기반 하향 분배(Downstream on Demand Distribution) 방식이 있다.
먼저 자동 하향 분배 방식은 바인딩 정보를 분배할 때 상향 TSR의 요청이 없어도 하향 TSR에서 태그 바인딩 정보를 자동으로 부냅하는 방식이다.
이와 달리 요구기반 하향 분배 방식은 상향 TSR의 명시적인 요청이 있을 경우에만 하향 TSR이 바인딩 정보를 분배하는 방식이다.
태그 바인딩 정보 분배는 링크나 TSR에 많은 부하를 줄 수 있기 때문에 네트워크 상황에 따라 적절한 분배 방식을 선택하는 것이 중요하다.

MPLS 구성

MPLS 등장 배경은 크게 다음 몇 가지로 나누어 볼 수 있다. 우선 몇몇 주요 벤더들을 중심으로 개발된 다양한 레이블 스위칭 기술의 국제적인 표준화가 절실하였다. 즉 이종 레이블 스위치를 이용하여 종단간 QoS 지원을 위해서는 국제 표준안이 반드시 선행되어야만 했다.
MPLS의 두 번째 목적은 네트워크 확장에 따라 기하급수적으로 커지는 라우팅 테이블의 고속 룩업과 라우터의 전달 기능을 단순화한 고속 패킷 전송의 실현이었다.
그러나 최근 ASIC 기술의 발전에 따라 라우팅 테이블 검색시간은 더는 중요한 문제가 되지 않고 있다.
다음으로 MPLS는 트래픽 엔지니어링 기능의 제공을 목적으로 한다.
기존 라우터에서는 IP 주소만을 참조하여 경로를 선택하기 때문에 특정 경로에 트래픽이 집중되어 폭주현상이 발생하더라도 다른 경로로 패킷을 라우팅 할 수 없었다. MPLS에서는 이러한 문제점을 트래픽 엔지니어링 기능을 이용하여 해결하고자 하였다.
또한 MPLS 트래픽 엔지니어링은 대체 경로를 통한 부하 분산 뿐만 아니라 네트워크 자원을 균형적으로 사용할 수 있는 여건을 제공하기 때문에 네트워크 사업자들은 막대한 투자 비용을 절감할 수 있게 되었다.
MPLS의 마지막 목적은 최선형(Best Effort) 서비스 이외에 트래픽의 요구에 따라 다양한 QoS를 지원하는 차별화된 서비스(Differentiated Service)의 제공이다.
이는 특정 가입자 트래픽에 대한 우선순위 부여 및 처리를 의미하여 이러한 QoS 서비스는 MPLS와 RSVP 그리고 트래픽 엔지니어링 기능 등을 유기적으로 조합하여 제공된다.

레이블(Label)

MPLS는 고정된 짧은 길이의 레이블을 기반으로 스위칭 하는 레이블 스와핑 방식을 이용한다. IP 헤더 처리 과정은 MPLS 네트워크에 진입하는 시점에서 단 한 번만 수행되며 MPLS 네트워크 경계에서는 IP 패킷 스트림에 대해 분류 과정을 수행하여 FEC 단위로 레이블을 할당한다.
그리고 할당된 경로의 특성에 따라 트래픽 엔지니어링이나 VPN 같은 다양한 서비스를 제공한다.
MPLS에서 레이블은 동일한 FEC에 속한 패킷 스트림을 식별할 수 있는 식별자로 사용되며, 네트워크 내에서 패킷이 전달되어야 하는 경로나 QoS와 같은 트래픽 특성을 갖고 있다.
FEC는 목적지 IP 주소와 상관없이 MPLS 네트워크 내에서 공통의 경로로 전달되는 IP 패킷의 집합을 의미하며 레이블과 1:1 관계를 갖는다.
그림 13-5에서 LER A로 상이한 목적지 주소, 203.252/16과 203.255/16을 갖는 패킷 IP 1, IP 2가 수신되었다고 하자. LER A는 두 패킷의 목적지 주소가 같은 경로릍 통하여 전달되는 것을 확인하고 IP 1, IP 2 패킷에 동일한 레이블 L1을 할당하여 LSR A로 전송한다.
할당된 레이블은 LSR A, C를 거치면서 역시 동일한 값 L2, L3를 할당 받는다.
마지막으로 LER B는 레이블을 제거하고 라우팅 테이블 정보에 따라 패킷을 라우팅 한다.

레이블 포맷

MPLS 레이블은 그림 13-6과 같이 32비트로 되어 있다.
먼저 레이블 필드는 20비트 길이를 가지며 할당된 레이블 값을 의미한다. 레이블 값 0-16은 예약되어 있는 값으로 사용자가 임의로 사용할 수 없다.
3비트 길이를 갖는 EXP(Experimental) 또는 COS(Class of Service) 필드는 DiffServ와 같은 QoS를 제공할 때 사용되는 필드이다.
S비트는 하나 이상의 레이블을 사용하는 경우, 일련의 레이블에서 해당 레이블이 마지막 레이블인지 아닌지를 표시하기 위해 사용되는 필드이며 S=’1’인 경우 마지막 레이블을 의미한다.
마지막으로 TTL(Time To Live) 필드는 IP의 TTL 필드와 같이 패킷의 전달 홉을 제한하는 필드로 일반적으로 경유할 수 있는 홉 개수를 의미하고 LSR, LER에서는 패킷의 TTL을 감소시킬 수 있다.

레이블 인캡슐레이션

MPLS는 다양한 네트워크 계층 프로토콜과 더불어 ATM, 프레임 릴레이, PPP(Point to Point Protocol), 이더넷 등과 같은 다수의 데이터 링크 계층을 지원한다. 따라서 데이터 링크 계층의 종류에 따라 다양한 형태의 레이블 표기 방법이 있으며, 레이블의 위치에 따라 다음과 같이 3가지 종류로 구분할 수 있다.
2계층 헤더
ATM의 VPI/VCI, 이더넷의 MAC(Medium Access Control) 주소
3계층 헤더
IP 주소, 플로우 레이블(Flow Label)
2.5계층 헤더
2계층과 3계층 사이에 Shim 헤더
MPLS 레이블을 ATM의 VPI/VCI로 맵핑하는 방법은 그림 13-7과 같이 세 가지가 있다. 먼저 SVC(Switched Virtual Channel) 인코딩은 레이블 스택의 최상위 레이블을 VPI, VCI 필드로 맵핑하며 LSP는 하나의 ATM SVC에 해당한다.
SVC 인코딩 방법은 간단하지만 하나 이상의 레이블을 전달할 수 없기 때문에 레이블 스태킹(Label Stacking)을 지원하지 못한다.
두 번째는 SVP 인코딩 방식이다. SVP 인코딩에서 최상위 레이블은 VPI 필드에 맵핑되고 두 번째 레이블은 VCI 필으데 맵핑된다. 이 경우 두 개의 레이블을 VPI/VCI 필드에 기록할 수 있으며 VPI 필드를 이용하여 ATM LSR이 제공하는 VP 스위칭 기능을 제공할 수 있다.
마지막으로 SVP 멀티포인트 인코딩 방식은 SVP 인코딩과 유사하게 최상위 레이블은 VPI 필으데, 그리고 두 번째 레이블은 VCI 필드로 맵핑한다. 그러나 SVP 인코딩과 달리 두 번째 레이블을 기술하고 남은 VCI 필드에 LSP의 인그레스 LSR을 삽입한다.
따라서 SVP 멀티 포인트 인코딩을 이용하면 ATM에서 제공하던 다중점-점 VP 지원과 VP 터널링 서비스를 제공할 수 있다.
ATM 네트워크에서 MPLS 레이블을 사용하기 위해서는 상기한 인코딩 방법 이외에 몇 가지 선택사항이 더 존재한다. 이렇나 선택사항은 인코딩 된 VPI/VCI를 ATM 네트워크 내부에서 어떻게 운용할 것인지에 관한 것이며 다음과 같이 세 가지로 구분된다.
VP 병합
VP 병합은 상이한 VP 값을 갖는 셀 스트림을 하나의 VP 값을 갖는 셀 스트림으로 통합하여 다수의 레이블을 전달하는 방식으로 VP 내에서 사용자 스트림은 서로 상이한 VCI 값을 갖는다.
비 VC(Non-VC) 병합
비 VC 병합은 사용자 셀 스트림으 구분하기 위해 단순히 VC만을 사용한다. 비 VC 병합에서는 VP를 사용하지 않고 단지 VC만을 사용하기 때문에 간단하며 수신측에서 패킷으로 재결합하기가 용이하다.
그러나 LSR은 송신측과 수신측 사이에 설정된 모든 VC 레이블으 기억하고 있어야 하기 때문에 확장성에 문제가 있다.
셀 인터리빙을 지원하지 않는 VC 병합
셀 인터리빙을 지원하지 않는 VC 병합은 하나의 VC 상에 다수의 셀 스트림을 다중화하는 경우에 사용하는 방식이다.
일반적으로 이 방식은 셀 다중화를 지원하지 않는 AAL5(ATM Adaptation Layer 5)를 위한 방식으로 다수의 셀 스트림을 하나의 VC 상에 전달하기 위해 특정 패킷으로부터 생성된 모든 셀은 출력 포트로 전달되기 전에 반드시 LSR에 저장되어야 한다.
LSR에서는 저장된 셀 스트림을 패킷 단위로 동일한 VC를 사용하여 전달하며 VC 병합 방식은 셀을 버퍼링 해야 하기 때문에 다른 인코딩 방식에 비해 전달 지연이 발생한다.
그림 13-8은 프레임 릴레이를 사용하는 경우의 레이블 사용법을 도시하고 있다. 프레임 릴레이 경우에는 2.5계층에 32비트의 Shim 헤더가 삽입되며 그림 13-8에서 n은 레이블 스택의 개수(Depth)를 의미한다.
마지막으로 PPP 또는 LAN을 데이터 링크로 사용하는 경우에도 그림 13-9와 같이 2.5 계층에 Shim 헤더가 삽입된다.
이더넷을 사용하는 경우에는 순수한 이더넷 프레임인지 MPLS 프레임인지 구분하기 위해 이더넷 프레임 헤더에 있는 프로토콜 타입 필드를 사용한다. 이 경우에도 n은 레이블 스택의 개수를 의미한다.

레이블 스택

MPLS는 하나의 패킷 내에 하나 이상의 레이블을 전송할 수 있기 때문에 계층적인 구성을 갖는 대규모 네트워크에도 효과적으로 적용될 수 있다.
레이블 스태킹 지원을 위해 임의의 LSR은 그림 13-10과 같이 경계(Border) LSR이 될 수 있으며, 경계 LSR 내부에 있는 LSR들은 도메인 내부의 동작과 레이블 할당에만 관련이 있다.
또한 LSR에서 레이블이 삽입된 패킷의 처리는 레이블의 계층 구조와는 무관하며 LSR의 동작을 빠르고 간단하게 하기 위해 LSR은 레이블의 계층과 상관없이 항상 최상위 레이블만을 처리한다.
그림 13-10에서와 같이 도메인 C에 LSR C, D, E 그리고 F가 있고 LSR C와 F가 경계 LSR이라고 하자. 또한 도메인 C는 패킷을 생성하거나 종단하지 않는 경유(transit) 도메인이라 가정하자.
LSR A와 B는 각각 도메인 A와 B의 경계 라우터가 되고 도메인 C의 내부 LSR들은 외부 도메인 A, B의 동작으로부터 격리된다.
즉 도메인 B로부터 주소를 방송하는 경우 LSR B는 메시지 LSR F로 분배하고 LSR F는 LSR C로 분배한 뒤, 마지막으로 LSR A로 전달된다.
즉 외부 도메인을 위한 레이블 정보는 도메인 내부 LSR D, E에는 전달되지 않는다.
그린 13-11은 레이블 스택의 예를 도시하고 있고, LSR A, B, G, H를 도메인의 경계 노드 즉 인그레스, 이그레스 LSR이라고 하자. LSR C와 F의 LSR 테이블은 2개의 깊이를 갖는 레이블 스택으로 구성되어 있으며 LSR D와 E의 테이블은 1개의 레이블 깊이를 갖는다.
그림 13-11에서 레이블 스택 동작 과정을 살펴보면 먼저 LSR A는 레이블 21을 할당하여 LSR C로 보낸다. LSR C는 기존 레이블을 푸시(Push) 하고 새로운 레이블 33을 할당하여 LSR D로 전달한다.
따라서 LSR C에서 D로 전달되는 패킷은 2개의 레이블을 갖지만, LSR D는 최상위 레이블 33만을 참조한다.
LSR D는 테이블을 참조하여 입력 포트 a로 33의 레이블 값을 달고 오는 패킷을 출력 포트 e, 레이블 값 14로 스와핑 하여 전달한다.
LSR E는 최상위 레이블을 제거한 뒤, 두 번째 레이블인 42, 21을 최상위 레이블로 하여 포트 s로 전달한다.
그림 13-11의 경우에 2개의 외부 레이블(LSR A에서 21, LSR B에서 42) 처리를 위해 내부 LSR에서 오직 하나의 레이블(LSR C의 33)만을 사용할 수 있다는 점에 주목해야 한다.
즉 MPLS 레이블 스태킹은 하나 이상의 외부 레이블을 하나의 내부 레이블로 통합하여 처리가 가능하며, 이를 통해 네트워크에서 필요한 레이블 개수를 획기적으로 감소시킬 수 있다.

레이블 할당

라우팅 프로토콜이나 트래픽 엔지니어링에 의해 결정된 전송 경로를 특정 레이블로 맵핑하는 과정을 레이블 할당이라고 하며, 종단간에 합의된 레이블을 사용하기 위해서는 인접한 라우터 사이에 레이블 바인딩 정보를 분배하는 과정이 필요하다.
이처럼 인접 라우터 간에 레이블 할당 정보를 분배하는 프로토콜을 레이블 분배 프로토콜(LDP)라 하며 LDP는 인접합 LSR/LER 사이에서 LSP를 설정, 유지 그리고 해체하기 위한 메시지와 절차들로 구성된다.
레이블을 할당하는 방법은 다음 2가지로 구분되며 그 중 MPLS 표준안에서는 라우팅 프로토콜에 의해 결정된 경로를 기반으로 레이블을 할당하는 제어 트래픽 기반 레이블 할당(Control Traffic Driven Label Assignment) 방식에 대해서만 규정하고 있다.
제어 트래픽 기반 레이블 할당
특정 FEC에 속한 패킷을 전송하기 전에 미리 레이블을 할당하는 방식으로 라우팅 프로토콜이나 트래픽 엔지니어링에 의해 패킷 전달 경로를 결정하고 해당 경로에 대해 레이블을 미리 할당하는 방식이다.
토폴로지 기반 레이블 할당(Topology Driven Label Assignment)
라우팅 정보를 기반으로 네트워크 토폴로지를 구성하고 이를 통해 레이블을 할당하여 LSP를 설정하는 방시기다.
네트워크 성능을 고려하여 대역폭이 결정될 수 있고, 여러 경로를 하나의 레이블로 통합하여 필요한 레이블의 개수를 줄여 확장성을 높일 수 있다.
요구 기반 레이블 할당(Request Driven Label Assignment)
요구 제어 메시지를 이용해 레이블을 할당하는 방법으로 RSVP, CR-LDP(Constraint-based Routing LDP) 등을 사용해서 레이블을 할당할 수 있다.
데이터 트래픽 기반 레이블 할당(Data Traffic Driven Label Assignment)
특정 FEC에 속한 패킷이 도착하는 시점에서 레이블을 할당하는 방식으로 레이블의 할당 및 분배가 트래픽의 특성에 따라 결정된다.
플로우마다 레이블을 할당하기 때문에 많은 레이블이 필요하며, 특히 백본 네트워크에서는 필요한 레이블의 급격한 증가로 네트워크의 확장성이 크게 떨어지는 단점이 있다.

MPLS 구성

MPLS 네트워크는 기능적으로 크게 포워딩 요소와 제어 요소로 구성되며, 패킷을 전달하는 포워딩과 이를 관리하는 제어 기능을 분리함으로써 각각의 기능을 독립적으로 발전시킬 수 있다는 장점을 제공한다.
먼저 제어 요소는 레이블을 기반으로 트래픽 엔지니어링, 명시적 라우팅(Explicit Routing) 등과 같은 기능을 수행하며 할당된 레이블 정보를 인접한 LSR과 LDP를 이용하여 협상하는 기능을 수행한다.
포워딩 요소는 제어 요소를 통해 결정된 레이블에 대해 레이블 스와핑 기술을 이용해서 고속 포워딩을 수행한다.
일반적으로 MPLS 네트워크는 그림 13-12에서와 같이 네트워크 코어에 위치하는 LSR(Label Switch Router)과 네트워크 가장 자리에 위치하면서 포워딩 기능과 라우팅 모듈이 결합된 형태의 LER(Label Edge Router)로 구성된다.
패킷이 입력되는 쪽에 위치한 LER을 인그레스(Ingress) LER, 외부로 나가는 쪽에 위치한 LER을 이그레스(Egress) LER이라고 한다.

LSR(Label Switch Router)

LSR은 MPLS 네트워크 코어에 위치하는 라우터로써 레이블 스와핑 기능을 수행하는 라우터 혹은 ATM 스위치를 의미한다.
MPLS 네트워크로 입력되는 패킷은 인그레스 LER에서 레이블이 할당되고, LSR은 패킷에 첨부된 레이블 값을 검색하여 출력 레이블 및 출력 인터페이스를 결정한다.
즉 LSR은 입력 레이블을 출력 레이블로 스와핑하고 출력 인터페이스를 통하여 다음 홉으로 패킷을 전달한다.
LSR에서 레이블 스와핑에 필요한 모든 정보는 레이블 정보 베이스(LIB: Label Information Base)에 저장된다.
LSR에서는 FEC 별로 하나의 레이블을 할당하기 때문에 레이블 개수는 중요한 의미를 갖는다.
백본 라우터의 경우 많은 수의 연결이 존재하므로 라우터에서 레이블 상태를 관리하는데는 많은 오버헤드가 발생한다.
또한 다중 도메인의 경우 서로 달느 종류의 LSR이 상호 동작해야 하므로 LSR에서 레이블 공간의 많고 적음에 따라 LSR이 병목으로 작용할 가능성도 있다.

LSP(Label Switched Path)

FEC를 위해 LSR간에 설정된 일련의 레이블을 LSP라 하고, 특정 목적지에 도달하기 위해 같은 LSP를 사용하는 패킷들은 동일한 FEC에 속한다.
즉 LSP는 FEC에 속한 패킷이 전달되는 경로를 의미하며 ATM에서 VCC(Virtual Channel Connection)와 유사하다.
그림 13-11에서와 같이 하나의 LSP에는 하나 이상의 패킷 플로우가 동시에 전송되 ㄹ수 있으먀, LSP는 LDP, RSVP-TE, CR-LDP 등과 같은 레이블 분배 프로토콜에 의해 설정된다.

인그레스 LER(Ingress Label Edge Router)

MPLS 네트워크의 가장자리에 위치한 라우터로써 MPLS 네트워크에서 가장 많은 기능을 수행하는 라우터이다. 인그레스 LER은 외부로부터 수신한 패킷의 헤더를 분석하여 LSP를 결정하고 레이블을 할당한 후, 출력 인터페이스의 종류에 따라 패킷을 인캡슐레이션하여 전송하는 기능을 수행한다.
인그레스 LER은 입력되는 트래픽의 목적지, 트래픽 특성 등 다양한 변수를 고려하여 레이블을 선택하낟.

이그레스 LER(Egress Label Edge Router)

인그레스 LER와 마찬가지로 MPLS 네트워크의 가장자리에 위치한 라우터로써, 레이블이 부착된 패킷이 입력되면 레이블을 제거하고 라우팅 테이블 정보를 이용하여 IP 패킷을 목적지로 전송하는 기능을 수행한다.
MPLS 네트워크를 구성하는 인그레스/이그레스 LER과 LSR은 동일한 라우팅 프로토콜을 수행하고, 라우팅 정보를 바탕으로 FIB(Forwarding Information Base)를 구성한다.
FIB는 FEC에 대한 포워딩 정보를 정의하고 있으며 FIB를 바탕으로 레이블을 할당하는데, 레이블 할당 및 해제를 위해서는 각 라우터에는 LDP가 동작해야 한다.
인그레스 LER 및 LSR은 인접합 라우터 레이블 바인딩 정보를 교환하고 필요한 LIB를 생성한다.
LIB는 FEC별로 입출력 인터페이스, 레이블로 구성되어 있고, 실제 패킷을 스와핑 할 때 필요한 정보를 제공하게 된다.

레이블 분배 프로토콜(Label Distribution Protocol)

FEC 별로 할당된 레이블 정보는 반드시 인접한 LSR간에 합의가 이루어져야만 데이터 전송을 수행할 수 있다. 이처럼 이웃한 LER/LSR 간에 레이블과 전송 경로를 교환하고 합의하는 일련의 과정을 레이블 분배라고 하며 레이블 분배는 크게 다음의 두 가지 방식으로 나누어진다.
명시적 레이블 분배(Explicit Label Distribution)
레이블 분배를 위해 새로운 프로토콜을 정의하는 방식이다. 즉 LDP와 같은 전용 프로토콜을 사용하여 레이블 정보를 교환한다.
피기백
피기백 방식은 레이블 분배를 위해 새로운 프로토콜을 정의하지 않고, 대신 OSPF, BGP와 같은 라우팅 프로토콜, RSVP와 같은 신호 프로토콜을 수정하여 제어 정보와 함께 레이블 정보를 분배하는 방식이다. 확장된 RSVP가 이러한 방식에 속한다.
아울러 레이블 분배 프로토콜을 이용하여 레이블 바인딩 정보를 인접한 라우터에 분배할 때 레이블 분배를 요청하는 주체와 시간에 따라 다음과 같이 두 가지 방식이 존재한다.
하향 노드 분배 방식(Downstream Unsolicited)
상향 LSR의 레이블 요구와 상관없이 하향 LSR이 레이블을 주기적으로 분배하는 방식이다.
요구별 하향 노드 분배 방식(Downstream on Demand)
상향 LSR로부터 명시적인 레이블 분배 요청이 있을 경우에만 하향 LSR이 레이블 정보를 분배한다.

MPLS 구현

MPLS 네트워크에서는 외부 네트워크로부터 수신된 패킷에 대해 인그레스 LER에서 LIB 검색을 수행하여 레이블을 할당하며 레이블이 부가된 패킷은 오직 레이블에 의해서만 스위칭 된다.
일단 레이블이 할당되면 3계층 주소는 더는 사용되지 않고, 레이블 스와핑을 통해 이그레스 LER까지 패킷이 전달된다.
패킷이 이그레스 LER에 도착하면 이그레스 LER은 레이블 정보를 떼어버리고 네트워크 계층 주소를 기반으로 패킷을 라우팅 한다.
그림 13-13은 MPLS 네트워크를 경유하는 호스트 203.252.53.58과 129.254.192.57 간의 전달 동작과 LSP 상에 있는 LER, LSR에서 패킷을 전달하기 위한 LIB를 도시하고 있다.
호스트 203.252.53.58은 다른 네트워크에 존재하는 호스트 129.254.192.57로 데이터를 전송하기 위해 129.254.192/8 네트워크로의 전달을 담당하는 LER 1로 데이터를 전송한다. LER 1은 호스트 203.252.53.58의 디폴트 라우터일 수도 있고 아닐 수도 있다.
LER 1에서는 수신한 IP 패킷 헤더의 목적지 주소와 일치하는 FEC 항목을 LIB에서 검색하고 적절한 출력 레이블을 첨부하여 다음 홉인 LSR A로 전달한다. 그림 13-13의 경우에 LER 1은 129.254.192/8에 관한 내용을 LIB에서 검색하고, 패킷에 레이블 ‘50’을 할당하여 출력 포트 ‘0’을 통해 LSR A로 전송한다.
LSR A는 LIB에서 입력된 패킷의 포트 번호와 레이블을 근거로 Shortest Exact Matching을 수행하여 출력 포트와 레이블을 찾는다. 즉 ‘0’번 포트로 레이블 ‘50’을 갖는 패킷이 들어오면 해당 패킷을 ’1’번 포트, 레이블 ‘40’으로 스와핑하며 다음 홉 주소는 LSR B가 된다.
LSR B는 LSR A와 동일한 과정을 수행하며 LSR B의 경우에는 입력 포트 ‘1’, 입력 레이블 ‘40’을 출력 포트 ‘0’, 출력 레이블 ‘98’로 스와핑하여 LER 2로 전덜한다.
마지막으로 LER 2는 해당 LSP의 종단임을 인식하고 레이블을 제거한다. LER 2는 순수한 IP 패킷을 라우팅 프로토콜 내용을 바탕으로 최종적으로 IP 패킷을 호스트 B로 전송한다.
MPSL가 기존 네트워크 계층 포워딩보다 우수한 또 다른 점은 그림 13-13에서 알 수 잇듯이 단지 레이블 룩업과 스와핑이 가능한 장비면 충분히 LSR로 구성할 수 있다는 것이다.
인그레스 LER에서만 패킷의 네트워크 계층 정보를 고속으로 룩업 할 필요가 있고, 나머지 이그레스 LER, LSR에서는 이러한 고가의 기능을 필요로 하지 않는다. 따라서 매번 라우팅을 수행하는 IP 네트워크에 비해 훨씬 간단하고 고속 전송이 가능해 진다.

MPLS 트래픽 엔지니어링

MPLS 트래픽 엔지니어링

트래픽 엔지니어링이란 트래픽을 골고루 분산시켜 특정 경로에 트래픽이 집중되는 것을 막고 네트워크 자원의 효과적인 사용을 목적으로 트래픽 경로를 제어하는 기술을 의미한다. 즉 경로 제어를 통해 폭주(Congestion) 현상을 방지하고 자원 이용 효율성을 최대한 보장하는 기술이 트래픽 엔지니어링이다.
따라서 폭주현상의 최소화와 네트워크 자원의 효율적인 사용이 트ㅐ픽 엔지니어링의 가장 중요한 목표이며, 폭주 제어는 일시적인 폭주보다는 장시간 지속되는 폭주현상을 줄이는 것에 더 중점을 두고 있다.
기존의 부하 분산 기법은 네트워크 링크와 관련된 라우팅 매트릭을 조절하여 일부 트래픽 엔지니어링 기능을 제공할 수 있으나, 이러한 방식으로 트래픽을 분산시키기에는 한계가 있고, 대체 경로가 많은 대규모 네트워크에서 가장 합리적인 대체 경로를 찾는 것은 매우 어려운 일이다.
MPLS에서는 기본적으로 라우팅 프로토콜에 의해 결정된 경로를 기반으로 LSP를 설정하지만 명시적 경로를 설정할 수 있는 기능과 네트워크 자원을 적절히 할당할 수 있는 기능을 동시에 제공함으로써 트래픽 엔지니어링을 효과적으로 수행할 수 있다.
또한 MPLS-TE는 효율적인 자원 분배 이외에 신속한 장애 복구(Fast Re-route) 및 디프서브(DiffServ)와 연계한 DS-TE(DiffServ aware TE)를 통해 종단간 QoS 보장을 가능하게 함으로써 VoIP(Void over IP), 가상 전용선 서비스 등과 같은 고수준의 서비스 제공을 가능하게 한다.
IP의 특징인 홉 기반 라우팅은 ATM, 프레임 릴레이에 비해 확장성이 뛰어난 반면, 트래픽은 항상 노드에서 결정하는 최단 경로를 경유하게 되므로, 일부 경로에서는 폭주가 발생하는 반면, 다른 경로의 이용륭은 매우 낮은 불균형을 초개할 수 있다.
엄청난 트래픽이 예상되는 차세대 인터넷에서는 트래픽의 폭주를 수용할 수 있도록 트래픽을 분산할 수 있는 트래픽 엔지니어링 기능을 반드시 수행할 수 있어야만 한다.
그림 13-14는 기존 IP 네트워크에서의 트래픽 집중 현상과 이를 MPLS 트래픽 엔지니어링을 통해 해결하는 방법을 설명하고 있다.
먼저 LSR, LER을 기존의 라우터라고 가정하고 LSP는 라우팅 프로토콜을 이용해 계산된 경로라면 그림 13-14에서는 라우터 E와 F, 라우터 D와 A, 그리고 라우터 C와 A간의 경로와 같이 세 개의 경로가 존재한다.
이러한 경로 모두는 라우터 A와 B를 경유하게 되므로, 상대적으로 다른 경로의 이용률은 낮아지고 라우터 A와 B 간의 경로에 트래픽이 집중되는 현상이 발생한다.
이러한 트래픽 불균형의 해결 방안으로 일부 IGP(Interior Gateway Protocol)에서는 매트릭 값 조정을 통한 부하 분산 방법을 적용하고 있으나, IGP는 링크를 경유하는 모든 트래픽에 적용되기 때문에 개별적인 트래픽 제어는 불가능하다.
반면 MPLS-TE에서는 Constraint 기반 라우팅에 의해 특정 경로의 링크에 트래픽이 집중된다고 판단되면 즉시 대체 경로(Alternative Path)로 LSP를 설정한다.
그림 13-14에서 LSP D는 LSR A와 B 간의 트래픽 폭주를 방지하기 위해 설정된 LSP B의 대체 경로이다.
이러한 인입 트래픽에 의한 동적 대체 구조는 효율적인 네트워크 관리와 전체적인 네트워크 안정성을 크게 향상시킬 수 있다.
이러한 MPLS-TE의 장점을 요약하면 다음과 같다.
ATM이나 프레임 릴레이에서만 가능하던 명싲거 경로 설정을 네트워크 계층에 적용하여 네트워크 구조 및 용량에 맞는 트래픽 분배로 네트워크 효율을 극대화 할 수 있다.
링크나 노드 장애 시 빠른 복구를 가능하게 함으로써 네트워크의 신뢰도를 높일 수 있다.
LSP 선택은 각 링크의 현재 가용 용량을 기반으로 이루어지므로, 링크 용량이 부족한 경우 자동적으로 다른 LSP를 선택한다.
QoS와 연계해 트래픽의 우선순위에 따른 LSP 터널을 별도 관리함으로써 중요 트래픽에 대한 품질 보장이 가능하다. 즉 우선순위에 따른 QoS 보장 서비스를 가능하게 한다.

MPLS 트래픽 엔지니어링 구성 요소

MPLS 트래픽 엔지니어링은 링크 사용량과 같은 네트워크 상태 정보를 분배하는 기능, 상태 정보를 기반으로 경로를 산출하는 기능, 그리고 산출된 경로에 대해 트래픽 엔지니어링 터널(Tunnel)을 설정하고 제어하는 기능들로 구성된다.
이를 위해 터널 헤드엔드 라우터는 그림 13-15와 같은 몇 가지 기능 블록으로 구성된다.

상태 정보 분배

상태 정보 분배는 네트워크 구성과 가용 링크 용량에 관한 정보를 플러딩(Flooding) 하는 것을 의미한다. 네트워크 정보 분배는 링크 상태 알고리즘을 사용하고, 네트워크 관련 정보를 전체 노드에게 전달하는 IS-IS 또는 OSPF가 사용된다.
이웃 노드 간에만 라우팅 정보를 교환하는 RIP와 같은 거리 벡터(Distance Vector) 알고리즘은 전체 네트워크 토폴로지를 구하기가 어렵기 때문에 트래픽 엔지니어링을 위한 프로토콜로는 부적합하다.
반면 IS-IS나 OSPF에서는 모든 라우터가 전체 네트워크에 대한 동일한 토폴로지 정보를 갖고 있기 때문에 경로 선택을 위한 충분한 정보를 갖는다.
그러나 기존의 IS-IS나 OSPF 라우팅 프로토콜의 링크 상태 정보에는 트래픽 엔지니어링을 위한 링크 정보가 없기 때문에, 최대 링크 대역폭, 가용 링크 대역폭, 사용 중인 링크 대역폭, 링크 설정 정보(attribute) 등이 추가되어야 한다.

경로 선택

트래픽 폭주로 인해 새로운 터널 설정이 필요한 경우나 LSP 장애 발생시에 새로운 LSP 설정을 원하는 라우터에서는 Constraint 기반 라우팅을 통하여 새로운 최적 경로를 계산한다.
새로운 경로는 TE 토폴로지 DB의 링크 정보를 기반으로 새로운 LSP가 요구하는 제약 사항을 만족시키는 링크를 Dijkstra 알고리즘을 통해 산출한다.

경로 설정과 링크 접속 제어

트래픽 엔지니어링을 위한 다음 단계는 선택된 경로에 대해 LSP를 설정하는 것이다. LSP 설정을 위한 신호 프로토콜로는 RSVP-TE 또는 CR-LDP를 사용한다. RSVP-TE는 트래픽 엔지니어링 기능을 위해 RSVP를 확장한 것으로 PATH 메시지와 RESV 메시지를 사용한다.
터널 시작 라우터는 산출된 경로를 명시적 경로 객체(ERO: Explicit Route Object)에 기술한 PATH 메시지를 보내고, 이를 수신한 터널 종단 라우터는 RESV 메시지를 다시 터널 시작 라우터로 보낸다.
PATH 메시지에는 ERO 객체 이외에 요구 대역폭 정보가 포함되는데, PATH 메시지가 경유하는 터널 중간 라우터가 요구 대역폭을 만족시키지 못하는 경우, 에러 메시지가 시작 라우터로 전달되고 터널 설정은 실패하게 된다.
RESV 메시지는 레이블 정보가 포함되어 있으며 이는 실제 터널 경유 패킷의 레이블로 사용된다.

TE 컨트롤 및 설정된 LSP 터널을 통한 데이터 포워딩

경로 설정을 완료한 터널 시작 라우터는 설정된 터널 정보를 IGP 라우팅 테이블에 반영한다. 라우팅 테이블에는 터널 정돈 라우터와 하단 라우터들에 대한 루트 정보가 터널로 등록된다.
즉 터널 종단 라우터와 그 하단 라우터를 목적지로 하는 패킷들은 기존의 새롭게 설정된 터널을 통해 포워딩 된다.

MPLS와 QoS

일반적으로 QoS가 MPLS의 탄생 원인이라 생각하지만 실제로는 그렇지 않다. VPN, 트래픽 엔지니어링과 같은 기능들에 비해 QoS는 MPLS의 기본 목적이 아니다.
MPLS에서 QoS 관련한 대부분의 연구는 기존의 IP QoS 서비스를 효과적으로 지원하는 방법에 국한되어 있다. 즉, MPLS에서는 새로운 QoS 서비스를 제공하는 것이 아니라 기존 IP QoS를 효과적으로 지원하기 위한 방법만을 정의하고 있다는 뜻이다.
MPLS가 IP QoS 모델을 확장하지 않고 단지 지원만 하는 이유 중의 하나는 MPLS가 종단간 프로토콜이 아니라는 점이다.
즉 IP와 달리 MPLS는 호스트간 통신을 지원하지 않을 뿐만 아니라 향후 MPLS를 수행하지 않는 많은 IP 네트워크가 존재할 것이다. 따라서 MPLS를 종단간 서비스로 확장하는 일은 없을 것으로 보인다.
일반적으로 QoS는 통신 주체인 종단 호스트간의 통신 특성을 의미하며, QoS를 제공한다는 의미는 IP QoS를 제공하는 것이지 MPLS QoS를 제공한다는 의미는 아니다.
그러나 이것은 MPLS가 IP QoS를 제공하는데 아무런 역할도 하지 않는다는 것은 아니다. MPLS는 IP QoS를 ATM-LSR과 같이 다양한 플랫폼에서 좀 더 효과적으로 제공할 수 있다.

MPLS와 IntServ(Integrated Service)

Integrated Service(IntServ)는 1990년대 중반에 IETF에서 진행되었던 QoS구조를 지칭하는 말이다. IntServ 워킹 그룹에서는 종단간 QoS를 제공하기 위해 응용 프로그램이 요구하는 최소한의 대역폭 또는 최소한의 지연을 만족시킬 수 있는 구조를 개발하고자 하였다.
이러한 결과로 IntServ 워킹 그룹에서는 응용 프로그램의 요구를 만족시킬 수 있는 다양한 서비스 클래스에 대한 정의와 RSVP가 어떤 형태로 서비스 클래스를 만족시킬 수 있는지에 대한 방법을 제시하였다.
RSVP는 IntServ 워킹 그룹과 별개의 워킹 그룹에서 만들어졌고, RSVP와 IntServ는 완전히 별개의 개념이다.
즉 IntServ는 RSVP 뿐만 아니라 다양한 신호 프로토콜을 사용할 수 있고 RSVP는 IntServ가 필요로 하는 정보 이외에 다른 다양한 정보를 전달할 수 있다. 그럼에도 불구하고 RSVP가 IntServ QoS 구조 전체를 의미하고 있는 것으로 사용되고 있다.
IntServ의 특징 중의 하나는 응용 프로그램이 네트워크로 전송할 트래픽 양과 보장받고 싶은 QoS를 기술한다는 점이다. 전송할 트래픽은 TSpec으로 기술하며, 네트워크로부터 받고자 하는 QoS는 RSpec으로 규정한다.
MPLS에서 RSVP를 지원하는 목적은 예약이 설정된 플로우를 LSR(Label Switch Router)에서 식별하기 위해서이다. 즉 RSVP 예약이 설정된 플로우와 레이블간의 바인딩을 생성하고 이러한 바인딩 정보를 분배함으로써 RSVP 예약이 된 플로우를 QoS가 보장되는 FEC로 간주하는 것이다.
MPLS에서는 RSVP를 이용해서 예약된 플로우와 레이블을 바인딩 하기 위해 새로운 LABEL 객체를 정의하였고, LABEL 객체는 RESV 메시지에 포함되어 전달된다.
RESV 메시지는 수신측으로부터 송신측으로 전달되기 떄문에 이러한 형태의 레이블 할당 방법은 하향 레이블 할당 방식에 해당한다.
그림 13-16에서와 같이 LABEL 객체를 포함하고 있는 RESV 메시지를 받은 LSR은 LABEL 객체에서 정의하고 있는 레이블 정보를 자신의 LFIB의 출력 레이블로 설정한다. 그리고 새로운 레이블을 할당하여 LABEL 객체에 포함 시킨 후 RESV 메시지를 상향노드로 전달한다.
그림 13-16에서 LSR R3는 호스트 2로부터 RESV 메시지를 받으면 해당 예약 플로우에 대해 레이블 ‘5’을 할당하고 인접 상향노드인 LSR R2를 전달한다. 마찬가지로 LSR R2는 LSR R3로부터 RESV 메시지를 받음녀 해당 예약 플로우에 대해 레이블 ‘9’을 할당하고 인접 상향노드인 LSR R1로 전달한다.
이와 동시에 LSR R2는 수신된 레이블 값 ‘5를 해당 플로우에 대한 출력 레이블 값으로 설정하고 QoS 관련 정보를 저장한다.
RESV를 이용한 레이블 할당 방식은 바인딩 정보의 전달이 RSVP 메시지에 의해 이루어지기 때문에 제어 트래픽 기반 레이블 할당 방식과 피기백 방식에 해당한다.
RSVP 예약이 되어 있는 플로우에 대한 LSP를 설정할 때 흥미로운 사실은 기존 IP에서와 달리 MPLS에서는 LSP의 처음 라우터(그림 13-16에서 R1)에서만 예약된 플로우인지 아닌지를 검사하면 된다는 것이다.
또한 기존 IP 네트워크에서는 개별 플로우(Microflow)에 대해서만 RSVP 예약이 가능햇지만, MPLS에서는 플로우 개념을 확장하여 다양한 형태의 플로우가 LSP에 적용될 수 있다.
예컨대 그림 13-16에서 R1은 목적지 IP 주소가 같은 패킷들을 하나의 LSP 상에 실어 전달할 수 있기 때문에 하나의 예약된 LSP는 개별 플로우만 전달하는 것이 아니라 여러 플로우를 한데 모아 QoS가 보장된 LSP 상에 실어 보낼 수 있다.
이는 대역폭을 보장하고 다수의 트래픽을 다중화 할 수 있기 때문에 가상 전용 회선 서비스와 같은 서비스를 제공하는데 특히 적합하다.
또한 대규모 트래픽에 대한 대역폭을 효과적으로 보장하기 때문에 MPLS 트래픽 엔지니어링 구현 시에도 효과적으로 사용될 수 있다.
MPLS에서 RSVP를 좀 더 효과적으로 사용하기 위해 LABEL_REQUEST 객체가 RSVP PATH 메시지에 추가되었다.
LABEL_REQUEST 객체는 LSP를 설정하기 위해 LSP의 마지막 LSR(그림 13-16에서 R3)에게 RESV 메시지를 보낼 것을 요구한다.
또한 MPLS 헤더에는 다중화 관련 필드가 없고 RSVP LSP는 하나 이상의 플로우가 전송될 수 있기 때문에 LABEL_REQUEST 객체에는 해당 플로우를 수신할 상위 프로토콜을 기술하는 필드가 추가되었다.
즉 상위 계층 프로토콜마다 하나 이상의 LSP를 설정하고 LSP에는 사우이 프로토콜이 동일한 플로우가 한데 모여 전달될 수 있다.
일반적으로 RSVP는 네트워크 확장성(Scalabilty)에 문제가 있다고 하지만, 엄밀하게 얘기하면 정확한 기술은 아니다. RSVP를 이용하여 개별 플로우에 대해 예약을 수행하는 경우에는 네트워크 확장성에 문제가 있지만, 여러 개의 플로우를 하나로 묶어 이것에 대한 예약을 수행하는 경우 확장성 문제를 많이 완화할 수 있기 때문이다.
네트워크 확장성과 관련된 RSVP의 또 다른 문제점은 소프트 상태와 관련된 것이다. 만일 라우터에서 다수의 RSVP 예약을 관리해야 한다면 리프레시 메시지 트래픽 양도 상당히 많아지고 이를 처리하기 위한 자원 낭비가 심해진다.
또한 리프레시 메지시는 TCP를 사용하지 않고 UDP를 사용하기 때문에 메시지가 분실 되는 경우 상황은 더 나빠진다.
RSVP의 알려진 문제점들을 MPLS 네트워크에서 효과적으로 처리하기 위해 MPLS 워킹 그룹과 RSVP 워킹 그룹에서는 몇 가지 방안을 제시하고 있다.
MESSAGE_ID와 MESSAGE_ID_ACK 객체
RSVP 메시지 전달의 신뢰성을 보장하기 위해 MESSAGE_ID, MESSAGE_ID_ACK 객체를 추가하였다.
인접한 노드간에 RSVP 메시지를 전달할 때 송신 노드는 해당 예약에 대한 식별자를 생성하여 MESSAGE_ID 객체에 삽입하고 응답을 필요로 한다는 의미를 갖는 플래그를 설정하여 메시지를 수신 노드로 전달한다.
수신 노드는 MESSAGE_ID_ACK 객체에 해당 식별자를 삽입하여 ACK 전송함으로써 송신 노드로부터 메시지를 성공적으로 수신하였음을 알린다.
요약 리프레시(Summary Refresh) 메시지
일단 RSVP 메시지와 메시지 식별자의 관계가 설정되고 나면 해당 예약 상태를 유지하기 위해 보내는 메시지에는 모든 데이터를 포함할 필요가 없고 단지 메시지 식별자만 전달하면 된다.
또한 다수의 메시지 식별자를 하나의 RSVP 메시지에 전달함으로써 하나의 메시지로 다수의 예약 상태를 리프레시 할 수 있다.

MPLS와 DiffServ(Differentiated Service)

MPLS 네트워크에서 DiffServ를 지원하는 문제는 다양한 DSCP(DiffServ Code Point) 패킷들을 LSR에서 어떻게 처리하느냐에 관련된 문제이다.
하지만 DSCP는 IP 헤더에 전달되고 LSR은 IP 헤더를 참조하지 않기 때문에 레이블에서 적당한 PHB(Per Hop Behavior)를 유출해 내는 방법이 존재해야 한다. MPLS에서는 이를 위해 2가지 방법을 제시하고 있다.
MPLS Shim 헤더에는 Exp(COS) 필드가 있고, 이 필드의 원래 목적은 DiffServ 패킷을 지원하기 위해서였다. 그러나 DSCP는 6비트인 반면 Exp 필드는 오직 3비트이기 때문에 직접 맵핑하는데 어려움이 따른다.
이러한 불일치는 역사적인 문제에서 기인한다. MPLS 표준안을 정의할 당시 대부분의 라우터는 IP 헤더의 3비트만을 이용해서 QoS를 제공하였고, DiffServ 워킹 그룹이 결성되기 전에 MPLS 레이블 포맷이 정의되었기 때문에 이런 결과가 발생하였다.
또한 MPLS 헤더 길이를 가능한 짧게 하고자 하였고, 3비트를 이용한 8개의 QoS 클래스는 실질적으로 충분한 QoS 서비스를 제공할 수 있다는 공감대고 형성되었기 때문이다.
그러나 DiffServ 표준안에서 64개의 DSCP를 정의하고 있기 때문에 이를 MPLS Shim 헤더에 적절히 맵핑하는 방법이 필요하지만 8개 이하의 PHB가 필요한 네트워크에서 DiffServ를 지원하는 방법은 DSCP와 PHB의 맵핑 테이블을 통해 쉽게 지원이 가능하다.
Exp 비트를 사용하는 경우 레이블은 LSR로 하여금 패킷을 어디로 포워딩 해야 하는지를 알려주고 Exp 비트는 어떤 PHB를 통해 패킷을 처리할 것인지를 알려준다.
이처럼 Exp 비트를 사용하여 QoS를 기술하는 LSP를 E-LSP라고 하며 Exp 비트로부터 PHB를 유출할 수 있는 LSP를 나타낸다.
만일 8개 이상의 PHB를 지원해야 하는 경우에는 Exp 필드만으로는 필요한 PHB를 표시할 수 없기 때문에 어떠한 형태로든 레이블과 Exp 필드를 사용해서 필요한 PHB를 기술할 수 있어야 하고 이러한 형태의 LSP를 L-LSP라고 한다. 여기서 ‘L’은 레이블을 나타내며 레이블로부터 PHB를 유출하는 LSP를 의미한다.
ATM과 같은 경우에는 레이블만을 이용해서 PHB를 정의할 수 있는 방법을 필요로 한다. 또한 레이블에 PHB 정보를 전달하고자 하는 경우, 레이블 분배 프로토콜을 확장해야 한다.
대부분의 레이블 바인딩 분배 프로토콜은 레이블과 FEC 간의 바인딩 정보만을 분배하기 때문에 레이블과 FEC, 그리고 PHB 간의 바인딩 정보를 분배하는 메커니즘을 필요로 한다.
레이블 분배 프로토콜을 살펴보기 전에 DiffServ AF(Assured Forward) PHB 규격에 대해 자세히 살펴볼 필요가 있다.
AF에서는 동일한 플로우에 속한 패킷들이 만약 폐기 우선 순위(Drop Preference)만 다르다면 반드시 동일한 순서로 전달외어야 한다고 규정하고 있다.
즉 AF PHB에서는 순서가 바뀌어서 패킷이 전달되어서는 안되기 때문에 같은 AF에 속한 패킷들은 일반적으로 동일한 큐에 의해 처리된다.
만일 서로 달느 PHB에 속한 패킷 스트림을 하나의 LSP 상에 실어 보내고자 하는 경우에는 레이블 이외에 다른 필드가 더 필요하다.
이를 위해 Shim 헤더를 사용하는 경우에는 Exp 비트를 사용하고 ATM의 경우에는 Cell Loss Priority(CLP) 비트를 사용해서 PHB를 기술할 수 있다.
즉 Shim 헤더의 경우에는 Exp 비트를 이용해서 AF 폐기 우선순위를 기술하고, ATM인 경우에는 CLP 비트를 사용해서 셀 폐기 우선순위를 나타낸다. CLP가 1비트이기 때문에 ATM의 경우에는 두 가지 셀 폐기 우선순위를 지원할 수 있다.
그림 13-17은 MPLS 네트워크에서 DiffServ 관련 정보를 전달하는 두 가지 방법을 도시하고 있다.
그림 13-17의 a는 하나의 E-LSP를 이용해서 최대 8개까지의 PHB에 속한 패킷들을 전달하는 것을 나타내고 있다. 이 경우 패킷이 속한 PHB는 Exp 비트를 이용해서 나타낼 수 있다.
그림 13-17의 b는 2개의 L-LSP를 이용해서 AF PHB 패킷과 디폴트 패킷 서비스를 제공하는 내용이다. Exp 비트의 설정은 LSP의 종류에 따라 달라진다.
E-LSP를 사용하는 경우에 R1은 PHB와 Exp 간의 맵핑 정보를 반드시 갖고 있어야 하며, R2와 R3에서는 Exp를 동일한 PHB로 바꿀 수 있는 정보를 갖고 있어야 한다. 그러나 L-LSP를 사용하는 경우 Exp 비트는 AF PHB에만 관련되기 때문에 이러한 선택은 임의로 수행될 수 있다.
아래 표는 L-LSP와 E-LSP 간의 차이점과 장단점을 기술하고 있다.
한 가지 유의할 점은 이러한 두 가지 형태의 LSP가 하나의 네트워크 심지어 링크가 Shim 헤더를 사용하는 경우에 하나의 링크 상에서 동시에 사용될 수 있다는 점이다.
L-LSP는 Shim 헤더를 사용하지 않는 ATM에 적합한 구조이며 두 가지 LSP를 모두 사용할 수 있는 링크의 경우에는 E-LSP가 상대적으로 유리하다.
E-LSP
L-LSP
Exp 비트에 의해 PHB가 결정
PHB는 레이블 또는 레이블과 Exp/CLP비트에 의해 결정
추가적인 신호 프로토콜이 필요하지 않다.
PHB는 LSP 설정시에 신호 프로토콜을 이용해 전달
Exp로부터 PHB를 유출할 수 있어야 함
레이블에서 PHB를 유출하는 정보는 신호 프로토콜을 이용, Exp/CLP 비트로부터 PHB를 유출하는 정보는 잘 알려진 값을 사용
Shim 헤더를 필요로 한다. 따라서 ATM 링크에서는 사용이 불가능하다.
ATM 링크에 적합하다.
LSP 당 최대 8개의 PHB가 지원
AF PHB를 제외하면 하나의 LSP당 하나의 PHB가 지원
E-LSP는 L-LSP 보다 상대적으로 많은 PHB를 전달할 수 있기 때문에 필요한 LSP의 수를 줄일 수 있고 E-LSP 모델이 DiffServ에서 주장하고 있는 서비스 모델과 유사하다.
하지만 L-LSP는 8개 이상의 PHB를 지원할 수 있을 뿐만 아니라 PHB 마다 다른 LSP를 사용하기 때문에 상이한 PHB 마다 상이한 경로를 설정할 수 있다.
그림 13-18은 이러한 DiffServ의 구조를 보여주고 있다.