ettrends banner

유현경 (Yoo H.K.)
장석원 (Jang S.W.)
고남석 (Ko N.S.)



Keywords: SID, SRH, SRv6, SRv6 정책, 네트워크 세그먼트 라우팅, 네트워크 프로그래밍

Ⅰ. 서론

5G 및 6G 기술의 확산으로 몰입형 확장 현실 서비스, 자율주행 서비스, 드론 서비스 등 다양한 응용 서비스가 보편화되고 있으며, 그러한 서비스의 특성에 따라서 저지연, 고대역폭, 가용성, 보안과 같이 네트워크 요구사항이 다변화되고 있다[1]. 따라서, 고품질 응용 서비스의 특성에 따른 네트워크 요구사항을 효율적으로 만족시킬 수 있는 최적의 네트워크 서비스가 동적으로 제공될 수 있는 네트워크 기술이 필요하게 되었다. 이를 실현하기 위해서는 네트워크 리소스 정보뿐만 아니라 응용의 특성과 상태 정보를 공유하고, 이를 기반으로 네트워크 서비스가 수행되도록 패킷을 라우팅 및 포워딩 할 수 있어야 한다.

이와 같이 다양한 응용 서비스의 특성을 고려하여 패킷 포워딩을 함으로써 동적으로 응용 서비스의 네트워크 경로를 제어할 수 있는 기술을 네트워크 서비스 프로그래밍 기술로 정의할 수 있다. 대표적인 네트워크 서비스 프로그래밍 기술로 IETF(Internet Engineering Task Force), SPRING(Source Packet Routing in Networking) 워킹그룹은 세그먼트 라우팅(SR: Segment Routing) 구조, 네트워크 프로그래밍 및 유즈케이스에 대한 표준화를 진행하고 있으며, 네트워크 장비 제조업체, 통신사를 중심으로 연구 개발이 활발하게 진행 중이다[2].

세그먼트 라우팅은 패킷 헤더에 서비스 경로가 인코딩되어 전달되는 소스 라우팅 개념으로, 네트워크 노드가 인입 패킷에 대해 수행하는 명령을 세그먼트(Segment)라고 부른다[3,4]. 세그먼트 라우팅 기술은 사용되는 데이터 플레인에 따라 MPLS 기반의 SR-MPLS(MPLS Segment Routing)와 IPv6 기반의 SRv6(Segment Routing over IPv6 dataplane)가 있다. SR-MPLS는 세그먼트가 MPLS 레이블로 인코딩되며, SRv6에서 세그먼트는 라우팅 확장 헤더에 IPv6 주소 형태로 인코딩되어 전달된다.

시스코, 주니퍼, 화웨이 등의 글로벌 네트워크 장비 사업자들은 세그먼트 라우팅 기술을 탑재한 네트워크 장비를 출시하고 있으며, SR 기술을 기반으로 네트워크 모니터링, 트래픽 엔지니어링(TE: Traffic Engineering), 가상 사설 네트워크(VPN: Virtual Private Network) 등의 서비스를 제공하고 있다[2].

본고에서는 SRv6를 기반으로 세그먼트 라우팅 구조와 네트워크 프로그래밍 동작 과정, SRv6의 발전 및 적용 사례에 대해 살펴본 후, SRv6 기반 네트워크 프로그래밍 기술에 관한 연구 방향을 제시하고자 한다.

Ⅱ. SRv6 개요

세그먼트 라우팅의 기본 구성 요소는 그림 1과 같다. 세그먼트 라우팅 도메인(SR 도메인)은 소스 기반 라우팅에 참여하는 노드들의 집합으로, 서비스 제공자 네트워크 또는 기업 사설 네트워크가 될 수 있다. 헤드엔드 노드는 SR 도메인의 시작 노드로 IP 패킷을 SR 패킷으로 전환하며, 엔드 노드는 SR 도메인의 종단에서 SR 패킷을 다시 IP 패킷으로 변환하여 전달한다. SR 도메인에서 순차적인 세그먼트 목록을 통해서 패킷 전달 경로가 결정되며, 그림 1에서 패킷 전달 경로는 [세그먼트 1]−[세그먼트 2]−[세그먼트 3]이 된다. SRv6의 경우, 각 경로에 대한 세그먼트는 세그먼트 아이디(SID: Segment Identifier)로 구분된다. 각 세그먼트에는 토폴로지와 서비스 요구사항이 반영될 수 있으며, 토폴로지 세그먼트는 특정 노드 또는 노드의 인터페이스로 패킷을 포워딩하도록 지정할 수 있고, 서비스 관련 세그먼트는 특정 컨테이너 또는 가상머신에서 패킷 처리를 지정하거나, QoS 처리 등을 지정할 수 있다[3].

