KR102416153B1 - System for highly available service function chaining on programmmable switches - Google Patents

System for highly available service function chaining on programmmable switches Download PDF

Info

Publication number
KR102416153B1
KR102416153B1 KR1020200141500A KR20200141500A KR102416153B1 KR 102416153 B1 KR102416153 B1 KR 102416153B1 KR 1020200141500 A KR1020200141500 A KR 1020200141500A KR 20200141500 A KR20200141500 A KR 20200141500A KR 102416153 B1 KR102416153 B1 KR 102416153B1
Authority
KR
South Korea
Prior art keywords
service function
service
packet
chaining
header
Prior art date
Application number
KR1020200141500A
Other languages
Korean (ko)
Other versions
KR20220056689A (en
Inventor
이원준
김규영
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020200141500A priority Critical patent/KR102416153B1/en
Publication of KR20220056689A publication Critical patent/KR20220056689A/en
Application granted granted Critical
Publication of KR102416153B1 publication Critical patent/KR102416153B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • H04L45/0377Routes obligatorily traversing service-related nodes for service chaining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Abstract

본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템은 클라이언트와 서버 사이에서 복수의 서비스 체인을 이루며, 컨트롤러에 의해 감시 및 제어되는 프로그래머블 스위치를 포함하는 서비스 기능 체이닝 시스템에 있어서, 상기 컨트롤러는, 일 서비스 체인을 통한 서비스 기능 체이닝 패킷 처리 과정에서 회선 장애 감지 시, 회선 장애가 없는 대체 서비스 체인으로 경로를 갱신하여 해당 대체 서비스 체인으로 서비스 기능 체이닝 패킷이 전달되며 처리되도록 하는 것을 특징으로 하는 서비스 기능 체이닝 시스템에 관한 것이다.A service function chaining system according to an embodiment of the present invention forms a plurality of service chains between a client and a server, and in the service function chaining system including a programmable switch that is monitored and controlled by a controller, the controller is one service chain When a line failure is detected in the service function chaining packet processing process through the will be.

Description

고가용성을 지원하는 프로그래머블 스위치 상에서의 서비스 기능 체이닝 시스템{SYSTEM FOR HIGHLY AVAILABLE SERVICE FUNCTION CHAINING ON PROGRAMMMABLE SWITCHES}SYSTEM FOR HIGHLY AVAILABLE SERVICE FUNCTION CHAINING ON PROGRAMMMABLE SWITCHES

본 발명은 서비스 기능 체이닝 시스템에 관한 것으로, 보다 상세하게는 프로그래머블 스위치 ASIC를 장착한 네트워크 스위치 장치에서 서비스 기능 체이닝을 통해 패킷을 처리할 시 네트워크 장애 발생에도 끊김 없이 패킷 송수신이 가능케 하는 고가용성 서비스 기능 체이닝 시스템에 관한 것이다.The present invention relates to a service function chaining system, and more particularly, a high-availability service function that enables seamless packet transmission and reception even in the event of a network failure when processing packets through service function chaining in a network switch device equipped with a programmable switch ASIC It relates to the chaining system.

서비스 기능 체이닝(Service Function Chaining)은 패킷이 서비스 체인에 명시된 서비스 기능(Service Function, SF)들을 순차적으로 방문하여 처리를 받는 복잡한 인-네트워크 패킷 프로세싱(In-network packet processing)을 가능케 하여 많은 관심을 받고 있다.Service function chaining has attracted much attention by enabling complex in-network packet processing in which packets are processed by sequentially visiting service functions (SFs) specified in the service chain. are receiving

서비스 기능 체이닝 패킷은 서비스 기능 분류자(Service Classifier, SC)와 서비스 기능 전달자(Service Function Forwarder, SFF)와 같은 체이닝 기능(Chaining Function, CF)들에 의해 제어된다. 여기서, 서비스 기능 분류자(SC)는 네트워크 양 끝 단에서 패킷을 캡슐화 및 역캡슐화하여 패킷이 서비스 기능 체이닝을 시작하고 종료할 수 있게 해주며, 서비스 기능 전달자(SFF)는 도착한 패킷이 다음에 방문해야 하는 서비스 기능(SF)을 결정하고 전달하는 역할을 담당한다. 또한, 서비스 기능(SF)은 패킷에 대해 방화벽, NAT 등 다양한 기능을 수행한다.The service function chaining packet is controlled by chaining functions (CF) such as service function classifier (SC) and service function forwarder (SFF). Here, the service function classifier (SC) encapsulates and decapsulates the packet at both ends of the network so that the packet can start and end service function chaining, and the service function forwarder (SFF) determines that the arriving packet is visited next It is responsible for determining and delivering the service function (SF) to be performed. In addition, the service function (SF) performs various functions such as firewall and NAT for packets.

인-네트워크 패킷 프로세싱은 네트워크 집약적이므로 저지연과 고처리량이 제공되어야 한다. 그러나 체이닝 기능(CF)과 서비스 기능(SF)은 대개 범용 서버 상에서 동작하기 때문에 이러한 요구사항을 만족하기가 어렵다. 또한, 체이닝 기능(CF)과 서비스 기능(SF)들은 물리적으로 분리되어 있으므로 패킷이 처리되기 위해서는 수백마이크로초에 달하는 지연시간을 겪어야 한다. 오늘날의 스위치 하드웨어는 패킷 당 1마이크로초 이하의 프로세싱 지연만을 요구하므로 체이닝 기능(CF)과 서비스 기능(SF)을 경유하며 발생되는 지연은 서비스 기능 체이닝(SFC)의 전체 지연을 크게 증가시키는 요인으로 작용된다. 또한, 상용 서버는 스위치 하드웨어에 비해 낮은 초당 패킷 처리량을 제공한다.As in-network packet processing is network intensive, low latency and high throughput must be provided. However, since the chaining function (CF) and the service function (SF) usually operate on a general-purpose server, it is difficult to satisfy these requirements. In addition, since the chaining function (CF) and the service function (SF) are physically separated, in order to process a packet, a delay time of several hundred microseconds must be experienced. Today's switch hardware only requires processing delay of less than 1 microsecond per packet, so the delay that occurs through the chaining function (CF) and service function (SF) is a factor that greatly increases the overall delay of the service function chaining (SFC). it works In addition, commercial servers provide lower packet-per-second throughput compared to switch hardware.

한편, 최근 등장한 Barefoot Tofino와 같은 프로그래머블 스위치 ASIC는 사용자가 패킷 프로세싱 파이프라인을 재구성하는 것을 허용한다. 이에 서비스 기능 체이닝의 구성요소인 체이닝 기능(CF)과 서비스 기능(SF)을 프로그래머블 스위치 상에 구현하여 저지연과 고처리량을 달성하는 접근이 제안된 바 있다.Meanwhile, programmable switch ASICs such as the recently emerged Barefoot Tofino allow users to reconfigure the packet processing pipeline. Accordingly, an approach to achieve low latency and high throughput by implementing the chaining function (CF) and service function (SF), which are components of service function chaining, on a programmable switch has been proposed.

본 발명의 목적은 고가용성을 지원하는 프로그래머블 스위치 상에서의 네트워크 장애 발생 시에도 끊김 없이 서비스 기능 체이닝이 정상적으로 작동할 수 있도록 하는 것으로, 네트워크 상에 별개의 노드로 존재하였던 체이닝 기능(CF)과 서비스 기능(SF), 그리고 스위치가 하나의 노드로 합쳐지면서 회선 장애와 같은 네트워크 장애 발생 시 서비스 기능 체이닝 역시 정상적으로 처리되지 못하는 문제에 있어서, 서비스 체인 정보를 각 스위치가 아닌 패킷 헤더에 저장하고, 컨트롤러가 스위치 회선 상태를 감시하여 장애 발생시 서비스 기능 분류자(SC)의 서비스 체인 정보를 업데이트하여 대체 서비스 체인으로 서비스 기능 체이닝 패킷이 전송되도록 하여 상기의 문제점을 해결한 서비스 기능 체이닝 시스템을 제공하는데 목적이 있다.It is an object of the present invention to enable service function chaining to operate normally without interruption even when a network failure occurs on a programmable switch supporting high availability. (SF), and when a network failure such as a circuit failure occurs as the switches are merged into one node, the service function chaining is also not processed normally. An object of the present invention is to provide a service function chaining system that solves the above problems by monitoring the line state and updating the service chain information of the service function classifier (SC) when a failure occurs so that the service function chaining packet is transmitted to an alternative service chain.

상기 과제를 해결하기 위한 본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템은, 클라이언트와 서버 사이에서 복수의 서비스 체인을 이루며, 컨트롤러에 의해 감시 및 제어되는 프로그래머블 스위치를 포함하는 서비스 기능 체이닝 시스템에 있어서, 상기 컨트롤러는, 일 서비스 체인을 통한 서비스 기능 체이닝 패킷 처리 과정에서 회선 장애 감지 시, 회선 장애가 없는 대체 서비스 체인으로 경로를 갱신하여 해당 대체 서비스 체인으로 서비스 기능 체이닝 패킷이 전달되며 처리되도록 할 수 있다.A service function chaining system according to an embodiment of the present invention for solving the above problems forms a plurality of service chains between a client and a server, and in a service function chaining system comprising a programmable switch monitored and controlled by a controller, When a line failure is detected in the process of processing a service function chaining packet through one service chain, the controller updates the route to an alternative service chain without a line failure so that the service function chaining packet is transferred and processed to the corresponding alternative service chain.

여기서, 상기 서비스 체인은, 클라이언트와 연결되며 캡슐화(Encapsulation)를 담당하는 서비스 기능 분류자 모듈; 상기 서비스 기능 분류자 모듈과 연결되며 서비스 기능(SF)을 담당하는 제1 서비스 기능 모듈 및 서비스 기능(SF)과 역캡슐화(Decapsulation)를 담당하는 제2 서비스 기능 모듈을 포함할 수 있다.Here, the service chain includes: a service function classifier module connected to a client and responsible for encapsulation; It is connected to the service function classifier module and may include a first service function module in charge of a service function (SF) and a second service function module in charge of a service function (SF) and decapsulation.

또한, 상기 컨트롤러는, 최초 구동 시 상기 서비스 기능 분류자 모듈과 각 서비스 기능 모듈에 초기 서비스 체인 정보를 기록하며, 각 서비스 기능 모듈의 포트 감지 시 회선 장애가 발견되면 대체 서비스 체인 정보를 상기 서비스 기능 분류자 모듈에 기록하여 패킷 전달 경로를 갱신할 수 있다.In addition, the controller records initial service chain information in the service function classifier module and each service function module at the time of initial operation. The packet forwarding path can be updated by writing to the child module.

또한, 상기 컨트롤러는, 상기 각 서비스 기능 모듈의 포트 감지 시, 상기 프로그래머블 스위치가 제공하는 Barefoot Runtime API를 참조하여 프로그래머블 스위치 내 포트 색인번호에 해당하는 $DEV_PORT 값을 읽고, $DEV_PORT 값이 Down에 해당하는 값인지 아닌지에 따라 회선 장애를 판단할 수 있다.In addition, when the port of each service function module is detected, the controller reads the $DEV_PORT value corresponding to the port index number in the programmable switch with reference to the Barefoot Runtime API provided by the programmable switch, and the $DEV_PORT value corresponds to Down It is possible to judge a line failure depending on whether the value is

또한, 상기 서비스 기능 체이닝 패킷은, 이더넷(ETH) 헤더와 IP 헤더 사이에 서비스 기능 체이닝을 위한 서비스 체인 헤더(SCH) 및 서비스 기능 헤더(SFH)를 포함하며, 상기 서비스 체인 헤더는, 서비스 체인 식별자인 ID 필드와, 현재까지 거친 서비스 기능 모듈의 수를 역순으로 셈하는 LEN 필드를 포함하고, 상기 서비스 기능 헤더는, 서비스 기능 체이닝 패킷이 방문해야 할 서비스 기능 모듈의 식별자를 기록하는 SF 필드와, 상기 SF 필드의 위치를 표식하는 TAIL 필드를 포함하며, 상기 프로그래머블 스위치의 인그레스 파서(Ingress parser)는, 상기 이더넷(ETH) 헤더부터 IP 헤더까지 파싱 하는 과정에서 상기 TAIL 필드 값이 마지막 위치를 표시하는 경우까지 파싱을 반복할 수 있다.In addition, the service function chaining packet includes a service chain header (SCH) and a service function header (SFH) for service function chaining between an Ethernet (ETH) header and an IP header, and the service chain header includes a service chain identifier an ID field and a LEN field for counting the number of service function modules passed through so far in reverse order, wherein the service function header includes an SF field for recording an identifier of a service function module to be visited by the service function chaining packet; a TAIL field indicating the position of the SF field, and the ingress parser of the programmable switch indicates the last position of the TAIL field value in the process of parsing from the Ethernet (ETH) header to the IP header Parsing can be repeated until

또한, 상기 서비스 기능 체이닝 패킷 처리는, 상기 프로그래머블 스위치가 IP 헤더 내 Type of Service(ToS) 필드 값을 확인하여, 서비스 기능 체이닝 패킷임이 확인 될 경우 처리를 수행할 수 있다.In addition, the service function chaining packet processing may be performed when the programmable switch checks the value of the Type of Service (ToS) field in the IP header and confirms that the service function chaining packet is a service function chaining packet.

또한, 상기 서비스 기능 체이닝 패킷 처리하는 과정에서, 상기 서비스 기능 체이닝 패킷임이 확인 될 경우, 서비스 체인 헤더의 존재 유무를 확인하며, 서비스 체인 헤더가 없을 경우에는 캡슐화를 진행하여 서비스 체인 헤더와 서비스 기능 헤더를 패킷에 생성한 후에 처리를 수행할 수 있다.In addition, in the process of processing the service function chaining packet, if it is confirmed that the service function chaining packet is the service chain header, the existence of the service chain header is checked. can be processed after generating in the packet.

또한, 상기 서비스 체인 헤더의 존재 유무는 isvalid() 함수를 통해 유효성을 검증하여 확인할 수 있다.Also, the existence of the service chain header can be checked by verifying the validity through the isvalid() function.

또한, 상기 서비스 기능 체이닝 패킷 처리는, 상기 서비스 기능 모듈을 거쳐 서비스 체이닝 패킷 처리를 받을 때마다 상기 LEN 필드 값을 1씩 감소시키며 상기 서비스 기능 헤더의 가장 앞에 있는 SF 필드-TAIL 필드 쌍을 제거하는 과정을 LEN 필드 값이 0이 될 때까지 반복 수행할 수 있다.In addition, in the service function chaining packet processing, the LEN field value is decreased by 1 whenever service chaining packet processing is received through the service function module, and the SF field-TAIL field pair at the front of the service function header is removed. The process may be repeated until the LEN field value becomes 0.

또한, 상기 컨트롤러는, 최초 구동 시 상기 서비스 기능 체이닝 패킷 내 저장된 서비스 체인 정보를 읽고 해당하는 출력 포트로 패킷을 포워딩하는 서비스 기능 체이닝 포워딩 룰을 저장하며, 상기 서비스 기능 체이닝 패킷 처리는, 상기 LEN 필드 값이 0이 아닐 경우, SF Forward로 넘어가 SFF 기능을 수행하며, 상기 프로그래머블 스위치가 저장하고 있는 서비스 기능 체이닝 포워딩 룰을 참조하여 현재 패킷의 출력 포트를 결정할 수 있다.In addition, the controller reads the service chain information stored in the service function chaining packet upon initial operation and stores a service function chaining forwarding rule that forwards the packet to a corresponding output port, and the service function chaining packet processing is performed in the LEN field If the value is not 0, it goes to SF Forward to perform the SFF function, and the output port of the current packet can be determined by referring to the service function chaining forwarding rule stored in the programmable switch.

본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템은, 네트워크 상에 별개의 노드로 존재하였던 체이닝 기능(CF)과 서비스 기능(SF), 그리고 스위치가 하나의 노드로 합쳐지면서 회선 장애와 같은 네트워크 장애 발생 시 서비스 기능 체이닝 역시 정상적으로 처리되지 못하는 문제에 있어서, 서비스 체인 정보를 각 스위치가 아닌 패킷 헤더에 저장하고, 컨트롤러가 스위치 회선 상태를 감시하여 장애 발생시 서비스 기능 분류자(SC)의 서비스 체인 정보를 업데이트하여 대체 서비스 체인으로 서비스 기능 체이닝 패킷이 전송되도록 하여 고가용성을 지원하는 프로그래머블 스위치 상에서의 네트워크 장애 발생 시에도 끊김 없이 서비스 기능 체이닝이 정상적으로 작동할 수 있도록 할 수 있다.In the service function chaining system according to an embodiment of the present invention, as the chaining function (CF) and service function (SF), which existed as separate nodes on the network, and the switch are merged into one node, a network failure such as a line failure occurs In the case where the service function chaining is also not handled normally, the service chain information is stored in the packet header rather than each switch, and the controller monitors the switch line status to update the service chain information of the service function classifier (SC) when a failure occurs. This allows service function chaining packets to be transmitted to an alternative service chain so that service function chaining can operate normally without interruption even in the event of a network failure on a programmable switch supporting high availability.

또한, 위에서 언급된 본 발명의 실시예에 따른 효과는 기재된 내용에만 한정되지 않고, 명세서 및 도면으로부터 예측 가능한 모든 효과를 더 포함할 수 있다.In addition, the above-mentioned effects according to the embodiments of the present invention are not limited to the described content, and may further include all effects predictable from the specification and drawings.

도 1은 본 발명의 실시 예에 따른 프로그래머블 스위치를 이용한 서비스 기능 체이닝을 사용하는 네트워크의 구성도이다.
도 2는 도 1에 도시된 네트워크 중 제어평면에 위치한 컨트롤러의 작동 과정을 나타낸 흐름도이다.
도 3은 본 발명의 실시 예에 따른 서비스 기능 체이닝 패킷 헤더의 구조를 도식화한 것이다.
도 4는 본 발명의 실시 예에 따른 프로그래머블 스위치에서 패킷 헤더를 파싱하는 과정을 도식화한 것이다.
도 5는 본 발명의 실시 예에 따른 프로그래머블 스위치에서 패킷을 처리하는 인그레스 파이프라인(Ingress pipeline)을 도식화한 것이다.
도 6은 본 발명의 실시 예에 따른 서비스 기능 체이닝 시 패킷 헤더의 변화를 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 네트워크 장애에 컨트롤러가 대응하는 과정을 보여주는 도면이다.
1 is a block diagram of a network using service function chaining using a programmable switch according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating an operation process of a controller located in a control plane among the networks shown in FIG. 1 .
3 schematically illustrates the structure of a service function chaining packet header according to an embodiment of the present invention.
4 is a diagram schematically illustrating a process of parsing a packet header in a programmable switch according to an embodiment of the present invention.
5 is a schematic diagram of an ingress pipeline for processing a packet in a programmable switch according to an embodiment of the present invention.
6 is a diagram illustrating a change in a packet header during service function chaining according to an embodiment of the present invention.
7 is a diagram illustrating a process in which a controller responds to a network failure during service function chaining using the service function chaining system according to an embodiment of the present invention.

이하, 도면을 참조한 본 발명의 설명은 특정한 실시 형태에 대해 한정되지 않으며, 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있다. 또한, 이하에서 설명하는 내용은 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, the description of the present invention with reference to the drawings is not limited to specific embodiments, and various modifications may be made and various embodiments may be provided. In addition, it should be understood that the contents described below include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention.

이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용되는 용어로서, 그 자체에 의미가 한정되지 아니하며, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In the following description, terms such as 1st, 2nd, etc. are terms used to describe various components, meanings are not limited thereto, and are used only for the purpose of distinguishing one component from other components.

본 명세서 전체에 걸쳐 사용되는 동일한 참조번호는 동일한 구성요소를 나타낸다.Like reference numbers used throughout this specification refer to like elements.

본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 이하에서 기재되는 "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로 해석되어야 하며, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.As used herein, the singular expression includes the plural expression unless the context clearly dictates otherwise. In addition, terms such as "comprises", "comprises" or "have" described below are intended to designate that the features, numbers, steps, operations, components, parts, or combinations thereof described in the specification exist. It should be construed as not precluding the possibility of addition or existence of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

또한, 명세서에 기재된 "??부", "??기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as "unit", "unit", and "module" described in the specification mean a unit that processes at least one function or operation, which is implemented by hardware or software or a combination of hardware and software can be

이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 따른 고가용성을 지원하는 프로그래머블 스위치 상에서의 서비스 기능 체이닝 시스템을 상세히 설명하기로 한다.Hereinafter, a service function chaining system on a programmable switch supporting high availability according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 프로그래머블 스위치를 이용한 서비스 기능 체이닝을 사용하는 네트워크의 구성도이다. 도 1을 참조하면, 본 발명의 서비스 기능 체이닝 시스템은 제어평면(100)과 데이터평면(200)으로 구성되는 네트워크(10)에 사용될 수 있다. 또한, 제어평면(100)은 컨트롤러(110)를 포함하여 구성될 수 있다. 이때, 컨트롤러(110)는 데이터평면(200)에 존재하는 프로그래머블 스위치(230)들을 감시하고 제어할 수 있다.1 is a block diagram of a network using service function chaining using a programmable switch according to an embodiment of the present invention. Referring to FIG. 1 , the service function chaining system of the present invention can be used in a network 10 including a control plane 100 and a data plane 200 . In addition, the control plane 100 may be configured to include the controller 110 . In this case, the controller 110 may monitor and control the programmable switches 230 existing in the data plane 200 .

데이터평면(200)은 클라이언트(210), 서버(220), 프로그래머블 스위치(230)를 포함하여 구성될 수 있다. 이때, 프로그래머블 스위치(230)는 서비스 기능 체이닝에 필요한 서비스 기능 분류자(Service Classifier, SC), 서비스 기능 전달자(Service Function Forwarder, SFF), 서비스 기능(Service Function, SF)을 모두 담당하도록 형성될 수 있다.The data plane 200 may include a client 210 , a server 220 , and a programmable switch 230 . At this time, the programmable switch 230 may be formed to take charge of all service function classifier (SC), service function forwarder (SFF), and service function (SF) required for service function chaining. have.

이를 위해, 본 발명의 실시 예에 따른 네트워크(10)에서는 일례로 프로그래머블 스위치(230)가 총 4개가 존재할 수 있으며, 4개의 프로그래머블 스위치(230) 중 서비스 기능 분류자(SC) 역할을 하며 캡슐화를 담당하는 서비스 기능 분류자 모듈(231)이 클라이언트(210)에 연결될 수 있다.To this end, in the network 10 according to an embodiment of the present invention, for example, a total of four programmable switches 230 may exist, and serve as a service function classifier (SC) among the four programmable switches 230 and perform encapsulation. The service function classifier module 231 in charge may be connected to the client 210 .

또한, 클라이언트(210)와 서버(220) 사이에는 복수의 제1 서비스 기능 모듈(232)과, 제2 서비스 기능 모듈(233)이 존재할 수 있으며, 서비스 기능 분류자 모듈(231)과 제1 및 제2 서비스 기능 모듈(233)들은 모두 서비스 기능 전달자(SFF)의 역할을 수행할 수 있으므로, 서비스 기능 전달자 모듈은 따로 구비되지 않는다. In addition, a plurality of first service function modules 232 and a plurality of second service function modules 233 may exist between the client 210 and the server 220 , and the service function classifier module 231 and the first and Since all of the second service function modules 233 may perform the role of the service function forwarder (SFF), the service function forwarder module is not separately provided.

여기서, 중간에 위치된 복수의 제1 서비스 기능 모듈(232)은 서비스 기능(SF)만을 담당하며, 마지막에 위치된 제2 서비스 기능 모듈(233)은 서비스 기능(SF)과 함께 서비스 기능 분류자(SC)의 역할 중 역캡슐화의 기능을 수행할 수도 있다.Here, the plurality of first service function modules 232 located in the middle are responsible for only the service function (SF), and the second service function module 233 located at the end is a service function classifier together with the service function (SF). Among the roles of (SC), it may also perform the function of decapsulation.

이때, 복수의 제1 서비스 기능 모듈(232)은 각기 다른 노드를 갖는 것이 바람직하다. 이는 회선 장애에 대처하기 위함으로, 하나의 제1 서비스 기능 모듈(232)을 통하는 회선이 장애가 발생 할 시 다른 제1 서비스 기능 모듈(232)로 연결 노드를 변경하기 위함이다.In this case, it is preferable that the plurality of first service function modules 232 have different nodes. This is to cope with a line failure, and when a line through one first service function module 232 fails, a connection node is changed to another first service function module 232 .

즉, 클라이언트(210)와 서버(220) 사이의 프로그래머블 스위치(230)를 거쳐 서비스 기능 체이닝 패킷(이하 '패킷'이라 함)이 전달되며 처리되는 과정 속에서 본 발명의 실시 예에서는 서비스 기능 분류자 모듈(231)과, 제1 서비스 기능 모듈(232), 제2 서비스 기능 모듈(233)을 순차적으로 통과하게 되는데, 제1 서비스 기능 모듈(232)의 경우 복수로 마련되어 각기 다른 노드를 형성하므로, 회선 장애가 발생하더라도 경로의 변경이 가능할 수 있다.That is, a service function chaining packet (hereinafter referred to as a 'packet') is transmitted and processed through the programmable switch 230 between the client 210 and the server 220. In the embodiment of the present invention, the service function classifier The module 231, the first service function module 232, and the second service function module 233 are sequentially passed through. Since a plurality of the first service function modules 232 are provided to form different nodes, Even if a line failure occurs, it may be possible to change the route.

여기서, 서비스 기능 분류자 모듈(231), 제1 서비스 기능 모듈(232), 제2 서비스 기능 모듈(233)이 상술한 서비스 기능 분류자(Service Classifier, SC), 서비스 기능 전달자(Service Function Forwarder, SFF), 서비스 기능(Service Function, SF)을 모두 담당할 수 있는 프로그래머블 스위치(230)를 형성하므로, 이하에서는 이들의 합을 서비스 체인이라 지칭하기로 한다.Here, the service function classifier module 231 , the first service function module 232 , and the second service function module 233 are the above-described service function classifier (SC), service function forwarder (Service Function Forwarder), SFF) and the service function (SF) form the programmable switch 230 that can take charge of both, hereinafter, the sum of these will be referred to as a service chain.

