라우터에서 패킷을 받아서 처리하고, 전송하는 과정 중 가장 많은 시간이 소요되는 부분은 어디일까?
바로 패킷을 어디로 보낼 지 결정하는 과정이다. 라우터는 들어온 패킷의 헤더를 보고 Destination Address IP주소에 해당하는 값이 자신의 Routing Table에 있는 지 확인한 후, 서브넷 마스크에 있는 1의 개수가 가장 많은 길을 선택하는 Longest Prefix Matching 과정을 밟는다. 이때, 라우팅 테이블을 lookup하는 데에 상당한 시간이 걸리게 된다.
MPLS는 이 과정에서 Routing Table을 lookup하지 않고도 라우터가 패킷을 전송할 수 있게 해준다.

Virtual Circuit 방식에서 아이디어를 얻은 MPLS는 다음과 같은 형식을 가진다. Layer 3에서 Layer 2로 패킷이 캡슐화되어 내려갈 때, Label이라는 부분이 추가된다. 라우터는 바로 이 Label을 보고 해당 패킷을 어디로 보낼 지 결정하게 된다.

이 Label을 보고 패킷을 전달할 수 있는 라우터를 LSR, Label switched router라고 하고, Host와 연결된 끝 라우터를 LER이라고 한다. LER에 패킷이 들어오면 여기서는 패킷에 Label을 부착하거나 제거하는 역할을 하고, LSR은 이제 이 Label만 보고 들어온 패킷을 라우팅시키면 된다.
이때, MPLS를 지원하는 라우터들은 각자 자신만의 Mapping Table을 가진다. 이렇게 되면 LSR은 Routing Table이 아닌 Mapping Table에서 일치하는 Label 값만 찾아서 보내면 되는 것이다.
![]() | ![]() |
|---|
이렇게 LER이 IP주소를 보고 Label을 부착한다. LSR은 Label이 부착된 패킷이 들어오면 이 라벨 값을 바꿔서 다음 라우터에게 전달하면 된다. 이후, LER은 이 라벨을 제거하고 Host에게 IP주소를 기반으로 패킷을 전송한다.
어.. 근데 어차피 Routing Table을 lookup 하는거나, Mapping Table을 lookup 하는거나 어차피 lookup 하는건데 똑같이 시간이 오래 걸리는게 아닐까?, 뭐가 그리 큰 차이가 있을까? 싶다. 이 고민은 다음 그림을 보니 해소되었다.

이 그림에서 보면 Host와 직접적으로 연결된 LER(Label Edge Router)를 제외한 중간 단계의 LSR들은 Layer 3까지 가지 않고 패킷을 보낼 수 있게 된다. IP 패킷을 열어보지 않아도 Label만 보고 패킷을 전송할 수 있으니 기존 방식보다 훨씬 빨라지게 된 것이다.
Layer 3로 넘어가면 Shortest Path 계산, Routing Tabal lookup 시에 생기는 Longest Prefix Match 과정 등 여러 과정이 들어가기 때문에 라우터에서 Layer 3까지 가지 않고 Layer 2만 사용해서 패킷을 보낼 수 있다면, 패킷의 전송 속도는 훨씬 빨라지게 되는 것이다.
이렇게 하면 기존 IP 주소를 보고 보내는 방식은 Shortest Path를 계산하고, 이 경로가 산출된다면 이 경로로만 패킷을 보내야 했지만, MPLS를 사용하면 다른 경로로 패킷을 보낼 수 있기 때문에 Traffic Engineering이 가능해진다. Shortest Path로만 패킷을 보내면 해당 경로에 문제가 생기거나 트래픽이 몰렸을 때, Loss가 발생할 수 있기 때문에 이를 방지할 수도 있다.
그렇다면 라우터가 Label을 보고 패킷을 전달할 때는 Mapping Table을 보고 보낸다고 했다. 이 Mapping Table은 어떻게 만들어지는걸까?

Layer 2에서는 Signaling 과정을 거쳐 Mapping Table을 만들게 된다. 이 시그널링 메시지는 OSPF에서 Advertise하면서 같이 보낼 수도 있고, 따로 보낼 수도 있다. 즉, 가입자가 트래픽을 보내는 것과 관계없이 비동기적으로 라우터 자체에 ID가 붙는 방식이다. 미리 ID가 라우터들에 붙어있어야 패킷을 보낼 수 있기 때문이다.

또한, MPLS에서는 Downstream(Destination Address쪽 LER)에서 Upstream(Source Address쪽 LER)방향으로 setup 과정이 이루어진다. Downstream이 주변 인접 라우터들에게 "A로 패킷을 보내고 싶으면 ID를 10으로 해서 보내줘"와 같이 Label에 대한 정보를 Broadcast하는 식으로 프로토콜이 동작한다.


LSR은 이 메시지를 수신하여 LIB와 LFIB를 만들게 된다. LIB는 자신이 가지고 있는 모든 라벨 정보들을 모아둔 것이고, LFIB는 이 LIB를 기반으로 어떤 액션을 취해야 하는 지를 정의한 테이블이다.