[컴퓨터 네트워크] MPLS(Multiprotocol Label Switching)

신현식·2022년 12월 6일
1

컴퓨터 네트워크

목록 보기
27/34

MPLS란

인터넷의 백본망 등에서, 대량의 트래픽 처리를 고속으로 처리 및 관리를 하기 위한 방안이다.
MPLS는 데이터의 목적지 IP 주소를 확인하는 대신 ‘Label’이라고 불리는 패킷에 더해진 식별자를 확인하여 목적지까지 데이터를 전달 및 포워딩을 실시한다. 또한 IP 주소가 어떤 Label를 사용할 것인지를 광고(advertisment)하게 된다. 각각의 라우터는 라우팅 테이블과 동시에 Label 테이블을 학습한다. 즉, MPLS에서는 기존의 라우터의 동작 방식에 새로운 ‘Label’ 정보를 광고 및 학습하는 동작 방식이라 정의할 수 있다.

📌 MPLS VS IP path

MPLS는 Label switched router(LSR)을 구동하여 진행한다.
Label Switching이란 데이터 전송이 아닌 데이터에 Label를 추가하고 여기에 포함된 값을 이용하여 Layer 2 기반에서 바로 스위칭 하는 방법을 말한다. 그리고 이 스위칭은 목적지까지 가기 위한 경로를 라우팅 테이블에서 참조하지 않으며, 그대신 Label의 값을 이용하여 Layer 2 스위칭을 실시한다. IP forwarding table과 구별되는 MPLS forwarding table을 가지고 있어 MPLS 전달 결정은 L3(IP 등)의 결정과 다를 수 있습니다.

IP routing


같은 des로 보낼때 같은 경로로 밖에 가지못한다. 왜냐하면 그 경로가 IP의 입장에서 최소비용 경로이기 때문이다. 따라서 경로를 목적지 주소가 결정한다.

MPLS


MPLS 라우팅은 대상 경로를 src 및 des를 기반으로 정할 수 있다. 따라서 같은 목적지를 간다고 해도 여러 경로가 존재할 수 있다. 이것이 traffic engineering이다.(layer 3: SDN, layer 2:MPLS)

📌 기존 라우팅 VS MPLS

  • 기존 라우팅: 3계층에서 Hop by Hop 체계를 기반으로하여 매 패킷 마다 헤더 검사, 라우팅 테이블 참조를 반복 수행하며, 비 연결지향적 경로를 설정하고매 라우터 마다 라우팅에 따른 자원을 소모하며 이에따라 고속화 어려움
  • MPLS : MPLS망에 진입하는 시점에서, 단 한번만 헤더를 조사한다. 입구/출구에서 단 한 번만 라우팅을 수행하고 우편번호와 같이 짧은 라벨(Label)을 이용하여 MPLS 망 내부에서는 연결지향적 경로를 설정한다. 또한, 짧은 라벨 스위칭 만을 수행함으로써 일반 IP 라우팅 보다 자원 소모 작다.

📌 MPLS 구성 및 동작과정

💡 프로토콜 평면 구성

  • 제어평면 (Control Plane): 3계층 라우팅 정보 및 라벨을 교환
    . RIB (Routing Information Base) : 일반 라우팅 프로토콜에 의해 구축된 라우팅 테이블
    . LIB (Label Information Bas) : 라벨 분배 프로토콜에 의해 구축된 테이블
  • 데이터평면 (Data Plane): 라벨에 의해 패킷 스위칭
    . FIB (Forwarding Information Base) : 일반 IP 패킷을 위한 포워딩 테이블
    . LFIB (Label Forwading Information Base) : MPLS 라벨 패킷을 위한 포워딩 테이블로 라벨 교환 및 전달을 수행하기 위해 검색되는 테이블이다.
    장치구성: LER(Label Edge Router) / LSR(Label switched router)

💡 동작과정

LER(Label Edge Router)는 들어오는 패킷에 Label를 추가하는 일을 하며, LSR 라우터들은 Label이 추가된 패킷을 목적지로 전송한다. 목적지 네트워크의 LER라우터는 패킷에 추가된 Label를 삭제한 후 일반 IP 패킷을 목적지로 전송하는 것을 보장한다.LER(Label Edge Router)은 사용자 및 가입자 네트워크를 연결한 라우터이다. LER은 사용자 및 가입자 네트워크에서 들어오는 패킷에 Label를 추가하여 MPLS 패킷으로 생성한다. 패킷에 Label를 붙일 때는 FEC(Forwarding Equivalence Class)라고 하는 목적지 주소에 할당된 Label의 값을 붙인다.
위의 그림은 FEC에 따라 각각 다른 Label를 할당하고, 들어오는 패킷의 목적지 주소에 따라 해당하는 Label를 추가하는 LER의 기능을 보여주고 있다.