즉, 본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템은, 서비스 기능 분류자 모듈(231), 제1 서비스 기능 모듈(232), 제2 서비스 기능 모듈(233)의 합으로 구성된 서비스 체인(SRC)이 클라이언트(210)와 서버(220) 사이에서 복수로 마련되는 것이다.That is, the service function chaining system according to the embodiment of the present invention is a service chain (SRC) composed of the sum of the service function classifier module 231 , the first service function module 232 , and the second service function module 233 . It is provided in plurality between the client 210 and the server 220 .

한편, 상기와 같은 프로그래머블 스위치(230)는 본 발명의 이해를 돕기 위해 도면과 같이 4개로 한정하여 설명하였으나 이는 예시적인 것일 뿐, 한정되는 것은 아니며 프로그래머블 스위치(230)의 개수는 그 이상으로 달리 형성될 수 있다.On the other hand, the programmable switch 230 as described above is limited to four as shown in the drawings to help the understanding of the present invention, but this is only an example and is not limited, and the number of programmable switches 230 is formed differently than that can be

예컨대, 제1 서비스 기능 모듈(232)과 제2 서비스 기능 모듈(233) 사이에 다른 서비스 기능 모듈이 마련될 수 있는 것이다.For example, another service function module may be provided between the first service function module 232 and the second service function module 233 .