그림 1
세그먼트 라우팅 개념도

Ⅲ. SRv6 네트워크 프로그래밍

IETF는 하나의 SRv6 응용으로서 네트워크 프로그래밍에 관하여 필요한 기능과 방법을 표준화하였다[5]. Ⅲ장에서는 SRv6을 이용한 네트워크 프로그래밍의 개념과 확장 헤더인 SRH(Segment Routing Header)[6], 그리고 네트워크 프로그래밍을 통한 SRv6 패킷 전달 과정 및 SRv6 정책의 적용에 관하여 기술한다.

1. SRv6 네트워크 프로그래밍 개념

SRv6의 특징은 네트워크를 우리가 아는 컴퓨터의 동작과 유사하게 추상화할 수 있다는 점이다. 컴퓨터 프로그래밍에서 특정 서비스를 구현하기 위해 다양한 명령을 순서에 맞게 조합하는 것과 유사하게 SRv6에서는 일련의 전달 명령(Forwarding Instruction)을 패킷 헤더에 조합하는 것을 가능하게 한다. 따라서 SRv6 네트워크는 이러한 전달 명령을 순서에 맞게 실행함으로써 네트워크에 필요한 서비스를 구현하고 제공한다.

이러한 일련의 명령들은 세그먼트 아이디로 대표되는 세그먼트의 집합으로 표현된다. 그림 2는 세개의 세그먼트 아이디로 구성된 SRv6 기반의 네트워크 프로그램의 예제를 나타낸다. 하나의 세그먼트 아이디는 IPv6 주소(128-bit)의 형태를 갖고 있다. 첫 번째 명령, 즉 첫 번째 세그먼트 아이디는 패킷 헤더의 IPv6 목적지 주소(DA: Destination Address)에 위치하고, 그 이후 두 번째 이상의 세그먼트 아이디들은 확장 헤더인 SRH 내의 세그먼트 아이디 필드에 위치한다.

그림 2
3개의 명령으로 이루어진 SRv6 기반의 네트워크 프로그램 예시

2. 세그먼트 라우팅 헤더(SRH)

앞서 설명한 바와 같이 SRH는 네트워크 서비스에 따라 2개 이상의 다양한 전달 명령의 조합이 필요한 경우, 세그먼트 아이디들을 순서에 맞게 전달하기 위해 사용되는 IPv6 확장 헤더이다. 그림 3은 SRH의 구조를 나타낸다. SRH는 다수의 세그먼트 아이디와 optional TLV(Type Length Value) 필드로 구성된다. 이때 세그먼트 아이디의 수는 고정되지 않고 구현하고자 하는 네트워크 서비스에 따라 달라질 수 있으며, 세그먼트 아이디 간의 정보 공유, 메타데이터 전달, 데이터 암호화, 무결점성 보장 등을 위해 활용되는 optional TLV 헤더 또한 필요시에 활용하게 된다. 이와 같이 SRH는 서비스의 특성과 네트워크 계획에 따라 유연하게 활용될 수 있게 설계되었다. SRH에는 패킷 전달 경로 및 패킷 처리방식을 나타내는 세그먼트 아이디와 더불어 이미 처리된 세그먼트 아이디와 다음으로 처리해야 할 세그먼트 아이디를 구분하기 위해 남은 액티브 세그먼트 아이디(Active SID)의 개수를 의미하는 SL(Segment Left) 등이 정의된다.

그림 3
SRH 및 세그먼트 아이디 구조

3. 세그먼트 아이디(SID)의 구성

그림 3에 보이는 것처럼 하나의 세그먼트 아이디는 다음과 같은 세 가지 필드로 구성되어 있다.

