The present disclosure relates to a system for transferring a packet.
An ordinary router has a function of referencing a routing table in accordance with the destination IP (Internet Protocol) address of a packet that has arrived and delivering the packet from an appropriate interface. In a system that requires advanced networking, meanwhile, it is occasionally requested to rewrite a packet header in conjunction with an application layer, or duplicate and encapsulate a packet itself.
Routing can be performed on the basis of a plurality of pieces of information (5-tuple) in the packet header, such as a source IP address and a port number, by using a technique called “PBR” (Policy-Based Routing).
The PBR only allows routing and discard of a packet that matches the 5-tuple, and does not support rewriting of the header. It takes a development cost to add a new networking function to a router, and it depends on the use case whether such a special packet operation should be executed before routing (pre-routing) or after routing (post-routing).
It is an object of the present disclosure to provide a router device including routing function means for routing and transmitting a received packet and functional means for executing a desired operation on the packet, in which a new networking function can be added easily.
The present disclosure provides a router device including routing means for routing and transmitting a received packet and functional means for executing a desired operation on the packet, in which each of the means is modularized and a virtual interface or a memory is provided as a communication path between the modularized routing means and the modularized functional means.
Specifically, the present disclosure provides a router device including:
Specifically, the present disclosure provides a packet transfer method including:
Specifically, the packet transfer program according to the present disclosure is a program for causing a computer to implement functions of the router device according to the present disclosure, and a program for causing a computer to execute steps of the packet transfer method according to the present disclosure.
With the present disclosure, in which a communication path is determined for each module, it is possible to flexibly remove and replace each module. Therefore, with the present disclosure, it is possible to provide a router device including routing function means for routing and transmitting a received packet and functional means for executing a desired operation on the packet, in which each module is easily replaceable to facilitate construction of a system to which a new networking function is added.
An embodiment of the present disclosure will be described in detail below with reference to the drawings. The present disclosure is not limited to the embodiment described below. The embodiment is merely illustrative, and the present disclosure can be implemented with a variety of modifications and improvements made thereto on the basis of the knowledge of a person skilled in the art. The same reference signs in the specification and the drawings denote identical constituent elements.
(Configuration of Related Art)
(Point of the Disclosure)
In order to enhance the networking function of the router according to the related art, it is necessary to additionally develop a monolithic router system, which requires a cost and a time. Thus, the present disclosure proposes a module-type router system constituted from a routing module, a functional module, and a config module.
By adopting such a module-type router system, the present disclosure can implement a router system that has a desired function by incorporating an existing application function. The present disclosure can also configure a multi-function router system that can operate a packet at a timing desired by a user, without the need for additional development, by incorporating existing packet operation software and a software router.
(Configuration of the Disclosure)
Routing Module 12
A routing module 12 is a module that performs a routing process for L2 and L3 of an OSI (Open System Interconnection) reference model, in which a packet is received, a NextHop of the packet is determined in accordance with a routing table, and the packet is transmitted from an appropriate interface with the header rewritten.
Functional Module 11
A functional module 11 is a module that executes any operation desired to be performed on a packet, which is not necessarily ordinary routing. Examples of such an operation include any process for L4 or higher of the OSI reference model, and may be 5-tuple match action for a packet by OpenFlow, in-line security protection by IPS, provision of a CDN (Content Delivery Network) by a cache server, etc. The match action for a packet includes a process that matches the source IP, the source port number, the destination IP, the destination port number, and the protocol number of the packet.
Config Module 13
A config module 13 is a module that integrally configures the routing module 12 and the functional module 11.
The routing module 12, the functional module 11, and the config module 13 may be developed on one or a plurality of physical servers. The modules may operate in either of a host environment provided in a physical server such as a host OS or a virtual environment configured on a physical server such as a virtual machine or a container. In the present disclosure, the virtual machine is occasionally abbreviated as “VM” (Virtual Machine).
Each communication path between the modules may be a virtual interface or a memory, for example. The communication path between the modules may be implemented by any of transmission and reception by way of physical/virtual interfaces and direct reference of the memory. In the present disclosure, the interface is occasionally abbreviated as “IF” (interface).
The module-type router system according to the present disclosure enables flexible removal and replacement of each module by opening the constituent elements of the software router according to the related art and determining a communication path for each module. The config module 13 and the functional module 11 make any processing configurable when the specifications of the communication path for the routing module 12 are met.
The order of connection between the routing module 12 and the functional module 11 includes the following three patterns.
A packet forwarding flow for a case where an OpenFlow module is used for the functional module 11 will be described as an exemplary embodiment. The module-type router system illustrated in
Functional module 11: software OpenFlow switch
Number of hosts: 1
Module development location: host for the routing module 11, host for the config module 13, and virtual machine for the functional module 12.
Communication Path: Virtual Interface
Function Connection Order: Pre-Routing
The OpenFlow switch module receives a packet from a communication path connected to a physical IF 15-1, executes an OpenFlow process, and thereafter returns the packet to a communication path connected to the routing module 12. The config module 13 serves as an OpenFlow controller, and reflects set flow rules and handles a packet inflow and a packet outflow.
The user configures the entire routing system for the config module 13. For example, the user of the present router system makes the following settings for the config module 13.
Setting 1: setting of the routing module 12
Setting 2: setting of the functional module 11
The routing module 12 and the functional module 11 configure settings by reading settings from the config module 13 and reflecting the settings in the modules themselves at the time of system start-up.
Specifically, the virtual machine 21 and the container 22 include virtual IFs 14-11 and 14-2b, and the routing module 12 includes a virtual IF 14-2a. The virtual IF 14-1 is connected to the physical IF 15-1, and the virtual IF 14-2b is connected to the virtual IF 14-2a. The routing module 12 is connected to a physical IF 15-2. The routing module 12 and the functional module 11 forward a packet by way of the virtual IF 14-2b and the virtual IF 14-2a.
In
Specifically, in the configuration in
Specifically, in the configuration in
The order of connection, between the routing module 12 and the functional module 11, where an OpenFlow switch module is used for the functional module 11 will be described below.
A packet received by the physical IF 15-1 is subjected to routing by the routing module 12, and forwarded to a virtual IF 14-1b of the virtual machine 21 with the destination MAC address of appropriate NextHop attached thereto.
The virtual machine 21 executes OpenFlow processing. By default, the packet is forwarded from the virtual IF 14-1b to the virtual IF 14-2, and sent out from the physical IF 15-2 which is directly coupled thereto. Rewriting, duplication, discard of the packet header, rate control, and access control can be set as Flow rules for the OpenFlow processing.
The software OpenFlow switch on the virtual machine 21 is IP reachable (can respond to ARP (Address Resolution Protocol)) for both the virtual IF 14-1b and the virtual IF 14-2b.
A router system in which an existing application is incorporated can be constructed easily, since the functional module 11 is connectable to the routing module 12 through various configurations. Each developer of the router system can concentrate on developing either the routing module 12 or the functional module 11. It is possible to divide work, e.g. preparing a self-made functional module 11 while making use of an existing routing module 12, which enables immediate development and partial update.
(2) Order of Connection Between Routing Module 12 and Functional Module 11
A router system specifically for a desired use case can be configured by designating the connection of the functional module 11 from before, during, or after routing. The following indicates use case examples.
pre-routing: routing is performed after execution of an in-line security inspection such as IDS.
intra-routing: routing is performed with a specific packet encrypted by originally implemented encryption OSS (Open Source Software) such as WireGuard.
post-routing: a packet for a specific destination is unicast copied by the OpenFlow switch.
(3) OpenFlow Switch Module
A flexible packet operation is enabled by matching through 5-tuple and actions through duplication, discard, and rewriting for a case where an action is aimed to be executed on a packet that matches specific rules during routing.
The present disclosure is applicable to the information communication industry.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/012937 | 3/24/2020 | WO |