도 2는 도 1에 도시된 네트워크 중 제어평면에 위치한 컨트롤러의 작동 과정을 나타낸 흐름도이다.FIG. 2 is a flowchart illustrating an operation process of a controller located in a control plane among the networks shown in FIG. 1 .

도 2를 참조하면, 컨트롤러(110)는 최초 구동 시 네트워크(10)에 존재하는 각 프로그래머블 스위치(230)인 서비스 기능 분류자 모듈(231)과 각 서비스 기능 모듈(232, 233)에 초기 서비스 체인 정보를 기록하여 서비스 기능 체이닝을 통해 패킷 송수신을 가능케 할 수 있다. Referring to FIG. 2 , when the controller 110 is initially driven, the service function classifier module 231 that is each programmable switch 230 present in the network 10 and each service function module 232 , 233 have an initial service chain. Information can be recorded to enable packet transmission and reception through service function chaining.

이때, 컨트롤러(110)는 캡슐화를 담당하는 서비스 기능 분류자 모듈(231)에 각 서비스 체인(SRC)별로 거쳐야 하는 서비스 기능 모듈과 그 순서를 저장할 수 있다.In this case, the controller 110 may store the service function module to be passed through each service chain (SRC) and the order thereof in the service function classifier module 231 responsible for encapsulation.