목적지 LER은 MPLS 패킷을 수신하면 Label를 제거하여 일반 IP 패킷으로 전환시킨다. Label이 제거된 일반 IP 패킷은 라우팅 테이블을 참조하여 목적지까지 데이터 전송을 보장한다. 목적지 LER은 패킷을 라우팅하기 때문에 Label를 추가해서 전달 될 필요가 없다.

LDP (Label Distribution Protocol)는 각각의 라우터 자신들이 갖고 있는 Label 정보를 네이버 라우터와 교환하며, 서로 알고 있는 Label정보를 확인하고, LSP 경로를 생성하는 프로토콜이다. 즉, 라우터들은 라우팅 정보를 교환하여 라우팅 테이블을 생성하듯이, 자신의 Label 정보를 교환하여 최종적으로 목적지로 가기 위한 Label 테이블을 생성한다. LDP는 OSPF가 advertisment할때 메세지에 같이 실어서 보낸다. 즉 id를 할당하고 id를 교체하는 작업이 LDP가 하는 것이다.
LDP는 네이버를 찾기 위해 UDP를 사용하지만, 이후 TCP 전송 프로토콜을 사용한다.(TCP Port 646)

✔ 정리

  1. 입구 노드에서, 들어온 패킷은 FIB에 따라 분류되고, 이 정보에 의해 적당한 라벨이 할당 됨(할당은 LDP를 이용)
  2. MPLS 망 내부의 MPLS 교환기에 의해, 패킷은 그 헤더에 있는 라벨에 따라 포워딩 됨(처음에는 LER에서)
  3. 각 MPLS 교환기에서, 헤더의 라벨을 FIB 항목에서 구한 라벨로 교체함 (라벨 교환, LSP에서)
  4. 출구 노드에서(LER), 라벨이 제거되고 패킷들은 보통의 IP 패킷 처럼 포워딩 됨

📌 LDP 동작 예시


[10.0.0.0/8, L=18]의 의미는 이 메세지를 보내는 라우터한테는 Label18를 붙여서 보내라는 의미로 광고한는 것이다.

💡 Label advertisment

각각의 LSR은 독립적으로 각각의 목적지 주소에 label를 할당한 후 인접 LSR에서 광고한다. Label은 local에서만 의미가 있으며 비동기적이다.

💡 Label Binding

LSR은 자신이 광고한 Label과 인접 LSR로부터 수신된 label을 이용하여 LIB (Label Information Base)와 LFIB (Label Forwarding
Information Base)작성한다. 즉 Label을 특정 데이터 흐름에 대응시켜 연결짓는다.

📌 MPLS VS Virtual circuit 예시


MPLS

  • 라우터가 advertisment할때 라우팅 테이블 look-up, 라벨이 만들어짐
  • 토폴로지 driven
  • 라벨수(ID): 네트워크마다 한개씩 존재하고 목적지부터 만들어진다.
    포현: 2260-1111이 555-1234와 통신하고 싶을때, 20 | 2260-1111,555-1234을 advertisment한다. R4 - 20|3:40(3번 인터페이스로 들어오고 id가 40이면 20으로 바꾼다.) R1은 LER이므로 |5:20이고 이를 통해 연결이 완성된다.

Virtual Circuit

  • sender가 signaling 메세지 보낼때 라우팅 테이블 look-up, 매핑 테이블(라벨)이 만들어짐
  • flow driven
  • 한 클라이언트가 데이터를 보내고자 할때 만들어진다.
  • 라벨수(ID)가 엄청 많다.(host 수만큼) source부터 만들어진다.
    표현: 2260-1111이 555-1234와 통신하고 싶을때, 목적지부터 만들어진다. R3-555 | 40(555는 id 40으로 보낸다.), R2-20 | 3:40(3번 인터페이스로 들어오고 id가 40이면 id를 20으로 바꿔서 보낸다.), R1-5:20 | 555(5번 인터페이스로 들어오고 id가 20이면 555에서 온것이다.)
profile
전공 소개

0개의 댓글