● Locator: 라우팅을 위한 라우팅 프리픽스(Prefix)의 정보를 담고 있다. 따라서 바로 다음에 이어져 해당 패킷에 대한 처리를 지정하는 Function을 수행해야 하는 노드로 패킷을 전달할 때 사용된다. 순수 IPv6 주소의 경우 128-bit를 모두 Locator로 활용하지만 SRv6에서는 네트워크 계획에 따라 32, 48, 64-bit 등의 크기만큼만 Locator로 활용하며, 나머지 부분은 기능수행을 위한 명령을 식별하기 위한 전달자로 활용한다.

● Function: Locator 정보로 식별된 노드에서 패킷 처리에 대해 수행해야 할 기능을 나타낸다. 즉 트래픽 엔지니어링, 가상 사설 네트워크, 빠른 경로 우회(FRR: Fast ReRoute) 등 다양한 네트워크 서비스를 구현하고 제공하기 위해 Locator에 해당하는 노드가 수행해야 할 패킷 처리 방법을 나타낸다.

● Argument: 필수가 아닌 선택적으로 정의되는 필드로 Function에 추가적인 정보/인자가 필요할 때 이를 전달하기 위해 활용된다.

Locator, Function, Argument 필드의 크기는 각각 가변적이나 IPv6 목적지 주소를 대체하기 위해 총합은 128-bit로 고정되어 있다. SRv6 네트워크 프로그래밍 표준인 RFC8986[5]에서는 Function을 이용해 다양한 네트워크 서비스를 구현할 때, 편의성과 통일성을 위해 Function이 수행해야 할 기본적인 패킷 처리 방식들을 정의하였다. 정의된 Function들에 대하여 몇 가지 주요 Function의 목록과 각각에 대한 설명을 표 1에 정리하였다.

표 1 SRv6 주요 function 리스트

Function Description
H.Encaps IPv6 Encapsulation(IPv6-in-IPv6(SRH))
H.Encaps. L2 L2 Frame Encapsulation(L2 over IPv6(SRH))
H.Insert Insert an SRH in the original IPv6
End Replace IPv6 DA with next SID, FIB Lookup
End.T Replace IPv6 DA with next SID, IPv6 table Lookup
End.X Replace IPv6 DA with next SID, directly forwarded to a L3 adjacency
End.DT4 Pop out the SRv6 encapsulation, FIB lookup for inner ipv4 DA
End.DT6 Pop out the SRv6 encapsulation, FIB lookup for inner ipv6 DA
End.DX4 Remove the SRv6 encapsulation, directly forwarded to a L3(IPv4) adjacency
End.DX6 Remove the SRv6 encapsulation, directly forwarded to a L3(IPv6) adjacency
출처 Reproduced from [ 5].

먼저, H.Encaps 방식은 IPv6의 패킷을 캡슐화(Encapsulation)하여 IPv6-in-IPv6 형식의 오버레이(Overlay) 구조를 만드는 데 사용된다. 즉 원본 IPv6 헤더는 내부 헤더가 되며, 캡슐화한 외부의 IPv6 헤더는 세그먼트 라우팅을 위한 헤더가 된다. 이와 유사하게 H.Encaps.L2는 L2 프레임 전체를 SRH로 캡슐화하는 방법이다. 두 가지 방식 모두 원본 헤더는 수정하지 않고 새로운 헤더를 추가하는 방식이기 때문에 오버레이 네트워크를 구성하여 이종 도메인 간 패킷 전달에 투명성을 쉽게 보장해 줄 수 있다. 반면, H.Insert의 경우 원본 IPv6 헤더를 직접적으로 세그먼트 라우팅을 위해 확장하는 방식으로 원본 헤더의 값을 수정하게 된다. 구체적으로는 원본 패킷 IPv6 헤더의 목적지 주소 필드가 첫 번째 세그먼트 아이디로 업데이트되며, SRH에 세그먼트 아이디 목록이 추가된다. 이 경우 원본 헤더의 값을 보존하기 위해서 세그먼트 아이디 목록의 마지막 세그먼트에 원본 데이터를 포함하여 전달하게 된다. H.Insert는 링크/포트의 장애로 인해 경로 변경을 수행하는 빠른 경로 우회와 같은 네트워크 서비스를 구현하는 데 사용될 수 있다.