또한, 컨트롤러(110)는 서비스 기능 모듈 자신이 처리한 패킷이 다음 서비스 기능 모듈을 방문할 수 있게 하는 서비스 기능 전달자(SFF) 기능을 수행할 수 있도록, 패킷 헤더 내 저장된 서비스 체인 정보를 읽고 해당하는 출력 포트로 패킷을 포워딩하는 서비스 기능 체이닝 포워딩 룰을 저장할 수 있다.In addition, the controller 110 reads the service chain information stored in the packet header so that the packet processed by the service function module itself can perform a service function forwarder (SFF) function that allows the service function module to visit the next service function module. A service function chaining forwarding rule for forwarding packets to an output port may be stored.

상기와 같이 초기 서비스 체인 정보 쓰기가 끝나면 컨트롤러(110)는 1초간 대기하는데, 이는 컨트롤러(110)가 매초마다 프로그래머블 스위치(230)의 포트 정보를 감시하기 위함이다. 이때, 1초는 네트워크 사용자가 지정하는 바람직한 수치로서 반드시 이에 한정되는 것은 아니며, 1초 미만 혹은 1초를 초과하는 임의의 수치로 변경될 수도 있다.As described above, when the writing of the initial service chain information is finished, the controller 110 waits for 1 second, which is for the controller 110 to monitor the port information of the programmable switch 230 every second. In this case, 1 second is a desirable number designated by the network user, and is not necessarily limited thereto, and may be changed to an arbitrary value that is less than 1 second or exceeds 1 second.

또한, 컨트롤러(110)는 1초 대기가 끝나면 각 서비스 기능 모듈(232, 233)의 포트 상태를 읽어올 수 있다. 이 과정은, 프로그래머블 스위치(230)가 제공하는 Barefoot Runtime API를 참조하여 프로그래머블 스위치(230) 내 포트 색인번호에 해당하는 $DEV-PORT값을 읽음으로써 이루어질 수 있다.In addition, the controller 110 may read the port state of each service function module (232, 233) when the one-second standby is finished. This process can be performed by reading the $DEV-PORT value corresponding to the port index number in the programmable switch 230 with reference to the Barefoot Runtime API provided by the programmable switch 230 .

