KR102416153B1 - System for highly available service function chaining on programmmable switches - Google Patents
System for highly available service function chaining on programmmable switches Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000005538 encapsulation Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 101001012669 Homo sapiens Melanoma inhibitory activity protein 2 Proteins 0.000 description 1
- 102100029778 Melanoma inhibitory activity protein 2 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying 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
본 발명은 서비스 기능 체이닝 시스템에 관한 것으로, 보다 상세하게는 프로그래머블 스위치 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
데이터평면(200)은 클라이언트(210), 서버(220), 프로그래머블 스위치(230)를 포함하여 구성될 수 있다. 이때, 프로그래머블 스위치(230)는 서비스 기능 체이닝에 필요한 서비스 기능 분류자(Service Classifier, SC), 서비스 기능 전달자(Service Function Forwarder, SFF), 서비스 기능(Service Function, SF)을 모두 담당하도록 형성될 수 있다.The
이를 위해, 본 발명의 실시 예에 따른 네트워크(10)에서는 일례로 프로그래머블 스위치(230)가 총 4개가 존재할 수 있으며, 4개의 프로그래머블 스위치(230) 중 서비스 기능 분류자(SC) 역할을 하며 캡슐화를 담당하는 서비스 기능 분류자 모듈(231)이 클라이언트(210)에 연결될 수 있다.To this end, in the
또한, 클라이언트(210)와 서버(220) 사이에는 복수의 제1 서비스 기능 모듈(232)과, 제2 서비스 기능 모듈(233)이 존재할 수 있으며, 서비스 기능 분류자 모듈(231)과 제1 및 제2 서비스 기능 모듈(233)들은 모두 서비스 기능 전달자(SFF)의 역할을 수행할 수 있으므로, 서비스 기능 전달자 모듈은 따로 구비되지 않는다. In addition, a plurality of first
여기서, 중간에 위치된 복수의 제1 서비스 기능 모듈(232)은 서비스 기능(SF)만을 담당하며, 마지막에 위치된 제2 서비스 기능 모듈(233)은 서비스 기능(SF)과 함께 서비스 기능 분류자(SC)의 역할 중 역캡슐화의 기능을 수행할 수도 있다.Here, the plurality of first
이때, 복수의 제1 서비스 기능 모듈(232)은 각기 다른 노드를 갖는 것이 바람직하다. 이는 회선 장애에 대처하기 위함으로, 하나의 제1 서비스 기능 모듈(232)을 통하는 회선이 장애가 발생 할 시 다른 제1 서비스 기능 모듈(232)로 연결 노드를 변경하기 위함이다.In this case, it is preferable that the plurality of first
즉, 클라이언트(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
여기서, 서비스 기능 분류자 모듈(231), 제1 서비스 기능 모듈(232), 제2 서비스 기능 모듈(233)이 상술한 서비스 기능 분류자(Service Classifier, SC), 서비스 기능 전달자(Service Function Forwarder, SFF), 서비스 기능(Service Function, SF)을 모두 담당할 수 있는 프로그래머블 스위치(230)를 형성하므로, 이하에서는 이들의 합을 서비스 체인이라 지칭하기로 한다.Here, the service
즉, 본 발명의 실시 예에 따른 서비스 기능 체이닝 시스템은, 서비스 기능 분류자 모듈(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
한편, 상기와 같은 프로그래머블 스위치(230)는 본 발명의 이해를 돕기 위해 도면과 같이 4개로 한정하여 설명하였으나 이는 예시적인 것일 뿐, 한정되는 것은 아니며 프로그래머블 스위치(230)의 개수는 그 이상으로 달리 형성될 수 있다.On the other hand, the
예컨대, 제1 서비스 기능 모듈(232)과 제2 서비스 기능 모듈(233) 사이에 다른 서비스 기능 모듈이 마련될 수 있는 것이다.For example, another service function module may be provided between the first
도 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
이때, 컨트롤러(110)는 캡슐화를 담당하는 서비스 기능 분류자 모듈(231)에 각 서비스 체인(SRC)별로 거쳐야 하는 서비스 기능 모듈과 그 순서를 저장할 수 있다.In this case, the
또한, 컨트롤러(110)는 서비스 기능 모듈 자신이 처리한 패킷이 다음 서비스 기능 모듈을 방문할 수 있게 하는 서비스 기능 전달자(SFF) 기능을 수행할 수 있도록, 패킷 헤더 내 저장된 서비스 체인 정보를 읽고 해당하는 출력 포트로 패킷을 포워딩하는 서비스 기능 체이닝 포워딩 룰을 저장할 수 있다.In addition, the
상기와 같이 초기 서비스 체인 정보 쓰기가 끝나면 컨트롤러(110)는 1초간 대기하는데, 이는 컨트롤러(110)가 매초마다 프로그래머블 스위치(230)의 포트 정보를 감시하기 위함이다. 이때, 1초는 네트워크 사용자가 지정하는 바람직한 수치로서 반드시 이에 한정되는 것은 아니며, 1초 미만 혹은 1초를 초과하는 임의의 수치로 변경될 수도 있다.As described above, when the writing of the initial service chain information is finished, the
또한, 컨트롤러(110)는 1초 대기가 끝나면 각 서비스 기능 모듈(232, 233)의 포트 상태를 읽어올 수 있다. 이 과정은, 프로그래머블 스위치(230)가 제공하는 Barefoot Runtime API를 참조하여 프로그래머블 스위치(230) 내 포트 색인번호에 해당하는 $DEV-PORT값을 읽음으로써 이루어질 수 있다.In addition, the
여기서, 컨트롤러(110)가 읽은 $DEV_PORT 값이 Down에 해당하는 값이 아니라면 “No”의 과정을 거쳐 컨트롤러(110)는 다시 1초간 대기 후 각 서비스 기능 모듈(232, 233)의 포트 상태를 읽는 동작을 반복하여 수행할 수 있다. Here, if the $DEV_PORT value read by the
반면, $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
이후, 컨트롤러(110)는 다시 1초를 대기하고 사용자에 의해 강제종료 될 때까지 그 다음 과정들을 반복 수행할 수 있다.Thereafter, the
도 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
여기서, 인그레스 파서는 서비스 체인 헤더(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
따라서, 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
즉, 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
만약, 사용자가 해당 프로그래머블 스위치(230)에 서비스 기능(SF)을 설정하지 않은 경우, 패킷은 서비스 기능(SF)이 설정되지 않은 서비스 기능 모듈은 처리 과정을 거치지 않고 그대로 통과할 수 있다. If the user does not set the service function SF in the corresponding
서비스 기능(SF) 처리를 받게 된 후의 프로그래머블 스위치(230)는 서비스 체인 헤더(SCH)의 LEN 필드 값을 1만큼 감소시키며, 서비스 기능 헤더(SFH)의 가장 앞 서브헤더인 SF-TAIL 쌍을 Pop-front() 함수를 통해 제거할 수 있다. 여기서 LEN 필드의 초기값은 서비스 체인의 길이이다. 상기와 같은 과정은 현재 패킷이 서비스 체인(SRC)이 명시한 서비스 기능 모듈을 경유하여 정상적인 서비스 기능(SF) 처리를 받았음을 나타낸다.After receiving the service function (SF) processing, the
이후, 프로그래머블 스위치(230)는 서비스 체인 헤더(SCH)의 LEN 필드 값이 0인지를 확인할 수 있다. LEN 필드 값이 0이라는 것은 현재 패킷이 서비스 체인에서 명시한 서비스 기능(SF)들을 모두 방문하였다는 것을 의미한다. 따라서, 이 경우 “YES”의 과정을 거쳐 프로그래머블 스위치(230)는 해당 패킷에 대한 역캡슐화(Decapsulation)을 진행함으로써 서비스 체인 헤더(SCH)와 서비스 기능 헤더(SFH)를 제거한 후, ETH/IP 패킷 포워딩을 실시하고 패킷 처리를 종료할 수 있다. 만약, LEN 필드의 값이 0이 아니라면 다음 단계인 “NO”의 과정을 거쳐 SF Forward로 넘어간다.Thereafter, the
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
이하, 하기 실시 예를 통하여 본 발명의 서비스 기능 체이닝 시스템을 이용한 서비스 기능 체이닝 시의 패킷 헤더의 변화와, 네트워크 장애에 컨트롤러가 대응하는 과정을 살펴보기로 한다.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
제2 서비스 기능 모듈(233)에서 마지막 서비스 기능(SF) 처리를 받은 직후 패킷에는 더 이상 서비스 기능 헤더(SFH)가 존재하지 않으며, LEN 필드 값이 0인 서비스 체인 헤더(SCH)만 남아있게 된다. 이때, 프로그래머블 스위치(230)는 역캡슐화를 진행하여 서비스 체인 헤더(SCH) 역시 제거 후 패킷을 내보내게 된다.Immediately after receiving the last service function (SF) process from the second
[실시예 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
SC1의 서비스 기능 분류자 모듈(231)에 패킷이 도착하였을 때, SC1의 서비스 기능 분류자 모듈(231)은 도면에 도시된 ①과 같이 자신이 저장하고 있는 서비스 체인 정보를 참조하여 캡슐화를 진행한다. 이후, SF Forward를 통해 패킷은 SF1의 제1 서비스 기능 모듈(232a)으로 전송된다.When a packet arrives at the service
SF1의 제1 서비스 기능 모듈(232a)은 서비스 기능(SF) 처리 후 패킷을 SF3의 제2 서비스 기능 모듈(233)로 전달한다. 그러나, ②와 같이 SF1의 제1 서비스 기능 모듈(232a)-SF3의 제2 서비스 기능 모듈(233)간 회선에 장애가 발생하여 SF1의 제1 서비스 기능 모듈(232a)의 패킷이 SF3의 제2 서비스 기능 모듈(233)로 전달되지 못한다. The first
이때, 본 실시예의 컨트롤러(110)는 이러한 네트워크 장애를 감지하여 ③과 같이 SC1의 서비스 기능 분류자 모듈(231)에 저장되어 있는 서비스 체인 ID 1의 기본 서비스 체인(SRC1) 정보를 대체 서비스 체인(SRC2) 정보로 갱신한다.At this time, the
이에 따라, 이후 들어오는 서비스 체인 ID 1을 이용하는 패킷들은 더 이상 SF1의 제1 서비스 기능 모듈(232)-SF3의 제2 서비스 기능 모듈(233)이 아니라 ④와 같이 SF2의 제1 서비스 기능 모듈(232b)-SF3의 제2 서비스 기능 모듈(233)의 경로를 경유하여 서버(220)로 전달된다.Accordingly, the packets using the subsequent
이상으로 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고 다른 구체적인 형태로 실시할 수 있다는 것을 이해할 수 있을 것이다. 따라서 이상에서 기술한 실시예는 모든 면에서 예시적인 것이며 한정적이 아닌 것이다.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.
상기 서비스 기능 체이닝 패킷은,
이더넷(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.
상기 서비스 기능 체이닝 패킷 처리는,
상기 프로그래머블 스위치가 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.
상기 서비스 기능 체이닝 패킷 처리하는 과정에서,
상기 서비스 기능 체이닝 패킷임이 확인 될 경우, 서비스 체인 헤더의 존재 유무를 확인하며, 서비스 체인 헤더가 없을 경우에는 캡슐화를 진행하여 서비스 체인 헤더와 서비스 기능 헤더를 패킷에 생성한 후에 처리를 수행하는 것을 특징으로 하는 서비스 기능 체이닝 시스템.
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.
상기 서비스 체인 헤더의 존재 유무는 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.
상기 서비스 기능 체이닝 패킷 처리는,
상기 서비스 기능 모듈을 거쳐 서비스 체이닝 패킷 처리를 받을 때마다 상기 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
상기 컨트롤러는,
최초 구동 시 상기 서비스 기능 체이닝 패킷 내 저장된 서비스 체인 정보를 읽고 해당하는 출력 포트로 패킷을 포워딩하는 서비스 기능 체이닝 포워딩 룰을 저장하며,
상기 서비스 기능 체이닝 패킷 처리는,
상기 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841026B1 (en) * | 2016-02-29 | 2018-03-23 | 고려대학교 산학협력단 | Service function chaining network system for path optimization |
-
2020
- 2020-10-28 KR KR1020200141500A patent/KR102416153B1/en active IP Right Grant
Non-Patent Citations (1)
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 |