End 방식은 SRv6 엔드포인트 노드에서 수행해야 하는 SRv6 기능 중 가장 기본이 되는 방식이다. 먼저 엔드포인트 노드는 세그먼트 라우팅이 가능한 노드로서, SRH를 생성하고 세그먼트 아이디 처리가 가능한 노드이다. 각 엔드포인트 노드는 패킷을 수신하면 IPv6 목적지 주소에 위치한 세그먼트 아이디의 Locator가 자신의 Locator와 일치하면 Function에 정의된 동작을 수행하게 된다. End 방식은 SRH의 세그먼트 아이디 목록 중 다음 세그먼트 아이디를 IPv6 헤더의 목적지 주소 값으로 업데이트하고 주 라우팅 테이블인 FIB(Forwarding Information Base) 테이블을 참조하여 해당 패킷을 어떤 포트/인터페이스로 전달할지를 결정하는 방식이다. End.T의 경우 End와 유사하지만, FIB를 참조하는 대신 별도의 IPv6 테이블을 참조하여 패킷의 전달경로를 결정하는 방식이다. End.X의 경우도 End와 유사하나 테이블을 참조하는 대신 미리 정해진 L3 인터페이스로 패킷을 전달하는 방식이다. End.DT4/End.DX6는 앞서 설명한 기본적인 End 방식에 역캡슐화를 수행한 후 테이블 참조 또는 특정 인터페이스로 전달하는 방식이다. 이처럼 Function 이름에서 D는 역캡슐화, T는 테이블을 참조한 전달경로 결정, X는 처리된 패킷을 특정 인터페이스로 Cross-connect하여 전달하는 것을 의미함을 알 수 있다.

앞에서 언급하였듯이 SRv6 도메인 내의 세그먼트 라우팅 기능을 수행하는 노드들은 SRH를 추가하거나 세그먼트 아이디를 변경하는 등의 역할을 수행한다. 특히, SRv6 도메인의 시작점과 끝점에서는 SRH를 추가하거나 제거하는 기능을 수행해야하며, 중간에 위치한 노드들은 세그먼트 아이디의 Locator를 자신의 Locator와 비교함으로써 해당 세그먼트 아이디를 처리해야 하는지를 판단한다. 이러한 일련의 과정을 통해 SRv6에서는 패킷의 전달 과정에서 전달 경로상의 노드들을 이용해 미리 정의된 네트워크 명령을 하나씩 수행하며 네트워크 프로그래밍을 구현하게 된다.

그림 4는 앞서 설명한 SRH와 세그먼트 아이디를 이용하여 SRv6 네트워크에서 패킷 전달 과정의 한 예를 나타낸다[7]. 패킷을 수신한 헤드엔드 노드(노드 A)는 네트워크 프로그램을 위한 세그먼트 아이디 목록을 순서에 맞게 원본 패킷 헤더에 캡슐화하여 추가한다. 즉, 세그먼트 아이디 목록 <B::F1, C::F2, D>이 IPv6 목적지 주소와 SRH에 순서에 맞게 적용된다. 이때, 첫 번째 처리되어야 할 세그먼트 아이디는 B::F1(locator: B, function: F1)이기 때문에 해당 패킷은 먼저 B 노드로 전달되며, 해당 패킷을 받은 노드 B는 B::F1의 세그먼트 아이디를 체크하여 자신이 처리해야 하는 패킷임을 확인하고 해당 패킷에 F1을 수행한다. 그리고 다음 세그먼트 아이디인 C::F2로 목적지 주소를 업데이트하고 SRH의 SL 값을 1 줄인 후 패킷을 전달한다. 노드 C 역시 노드 B와 동일한 과정을 통해 세그먼트 아이디 처리를 한다. 마지막으로, 엔드 노드에서는 모든 세그먼트 아이디들이 정상적으로 처리되었음을 확인하기 위해 SL의 값이 0임을 확인하고 SRH를 패킷에서 제거하여 원본 헤더를 복구한다.

그림 4
SRv6 동작 구조 출처 Reproduced from [7].

4. SRv6 정책의 적용