여기서, 컨트롤러(110)가 읽은 $DEV_PORT 값이 Down에 해당하는 값이 아니라면 “No”의 과정을 거쳐 컨트롤러(110)는 다시 1초간 대기 후 각 서비스 기능 모듈(232, 233)의 포트 상태를 읽는 동작을 반복하여 수행할 수 있다. Here, if the $DEV_PORT value read by the controller 110 is not a value corresponding to Down, the controller 110 waits again for 1 second through the process of “No” and then reads the port status of each service function module 232 and 233. The action can be repeated.

반면, $DEV_PORT의 값이 Down에 해당하는 값이라면 “YES”의 과정을 거쳐 컨트롤러(110)는 해당 서비스 기능 모듈을 경유하는 서비스 체인(SRC)들의 대체 서비스 체인 정보를 서비스 기능 분류자 모듈(231)에 기록하여 새로 네트워크(10)에 진입하는 패킷이 더 이상 장애가 발생한 서비스 기능 모듈을 경유하지 않도록 할 수 있다.On the other hand, if the value of $DEV_PORT is a value corresponding to Down, through a process of “YES”, the controller 110 transmits the replacement service chain information of service chains (SRCs) passing through the corresponding service function module to the service function classifier module 231 ) so that a packet newly entering the network 10 does not pass through the service function module in which the failure has occurred any longer.

이후, 컨트롤러(110)는 다시 1초를 대기하고 사용자에 의해 강제종료 될 때까지 그 다음 과정들을 반복 수행할 수 있다.Thereafter, the controller 110 waits again for 1 second and repeats the following processes until it is forcibly terminated by the user.

도 3은 본 발명의 실시 예에 따른 서비스 기능 체이닝 패킷 헤더의 구조를 도식화한 것이다.3 schematically illustrates the structure of a service function chaining packet header according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 실시 예에 따른 서비스 기능 체이닝 패킷 헤더는 이더넷(ETH) 헤더와 IP 헤더 사이에 고가용성을 지원하는 서비스 기능 체이닝을 위한 두 개의 헤더를 포함할 수 있다.Referring to FIG. 3 , a service function chaining packet header according to an embodiment of the present invention may include two headers for service function chaining supporting high availability between an Ethernet (ETH) header and an IP header.

첫째는 서비스 체인 헤더(Service Chain Header, SCH)로, 서비스 체인(SRC) 식별자인 ID 필드와 현재까지 거친 서비스 기능(SF)의 수를 역순으로 셈하는 LEN 필드를 포함하여 구성될 수 있다.The first is a service chain header (SCH), which may include an ID field, which is a service chain (SRC) identifier, and a LEN field, which counts the number of service functions (SFs) that have been passed so far in reverse order.

둘째는 서비스 기능 헤더(Service Function Header, SFH)로, 서비스 기능 헤더는 패킷이 방문해야 할 서비스 기능 모듈의 식별자를 기록하는 SF 필드와, 상기 SF 필드의 위치를 표식하는 TAIL 필드를 포함할 수 있다. 즉, SF 필드는 해당 서비스 기능 모듈이 해당 서비스 체인(SRC)의 마지막임을 나타낼 수 있다. 여기서, 서비스 체인(SRC)의 최대길이 n은 사용자의 설정에 의해 조정될 수 있으며, 서비스 기능 헤더는 n개의 SF 필드와 TALI 필드의 쌍으로 구성될 수 있다.The second is a service function header (SFH). The service function header may include an SF field that records the identifier of a service function module to be visited by the packet, and a TAIL field that indicates the location of the SF field. . That is, the SF field may indicate that the corresponding service function module is the last of the corresponding service chain (SRC). Here, the maximum length n of the service chain (SRC) may be adjusted by a user's setting, and the service function header may be composed of a pair of n SF fields and TALI fields.

도 4는 본 발명의 실시 예에 따른 프로그래머블 스위치에서 패킷 헤더를 파싱하는 과정을 도식화한 것이다.4 is a diagram schematically illustrating a process of parsing a packet header in a programmable switch according to an embodiment of the present invention.

도 4를 참조하면, 프로그래머블 스위치(230)의 인그레스 파서(Ingress parser)는 입력 포트에 패킷이 수신되면 패킷 헤더 내의 서비스 체인 정보를 이더넷(ETH) 헤더부터 읽어나가기 시작할 수 있다.Referring to FIG. 4 , when a packet is received at an input port, the ingress parser of the programmable switch 230 may start reading service chain information in the packet header from the Ethernet (ETH) header.

여기서, 인그레스 파서는 서비스 체인 헤더(SCH)를 파싱 한 후, 서비스 기능 헤더(SFH)를 파싱하게 되는데, 이때 파싱 과정은 서비스 기능 헤더(SFH)의 서브헤더 중 TAIL 필드 값을 확인하여 해당 값이 1일 경우 IP 헤더를 파싱 한 후, 전체 파싱 과정을 종료할 수 있다. Here, the ingress parser parses the service chain header (SCH) and then parses the service function header (SFH). In this case, the parsing process checks the value of the TAIL field among the subheaders of the service function header (SFH), and the corresponding value If this value is 1, after parsing the IP header, the entire parsing process can be terminated.

반면, TAIL 필드 값이 0이라면 아직 파싱해야하는 서브헤더가 더 남아있다는 뜻이므로, TAIL 필드 값이 1인 서브헤더를 만날 때까지 서비스 기능 헤더 파싱을 반복할 수 있다.On the other hand, if the TAIL field value is 0, it means that there are still more subheaders to be parsed, so the parsing of the service function header may be repeated until a subheader having a TAIL field value of 1 is met.

도 5는 본 발명의 실시 예에 따른 프로그래머블 스위치에서 패킷을 처리하는 인그레스 파이프라인(Ingress pipeline)을 도식화한 것이다.5 is a schematic diagram of an ingress pipeline for processing a packet in a programmable switch according to an embodiment of the present invention.

도 5를 참조하면, 패킷 처리가 시작되면 프로그래머블 스위치(230)는 IP 헤더 내 Type of Service (ToS) 필드 값을 읽어 0 이상인지 확인할 수 있다. 여기서, ToS 필드의 기본 값은 0으로써, 서비스 기능 체이닝 패킷이 아님을 의미하며, ToS 필드가 1 이상인 경우 서비스 기능 체이닝 패킷임을 뜻한다. 또한, 이 경우 ToS 필드는 서비스 체인의 색인 번호 역할을 할 수 있다.Referring to FIG. 5 , when packet processing starts, the programmable switch 230 reads the Type of Service (ToS) field value in the IP header to check whether it is 0 or more. Here, the default value of the ToS field is 0, which means it is not a service function chaining packet, and when the ToS field is 1 or more, it means a service function chaining packet. Also, in this case, the ToS field can serve as an index number of the service chain.

따라서, ToS 필드 값이 0이라면 바로 이더넷 혹은 IP 패킷 포워딩을 실시하고 패킷 처리 과정을 종료할 수 있다. 반면, ToS 필드 값이 1 이상이라면 다음 단계로 넘어갈 수 있다. Therefore, if the value of the ToS field is 0, Ethernet or IP packet forwarding may be immediately performed and the packet processing process may be terminated. On the other hand, if the value of the ToS field is 1 or more, the next step may be performed.

ToS 필드 값이 1 이상인 패킷에 대하여 프로그래머블 스위치(230)는 서비스 기능 헤더(SCH)가 존재하는지 여부를 isvalid() 함수를 통해 그 유효성을 검증할 수 있다. 여기서, 서비스 기능 헤더(SCH)가 존재한다는 것은 현재 이 패킷에 대한 캡슐화가 완료되었다는 의미이다. For a packet having a ToS field value of 1 or more, the programmable switch 230 may verify the validity of a service function header (SCH) through the isvalid( ) function. Here, the presence of the service function header (SCH) means that the current encapsulation of this packet is completed.

