본문 바로가기
카테고리 없음

MPLS VPN이란 무엇인가

by Lauren X Ming 2022. 3. 27.

출처 : 최신 MPLS(피터전)

MPLS : IPv4/v6 패킷 또는 L2 프레임에 라벨을 첨부하여 전송하는 기술

LSR : MPLS가 동작하는 스위치
  -> MPLS 패킷을 수신하면 라벨을 참조하여 스위칭함

MPLS VPN를 사용하는 이유
사전에 설정된 경로 간에만 트래픽 전송을 허용 (내외부 트래픽 분리)
MPLS VPN 사용자는 MPLS 망 가입자로 제한되어있음
TE(Traffic Engineering) 가능
  -> 트래픽 대여폭을 보장하여 네트워크 자원을 최대한 활용할 수 있음.
  -> FRR(fast reroute) 기능을 사용하면 장애발생시 신속하에 트래픽을 우회시켜 패킷 손실을 최소화할 수 있음.

MPLS VPN의 단점
인증이나 암호화 기능을 제공하지 않음
--> IPsec + MPLS를 같이 사용하면 해결 가능

MPLS 헤더

출처 : https://download.huawei.com/mdl/image/download?uuid=d9fdb5e35cc94e0e896fb31c4e96abf7

  • Exp : Qos 값(1~7)
  • S(BoS) : 비트값이 1이면 마지막 라벨 / 0이면 그 다음 또 다른 라벨이 있음 을 나타냄 --> MPLS header가 여러 개 붙을 수 있음. (개수에는 제한이 없음)
  • TTL : 패킷 루프 방지

MPLS VPN 라우터의 종류

  • PE(Provider Edge) : 고객 라우터와 직접 연결되는 MPLS 라우터
  • P(Provider) : 고객 라우터와 직접 연결되지 않는 MPLS 라우터
  • CE(Customer Edge) : MPLS망과 직접 연결되는 고객사의 라우터. 대부분 CE 라우터는 MPLS 관련 설정이 없음

FEC
동일한 MPLS 경로를 이용하여 전송되는 패킷의 그룹
  - 목적지 네트워크가 같은 패킷
  - 동일한 그룹에 소속된 멀티캐스트 패킷
  - BGP next hop 주소가 동일한 패킷
동일한 FEC에 속하는 패킷들은 동일한 라벨값이 부여됨
어떤 FEC에 소속되느냐를 결정하는 것은 패킷을 처음 수신한 MPLS 라우터(ingress LSR)임

라벨 바인딩 정보 전송
Label Binding : FEC 별로 라벨을 부여하는 것
 - 각 LSR들은 독자적으로 FEC 별 라벨 부여한 후 주변 LSR에게 전달 => 즉, 라벨값은 인접한 LSR 사이에서만 의미가 있음. 
- Label Binding 정보를 전달하기 위한 방법 : TDP, LDP, RSVP, BGP
MPLS VPN : LDP 또는 TDP가 router-id별 라벨값 전송하고, PE 라우터 간에 BGP를 이용하여 목적지 네트워크별 라벨값 교환
MPLS TE : RSVP를 이용하여 라벨 바인딩 정보 교환

LIB, LFIB
- 인접 LSR들로부터 수신한 모든 바인딩 정보를 LIB에 저장하고, 최적 경로의 로컬/리모트 라벨값을 LFIB에 저장
Local Binding : LSR이 라우팅 테이블에 있는 각각의 IGP 네트워크 별로 하나씩의 라벨값을 부여
Remote Binding : 각 LSR이 인접 LSR에게 라벨을 광고. 광고받은 라벨을 리모트 바인딩이라고 함
LIB : Local Binding+Remote Binding 정보를 가지고 있는 DB
인접 LSR이 다수 개 존재하면 목적지 네트워크 당 다수 개의
Remote Binding을 가지며, 그 중 라우팅 테이블에 의해서 하나만 사용됨
LFIB : LSR은 LIB와 라우팅테이블을 이용하여 로컬바인딩 및 리모트 바인딩에서 사용되는 라벨을 결정한 다음 LFIB에 저장

LSR 라벨 부여

  • 특정 FEC에 대해 유일한 라벨값 부여
  • 인터페이스 별로 유일한 라벨값 부여(인터페이스별 목적지 네트워크 당 로컬 바인딩)
  • 장비 당 유일한 라벨 부여(목적지 네트워크 당 로컬 바인딩)

MPLS 모드

  • 라벨 바인딩 분배 방식
    • DoD : downstream on demand, 각 LSR 들이 넥스트홉 라우터에게 특정 FEC에 대한 바인딩을 요청하여 부여받고, 각 LSR들은 특정 FEC에 대해서 넥스트홉 라우터로부터 하나의 바인딩을 수신함.
    • UD : unsolicited downstream, 각 LSR들이 독자적으로 FEC당 라벨을 부여하고, 이 바인딩을 인전 LSR에게 광고함
  • 라벨 저장 모드
    • 인접 LSR로 부터 수신한 라벨 라인딩 정보를 저장하는 방식
    • LLR : liberal label retention, 모든 네이버에게서 수신한 바인딩 정보를 모두 LIB에 저장. 용량은 커지지만, 라우팅 경로가 변화되었을 때 신속히 대처 가능
    • CRR : conservative label retention, 최적 경로상의 넥스트 홉 LSR에게서 수신한 바인딩 정보만을 저장
  • 로컬 바인딩 생성 방식
    • 특정 FEC에 대한 로컬 바인딩을 생성하는 방식
    • independent LSR control mode : 각 LSR이 FEC를 인식하면 바로 로컬 바인딩을 생성(라우팅 테이블에서 특정 네트워크가 인스톨되면 바로 로컬 바인딩이 생성됨). 
      • 단점 : 종단 장비간에 LSP가 완성되기 전에 라벨 스위칭 가능
    • ordered LSP control mode : 특정 LSR이 특정 FEC에 대해 egress LSR이거나, 넥스트 홉 LSR로부터 라벨 바인딩 정보를 수신했을 때만 그 FEC에 대한 로컬 바인딩을 생성함. 

MPLS 패킷 전송 과정

각 LSR들은 자신의 라우팅 테이블에 있는 네트워크에 대해 라벨값을 부여한 다음 인접 LSR에게 전송
- 단. 최종 목적지가 자신인 네트워크에 대해 라벨값은 부여하지 않음

라벨 생성(LIB, LFIB 테이블 생성)

R3 : 로컬 바인딩으로 라벨 30을 부여해서 10.10.10.0인 R2에게 전송
R2 : 리모트 바인딩으로 R3에서 (라벨 30, 10.10.10.0 ) 정보 수신, 로컬 바인딩으로 라벨 20을 부여해서 10.10.10.0인 R1에게 전송

MPLS 패킷 전송

R1 : 목적지 네트워크에 대해 R2에서 요청한 라벨값을 부여하여 R2에게 전송 ( Push(imposition) 과정)
R2 : 목적지 네트워크에 대해 R3에서 요청한 라벨값으로 교환하여 R3에게 전송( Swap 과정)
R3 : 목적지 네트워크에 대해 R4에서 요청한 것처럼 라벨을 제거한 후 R4로 전송( pop(disposition) 과정)
--> PHP(Penultimate Hop Popping) : MPLS 라벨은 최종 LSR 직접의 라우터에서 제거됨