SRv6 동작의 기본이 되는 세그먼트 아이디 목록은 소스 라우팅을 위한 SRv6 정책(Policy)을 통해서 결정된다. 이러한 SRv6 정책을 통해 서비스에 따라 동적으로 라우팅 경로를 제공하고, 다양한 네트워크 서비스를 지원할 수 있다[3,8]. SRv6 정책 구조는 그림 5와 같이 <Headend, Color, Endpoint> 형태로 정의된다. 여기서 헤드엔드는 SRv6 정책이 활성화되어 패킷에 적용되는 시작 노드이며, 엔드포인트는 SRv6 정책의 목적지 노드이다. 컬러는 다양한 SRv6 정책을 식별하는 데 사용되는 값으로, 저지연 또는 고대역폭과 같은 서비스 특성과 연관될 수 있다. 따라서 헤드엔드는 <Color, Endpoint>를 이용하여 SRv6 정책을 고유하게 식별하고 트래픽의 흐름을 조정할 수 있다[8,9]. 하나의 SRv6 정책은 다수의 후보 경로(Candidate-path)를 가질 수 있으며, 가장 선호도(Preference)가 높은 후보 경로가 최종 경로로 설정된다. 또한, 각 후보 경로에는 가중치를 가진 다수의 세그먼트 목록이 정의될 수 있다. 다수의 세그먼트 목록이 정의된 경우에는 가중치에 따라 부하를 분산하는 방식으로 패킷이 전달된다.

그림 5
SRv6 Policy 출처 Reproduced with permission from [8].

이처럼 SRv6 정책은 관리 편의성을 위해 이름을지정할 수 있으며, 또한 네트워크 확장성 및 서비스 독립성을 제공하기 위해 바인딩 SID(BSID: Binding Segment ID)를 정의하여 사용할 수 있다. 바인딩 SID란 특정 노드에서 BSID를 세그먼트 리스트로 대체할 수 있는 세그먼트로, BSID에 정의된 SRv6 정책에 따라 패킷이 전달된다[9]. 예를 들어, SR 도메인 외부의 호스트에서 ‘저지연 BSID’로 서비스를 요청하면, 헤드엔드 노드는 BSID를 저지연 전달을 위한 세그먼트 목록으로 변경하여 전달한다. 호스트는 구체적인 네트워크 상태 정보를 인지할 필요가 없으며, 동적으로 변하는 네트워크 상태를 반영하여 서비스를 제공할 수 있게 된다.

Ⅳ. SRv6의 도입 현황

표 2는 최근까지 SRv6를 상용망에 도입하여 활용한 사업자들 및 목표한 서비스, 그리고 개발 플랫폼에 대하여 개략적인 목록을 나타낸다. 표 2에 정리된 사업자 이외에도 약 25개의 사업자가 상용망에 SRv6를 도입하여 목표한 서비스를 제공하고 있다[10]. 먼저, Softbank, Rakuten 등은 고객에게 5G 서비스 제공을 위해 SRv6를 네트워킹 핵심 기술로 채택하고 국가 단위의 규모로 도입하였으며, 차세대 모바일 코어 네트워크에 SRv6 기술을 접목시키는 표준화 활동을 진행 중에 있다[11]. 또한, China Telecom, Iliad, NOIA Network는 도시 간 또는 국가 규모의 IP 백본 네트워크에 SRv6 기술을 적용하여 운용 중이다. 모바일 코어, 백본 네트워크 이외에도 Line Corp., China Unicom에는 클라우드 데이터 센터에 SRv6 기술을 접목하여 관리의 효율성과 차별화된 트래픽 제어를 기반으로 서비스를 제공하고 있다. 그 밖에도 Alibaba에서는 “Predictive Networking”이란 네트워킹 기술을 실현하기 위해 SRv6를 활용하고 있다[12]. 이러한 사업자들의 요구사항에 맞춰 시스코, 화웨이 등의 글로벌 벤더 역시 NSC 5500 시리즈, 5400 시리즈, NE40 등 SRv6 표준상의 기능을 모두 제공하는 제품군을 제공하고 있으며, Linux srext, Linux kernel, FRRouting, FD.io VPP, P4 등 오픈소스 기반의 네트워크 스위치, 프로토콜 개발 프로젝트에서도 SRv6 활용을 위한 템플릿 등을 제공하여 SRv6의 데이터 플레인을 개발하는 생태계를 제공하고 있다.

표 2 SRv6 도입, use-case 및 개발 플랫폼