즉, isvalid() 함수에 대한 답이 “No”인 경우 캡슐화(Encapsulation)을 진행하여 서비스 체인 헤더(SCH)와 서비스 기능 헤더(SFH)를 패킷에 추가한 후 처리를 받을 수 있다.That is, when the answer to the isvalid() function is “No”, encapsulation is performed to add a service chain header (SCH) and a service function header (SFH) to the packet, and then processing can be received.

서비스 체인 헤더(SCH)가 존재하거나 캡슐화가 완료되었다면, 프로그래머블 스위치(230)는 해당 패킷에 대한 서비스 기능 처리(SF Processing)을 진행할 수 있다. 이때, 서비스 기능(SF)은 NAT와 방화벽 등 사용자가 해당 프로그래머블 스위치(230)에 설정한 과정을 따라 진행될 수 있다.If the service chain header (SCH) exists or encapsulation is completed, the programmable switch 230 may perform SF processing for the corresponding packet. In this case, the service function SF may be performed according to a process set by the user in the corresponding programmable switch 230 , such as NAT and firewall.

만약, 사용자가 해당 프로그래머블 스위치(230)에 서비스 기능(SF)을 설정하지 않은 경우, 패킷은 서비스 기능(SF)이 설정되지 않은 서비스 기능 모듈은 처리 과정을 거치지 않고 그대로 통과할 수 있다. If the user does not set the service function SF in the corresponding programmable switch 230, the packet may pass through the service function module to which the service function SF is not set without going through a processing process.

서비스 기능(SF) 처리를 받게 된 후의 프로그래머블 스위치(230)는 서비스 체인 헤더(SCH)의 LEN 필드 값을 1만큼 감소시키며, 서비스 기능 헤더(SFH)의 가장 앞 서브헤더인 SF-TAIL 쌍을 Pop-front() 함수를 통해 제거할 수 있다. 여기서 LEN 필드의 초기값은 서비스 체인의 길이이다. 상기와 같은 과정은 현재 패킷이 서비스 체인(SRC)이 명시한 서비스 기능 모듈을 경유하여 정상적인 서비스 기능(SF) 처리를 받았음을 나타낸다.After receiving the service function (SF) processing, the programmable switch 230 decreases the LEN field value of the service chain header (SCH) by 1, and pops the SF-TAIL pair, which is the first subheader of the service function header (SFH). It can be removed through the -front() function. Here, the initial value of the LEN field is the length of the service chain. The above process indicates that the current packet has received normal service function (SF) processing via the service function module specified by the service chain (SRC).

이후, 프로그래머블 스위치(230)는 서비스 체인 헤더(SCH)의 LEN 필드 값이 0인지를 확인할 수 있다. LEN 필드 값이 0이라는 것은 현재 패킷이 서비스 체인에서 명시한 서비스 기능(SF)들을 모두 방문하였다는 것을 의미한다. 따라서, 이 경우 “YES”의 과정을 거쳐 프로그래머블 스위치(230)는 해당 패킷에 대한 역캡슐화(Decapsulation)을 진행함으로써 서비스 체인 헤더(SCH)와 서비스 기능 헤더(SFH)를 제거한 후, ETH/IP 패킷 포워딩을 실시하고 패킷 처리를 종료할 수 있다. 만약, LEN 필드의 값이 0이 아니라면 다음 단계인 “NO”의 과정을 거쳐 SF Forward로 넘어간다.Thereafter, the programmable switch 230 may check whether the value of the LEN field of the service chain header SCH is 0. A LEN field value of 0 means that the current packet has visited all service functions (SFs) specified in the service chain. Therefore, in this case, through the process of “YES”, the programmable switch 230 removes the service chain header (SCH) and the service function header (SFH) by performing decapsulation of the corresponding packet, and then the ETH/IP packet You can perform forwarding and end packet processing. If the value of the LEN field is not 0, the next step, “NO”, goes through to SF Forward.

SF Forward는 서비스 기능 전달자(SFF)의 기능을 수행할 수 있다. 구체적으로, 프로그래머블 스위치(230)가 저장하고 있는 서비스 기능 체이닝 포워딩 룰을 참조하여 현재 패킷의 출력 포트를 결정할 수 있다. 여기서, 서비스 기능 체이닝 포워딩 룰의 키 값은 서비스 기능 모듈의 ID이며 반환되는 값은 출력 포트 번호이다. 이러한 SF Forward에 의해 처리된 후 해당 패킷에 대한 처리는 완료될 수 있다.SF Forward may perform the function of a service function forwarder (SFF). Specifically, the output port of the current packet may be determined by referring to the service function chaining forwarding rule stored by the programmable switch 230 . Here, the key value of the service function chaining forwarding rule is the ID of the service function module, and the returned value is the output port number. After being processed by such SF Forward, the processing of the corresponding packet may be completed.

이하, 하기 실시 예를 통하여 본 발명의 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 패킷 헤더의 변화와, 네트워크 장애에 컨트롤러가 대응하는 과정을 살펴보기로 한다.Hereinafter, a change in a packet header during service function chaining using the service function chaining system of the present invention and a process in which the controller responds to a network failure will be described through the following examples.

하기 실시 예는 본 발명을 보다 상세히 설명하기 위한 과정일 뿐, 본 발명의 내용이 하기 실시 예에 반드시 한정되는 것은 아니다. The following examples are only a process for explaining the present invention in more detail, and the content of the present invention is not necessarily limited to the following examples.

[실시예 1] 본 발명의 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 패킷 헤더의 변화[Embodiment 1] Change of packet header during service function chaining using the service function chaining system of the present invention

도 6은 본 발명의 실시 예에 따른 서비스 기능 체이닝 시 패킷 헤더의 변화를 나타낸 도면이다.6 is a diagram illustrating a change in a packet header during service function chaining according to an embodiment of the present invention.

본 실시예에서는 도 1을 참조하여 설명한 네트워크 환경과는 무관하게 4개의 서비스 기능 모듈을 거치는 경우만을 고려하였다.In this embodiment, only the case of passing through four service function modules is considered regardless of the network environment described with reference to FIG. 1 .

처음 서비스 기능 체이닝 패킷이 네트워크(10)에 진입하면 서비스 기능 분류자 모듈(231)가 캡슐화를 진행하여 서비스 체인 헤더(SCH)와 서비스 기능 헤더(SFH)를 기존 패킷 헤더에 삽입한다. 이후, 서비스 기능 모듈을 거칠 때마다 서비스 체인 헤더(SCH)의 LEN 필드 값은 1씩 감소하며, 서비스 기능 헤더(SFH)의 가장 앞에 위치한 SF-Tail 필드 쌍이 차례로 제거된다.When a service function chaining packet first enters the network 10, the service function classifier module 231 performs encapsulation and inserts a service chain header (SCH) and a service function header (SFH) into the existing packet header. Thereafter, the LEN field value of the service chain header SCH is decreased by 1 every time the service function module is passed through, and the SF-Tail field pair located at the front of the service function header SFH is sequentially removed.

제2 서비스 기능 모듈(233)에서 마지막 서비스 기능(SF) 처리를 받은 직후 패킷에는 더 이상 서비스 기능 헤더(SFH)가 존재하지 않으며, LEN 필드 값이 0인 서비스 체인 헤더(SCH)만 남아있게 된다. 이때, 프로그래머블 스위치(230)는 역캡슐화를 진행하여 서비스 체인 헤더(SCH) 역시 제거 후 패킷을 내보내게 된다.Immediately after receiving the last service function (SF) process from the second service function module 233 , the service function header (SFH) no longer exists in the packet, and only the service chain header (SCH) having the LEN field value of 0 remains. . At this time, the programmable switch 230 performs de-encapsulation to remove the service chain header (SCH) and then sends out the packet.

[실시예 2] 본 발명의 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 네트워크 장애에 컨트롤러가 대응하는 과정[Embodiment 2] Process in which the controller responds to a network failure in service function chaining using the service function chaining system of the present invention

