Segment Routing Primer — SR-MPLS and SRv6
세그먼트 라우팅 입문서 — SR-MPLS 및 SRv6
흐름별 상태가 없는 소스 라우팅: SR이 RSVP-TE를 대체하는 방법, Node-SID 및 Adj-SID가 수행하는 작업, SRv6가 IPv6 주소에서 명령을 인코딩하는 방법, SR-TE가 트래픽 엔지니어링에 적합한 위치.
1. RSVP-TE의 문제점
RSVP-TE(자원 예약 프로토콜 - 트래픽 엔지니어링,RFC 3209)는 MPLS 네트워크에서 명시적인 경로 제어를 활성화했지만 상당한 운영 복잡성을 초래했습니다.
- 흐름별 상태:모든 LSP에는 경로에 있는 모든 라우터의 상태가 필요합니다(RSVP PATH 및 RESV 메시지). 수천 개의 LSP가 있는 네트워크에서 전송 라우터는 지속적으로 새로 고쳐야 하는 거대한 소프트 상태 테이블을 유지 관리합니다.
- 헤드엔드 신호:수신(헤드엔드) 라우터는 RSVP를 통해 경로에 신호를 보냅니다. 토폴로지를 변경하려면 재신호가 필요하므로 수렴 오버헤드가 발생합니다.
- 확장성:풀 메시의 경우 LSP 수가 O(N²)로 증가하고 각 LSP는 모든 전송 라우터에서 LFIB 항목을 사용합니다.
- 빠른 경로 변경 복잡성:RSVP-FRR(RFC 4090)은 사전 계산된 우회 또는 시설 우회 터널을 통해 LSP를 보호합니다. 이 기능은 작동하지만 또 다른 상태 계층을 추가합니다.
세그먼트 라우팅(RFC 8402)은 전송 노드에서 흐름별 상태를 완전히 제거합니다. 소스 라우터는 전체 전달 경로를 순서가 지정된 목록으로 인코딩합니다.세그먼트패킷 헤더 자체에 있습니다. 전송 라우터는 활성 세그먼트만 처리하며 LSP 상태는 필요하지 않습니다.
2. SR 아키텍처(RFC 8402)
A 분절는 라우터에 패킷 전달 방법을 알려주는 명령입니다. "이 노드로 이동", "이 특정 인접 항목에서 종료" 또는 "이 VPN 조회 적용"을 의미할 수 있습니다. 세그먼트는 SID(세그먼트 식별자)로 식별됩니다. 순서가 지정된 SID 목록은 다음과 같습니다.세그먼트 목록(또는 SID 목록). 활성 세그먼트는 각 홉에서 처리됩니다. 처리가 완료되면 세그먼트가 제거되고 다음 세그먼트가 활성화됩니다.
두 가지 데이터 영역 인스턴스화가 존재합니다.
- SR-MPLS: SID는 MPLS 레이블입니다. 세그먼트 목록은 레이블 스택입니다. 기존 MPLS 하드웨어와 역호환됩니다.
- SRv6: SID는 128비트 IPv6 주소입니다. 세그먼트 목록은 세그먼트 라우팅 헤더(SRH, IPv6 확장 헤더)에 포함됩니다. IPv6 기반; MPLS가 필요하지 않습니다.
3. SR-MPLS: Node-SID, Adj-SID 및 SRGB
SR-MPLS(RFC 8660)는 IS-IS에서 광고하는 두 가지 기본 SID 유형을 정의합니다(RFC 8667) 또는 OSPF(RFC 8665) TLV 확장으로:
| SID 유형 | 범위 | 안정 | 의미 |
|---|---|---|---|
| 노드-SID | 글로벌(SRGB) | 지속성 있는 | "가장 짧은 IGP 경로를 사용하여 이 노드에 전달합니다." 각 라우터에는 루프백/라우터 ID당 하나의 Node-SID가 있습니다. SR 도메인의 모든 라우터는 이 레이블을 프로그래밍해야 합니다. |
| 인접성-SID(조정-SID) | 로컬(SRLB 또는 동적) | 임시(세션별) | "이 특정 인터페이스를 이 특정 이웃으로 전달합니다." 최단 경로에 관계없이 특정 링크로 패킷을 강제로 보내는 데 사용됩니다. |
| 애니캐스트-SID | 글로벌 | 지속성 있는 | 노드 집합(예: 경로 리플렉터 또는 데이터 센터 PoP의 애니캐스트 그룹)에서 공유됩니다. 패킷은 가장 가까운 구성원에게 전달됩니다. |
그만큼SRGB(세그먼트 라우팅 글로벌 블록)은 전 세계적으로 중요한 SID를 위해 예약된 레이블 범위입니다. 일반적인 기본값은 16000–23999(Cisco, Juniper)이지만 구성 가능합니다. Node-SID는 다음과 같이 인코딩됩니다.인덱스 값(예: 인덱스 100) SRGB 기반에 인덱스를 추가하여 레이블로 확인됩니다(예: 16000 + 100 = 레이블 16100). 글로벌 SID가 일관되게 유지되도록 모든 라우터는 동일한 SRGB를 사용해야 합니다. 공급업체 또는 구성 간에 SGRB가 일치하지 않으면 레이블이 잘못 지정될 수 있습니다.
SR-MPLS 라벨 스택 예시— 직접 R1→R5 경로를 피하면서 R3(명시적 웨이포인트)을 통해 R1에서 R5로 트래픽을 전송합니다.
Ingress R1 pushes: [Node-SID(R3)] [Node-SID(R5)] R1→R2: outer label = SID(R3), inner = SID(R5) R2→R3: pops SID(R3) (PHP or explicit-null) R3 sees top label = SID(R5); forwards on shortest path to R5 R5 pops SID(R5); delivers to local application
4. SRv6: IPv6 주소로서의 SID
SRv6(RFC 8986)는 SID를 다음과 같이 구성된 128비트 IPv6 주소로 인코딩합니다.
| Locator (e.g., /48) | Function (operator-defined, typically 16 bits) | Argument (remaining bits) |
- 광구 경계 설정자: 노드에 할당된 라우팅 가능한 IPv6 접두사입니다. 전송 라우터는 일반적으로 이 접두사를 향해 라우팅됩니다. 로케이터는 IGP에 공지됩니다.
- 기능: SID 끝점에서 수행할 특정 작업을 식별합니다. 예: End(다음 SID로 전달), End.X(특정 인접성 전달), End.DT4(디캡 및 IPv4 테이블 조회 - IPv4 VPN에 사용됨), End.DX2(디캡 및 L2 교차 연결).
- 논쟁: 함수에 대한 선택적 추가 컨텍스트(예: 엔트로피의 흐름 ID)입니다.
세그먼트 목록은SRH(세그먼트 라우팅 헤더,RFC 8754) — 다음 헤더 = 43(라우팅 헤더), 라우팅 유형 = 4인 IPv6 확장 헤더. SRH에는 다음이 포함됩니다.
- Segment Left (SL): 활성 SID를 가리키는 세그먼트 목록의 색인
- 태그: 흐름 분류 힌트
- Segment List[0..n]: 순서가 지정된 SID(마지막 SID가 대상)
각 SR 인식 노드에서 IPv6 대상이 로컬 SID와 일치하면 노드는 SID의 기능을 실행하고 Segment Left를 감소시키고 전달하기 전에 Segment List[Segment Left]를 IPv6 DA에 복사합니다.
5. SR-TE를 이용한 교통공학
SR-TE(RFC 9256— SR 정책 아키텍처)는 RSVP-TE LSP를 다음으로 대체합니다.SR 정책, 각각은 다음과 같이 정의됩니다.
- 헤드엔드: 정책을 인스턴스화하는 수신 노드
- 색상: 트래픽(BGP 색상 확장 커뮤니티를 통해)을 정책과 연결하는 데 사용되는 32비트 식별자입니다.
- 엔드포인트: 대상 노드
- 하나 이상후보 경로, 각각 가중치가 적용된 세그먼트 목록 포함
후보 경로는 헤드엔드(로컬 CSPF/PCE 사용)에 의해 계산되거나 PCEP를 통해 중앙 집중식 SR-PCE/컨트롤러에 의해 배포됩니다(RFC 5440) 또는 BGP SR 정책(참조RFC 9256§8). 이는 명시적인 경로 제어를 유지하면서 RSVP 신호 평면을 완전히 제거합니다.
온디맨드 다음 홉(ODN)BGP 경로가 특정 색상 커뮤니티와 함께 도착할 때 사전 프로비저닝 없이 헤드엔드가 자동으로 SR 정책을 인스턴스화하는 SR-TE 기능으로, VPN 및 CDN 접두사에 대한 자동화된 트래픽 조정을 활성화합니다.
6. SR-MPLS 대 SRv6 대 RSVP-TE
| SR-MPLS | SRv6 | RSVP-TE | |
|---|---|---|---|
| 데이터 플레인 | MPLS 라벨 스택 | IPv6 + SRH 확장 헤더 | MPLS 라벨 스택 |
| 전송 시 흐름별 상태 | 없음 | 없음 | 예(RSVP 소프트 상태) |
| 신호 프로토콜 | IGP(IS-IS/OSPF) 확장 | IGP 확장 | RSVP-TE(경로/RESV) |
| 하드웨어 호환성 | 모든 MPLS HW | SRv6 지원 ASIC 필요 | 모든 MPLS HW |
| 패킷당 오버헤드 | 라벨당 4B | 8 + 16n B(n SID가 있는 SRH) | 0(MPLS 레이블이 이미 스택에 있음) |
| VPN 지원 | MPLS VPN 레이블을 통해 | End.DT4/DT6/DX2 SID 기능 | MPLS VPN 레이블을 통해 |
| 빠른 경로 재지정 | TI-LFA(토폴로지 독립적, 사전 구성 없음) | TI-LFA | RSVP-FRR(사전 프로비저닝된 우회) |
| 배포 성숙도 | SP/DC에 널리 보급됨 | 성장; ASIC 지원은 여전히 성숙 중 | 성숙했지만 쇠퇴하고 있음 |
참고자료
- RFC 8402— 세그먼트 라우팅 아키텍처
- RFC 8660— MPLS 데이터 플레인을 사용한 세그먼트 라우팅
- RFC 8665— 세그먼트 라우팅을 위한 OSPF 확장
- RFC 8667— 세그먼트 라우팅을 위한 IS-IS 확장
- RFC 8669— BGP용 세그먼트 라우팅 접두사 SID 확장
- RFC 8754— IPv6 세그먼트 라우팅 헤더(SRH)
- RFC 8986— IPv6(SRv6) 네트워크 프로그래밍을 통한 세그먼트 라우팅
- RFC 9252— IPv6(SRv6)을 통한 세그먼트 라우팅 기반 BGP 오버레이 서비스
- RFC 9256— 세그먼트 라우팅 정책 아키텍처
- IETF SPRING 워킹 그룹— NetworkinG의 소스 패킷 라우팅(활성 SR 초안)