Deployment Scale / Target Service Implementation platform
Softbank Nationwide / 5G services Cisco NSC 5500, 5516
China Telecom Cross-city / Video services Huawei NE40E
Iliad Italy Nationwide / Mobile backbone networks CIsco NSC 5500, Iliad Nodebox
Line Corp. Datacenter / Multi-tenant networks Linux kernel
China Unicom Cross-city / Inter-domain CloudVPN(L3VPN) services Huawei NE40E
CERNET2 Cross-city(University) / IPv6 education networks Huawei NE40E
NOIA Network Nationwide / backbone networks Linux srext, FD.io VPP
Rakuten Nationwide / 5G, IoT services(End-to-End SLA) Cisco NCS 540, 5500
Bell Canada Nationwide / MEC(Mobile Edge Computing) Cisco, Arrcus, Noviflow
출처 Reproduced from [ 10].

Ⅴ. SRv6 발전 전망

소스 라우팅의 개념은 IPv4의 초기 표준이 정해질 때부터 포함되던 개념이다. 다만, 초창기 소스 라우팅은 호스트가 네트워크 정보를 모두 알아야 했기에 보안상의 문제로 활용되지 못했다. 세그먼트 라우팅은 통신 사업자 망 안에서 소스 라우팅을 적용하여 이러한 단점을 극복하며 네트워크 프로그래밍이 가능한 새로운 시대를 열었다.

세그먼트 라우팅을 이용하면 플로우의 상태 정보를 에지 라우터에서만 유지하면 되기 때문에, 플로우 상태 유지를 위한 오버헤드를 줄여 네트워크 운영에 높은 확장성을 제공한다는 장점이 있다. 첫 세그먼트 라우팅 솔루션인 SR-MPLS는 IPv4 백본 네트워크 데이터 플레인의 변경 없이도 도입이 용이하다는 주요한 장점을 가지고 있었으며, 이러한 장점들을 기반으로 상용망에 적용되어 사용되었다. 그럼에도 불구하고 SR-MPLS의 경우 연구 분야에서는 많은 주목을 받지 못한 기술이다. 그 이유 중 핵심은 연구자들이 이용할 수 있는 오픈소스 기반의 구현이 부족했다는 점이다. 이에 따라, 온전히 SR-MPLS를 연구하기 위해서 초기 연구자들이 직접 SR-MPLS의 메커니즘과 제어 평면 등을 구현해야만 했으며, 이는 연구자들에게 초기 진입장벽으로 작용하였다.

반면 SRv6의 경우 Ⅳ장에서 설명된 것처럼 데이터 플레인 스위치 및 스위치 OS(Operating System), 제어 플레인에 걸쳐 다양한 오픈소스 프로젝트를 기반으로 연구 개발되고 있다. 다양한 오픈소스 덕분에 관련 연구가 활발하게 진행되고 있어 미래 기술 발전이 더욱 기대된다. 또한, SRv6는 네트워크 프로그래밍을 지원함으로써 네트워크 어플리케이션과 네트워크 간의 격차를 해소하고, SDN(Software Defined Networking)이 추구하는 글로벌 네트워크 어플리케이션 정보에 기반한 하향식(Top-down) 방식의 네트워크 스케줄링 및 최적화를 실현케 한다. 이에 따라 SRv6는 차세대 네트워크 프로토콜로, 여기에 기반을 둔 네트워크 프로그래밍은 차세대 SDN으로 평가되고 있다.

SRv6를 기반으로 하는 네트워킹 기술의 발전은 다음과 같이 크게 네 가지 측면에서 이루어질 것으로 전망한다.

1. SRv6 네트워크 아키텍처 및 관리 기술

현재까지 SRv6 기반의 일반적인 네트워크 구조는 IGP(Interior Gateway Protocol), BGP(Border Gateway Protocol) 등의 분산 컨트롤 프로토콜을 활용하고 있다. SRv6는 SDN과 상호보완적 관계로 네트워크 어플리케이션과 네트워크 간의 간격을 좁히기 위한 데이터 플레인의 핵심 프로토콜로 평가된다. 따라서 중앙 집중형 SDN 컨트롤러를 기반한 네트워크 아키텍처의 정의와 관련 프로그래밍 인터페이스 및 관리 애플리케이션에 관한 연구와 개발이 필요하다. 관련하여 SONiC(Software for Open Networking in the Cloud), ONOS(Open Network Operating System) 및 P4 통합 프로그래밍 스택(PINS: P4 Integrated Network Stack)과 같은 오픈소스 프로젝트들이 서로 간의 통합을 위해 공동 연구를 진행하고 있으며, SRv6 기반 네트워크 아키텍처 연구에 활용이 쉬울 것으로 판단된다. 또한, SRv6는 기존 VxLAN(Virtual Extensible LAN)과 같은 터널링 메커니즘과 다양한 프로토콜을 대체/통합하여 네트워킹 스택을 매우 간소화시키는 기능을 제공할 수 있어서 Kubernetes, OpenStack과 같은 네트워크 오케스트레이터(Orchestrator)와의 결합 역시 효율적인 네트워크 관리의 제공과 연구적으로 다양한 가능성을 제시할 것으로 기대된다.