도 7은 본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 네트워크 장애에 컨트롤러가 대응하는 과정을 보여주는 도면이다.7 is a diagram illustrating a process in which a controller responds to a network failure during service function chaining using the service function chaining system according to an embodiment of the present invention.

본 실시예에서는 기존 서비스 체인(SRC1)을 SF1의 제1 서비스 기능 모듈(232a)-SF3의 제2 서비스 기능 모듈(233), 대체 서비스 체인(SRC2)을 SF2의 제1 서비스 기능 모듈(232a)-SF3의 제2 서비스 기능 모듈(233)로 정하였다. 또한, 서비스 체인(SRC)의 최대 길이는 4인 경우를 고려하였다. 또한, 클라이언트(210)가 서버(220)로 보내는 서비스 기능 체이닝 패킷들의 ToS 필드 값은 1로 사용한다. 즉, 클라이언트(210)는 서비스 체인 ID 1을 사용한다. In this embodiment, the existing service chain (SRC1) is the first service function module 232a of SF1 - the second service function module 233 of SF3, and the replacement service chain (SRC2) is the first service function module 232a of SF2 - It is set as the second service function module 233 of SF3. In addition, a case where the maximum length of the service chain (SRC) is 4 was considered. In addition, the value of the ToS field of the service function chaining packets sent by the client 210 to the server 220 is used as 1. That is, the client 210 uses the service chain ID 1 .

SC1의 서비스 기능 분류자 모듈(231)에 패킷이 도착하였을 때, SC1의 서비스 기능 분류자 모듈(231)은 도면에 도시된 ①과 같이 자신이 저장하고 있는 서비스 체인 정보를 참조하여 캡슐화를 진행한다. 이후, SF Forward를 통해 패킷은 SF1의 제1 서비스 기능 모듈(232a)으로 전송된다.When a packet arrives at the service function classifier module 231 of SC1, the service function classifier module 231 of SC1 performs encapsulation with reference to the service chain information it stores as shown in ①. . Thereafter, the packet is transmitted to the first service function module 232a of SF1 through SF Forward.

SF1의 제1 서비스 기능 모듈(232a)은 서비스 기능(SF) 처리 후 패킷을 SF3의 제2 서비스 기능 모듈(233)로 전달한다. 그러나, ②와 같이 SF1의 제1 서비스 기능 모듈(232a)-SF3의 제2 서비스 기능 모듈(233)간 회선에 장애가 발생하여 SF1의 제1 서비스 기능 모듈(232a)의 패킷이 SF3의 제2 서비스 기능 모듈(233)로 전달되지 못한다. The first service function module 232a of SF1 transmits the packet after processing the service function (SF) to the second service function module 233 of SF3. However, as shown in ②, a line failure occurs between the first service function module 232a of SF1 and the second service function module 233 of SF3, so that the packet of the first service function module 232a of SF1 is transmitted to the second service of SF3. It is not transmitted to the function module 233 .

이때, 본 실시예의 컨트롤러(110)는 이러한 네트워크 장애를 감지하여 ③과 같이 SC1의 서비스 기능 분류자 모듈(231)에 저장되어 있는 서비스 체인 ID 1의 기본 서비스 체인(SRC1) 정보를 대체 서비스 체인(SRC2) 정보로 갱신한다.At this time, the controller 110 of this embodiment detects such a network failure and replaces the basic service chain (SRC1) information of the service chain ID 1 stored in the service function classifier module 231 of SC1 as shown in ③ into the replacement service chain ( SRC2) information is updated.

이에 따라, 이후 들어오는 서비스 체인 ID 1을 이용하는 패킷들은 더 이상 SF1의 제1 서비스 기능 모듈(232)-SF3의 제2 서비스 기능 모듈(233)이 아니라 ④와 같이 SF2의 제1 서비스 기능 모듈(232b)-SF3의 제2 서비스 기능 모듈(233)의 경로를 경유하여 서버(220)로 전달된다.Accordingly, the packets using the subsequent service chain ID 1 are no longer the first service function module 232 of SF1 - the second service function module 233 of SF3, but the first service function module 232b of SF2 as shown in ④. )- is transmitted to the server 220 via the path of the second service function module 233 of SF3.

이상으로 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고 다른 구체적인 형태로 실시할 수 있다는 것을 이해할 수 있을 것이다. 따라서 이상에서 기술한 실시예는 모든 면에서 예시적인 것이며 한정적이 아닌 것이다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can practice the present invention in other specific forms without changing the technical spirit or essential features of the present invention. you will be able to understand Accordingly, the embodiments described above are illustrative in all respects and not restrictive.

10 : 네트워크
100 : 제어평면
110 : 컨트롤러
200 : 데이터평면
210 : 클라이언트
220 : 서버
230 : 프로그래머블 스위치
231 : 서비스 기능 분류자 모듈
232 : 제1 서비스 기능 모듈
233 : 제2 서비스 기능 모듈
SRC : 서비스 체인
10: network
100: control plane
110: controller
200: data plane
210: client
220 : server
230: programmable switch
231: service function classifier module
232: first service function module
233: second service function module
SRC: Service Chain

Claims (10)