2. 네트워크 가상화의 지원

세그먼트 라우팅의 주요 특징 중 하나는 VNE (Virtual Network Embedding), NFV(Network Function Virtualization), SFC(Service Function Chaining)와 같은 시나리오의 기본적 지원이다. 관련하여 SRv6의 네트워크 프로그래밍 모델은 패킷 헤더에 네트워크 프로그램의 기능을 조합하여 서비스 가상화 가능성을 제공한다. 이러한 맥락에서 SRv6가 다른 터널링 프로토콜을 통합하여 네트워크 스택을 단순화할 수 있기 때문에 네트워크 서비스 관리의 복잡성을 대폭 낮출 수 있으며, 서비스 기반의 네트워크를 구축하는 데 상당한 강점을 제공한다. 이에 따라 SRv6는 새로운 네트워크를 배치하거나 네트워킹 아키텍처의 확장적 진화를 계획하는 운영자들에게 매력적인 기술이다. 따라서 클라우드 데이터 센터, 모바일 코어, 그리고 백본 네트워크에서의 활용 가치가 기대된다.

3. 5G, 6G 유저 플레인 프로토콜로 활용

앞에서도 언급되었듯, SRv6는 기존 터널링 프로토콜을 통합하여 네트워크 스택을 간소화하고, 경로에 대한 프로그래밍 능력을 제공하여 최적의 트래픽 제어에 활용될 수 있다. 따라서 SRv6는 5G 모바일 코어 네트워크의 유저 플레인(User Plane)에 적용되어 기존 GTP 터널링 프로토콜 등을 대체 및 통합할 수 있다. 이와 함께 트래픽 차별화에 기반한 네트워크 슬라이싱(Network Slicing)과 모바일 에지 컴퓨팅(Mobile Edge Computing)을 위한 트래픽 제어에 활용될 수 있다. 또한, 차세대 6G 모바일 코어의 유저 플레인에 SRv6가 도입될 가능성이 최근 논의되고 있는 만큼 관련 연구를 통해 새로운 개념의 정의와 서비스의 제공이 가능해질 것으로 기대된다.

4. 프로그래머블 데이터 플레인 기술의 활용

프로그래머블 데이터 플레인 기술은 P4와 같은 스위치 프로그래밍 언어와 프로그래밍 가능한 스위치를 이용해 네트워크 스위치를 프로그래밍하는 기술로 SRv6 프로토콜의 확장과 관련하여 기능의 검증과 성능 평가 등에 활용될 수 있다. 또한, 네트워크 스위치에서 제공하는 컴퓨팅 자원과 프로그래밍 기능을 활용하여 새로운 패킷 처리방식을 정의할 수 있어서 SRv6를 기반으로 한 새로운 부하 분산, 장애 복구, 네트워크 모니터링 등 다양한 네트워킹 메커니즘에 관한 연구를 통해 기존과는 차별화된 솔루션을 개발할 수 있을 것으로 기대된다.

Ⅵ. 결론

본고에서는 응용 서비스의 특성에 따라 동적으로 네트워크 경로를 프로그래밍하여 제어할 수 있는 SRv6 구조와 이를 이용한 네트워크 프로그래밍 기술과 적용 사례에 대해 살펴보았다. SRv6 기술을 기반으로 트래픽 엔지니어링, 가상 사설 네트워킹, 네트워크 모니터링 등의 서비스 개발은 상용화 단계에 있으며, 최근에는 데이터 플레인의 성능 고도화, 어플리케이션과의 밀결합, 6G 인프라 적용에 관한 연구가 활발하게 진행 중이다.

SRv6 기술의 미래 가치를 고려할 때 국내 네트워크 장비 산업체의 SRv6 기반 기술 및 네트워크 서비스 프로그래밍 기술에 관한 글로벌 산업 경쟁력을 갖추기 위한 전략 수립이 필요한 시점이다. ETRI는 국내 네트워크 산업의 경쟁력 확보 및 시장을 견인할 수 있도록 국내외 관련 산업체의 요구사항을 수렴하여 SRv6 기반 네트워크 서비스 프로그래밍 기술 개발을 진행하고 있다.

용어해설

세그먼트 라우팅 패킷 헤더에 서비스 경로가 인코딩되어 전달되는 소스 라우팅 기술로서, 세그먼트(Segment)는 네트워크 노드가 인입 패킷에 대해 수행하는 명령을 의미함

SRv6 IPv6 기반의 세그먼트 라우팅 기술로, 세그먼트는 IPv6 주소 형태로 전달됨

약어 정리

BGP

Border Gateway Protocol

BSID

Binding Segment ID

DA

Destination Address

FIB

Forwarding Information Base

FRR

Fast Reroute

GTP

GPRS Tunnelling Protocol

IETF

Internet Engineering Task Force

IGP

Interior Gateway Protocol

IoT

Internet of Things

IP

Internet Protocol

L2

Layer2

MEC

Mobile Edge Computing

NFV

Network Function Virtualization

NOS

Network Operating System

OAM

Operations, Administration, and Maintenance

ONOS

Open Network Operating System

OS

Operating System

P4

Programming Protocol-Independent Packet Processors

PINS

P4 Integrated Network Stack

QoS

Quality of Service

SA

Source Address

SDN

Software-Defined Networking

SFC

Service Function Chaining

SID

Segment Identifier

SL

Segment Left

SLA

Service Level Agreement

SONiC

Software for Open Networking in the Cloud

SPRING

Source Packet Routing in Networking

SR

Segment Routing

SRH

Segment Routing Header

SR-MPLS

MPLS Segment Routing

SRv6

Segment Routing over IPv6

TE

Traffic Engineering

TLV

Type Length Value

VM

Virtual Machine

VNE

Virtual Network Embedding

VPN

Virtual Private Network

VPP

Vector Packet Processing

VXLAN

Virtual Extensible LAN

참고문헌

[1] FG-NET2030, "Representative use cases and key network requirements for network 2030," FG-NET2030 document NET2030-O-027, 2020.
[2] EANTC, MPLS SD & AI Net World Congress 2022, High-lightTalk about the 2022 Interoperability Test and Showcase, https://eantc.de/showcases/2022/mpls_sdn_interop.html
[3] IETF RFC 9256, "Segment routing policy architecture," 2022. 7.
[4] Juniper Networks, https://www.juniper.net/us/en/research-topics/what-is-segment-routing.html
[5] IETF RFC 8986, "Segment routing over IPv6(SRv6) network programming," 2021. 2.
[6] IETF RFC 8754, "IPv6 segment routing header(SRH)," 2020. 3.
[7] Cisco, Network Programming with SRv6, https://www.segment-routing.net/tutorials/2017-12-05-srv6-introduction/
[8] Z. Li, Z. Hu, and C. Li, SRv6 Network Programming: Ushering in a New Era of IP Networks, CRC Press, Boca Raton, FL, USA, June 2021, pp. 129-133.
[9] P.L. Ventre et al., "Segment routing: A comprehensive survey of research activities, standardization efforts, and implementation results," IEEE Commun. Surv. Tutor., vol. 23, no. 1, 2020, pp. 182-221.
[10] IETF Internet-Draft, "SRv6 implementation and deployment status," 2022. 6.
[11] IETF Internet-Draft, "Segment routing IPv6 for mobile user plane," 2023. 1.
[12] Alibaba Predictable Network, https://www.alibabacloud.com/ko/events/ais/predictable-network

그림 1

f1-HJTODO_2023_v38n2_42

그림 2

f2-HJTODO_2023_v38n2_42

그림 3

f3-HJTODO_2023_v38n2_42

t1-HJTODO_2023_v38n2_42

그림 4

f4-HJTODO_2023_v38n2_42

그림 5

f5-HJTODO_2023_v38n2_42

t2-HJTODO_2023_v38n2_42