클라이언트와 서버 사이에서 복수의 서비스 체인을 이루며, 컨트롤러에 의해 감시 및 제어되는 프로그래머블 스위치를 포함하는 서비스 기능 체이닝 시스템에 있어서,
상기 컨트롤러는,
일 서비스 체인을 통한 서비스 기능 체이닝 패킷 처리 과정에서 회선 장애 감지 시, 회선 장애가 없는 대체 서비스 체인으로 경로를 갱신하여 해당 대체 서비스 체인으로 서비스 기능 체이닝 패킷이 전달되며 처리되도록 하고,
상기 서비스 체인은,
클라이언트와 연결되며 캡슐화(Encapsulation)를 담당하는 서비스 기능 분류 자 모듈;
상기 서비스 기능 분류자 모듈과 연결되며 서비스 기능(SF)을 담당하는 제1 서비스 기능 모듈 및
서비스 기능(SF)과 역캡슐화(Decapsulation)를 담당하는 제2 서비스 기능 모듈을 포함하고,
상기 컨트롤러는,
최초 구동 시 상기 서비스 기능 분류자 모듈과 각 서비스 기능 모듈에 초기 서비스 체인 정보를 기록하며, 각 서비스 기능 모듈의 포트 감지 시 회선 장애가 발견되면 대체 서비스 체인 정보를 상기 서비스 기능 분류자 모듈에 기록하여 패킷 전달 경로를 갱신하고,
상기 컨트롤러는,
상기 각 서비스 기능 모듈의 포트 감지 시, 상기 프로그래머블 스위치가 제공하는 Barefoot Runtime API를 참조하여 프로그래머블 스위치 내 포트 색인번호에 해당하는 $DEV_PORT 값을 읽고, $DEV_PORT 값이 Down에 해당하는 값인지 아닌지에 따라 회선 장애를 판단하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
A service function chaining system comprising a programmable switch that forms a plurality of service chains between a client and a server and is monitored and controlled by a controller,
The controller is
When a line failure is detected during service function chaining packet processing through one service chain, the route is updated to an alternative service chain without line failure so that the service function chaining packet is delivered and processed to the alternative service chain;
The service chain is
a service function classifier module that is connected to the client and is responsible for encapsulation;
A first service function module connected to the service function classifier module and in charge of a service function (SF); and
Includes a second service function module responsible for service function (SF) and decapsulation (Decapsulation),
The controller is
Initial service chain information is recorded in the service function classifier module and each service function module at the time of initial operation. update the forwarding path;
The controller is
When the port of each service function module is detected, the $DEV_PORT value corresponding to the port index number in the programmable switch is read with reference to the Barefoot Runtime API provided by the programmable switch, and the $DEV_PORT value is A service function chaining system, characterized in that determining a line failure.
삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 서비스 기능 체이닝 패킷은,
이더넷(ETH) 헤더와 IP 헤더 사이에 서비스 기능 체이닝을 위한 서비스 체인 헤더(SCH) 및 서비스 기능 헤더(SFH)를 포함하며,
상기 서비스 체인 헤더는,
서비스 체인 식별자인 ID 필드와, 현재까지 거친 서비스 기능 모듈의 수를 역순으로 셈하는 LEN 필드를 포함하고,
상기 서비스 기능 헤더는,
서비스 기능 체이닝 패킷이 방문해야 할 서비스 기능 모듈의 식별자를 기록하는 SF 필드와, 상기 SF 필드의 위치를 표식하는 TAIL 필드를 포함하며,
상기 프로그래머블 스위치의 인그레스 파서(Ingress parser)는, 상기 이더넷(ETH) 헤더부터 IP 헤더까지 파싱 하는 과정에서 상기 TAIL 필드 값이 마지막 위치를 표시하는 경우까지 파싱을 반복하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
The method of claim 1,
The service function chaining packet is
a service chain header (SCH) and a service function header (SFH) for service function chaining between the Ethernet (ETH) header and the IP header;
The service chain header is
It includes an ID field, which is a service chain identifier, and a LEN field, which counts the number of service function modules that have been passed so far in reverse order,
The service function header is
The service function chaining packet includes an SF field for recording the identifier of the service function module to be visited, and a TAIL field for indicating the location of the SF field,
In the process of parsing from the Ethernet (ETH) header to the IP header, the ingress parser of the programmable switch repeats parsing until the TAIL field value indicates the last position. system.
제 5 항에 있어서,
상기 서비스 기능 체이닝 패킷 처리는,
상기 프로그래머블 스위치가 IP 헤더 내 Type of Service(ToS) 필드 값을 확인하여, 서비스 기능 체이닝 패킷임이 확인 될 경우 처리를 수행하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
6. The method of claim 5,
The service function chaining packet processing is,
The service function chaining system, characterized in that the programmable switch checks the value of the Type of Service (ToS) field in the IP header, and performs processing when it is confirmed that the packet is a service function chaining packet.
제 6 항에 있어서,
상기 서비스 기능 체이닝 패킷 처리하는 과정에서,
상기 서비스 기능 체이닝 패킷임이 확인 될 경우, 서비스 체인 헤더의 존재 유무를 확인하며, 서비스 체인 헤더가 없을 경우에는 캡슐화를 진행하여 서비스 체인 헤더와 서비스 기능 헤더를 패킷에 생성한 후에 처리를 수행하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
7. The method of claim 6,
In the process of processing the service function chaining packet,
When the service function chaining packet is confirmed, the existence of the service chain header is checked. If there is no service chain header, encapsulation is performed to generate the service chain header and the service function header in the packet, and then processing is performed. service function chaining system.
제 7 항에 있어서,
상기 서비스 체인 헤더의 존재 유무는 isvalid() 함수를 통해 유효성을 검증하여 확인하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
8. The method of claim 7,
The service function chaining system, characterized in that the presence or absence of the service chain header is verified by validating the isvalid() function.
제 6 항에 있어서,
상기 서비스 기능 체이닝 패킷 처리는,
상기 서비스 기능 모듈을 거쳐 서비스 체이닝 패킷 처리를 받을 때마다 상기 LEN 필드 값을 1씩 감소시키며 상기 서비스 기능 헤더의 가장 앞에 있는 SF 필드-TAIL 필드 쌍을 제거하는 과정을 LEN 필드 값이 0이 될 때까지 반복 수행하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
7. The method of claim 6,
The service function chaining packet processing is,
Each time the service chaining packet is processed through the service function module, the LEN field value is decremented by 1 and the process of removing the SF field-TAIL field pair at the front of the service function header is performed when the LEN field value becomes 0. Service function chaining system, characterized in that it is repeatedly performed until
제 9 항에 있어서,
상기 컨트롤러는,
최초 구동 시 상기 서비스 기능 체이닝 패킷 내 저장된 서비스 체인 정보를 읽고 해당하는 출력 포트로 패킷을 포워딩하는 서비스 기능 체이닝 포워딩 룰을 저장하며,
상기 서비스 기능 체이닝 패킷 처리는,
상기 LEN 필드 값이 0이 아닐 경우, SF Forward로 넘어가 SFF 기능을 수행하며, 상기 프로그래머블 스위치가 저장하고 있는 서비스 기능 체이닝 포워딩 룰을 참조하여 현재 패킷의 출력 포트를 결정하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
10. The method of claim 9,
The controller is
At the time of initial operation, the service function chaining forwarding rule for reading the service chain information stored in the service function chaining packet and forwarding the packet to the corresponding output port is stored;
The service function chaining packet processing is,
When the LEN field value is not 0, the service function chaining function moves to SF Forward to perform the SFF function, and determines the output port of the current packet by referring to the service function chaining forwarding rule stored in the programmable switch. system.
KR1020200141500A 2020-10-28 2020-10-28 System for highly available service function chaining on programmmable switches KR102416153B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200141500A KR102416153B1 (en) 2020-10-28 2020-10-28 System for highly available service function chaining on programmmable switches

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200141500A KR102416153B1 (en) 2020-10-28 2020-10-28 System for highly available service function chaining on programmmable switches

Publications (2)

Publication Number Publication Date
KR20220056689A KR20220056689A (en) 2022-05-06
KR102416153B1 true KR102416153B1 (en) 2022-07-01

Family

ID=81584839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141500A KR102416153B1 (en) 2020-10-28 2020-10-28 System for highly available service function chaining on programmmable switches

Country Status (1)

Country Link
KR (1) KR102416153B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101841026B1 (en) * 2016-02-29 2018-03-23 고려대학교 산학협력단 Service function chaining network system for path optimization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘P4SC: Towards High-Performance Service Function Chain Implementation on the P4-Capable Device’, 2019 IFIP/IEEE Symposium on Integrated Network and Service Management(IM), 2019.04.*

Also Published As

Publication number Publication date
KR20220056689A (en) 2022-05-06

Similar Documents

Publication Publication Date Title
US10938748B2 (en) Packet processing method, computing device, and packet processing apparatus
US7826451B2 (en) Method of stateless group communication and repair of data packets transmission to nodes in a distribution tree
US9515919B2 (en) Method and apparatus for protection switching in packet transport system
JP5363658B1 (en) RELAY DEVICE, RELAY DEVICE CONTROL METHOD, AND NETWORK SYSTEM
KR20150051107A (en) Method for fast flow path setup and failure recovery
US7233567B1 (en) Apparatus and method for supporting multiple traffic redundancy mechanisms
CN101808021A (en) Fault detection method, device and system, message statistical method and node equipment
US11736375B2 (en) Scalable in-band telemetry metadata extraction
CN112751733A (en) Link detection method, device, equipment, system and switch
US20090006650A1 (en) Communication device, communication method, communication interface, and program product
US20170222953A1 (en) User packet forwarding control method and processing node
CN103078791A (en) Method, device and system for processing operation, administration and maintenance (OAM) message
KR101975082B1 (en) Methods for managing transaction in software defined networking network
KR102416153B1 (en) System for highly available service function chaining on programmmable switches
US20120033671A1 (en) Communication device, communication method, and recording medium for recording communication program
CN106533771B (en) Network equipment and control information transmission method
KR101442567B1 (en) Seamless network communication method using frame based routing on the ring topology
WO2014006920A1 (en) Communication system, control apparatus, communication method, and program
CN112702236B (en) Method and processor for realizing packet loss detection
EP2180636A1 (en) Method for signaling a unidirectional failure of a packet-switched link
JP5771656B2 (en) Relay device
CN110784535B (en) Message forwarding method, device and network equipment
CN109347678B (en) Method and device for determining routing loop
US20050071497A1 (en) Method of establishing transmission headers for stateless group communication
CN110535675B (en) Method and device for multicast fast switching

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant