WO2023100371A1 - 通信装置、通信方法及びプログラム - Google Patents
通信装置、通信方法及びプログラム Download PDFInfo
- Publication number
- WO2023100371A1 WO2023100371A1 PCT/JP2021/044554 JP2021044554W WO2023100371A1 WO 2023100371 A1 WO2023100371 A1 WO 2023100371A1 JP 2021044554 W JP2021044554 W JP 2021044554W WO 2023100371 A1 WO2023100371 A1 WO 2023100371A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- area
- cpe
- destination
- eid
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims description 61
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 description 34
- 238000012545 processing Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 238000005538 encapsulation Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 description 4
- 238000000136 cloud-point extraction Methods 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 101000652292 Homo sapiens Serotonin N-acetyltransferase Proteins 0.000 description 2
- 102100030547 Serotonin N-acetyltransferase Human genes 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 235000001892 vitamin D2 Nutrition 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Definitions
- the present invention relates to a communication device, communication method and program.
- An "end-to-end overlay network” has been proposed as a technology that can accommodate a large number of IoT devices in a VPN without depending on an access network (Non-Patent Document 1).
- Non-Patent Document 1 As a conventional overlay VPN technology, SD-WAN has been commercialized, but there is a problem in scalability such as the number of VPN tunnels (number of connections) when trying to connect a very large number of IoT devices.
- each IoT device is accommodated in a geographically dispersed area representative router instead of being accommodated directly in the cloud side base, and the location of the VPN tunnel is accommodated. are distributed to improve scalability.
- SRv6 Segment Routing for IPv6
- SID Segment ID
- SRH Segment Routing Header
- area representative routers are assumed to be installed in units called "areas", and areas are considered not only for carriers and types of access networks, but also for geographically divided areas. ing. In addition, there is a performance limit to the number of IoT devices (CPEs) that can be accommodated by a single area representative router. divided into multiple areas).
- CPEs IoT devices
- vCPE is assumed to be implemented as virtual routers such as VMs and containers, it is not economical to continuously consume many computing resources even though the amount of traffic is small.
- the present invention has been made in view of the above points, and aims to improve the economic efficiency when aggregating overlay networks for each area.
- a communication device that accommodates a computer connected to a LAN in a core network receives a first packet addressed to the computer from one of a plurality of areas.
- a determination unit configured to determine an area to which a transmission source belongs;
- a first transmission unit configured to transmit the second packet to the computer based on a destination of the second packet;
- a second packet configured to encapsulate a response from the computer in a third packet addressed to an IP address of a router representing the area determined by the determination unit, and transmit the third packet; a transmitter;
- FIG. 1 It is a figure which shows the structural example of the communication system in embodiment of this invention. It is a figure which shows the hardware structural example of the computer which functions as vCPE70 in embodiment of this invention. It is a figure which shows the functional structural example of CPE50. It is a figure which shows the functional structural example of vCPE70. It is a figure which shows the functional structural example of an area representative router (AR40). It is a figure which shows the structural example of the routing table 54 of each CPE50. It is a figure which shows the structural example of the routing table of vCPE70. It is a figure which shows the structural example of the connection information table 75 of vCPE70. It is a figure which shows the structural example of the routing table of an area representative router (AR40).
- AR40 area representative router
- FIG. 3 is a diagram showing an example of a functional configuration of a controller 30;
- FIG. 3 is a diagram showing a configuration example of an EID-RLOC database 33;
- FIG. 10 is a sequence diagram for explaining the connection of the CPE 50 (CPE 50-11) to the AR 40 and the registration of the vCPE 70 to the controller 30, which are executed prior to communication.
- FIG. 11 is a sequence diagram for explaining an example of a processing procedure when a packet is transmitted from host 60-11 under CPE 50-11 to host 60-3 under vCPE 70;
- FIG. 4 is a sequence diagram for explaining the flow of communication from a host 60-3 to a host 60-11;
- FIG. 10 is a flow chart for explaining an example of a processing procedure executed when the area to which CPE 50-11 belongs is changed;
- FIG. 10 is a flow chart for explaining an example of a processing procedure executed when the area to which CPE 50-11 belongs is changed;
- FIG. 10 is a diagram showing an example of changes in each routing table when the area to which CPE 50-11 belongs is changed;
- FIG. 4 is a diagram for explaining scale-in/scale-out of vCPE 70;
- one vCPE (virtualized CPE) can accommodate traffic in a plurality of areas.
- multiple IP addresses are allocated for each area to one vCPE.
- CPE Customer Premises Equipment
- RLOC Routing Locator
- a vCPE that receives a packet from a CPE identifies the area of the packet by the RLOC of the destination and stores the relationship between the connection and the area.
- Non-Patent Document 1 the number of tunnels held by the vCPE, which was one to a specific area representative router, increases to the number of tunnels for the number of areas accommodated by that vCPE, but the area Assuming that the number is about several tens to 100, it is considered that there is no problem in performance.
- the IP address held by the terminal or application of the communication destination is EID (Endpoint ID), and between CPE or vCPE that connects (accommodates) each device or cloud base (data center) to the core network, SRv6 (Segment Routing for IPv6) is used as means for encapsulating and transmitting IP packets.
- EID Endpoint ID
- SRv6 Segment Routing for IPv6
- the core network only needs to support IPv6.
- the encapsulation protocol between CPEs or vCPEs is not limited to SRv6, and may be substituted by other means capable of encapsulating IP packets.
- FIG. 1 is a diagram showing a configuration example of a communication system according to an embodiment of the present invention.
- a plurality of devices 10 (device 10-11, device 10-12, device 10-21) and data center 20 are connected to core network N1.
- Each device 10 is connected to the core network N1 via the CPE 50, which is a terminal device.
- the LAN in the data center 20 is connected (accommodated) to the core network N1 via the vCPE 70, which is a virtual terminal device.
- a host 60 that is a computer belongs to each of the CPE 50 and the vCPE 70 , and each host 60 is connected to the LAN inside the device 10 or inside the data center 20 .
- the CPE 50 of each device 10 belongs to an area and is connected via an SRv6 tunnel to the AR 40, which is the area representative router that controls that area. Also, the controller 30 is arranged at a location accessible from the CPE 50 via the core network N1.
- character strings indicating the IP address of each device and host 60 are shown in parentheses.
- a character string beginning with "IP” is an IP address (RLOC) of CPE 50, vCPE 70 or AR 40, and is an address reachable via core network N1. Communications via the core network N1 are encapsulated with this IP address.
- a character string beginning with "EID” is an IP address assigned to the host 60 or application existing within the LAN under the control of the CPE 50 or vCPE 70.
- FIG. The EID is permanently assigned and does not change even if the device 10 moves or the connected network changes (that is, does not depend on the location of the device 10). Applications can always continue to communicate with this EID. In this embodiment, communication is performed between the host 60, which is the computer on the device 10 side, and the host 60-3, which is the computer on the data center 20 side.
- FIG. 2 is a diagram showing a hardware configuration example of a computer functioning as vCPE 70 in the embodiment of the present invention.
- a computer functioning as the vCPE 70 has a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, etc., which are interconnected via a bus B, respectively.
- a program that implements processing by the computer is provided by a recording medium 101 such as a CD-ROM.
- the recording medium 101 storing the program is set in the drive device 100 , the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100 .
- the program does not necessarily need to be installed from the recording medium 101, and may be downloaded from another computer via the network.
- the auxiliary storage device 102 stores installed programs, as well as necessary files and data.
- the memory device 103 reads and stores the program from the auxiliary storage device 102 when a program activation instruction is received.
- the CPU 104 executes functions related to the computer according to programs stored in the memory device 103 .
- the interface device 105 is used as an interface for connecting to a network.
- the device 10, the controller 30, the AR 40, etc. may also have the same hardware configuration as in FIG.
- FIG. 3 is a diagram showing a functional configuration example of the CPE 50.
- CPE 50 has forwarding section 51 , RLOC resolution section 52 and CPE registration section 53 . Each of these units is realized by processing that one or more programs installed in the device 10 cause the CPU of the device 10 to execute.
- CPE 50 also utilizes routing table 54 .
- the routing table 54 can be implemented using, for example, the memory device or auxiliary storage device of the device 10 .
- the forwarding unit 51 encapsulates a packet from the host 60 under its own CPE 50 to the data center 20 and sends it to the core network N1, and forwards the encapsulated packet from the data center 20 or the like to the host 60 under its own CPE 50 to the core. When received from the network N1, it decapsulates the packet and delivers the decapsulated packet to the host 60.
- the routing table 54 is a storage unit that holds a routing table required when the forwarding unit 51 executes packet transfer, packet encapsulation, and packet decapsulation. A specific example of the routing table 54 will be described later.
- the RLOC resolution unit 52 resolves the RLOC corresponding to the destination EID if the RLOC corresponding to the destination EID is not registered in the routing table 54 when the forwarding unit 51 sends out the packet. Specifically, when the RLOC resolution unit 52 inquires of the controller 30 about the RLOC corresponding to the destination EID, and acquires the RLOC as a response, the RLOC resolution unit 52 stores the correspondence relationship between the destination EID and the RLOC in the routing table 54 (the destination EID and Correspondence information with the relevant RLOC) is registered.
- the CPE registration unit 53 When the CPE 50 is activated, the CPE registration unit 53 notifies the predesignated area representative router (AR 40) of the IP address (RLOC) of the CPE 50 itself and the subordinate EID.
- the CPE registration unit 53 also receives the area ID from the AR 40 as a response to the notification of the RLOC and EID, and also enables the routing table 54 to receive the encapsulated packet from the AR 40 (decapsulation is possible). register information for Note that the area ID is identification information of an area.
- the CPE 50 itself notifies the AR 40 of the RLOC and EID directly, but it may also notify the AR 40 via a controller or the like that manages the AR 40 .
- FIG. 4 is a diagram showing a functional configuration example of the vCPE 70.
- the vCPE 70 has a forwarding section 71 and a registration section 72 . Each of these units is implemented by processing that one or more programs installed in the computer functioning as the vCPE 70 cause the CPU 104 to execute.
- the vCPE 70 also utilizes a global routing table 73 , a per-area routing table 74 and a connection information table 75 . Each of these tables can be implemented using, for example, the memory device 103 or the auxiliary storage device 102 or the like.
- the forwarding unit 71 decapsulates the SRv6-encapsulated packet transmitted by the CPE 50 and transmits (transfers) it to the LAN within the data center 20 .
- the forwarding unit 71 also encapsulates a packet received from the host 60v connected to the LAN within the data center 20 and transmits (transfers) it to the appropriate AR 40 .
- the registration unit 72 When the vCPE 70 is activated, the registration unit 72 notifies the controller 30 of the IP address (RLOC) for each area assigned to the vCPE 70 and the EID under the vCPE 70 .
- RLOC IP address
- the global routing table 73 is a routing table that holds route information necessary for the vCPE 70 to communicate with the core network N1.
- the area-specific routing table 74 is a routing table that holds route information for encapsulating a packet transmitted from an application within the LAN of the data center 20 and transmitting it to an appropriate AR 40, and is defined for each area. The specific configuration of each will be described later.
- the connection information table 75 is a table for determining the connection of a packet sent from an application under the control of the CPE 50 and temporarily holding the correspondence information between the connection and the area only while the communication related to the connection continues. is.
- the source EID and the destination EID are used to determine the connection, but information such as 5 tuples including TCP or UDP port numbers may be used.
- FIG. 5 is a diagram showing a functional configuration example of the area representative router (AR40).
- AR 40 has forwarding section 41 and CPE connection section 42 . Each of these units is implemented by one or more programs installed in the AR 40 that are executed by the CPU of the AR 40 .
- AR 40 also utilizes routing table 43 .
- the routing table 43 can be implemented using, for example, the memory device or auxiliary storage device of the AR40.
- the forwarding unit 41 decapsulates the packet from the data center 20, searches the routing table 43 using the destination EID of the original IP packet (the EID under the destination CPE 50) as a key, and finds the RLOC of the CPE 50 corresponding to the destination EID. get. After that, the forwarding unit 41 re-encapsulates the original packet with the RLOC and transmits (transfers) the re-encapsulated packet to the destination CPE 50 .
- the AR 40 does not need to be involved in the communication in the direction of the CPE 50 ⁇ vCPE 70 (the direction of the device 10 ⁇ the data center 20), but as a normal router, it plays the role of transferring IPv6 packets encapsulated in SRv6 or the like. good too. In this case, the forwarding unit 41 has a standard IPv6 forwarding function.
- the CPE connection unit 42 executes processing for connecting the CPE 50 when receiving a connection request from the CPE 50 .
- the CPE connection unit 42 receives the IP address (RLOC) and EID of the CPE 50 included in the connection request from the CPE 50, and stores the EID of the CPE 50 in the routing table 43 of its own AR 40 with the corresponding RLOC. Register route information for encapsulation and transmission.
- the CPE connection unit 42 notifies the CPE 50 of the area ID of the area under the jurisdiction of its own AR 40 as a connection response. This enables the forwarding unit 41 to deliver packets transmitted from the cloud side to the destination CPE 50 .
- the controller or the like may receive the connection request from the CPE 50, and the CPE connection unit 42 may receive the connection request from the controller.
- the routing table 43 is a storage unit that holds a routing table necessary when the forwarding unit 41 executes packet transfer, packet encapsulation, and packet decapsulation. A specific example of the routing table 43 will be described later.
- FIG. 6 is a diagram showing a configuration example of the routing table 54 of each CPE 50.
- FIG. FIG. 6 shows a specific example of the routing table 54 for the network configuration example of FIG. Routing table 54-11 is the routing table for CPE 50-11, and routing table 54-12 is the routing table for CPE 50-12.
- the routing table 54 of each CPE 50 consists of destination addresses (destination prefixes) and corresponding processing details.
- the forwarding unit 51 searches the routing table 54 using the destination address of the received IP packet as a key, and executes the processing described in the record. A specific description will be given based on an example of the routing table 54-11 of the CPE 50-11.
- "EID#3" in the destination column is an address used by the cloud-side host 60 or application.
- Encap (IP#31)” is executed.
- "Encap (IP#31)” indicates that the destination IP address is IP#31, and the packet is encapsulated in SRv6 and sent. That is, the forwarding unit 51 encapsulates the packet received by the CPE 50-11 from the host 60 under its control with IP#31, which is one of the RLOCs of the vCPE 70 that has reachability within the core network N1, and sends the packet. .
- the routing table 54 of the CPE 50 holds such a record for each host 60 on the cloud side with which it communicates.
- the routing table 54-21 of the CPE 50-21 is almost the same as the routing table 54-11 of the CPE 50-11.
- the difference is that
- the vCPE 70 holds a plurality of RLOCs for discriminating areas, and the CPEs 50-21 belonging to the area 2 transmit IP#32, which is the RLOC of the vCPE 70 for the area 2, as the destination.
- the RLOC of the CPE 50-21 is IP#21 and the subordinate EID is EID#21, so the "destination" of the third and fourth records differs from the routing table 54-11 of the CPE 50-11.
- FIG. 7 is a diagram showing a configuration example of the routing table of the vCPE 70.
- FIG. FIG. 7 shows a specific example of the routing table of the vCPE 70 connecting the LAN in the data center 20 of FIG. 1 to the core network N1.
- the vCPE 70 accommodates a plurality of areas, but holds a different RLOC for each area for identification purposes.
- IP#31 is the RLOC for area 1
- IP#32 is the RLOC for area 2.
- the global routing table 73 of the vCPE 70 holds route information required when the vCPE 70 communicates with the core network N1.
- the record "Destination IP #31, "Processing Decap->Lookup" is addressed to IP #31, that is, when receiving a packet addressed to vCPE70 (for area 1), decapsulate (Decap) and Indicates the meaning of searching the routing table. That is, the record is a record for decapsulating the SRv6 packet sent by the CPE 50 to the vCPE 70 .
- the same applies to the record of "destination IP#32", but as described above, IP#32 and IP#31 have different corresponding areas, so they are described separately as route information.
- the contents of the processing are the same as those for the area 1 .
- This record is a packet addressed to the host 60-3 (that is, addressed to EID #3) within the LAN of the data center 20 under the vCPE 70 at the time of re-searching Decap->Lookup, which is the processing of the first record or the second record. It is a record to enable direct delivery of
- the area-by-area routing table 74 of the vCPE 70 is a routing table that is referred to when the vCPE 70 receives a packet from the host 60-3 within the LAN of the data center 20 (a packet reply from the CPE 50).
- the area-by-area routing table 74 is divided for each area accommodated by the vCPE 70, and an appropriate table is referenced when the vCPE 70 transmits to the area representative router (AR 40). The mechanism for determining which table is referenced is described below.
- Each area routing table 74 contains only one default route record (one route).
- the processing column differs for each area.
- the IP address (IP#A1) of AR40-1 which is the area representative router of area 1
- the IP address (IP#A2) of AR40-2 which is the area representative router of area 2
- IP#A2 the IP address of AR40-2
- FIG. 8 is a diagram showing a configuration example of the connection information table 75 of the vCPE 70.
- Each record of the connection information table 75 includes a source EID, a destination EID, and an area ID.
- the source EID and destination EID are information for identifying the connection of the packet.
- a connection indicates the correspondence between a packet sent from an application under the CPE 50 and a reply packet from an application under the vCPE 70 that responds to the packet. Identified in combination. However, the connection may be identified using other identifiers in the packet header such as the port number and protocol identifier, or a combination of these may be used to identify the connection.
- the area ID is information indicating to which area the connection identified by the pair of source EID and destination EID corresponds to transmission from the CPE 50 belonging to.
- the vCPE 70 holds a different RLOC for each area, but when the vCPE 70 receives the SRv6 packet from the CPE 50, the destination IP address of the SRv6 header before decapsulation, that is, IP#31 or IP#32
- the area is identified using an RLOC such as .
- packets sent to IP#31 are identified as packets from area 1
- packets sent to IP#32 are identified as packets from area 2.
- FIG. 9 is a diagram showing a configuration example of the routing table 43 of the area representative router (AR40). A specific description will be given by taking the routing table 43-1 of the AR 40-1 as an example.
- FIG. 10 is a diagram showing a functional configuration example of the controller 30.
- the controller 30 has a CPE inquiry unit 31 and a CPE registration/update unit 32 . Each of these units is realized by one or more programs installed in the controller 30 causing the CPU of the controller 30 to execute the process.
- Controller 30 also utilizes EID-RLOC database 33 . It can be implemented using the EID-RLOC database 33, for example, the memory device of the controller 30 or an auxiliary storage device.
- the EID-RLOC database 33 is a storage unit that stores the correspondence between the EID assigned under the CPE 50 or vCPE 70 and the RLOC currently assigned to the CPE 50 or vCPE 70 . In this embodiment, only the correspondence relationship between the EID of the vCPE 70 and the RLOC is registered in the EID-RLOC database 33 . The configuration of the EID-RLOC database 33 will be described later.
- the CPE inquiry unit 31 searches the EID-RLOC database 33 in response to an inquiry about the RLOC corresponding to the EID from the CPE 50, and responds with the RLOC corresponding to the EID.
- An area ID is registered in each entry of the EID-RLOC database 33, and the CPE inquiry unit 31 replies with the RLOC of the area to which the inquiring CPE 50 belongs.
- the CPE registration/update unit 32 newly registers or updates the EID-RLOC correspondence registered in the EID-RLOC database 33 . Specifically, the CPE registration/update unit 32 newly adds a record to the EID-RLOC database 33 when the vCPE 70 is newly connected to the network.
- FIG. 11 is a diagram showing a configuration example of the EID-RLOC database 33.
- the EID-RLOC database 33 holds the area ID of the area to which each RLOC corresponds, in addition to the correspondence between the EID of the vCPE 70 and the RLOC.
- FIG. 11 shows an example of the EID-RLOC database 33 corresponding to FIG.
- the EID-RLOC database 33 holds only the information of the vCPE 70, but since one vCPE 70 holds different RLOCs for each area, a plurality of A record exists in the EID-RLOC database 33 .
- FIG. If the vCPE 70 accommodates more areas, records with different RLOCs and area IDs will be added for the same EID.
- the EID-RLOC correspondence of the CPE 50 (CPE 50-11, CPE 50-12, CPE 50-21 in FIG. 1) on the device 10 side is held in the routing table 43 (FIG. 9) of the area representative router (AR 40). Therefore, it is not held in the EID-RLOC database 33.
- FIG. 12 is a sequence diagram for explaining the connection of the CPE 50 (CPE 50-11) to the AR 40 and the registration of the vCPE 70 to the controller 30, which are executed prior to communication.
- the CPE registration unit 53 of the CPE 50-11 sends the CPE to the nearest AR 40 (AR 40-1 in this case) (the area to which the CPE 50-11 belongs).
- a connection request is transmitted (S11).
- the CPE connection request includes an EID (EID#11) assigned under the CPE 50-11 and an RLOC (IP#11) given by the network.
- EID#11 assigned under the CPE 50-11
- IP#11 RLOC
- the RLOC of the CPE 50-11 is a global IP address issued from the network to which the CPE 50-11 is connected. Also, it is assumed that the EID under the CPE 50 is set in the CPE 50 in advance.
- the CPE registration unit 53 of the CPE 50-11 receives the CPE connection response
- the CPE 50-11 recognizes that the area ID to which it belongs is #1.
- the CPE registration request includes, for each area accommodated by the vCPE 70, the EID (EID#3) under the vCPE 70, the RLOC corresponding to the area in the vCPE 70, and the area ID of the area.
- the RLOC of the vCPE 70 is also assumed to be a global IP address like the RLOC of the CPE 50-11.
- Various methods are conceivable for assigning IP addresses in a cloud environment, but this embodiment does not depend on the assigning method. As a result, a global IP address that can be reached from the outside should be assigned to the vCPE 70 .
- FIG. 13 is a sequence diagram for explaining an example of a processing procedure when a packet is transmitted from host 60-11 under CPE 50-11 to host 60-3 under vCPE 70.
- FIG. 13 is a sequence diagram for explaining an example of a processing procedure when a packet is transmitted from host 60-11 under CPE 50-11 to host 60-3 under vCPE 70.
- the host 60-11 transmits a packet to the host 60-3 (S31).
- the host 60-11 recognizes EID#11, which is its own EID, as its own IP address and assigns it to the source address of the packet (represented as SA in FIG. 13), and the EID# of the host 60-3. 3 is recognized as the IP address of the host 60-3 and assigned to the destination address of the packet (denoted as DA in FIG. 13).
- the hosts 60-11 and 60-3 operate by recognizing the EID as it is as an IP address. Therefore, each host 60 may operate as a normal IP host, and functions specific to this embodiment are unnecessary.
- the RLOC resolution unit 52 sends the RLOC to the controller 30 because the destination EID of the packet is not described in the routing table 54-11.
- a resolution request is sent (S32).
- the RLOC resolution request contains EID#3, which is the destination address of the packet received from the host 60-11, and #1, which is the area ID to which the CPE 50-11 belongs.
- FIG. 14 is a sequence diagram for explaining the communication flow from the host 60-3 to the host 60-11. This communication is a reply to the communication from the host 60-11 to the host 60-3 in FIG.
- step S41 the host 60-3 transmits a packet (hereinafter referred to as "target packet") to the host 60-11 (S41).
- target packet a packet
- the destination address of the target packet is set to EID#11, which is the EID of host 60-11
- the source address of the target packet is set to EID#3, which is the EID of host 60-3.
- the forwarding unit 71 of the vCPE 70 When the forwarding unit 71 of the vCPE 70 receives the target packet from the host 60-3, it first refers to the connection information table 75 (FIG. 8) of its own vCPE 70 to determine whether the target packet is a packet from the host 60-3 to the host 60-11. area ID of the target packet (S42). Specifically, the forwarding unit 71 matches the (destination EID, source address) obtained by replacing the destination and the source in the connection information table 75 with the pair of (source address, destination address) of the target packet. Search for records. In this case, the destination address of the target packet is EID#11, and the source address is EID#3. #3 matches. Since the area ID of this record is area 1, it is known that the target packet should be transmitted to area 1.
- IP#A1 the forwarding unit 71 encapsulates the target packet with SRv6, sets the destination address to IP#A1, and transmits the encapsulated target packet to the AR 40-1 (S44).
- the forwarding unit 51 directly delivers the target packet to EID#11, that is, to the host 60-11 (S48). As a result, host 60-11 receives the target packet.
- FIGS. 15 to 17 show sequence diagrams
- FIG. 17 shows changes in the routing table of CPE 50-11 and routing tables of AR 40-1 and AR 40-2.
- CPE50-11 device 10-11 having CPE50-11
- CPE50-11 reconnects to the access network. That is, the RLOC of CPE50-11 is changed (S51).
- this record when a packet is sent from the AR 40 to the CPE 50-11, if it is addressed to itself (to the RLOC of the CPE 50-11), it is decapsulated and the routing table 54-11 is searched again. It is for doing
- the CPE registration unit 53 transmits a CPE connection request to the nearest AR 40 (AR 40-2 in this case) (S52).
- the EID remains unchanged from before the move, but the RLOC becomes IP#22, which is the newly assigned IP address, as described above.
- the CPE connection unit 42 of the AR 40-2 when successfully registered in the routing table 43-2, transmits a CPE registration response to the CPE 50-11 (S54).
- CPE connection 42 is deleted.
- timeout may be performed (if a specific entry in the routing table 43-1 is not referenced for a certain period of time, it will be deleted); -11 or AR 40-2 or the like explicitly notifies AR 40-1 of the completion of the movement of CPE 50-11, and CPE connection unit 42 of CPE 50-11 creates routing table 43-1 of AR 40-1. You may delete information that is no longer needed in
- the host 60-11 transmits a packet to the host 60-3 (S55).
- the RLOC resolution unit 52 of the CPE 50-11 issues an RLOC resolution request to the controller 30 in order to acquire the RLOC corresponding to EID#3, which is the destination address of the packet.
- the CPE inquiry unit 31 of the controller 30 Upon receiving the RLOC resolution request, the CPE inquiry unit 31 of the controller 30 searches the EID-RLOC database 33 using the EID (EID#3) and area ID (#2) included in the RLOC resolution request as keys (S57). .
- EID-RLOC database 33 (FIG. 11)
- the vCPE 70 receives packets with different destination addresses after being encapsulated depending on the area to which the CPE 50 belongs. Become.
- step S64 the host 60-3 sends a packet to the host 60-11 (S64).
- FIG. 18 shows an example in which the vCPE 70 of the data center 20 is scaled out and the data center 20 has two vCPEs 70, vCPE 70-1 and vCPE 70-2. 18 shows the contents of the EID-RLOC database 33 of the controller 30 in this state.
- Two of 33 are returned.
- the controller 30 selects one of the records by round-robin or randomly, and returns the RLOC of the record to the CPE 50 as an RLOC solution response.
- a method of managing the vCPE 70 and the host 60 in correspondence that is, a method in which the host 60-31 provides services to the vCPE 70-1 and the host 60-32 provides services to the vCPE 70-2. Solvable.
- a method of performing SNAT (Source NAT) using the LAN-side address of the vCPE 70 when sending packets from the vCPE 70 to the host 60 is also conceivable.
- SNAT Source NAT
- the vCPE 70 that received this packet refers to the "SID that identifies the area of the CPE 50" attached to the end of the SID List, determines the area to which the CPE 50 that is the source of this packet belongs, Add connection information to the connection information table 75 . By doing so, the vCPE 70 can determine the area to which the CPE 50 belongs even in an environment where only a single IP address is assigned.
- a single vCPE 70 can process packets from a plurality of areas, thus solving the problem of requiring vCPE 70 for the number of areas regardless of the amount of traffic. can do.
- the vCPE 70 can be flexibly scaled out and scaled in according to increases and decreases in traffic demand, and the computing resources allocated to the vCPE 70 can be used only when necessary without wasting them. become. That is, it is possible to improve the economic efficiency when the overlay network is aggregated for each area.
- the computer functioning as the vCPE 70 is an example of a communication device.
- the forwarding unit 71 is an example of a determination unit, a first transmission unit, and a second transmission unit.
- the connection information table 75 is an example of a storage unit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
LANに接続するコンピュータをコアネットワークへ収容する通信装置は、複数のエリアのうちのいずれかのエリアからの前記コンピュータを宛先とする第1のパケットが当該通信装置に対してエリア別に割り当てられた複数のIPアドレスのうちのいずれかのIPアドレスを宛先としてカプセル化された第2のパケットを受信すると、前記第2のパケットの宛先に基づいて前記第1のパケットの送信元が属するエリアを判別するように構成された判別部と、前記第2のパケットの宛先に基づいて前記第2のパケットを前記コンピュータへ送信するように構成された第1の送信部と、前記コンピュータからの応答を、前記判別部が判別したエリアを代表するルータのIPアドレスを宛先とする第3のパケットでカプセル化して、前記第3のパケットを送信するように構成された第2の送信部と、を有することで、オーバーレイネットワークをエリアごとに集約する際の経済性を向上させる。
Description
本発明は、通信装置、通信方法及びプログラムに関する。
多数のIoTデバイスを、アクセス網に依存することなくVPNに収容できる技術として、「End-to-Endオーバーレイネットワーク」が提案されている(非特許文献1)。従来のオーバーレイによるVPN技術としてはSD-WANが商用化されているが、非常に多数のIoTデバイスを接続しようとすると、VPNのトンネル数(接続数)等のスケーラビリティに課題がある。「End-to-Endオーバーレイネットワーク」では、各IoTデバイスを直接クラウド側の拠点に収容するのではなく、地理的に分散されたエリア代表ルータに各IoTデバイスを収容して、VPNトンネルの収容箇所を分散させることで、スケーラビリティの向上を図っている。
IoTデバイスとクラウドを接続するIoTサービスの基本的な構成を想定し、これら(IoTデバイスとクラウド)をVPNで接続しようとすると、IoTデバイス側の終端装置(CPE:Customer Premises Equipment)と、クラウド側の終端装置(vCPE)の間でVPNトンネルを確立することになる。クラウドに接続されるIoTデバイスの数が非常に多い場合、クラウド側の終端装置であるvCPEは、IoTデバイス側の多数のCPEからのVPNトンネルを終端する必要があるため、性能的にボトルネックとなる可能性が高い。これに対して、「End-to-Endオーバーレイネットワーク」では、複数のエリア代表ルータを配置し、このエリア代表ルータが自らの対応エリアに属するIoTデバイス側のCPEからのトンネルを終端、エリア代表ルータとクラウド側のvCPE(クラウド)と間のトンネルを集約することで、vCPEのトンネル数の問題を解決する。
一方、前述の「End-to-Endオーバーレイネットワーク」では、VPNトンネルを実現する技術としてSRv6(Segment Routing for IPv6)を利用している(非特許文献2)。SRv6は、IPv6の拡張ヘッダとして定義されるSRH(Segment Routing Header)に、パケットを経由させたい経路をSID(Segment ID)Listとして列挙することで、ソースルーティングを実現する技術である。また、SRv6では、SIDとして、パケットを経由するノードのIPアドレスだけでなく、パケットを受信したノードでの処理を記述することができる。これはネットワークプログラミングと呼ばれている(非特許文献3)。前述の「End-to-Endオーバーレイネットワーク」では、SRv6技術を活用することで、網内で保持するステートを軽減しつつ、端点でネットワークプログラミングの機能を活用することで、テナント毎(ユーザ毎)のルーティングを分離してVPNを実現している。
鋒他、「End-to-Endオーバーレイネットワークに関する一検討」、電子情報通信学会、ソサイエティ大会B7-1、2021年9月
"Segment Routing Architecture"、IETF RFC8402、[online]、インターネット<URL:https://tools.ietf.org/html/rfc8402>
"Segment Routing over IPv6 (SRv6) Network Programming"、IETF RFC8986、[online]、インターネット<URL:https://tools.ietf.org/html/rfc8986>
非特許文献1で提案されている「End-to-Endオーバーレイネットワーク」では、クラウド側の終端装置であるvCPEとエリア代表ルータ間のトンネルを集約することで、vCPEが保持するトンネル数を、IoTデバイス数に依存しないようにしている。これにより、vCPEの負荷軽減が図られている。クラウド側からIoTデバイスへの通信は、エリア代表ルータを経由することになるが、クラウド側ではvCPEとエリア代表ルータを1対1の関係とすることで、vCPE~エリア代表ルータ間のトンネルを1本に集約している。
一方、エリア代表ルータは、「エリア」と呼ばれる単位で設置されることが想定されており、エリアは、アクセス網のキャリアや種類に加えて、地理的に分割された領域での適用も考慮されている。また、1台のエリア代表ルータで収容できるIoTデバイス数(CPE数)には性能上の限界があるため、非常に多数のIoTデバイスが接続されるシステムでは、多数のエリア代表ルータを配置(つまり多数のエリアに分割)する必要がある。
そのため、日本全国のような広域で「End-to-Endオーバーレイネットワーク」を適用しようとすると、エリアの数は数十~100以上となることも想定される。この場合、エリア代表ルータと1対1で設置されるvCPEも数十~100以上必要となる。サービス開始時や深夜又は早朝などトラフィックが極めて少ない時間帯においても、エリア数分のvCPEを起動しておく必要がある。vCPEはVMやコンテナといった仮想的なルータとして実装されることが想定されるが、トラフィック量が少ないにもかかわらず、多くのコンピューティングリソースが継続的に消費されるのは経済的ではない。
本発明は、上記の点に鑑みてなされたものであって、オーバーレイネットワークをエリアごとに集約する際の経済性を向上させることを目的とする。
そこで上記課題を解決するため、LANに接続するコンピュータをコアネットワークへ収容する通信装置は、複数のエリアのうちのいずれかのエリアからの前記コンピュータを宛先とする第1のパケットが当該通信装置に対してエリア別に割り当てられた複数のIPアドレスのうちのいずれかのIPアドレスを宛先としてカプセル化された第2のパケットを受信すると、前記第2のパケットの宛先に基づいて前記第1のパケットの送信元が属するエリアを判別するように構成された判別部と、前記第2のパケットの宛先に基づいて前記第2のパケットを前記コンピュータへ送信するように構成された第1の送信部と、前記コンピュータからの応答を、前記判別部が判別したエリアを代表するルータのIPアドレスを宛先とする第3のパケットでカプセル化して、前記第3のパケットを送信するように構成された第2の送信部と、を有する。
オーバーレイネットワークをエリアごとに集約する際の経済性を向上させることができる。
以下、図面に基づいて本発明の実施の形態を説明する。
[本実施の形態の概要]
本実施の形態では、1つのvCPE(virtualized CPE)で複数のエリアのトラフィックを収容可能とする。
本実施の形態では、1つのvCPE(virtualized CPE)で複数のエリアのトラフィックを収容可能とする。
具体的には、1つのvCPEに対してエリア別に複数のIPアドレス(RLOC:Routing Locator)が割り当てられる。IoTデバイス側のCPE(Customer Premises Equipment)からクラウド側のvCPEにパケットを送信する際に、CPEが所属するエリア毎に、SRv6でカプセル化した当該パケットの宛先アドレス(RLOC)を変えることで、当該パケットを受信したvCPEが、どのエリアからのパケットかを判別できるようにする。CPEからのパケットを受信したvCPEは、宛先のRLOCによりパケットのエリアを識別し、コネクションとエリアの関係を記憶しておく。これにより、vCPEがクラウド内のアプリケーションからのリプライパケットを受信した際に、どのエリアに送信されるべきパケットであるのかをvCPEが判断できるようにし、そのエリアを担当するエリア代表ルータへ転送できるようにする。
これにより、1台のvCPEで複数のエリアのパケットを送受信できるようになり、トラフィック量に応じたvCPEのスケールイン/スケールアウトが可能となる。一方、非特許文献1に対して、vCPEが保持するトンネル数は、特定のエリア代表ルータへの1本であったものが、そのvCPEで収容するエリア数分のトンネル数に増加するが、エリア数が数十~100程度を想定すれば、性能に問題のない範囲であると考えられる。
[本実施の形態のシステム構成]
本実施の形態では、通信先の端末やアプリケーションが保持するIPアドレスをEID(Endpoint ID)とし、各デバイスやクラウドの拠点(データセンタ)をコアネットワークに接続(収容)するCPE又はvCPE間で、IPパケットをカプセル化して送信する手段としてSRv6(Segment Routing for IPv6)を利用することとする。コアネットワークは、IPv6に対応していればよい。ただし、CPE又はvCPE間でカプセル化するプロトコルはSRv6に限定されず、IPパケットをカプセル化できる他の手段によって代用されてもよい。
本実施の形態では、通信先の端末やアプリケーションが保持するIPアドレスをEID(Endpoint ID)とし、各デバイスやクラウドの拠点(データセンタ)をコアネットワークに接続(収容)するCPE又はvCPE間で、IPパケットをカプセル化して送信する手段としてSRv6(Segment Routing for IPv6)を利用することとする。コアネットワークは、IPv6に対応していればよい。ただし、CPE又はvCPE間でカプセル化するプロトコルはSRv6に限定されず、IPパケットをカプセル化できる他の手段によって代用されてもよい。
図1は、本発明の実施の形態における通信システムの構成例を示す図である。図1において、複数のデバイス10(デバイス10-11、デバイス10-12、デバイス10-21)やデータセンタ20は、コアネットワークN1に接続さる。各デバイス10は終端装置であるCPE50を介してコアネットワークN1に接続される。データセンタ20内のLANは仮想終端装置であるvCPE70を介して、コアネットワークN1に接続(収容)される。CPE50及びvCPE70のそれぞれの配下には、コンピュータであるホスト60が属し、各ホスト60は、デバイス10内又はデータセンタ20内のLANに接続する。
各デバイス10のCPE50は、いずれかのエリアに所属し、そのエリアを管轄するエリア代表ルータであるAR40に対して、SRv6トンネルを介して接続される。また、CPE50からコアネットワークN1を介してアクセスできる場所にコントローラ30が配置される。
図1には、各装置やホスト60のIPアドレスを示す文字列が括弧内に示されている。"IP"で始まる文字列は、CPE50、vCPE70又はAR40のIPアドレス(RLOC)であり、コアネットワークN1を介して到達性の有るアドレスである。コアネットワークN1を介した通信は、このIPアドレスでカプセル化される。一方、"EID"で始まる文字列は、CPE50又はvCPE70配下のLAN内に存在するホスト60やアプリケーションに付与されたIPアドレスである。EIDは固定的に付与され、デバイス10が移動したり、接続するネットワークが変更になったりしても、変化しない(すなわち、デバイス10の位置に依存しない)。アプリケーションは、常に、このEIDで通信をし続けることができる。なお、本実施の形態では、デバイス10側のコンピュータであるホスト60とデータセンタ20側のコンピュータであるホスト60-3との間で通信が行われる。
[デバイス10等のハードウェア構成]
図2は、本発明の実施の形態においてvCPE70として機能するコンピュータのハードウェア構成例を示す図である。vCPE70として機能するコンピュータは、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
図2は、本発明の実施の形態においてvCPE70として機能するコンピュータのハードウェア構成例を示す図である。vCPE70として機能するコンピュータは、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
当該コンピュータでの処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って当該コンピュータに係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、デバイス10、コントローラ30及びAR40等も、図2と同様のハードウェア構成を有してもよい。
[各装置の機能構成]
図3は、CPE50の機能構成例を示す図である。図3において、CPE50は、フォワーディング部51、RLOC解決部52及びCPE登録部53を有する。これら各部は、デバイス10にインストールされた1以上のプログラムが、デバイス10のCPUに実行させる処理により実現される。CPE50は、また、ルーティングテーブル54を利用する。ルーティングテーブル54は、例えば、デバイス10のメモリ装置又は補助記憶装置等を用いて実現可能である。
図3は、CPE50の機能構成例を示す図である。図3において、CPE50は、フォワーディング部51、RLOC解決部52及びCPE登録部53を有する。これら各部は、デバイス10にインストールされた1以上のプログラムが、デバイス10のCPUに実行させる処理により実現される。CPE50は、また、ルーティングテーブル54を利用する。ルーティングテーブル54は、例えば、デバイス10のメモリ装置又は補助記憶装置等を用いて実現可能である。
フォワーディング部51は、自CPE50配下のホスト60からデータセンタ20へのパケットをカプセル化してコアネットワークN1へ送出すると共に、データセンタ20等から自CPE50配下のホスト60へのカプセル化されたパケットをコアネットワークN1から受信した際に、当該パケットをデカプセル化して、デカプセル化されたパケットをホスト60へ配送する。本実施の形態では、カプセル化プロトコルとしてSRv6が利用されるため、CPE50のフォワーディング部51はSRv6のカプセル化、デカプセル化を実行することになる。
ルーティングテーブル54は、パケットの転送、パケットのカプセル化、パケットのデカプセル化をフォワーディング部51が実行する際に必要な経路表を保持する記憶部である。ルーティングテーブル54の具体例は後述する。
RLOC解決部52は、フォワーディング部51がパケットを送出する際に、宛先EIDに対応するRLOCがルーティングテーブル54に登録されていなかった場合に、宛先EIDに対応するRLOCを解決する。具体的には、RLOC解決部52は、コントローラ30に対して、宛先EIDに対応するRLOCを問い合わせ、その応答としてRLOCを取得したら、ルーティングテーブル54に宛先EID-RLOCの対応関係(当該宛先EIDと当該RLOCとの対応情報)を登録する。
CPE登録部53は、CPE50が起動された際に、予め指定されたエリア代表ルータ(AR40)に対して、CPE50自身のIPアドレス(RLOC)と配下のEIDを通知する。CPE登録部53は、また、RLOC及びEIDの通知に対する応答として、エリアIDをAR40から受け取るとともに、ルーティングテーブル54に対して、AR40からのカプセル化されたパケットを受け取れるようにする(デカプセル化できるようにする)ための情報を登録する。なお、エリアIDとは、エリアの識別情報である。
本実施形態では、CPE50自身が直接AR40に対してRLOC及びEIDを通知する形態としているが、AR40を管理するコントローラ等を経由してAR40に通知するようにしてもよい。
図4は、vCPE70の機能構成例を示す図である。図4において、vCPE70は、フォワーディング部71及び登録部72を有する。これら各部は、vCPE70として機能するコンピュータにインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。vCPE70は、また、グローバルルーティングテーブル73、エリア別ルーティングテーブル74及びコネクション情報テーブル75を利用する。これら各テーブルは、例えば、メモリ装置103又は補助記憶装置102等を用いて実現可能である。
フォワーディング部71は、CPE50が送信した、SRv6でカプセル化されたパケットをデカプセル化して、データセンタ20内のLANに送信(転送)する。フォワーディング部71は、また、データセンタ20内のLANに接続するホスト60vから受信したパケットをカプセル化して、適切なAR40に送信(転送)する。
登録部72は、vCPE70が起動された際に、vCPE70に割り当てられたエリアごとのIPアドレス(RLOC)と、vCPE70の配下のEIDとをコントローラ30へ通知する。
グローバルルーティングテーブル73は、vCPE70がコアネットワークN1と通信するために必要な経路情報を保持するルーティングテーブルである。エリア別ルーティングテーブル74は、データセンタ20のLAN内のアプリケーションから送信されるパケットをカプセル化して、適切なAR40へ送信するための経路情報を保持するルーティングテーブルであり、エリアごとに定義される。いずれも具体的な構成は後述する。
コネクション情報テーブル75は、CPE50配下のアプリケーションから送信されたパケットのコネクションを判別し、当該コネクションに係る通信が継続している間だけ一時的にコネクションとエリアの対応情報を保持しておくためのテーブルである。本実施の形態では、コネクションの判別には、送信元EID及び宛先EIDが用いられるが、TCPやUDPのポート番号等を含む5tuple等の情報が利用されてもよい。
図5は、エリア代表ルータ(AR40)の機能構成例を示す図である。図5において、AR40は、フォワーディング部41及びCPE接続部42を有する。これら各部は、AR40にインストールされた1以上のプログラムが、AR40のCPUに実行させる処理により実現される。AR40は、また、ルーティングテーブル43を利用する。ルーティングテーブル43は、例えば、AR40のメモリ装置又は補助記憶装置等を用いて実現可能である。
フォワーディング部41は、データセンタ20からのパケットをデカプセル化して、元のIPパケットの宛先EID(宛先のCPE50配下のEID)をキーとしてルーティングテーブル43を検索し、宛先EIDに対応するCPE50のRLOCを取得する。その後、フォワーディング部41は、当該RLOCで元のパケットを再カプセル化して、再カプセル化されたパケットを宛先のCPE50に送信(転送)する。なお、AR40は、CPE50→vCPE70方向(デバイス10→データセンタ20方向)の通信には関与しなくてよいが、通常のルータとして、SRv6等でカプセル化されたIPv6パケットを転送する役割を担ってもよい。この場合、フォワーディング部41は、標準的なIPv6の転送機能を有することになる。
CPE接続部42は、CPE50からの接続要求を受信した際に、CPE50を接続するための処理を実行する。具体的には、CPE接続部42は、CPE50からの接続要求に含まれるCPE50のIPアドレス(RLOC)とEIDを受け取り、自AR40のルーティングテーブル43に、CPE50のEIDに対して、対応するRLOCでカプセル化して送出するための経路情報を登録する。その後、CPE接続部42は、接続応答として、自AR40が管轄するエリアのエリアIDをCPE50に通知する。これにより、フォワーディング部41が、クラウド側から送信されてきたパケットを、宛先となるCPE50に配送することができるようになる。
なお、CPE50からの接続要求を、直接CPE50から受ける形態ではなく、コントローラ等がCPE50からの接続要求を受け付け、そのコントローラからCPE接続部42が接続要求を受け取る形態としてもよい。
ルーティングテーブル43は、フォワーディング部41がパケットの転送、パケットのカプセル化、パケットのデカプセル化を実行する際に必要な経路表を保持する記憶部である。ルーティングテーブル43の具体例は後述する。
図6は、各CPE50のルーティングテーブル54の構成例を示す図である。図6には、図1のネットワーク構成例の場合の具体的なルーティングテーブル54の例が示されている。ルーティングテーブル54-11は、CPE50-11のルーティングテーブルであり、ルーティングテーブル54-12は、CPE50-12のルーティングテーブルである。
各CPE50のルーティングテーブル54は、宛先アドレス(宛先プレフィックス)と対応する処理内容から構成される。フォワーディング部51は、受信したIPパケットの宛先アドレスをキーとしてルーティングテーブル54を検索して、そのレコードに記載された処理を実施する。CPE50-11のルーティングテーブル54-11の例に基づいて、具体的に説明する。
「宛先=EID#3、処理=Encap(IP#31)」というレコードは、デバイス10側のCPE50-11が、vCPE70(RLOC:IP#31)へと通信する際に利用するものである。宛先欄にある「EID#3」は、クラウド側のホスト60やアプリケーションが利用するアドレスであり、CPE50-11が受信したパケットの宛先アドレスがこれに該当する場合には、フォワーディング部51は、「Encap(IP#31)」の処理を実行する。「Encap(IP#31)」は、宛先IPアドレスをIP#31として、SRv6でカプセル化して送出するという意味を示す。すなわち、CPE50-11が配下のホスト60から受信したパケットを、フォワーディング部51は、コアネットワークN1内に到達性のあるvCPE70のRLOCの一つであるIP#31でカプセル化して送出することになる。CPE50のルーティングテーブル54は、通信する先のクラウド側のホスト60毎に、このようなレコードを保持する。
「宛先=IP#11、処理=Decap->Lookup」というレコードは、宛先IPアドレスが「IP#11」の場合、そのパケットをデカプセル化(Decap)して、再度、ルーティングテーブル54-11を検索する(Lookup)という意味を示す。IP#11は、CPE50-11のIPアドレス(RLOC)であるため、このレコードは、「自分宛ての(カプセル化された)パケットに対して、デカプセル化して、ルーティングテーブル54-11を再検索する」という処理を示す。
「宛先=EID#11、処理=Direct」というレコードは、IPパケットの宛先アドレスが「EID#11」の場合には、直接配送する、という意味を示す。直接配送とは、同一LAN内に宛先アドレスが存在し、宛先に対して直接IPパケットを送出するという意味である。このレコードは、前述の「宛先=IP#11、処理=Decap->Lookup」の結果、ルーティングテーブル54-11を再検索したときに、宛先が自身の配下のホスト60である場合に、直接配送できるようにするためのものである。
CPE50-21のルーティングテーブル54-21は、CPE50-11のルーティングテーブル54-11とほぼ同様であるが、「宛先=EID#3」に対して、「処理=Encap(IP#32)」となっている点が異なる。vCPE70はエリアを判別するために複数のRLOCを保持するが、エリア2に属するCPE50-21からは、エリア2用のvCPE70のRLOCであるIP#32を宛先として送信する。また、CPE50-21のRLOCがIP#21であり、配下のEIDがEID#21であるため、3~4レコード目の「宛先」がCPE50-11のルーティングテーブル54-11と異なる。
図7は、vCPE70のルーティングテーブルの構成例を示す図である。図7には、図1のデータセンタ20内のLANをコアネットワークN1に接続しているvCPE70のルーティングテーブルの具体例が示されている。なお、vCPE70は複数のエリアを収容するが、その判別のために、エリア毎に異なるRLOCを保持する。本実施の形態において、IP#31がエリア1用のRLOCであり、IP#32がエリア2用のRLOCである。
vCPE70のグローバルルーティングテーブル73は、vCPE70がコアネットワークN1と通信する際に必要となる経路情報を保持する。「宛先=IP#31、「処理Decap->Lookup」というレコードは、IP#31宛て、すなわち、vCPE70宛て(エリア1用)のパケットを受信した場合には、デカプセル化(Decap)して、再度ルーティングテーブルを検索するという意味を示す。すなわち、当該レコードは、CPE50がvCPE70宛てに送信したSRv6パケットをデカプセル化するためのレコードである。「宛先=IP#32」のレコードも同様であるが、前述のように、IP#32はIP#31と対応エリアが異なるために経路情報としては分けて記載されている。処理内容はエリア1用の処理と同様である。
「宛先=EID#3、処理=Direct」というレコードは、IPパケットの宛先が「EID#3」の場合に直接配送するという意味を示す。当該レコードは、1番目のレコードまたは2番目のレコードの処理であるDecap->Lookupの再検索時に、vCPE70配下のデータセンタ20のLAN内のホスト60-3宛て(すなわちEID#3宛て)のパケットを直接配送できるようにするためのレコードである。
vCPE70のエリア別ルーティングテーブル74は、データセンタ20のLAN内のホスト60-3からのパケット(CPE50からのパケットのリプライ)をvCPE70が受信したときに参照されるルーティングテーブルである。エリア別ルーティングテーブル74は、vCPE70が収容するエリア毎にテーブルが分かれており、vCPE70からエリア代表ルータ(AR40)に対して送信が行われる際に、適切なテーブルが参照される。どのテーブルが参照されるかを決定する仕組みは後述される。各エリア別ルーティングテーブル74には、デフォルトルートの1レコード(1経路)のみが記載されている。処理の欄はエリア毎に異なっている。エリア1用のエリア別ルーティングテーブル74であるエリア1用ルーティングテーブル74-1には、エリア1のエリア代表ルータであるAR40-1のIPアドレス(IP#A1)宛てにSRv6でカプセル化して送信する処理が記載されている。エリア2用のエリア別ルーティングテーブル74であるエリア2用ルーティングテーブル74-2には、エリア2のエリア代表ルータであるAR40-2のIPアドレス(IP#A2)宛てにSRv6でカプセル化して送信する処理が記載されている。
図8は、vCPE70のコネクション情報テーブル75の構成例を示す図である。コネクション情報テーブル75の各レコードは、送信元EID、宛先EID、エリアIDを含む。送信元EID及び宛先EIDは、パケットのコネクションを識別するための情報である。コネクションとは、CPE50配下のアプリケーションから送られてきたパケットと、その応答となるvCPE70配下のアプリケーションからのリプライパケットとの対応を示すものであり、本実施の形態では送信元EIDと宛先EIDとの組み合わせで識別される。但し、ポート番号、プロトコル識別子など、他のパケットヘッダ内の識別子が利用されてコネクションが識別されてもよいし、これらの組み合わせでコネクションが識別されてもよい。
エリアIDは、送信元EID及び宛先EIDのペアで識別されるコネクションが、どのエリアに所属するCPE50からの送信に対応するものかを示す情報である。前述のように、vCPE70はエリア毎に異なるRLOCを保持するが、vCPE70がCPE50からのSRv6パケットを受信した際に、デカプセル化前のSRv6ヘッダの宛先IPアドレス、すなわち、IP#31やIP#32といったRLOCを用いてエリアを識別する。本実施の形態では、IP#31宛てに送られてきたパケットはエリア1からのパケットとして識別され、IP#32宛てに送られてきたパケットはエリア2からのパケットとして識別される。
図9は、エリア代表ルータ(AR40)のルーティングテーブル43の構成例を示す図である。AR40-1のルーティングテーブル43-1を例に、具体的に説明する。
1レコード目((1)の行)の「宛先=IP#A1、処理=Decap->Lookup」は、vCPE70から送信されてきた自分宛て(IP#A1宛て)のパケットを受信したらデカプセル化して、ルーティングテーブル43-1を再度検索する、という意味を示す。
2レコード目の「宛先=EID#11、処理=Encap(IP#11)」は、宛先がEID#11、すなわち、CPE50-11配下のEIDである場合には、CPE50-11のRLOCであるIP#11でカプセル化して送出する、という意味を示す。3レコード目も同様に、CPE50-12配下のEID(IP#12)宛てのパケットを、CPE50-12のRLOCであるIP#12でカプセル化して送出するという意味を示す。これらの処理((2)の行の処理)は、1レコード目((1)の行)の処理の結果、デカプセル化されたパケットに対して実施される。AR40-2のルーティングテーブル43-2も同様である。
図10は、コントローラ30の機能構成例を示す図である。図10において、コントローラ30は、CPE問い合わせ部31及びCPE登録・更新部32を有する。これら各部は、コントローラ30にインストールされた1以上のプログラムが、コントローラ30のCPUに実行させる処理により実現される。コントローラ30は、また、EID-RLOCデータベース33を利用する。EID-RLOCデータベース33、例えば、コントローラ30のメモリ装置又は補助記憶装置等を用いて実現可能である。
EID-RLOCデータベース33は、CPE50又はvCPE70配下に割り当てられているEIDと、CPE50又はvCPE70に現在割り当てられているRLOCとの対応関係を記憶する記憶部である。本実施の形態では、vCPE70のEIDとRLOCとの対応関係だけがEID-RLOCデータベース33に登録されている。EID-RLOCデータベース33の構成は後述する。
CPE問い合わせ部31は、CPE50からの、EIDに対応するRLOCの問い合わせに対して、EID-RLOCデータベース33を検索して、当該EIDに対応するRLOCを応答する。EID-RLOCデータベース33の各エントリにはエリアIDが登録されており、CPE問い合わせ部31は、問い合わせ元のCPE50が所属するエリアのRLOCを返答する。
CPE登録・更新部32は、EID-RLOCデータベース33に登録されているEID-RLOCの対応関係の新規登録や更新を実行する。具体的には、CPE登録・更新部32は、vCPE70が新たにネットワーク接続された場合に、新規にEID-RLOCデータベース33にレコードを追加する。
図11は、EID-RLOCデータベース33の構成例を示す図である。EID-RLOCデータベース33は、vCPE70のEIDとRLOCの対応関係に加えて、各RLOCが対応するエリアのエリアIDも保持する。図11には、図1に対応したEID-RLOCデータベース33の例が示されている。
前述の通り、本実施の形態において、EID-RLOCデータベース33には、vCPE70の情報だけが保持されるが、一つのvCPE70がエリア毎に異なるRLOCを保持するため、一つのvCPE70に対して複数のレコードがEID-RLOCデータベース33に存在する。1レコード目の「RLOC=IP#31」は、エリア1に対応するRLOCを示し、2レコード目の「RLOC=IP#32は」は、エリア2に対応するRLOCを示す。vCPE70が収容するエリアがさらに多い場合には、同一のEIDに対して、異なるRLOCとエリアIDのレコードが追加されることになる。なお、デバイス10側のCPE50(図1のCPE50-11、CPE50-12、CPE50-21)のEID-RLOCの対応関係は、エリア代表ルータ(AR40)のルーティングテーブル43(図9)に保持されるため、EID-RLOCデータベース33には保持されない。
[処理手順]
以下、図1の通信システムにおいて実行される処理手順について説明する。図12は、通信に先立って実行される、CPE50(CPE50-11)のAR40への接続や、vCPE70のコントローラ30への登録を説明するためのシーケンス図である。
以下、図1の通信システムにおいて実行される処理手順について説明する。図12は、通信に先立って実行される、CPE50(CPE50-11)のAR40への接続や、vCPE70のコントローラ30への登録を説明するためのシーケンス図である。
まず、CPE50(CPE50-11)がAR40に接続する際の処理手順を説明する。
CPE50-11がネットワークに接続されIPアドレス(RLOC)を付与されると、CPE50-11のCPE登録部53は、最寄り(CPE50-11が属するエリア)のAR40(この場合はAR40-1)にCPE接続要求を送信する(S11)。CPE接続要求には、CPE50-11の配下に割り当てられているEID(EID#11)と、ネットワークから付与されたRLOC(IP#11)とが含まれる。なお、CPE50-11のRLOCは、CPE50-11が接続されるネットワークから払い出されるグローバルIPアドレス等である。また、CPE50配下のEIDは、予めCPE50に設定されているものとする。
AR40-1のCPE接続部42は、CPE50-11からのCPE接続要求を受信すると、AR40-1のルーティングテーブル43-1に、AR40-1からCPE50-11へのパケット転送に必要な情報を登録する(S12)。この場合、「宛先=EID#11、処理=Encap(IP#11)」という情報が登録される(図9参照)。これは、AR40-1が、宛先IPアドレスがEID#11のパケット、すなわち、CPE50-11配下のホスト60宛てのパケットを受信したら、宛先アドレス=IP#11、すなわち、CPE50-11のRLOCのIPアドレスでカプセル化をして送信する、という意味を示す。
続いて、AR40-1のCPE接続部42は、CPE接続応答(接続=OK、エリアID=#1)をCPE50-11へ送信する(S13)。CPE50-11のCPE登録部53が当該CPE接続応答を受信することで、CPE50-11は、自身が所属するエリアIDが#1であることを認識する。
次に、vCPE70の情報をコントローラ30に登録する際の処理手順を説明する。
vCPE70の起動後に、vCPE70の登録部72は、CPE登録要求をコントローラ30へ送信する(S21)。CPE登録要求には、vCPE70が収容するエリアごとに、vCPE70配下のEID(EID#3)と、vCPE70において当該エリアに対応するRLOCと、当該エリアのエリアIDとが含まれる。本実施の形態において、vCPE70はエリア1とエリア2を収容するため、CPE登録要求は、エリア1用に(EID=EID#3,RLOC=IP#31,エリアID=#1)、エリア2用に(EID=EID#3,RLOC=IP#32,エリアID=#2)を含む。なお、vCPE70のRLOCも、CPE50-11のRLOCと同様にグローバルIPアドレスが想定される。クラウド環境におけるIPアドレスの払い出しについては様々な方法が想定されるが、本実施の形態では払い出しの方法には依存しない。結果的にvCPE70に外部から到達可能なグローバルIPアドレスが付与されればよい。
コントローラ30のCPE登録・更新部32は、vCPE70からのCPE登録要求を受信すると、当該CPE登録要求に含まれている情報を自身のEID-RLOCデータベース33にvCPE70の情報を登録する(S22)。この場合、「EID=EID#3、RLOC=IP#31、エリアID=#1」と、「EID=EID#3、RLOC=IP#32、エリアID=#2」という2つのレコードがEID-RLOCデータベース33に登録される(図11参照)。続いて、CPE登録・更新部32は、CPE登録応答(登録=OK)をvCPE70へ送信する(S23)。
図13は、CPE50-11の配下のホスト60-11からvCPE70の配下のホスト60-3に向けてパケットが送信される際の処理手順の一例を説明するためのシーケンス図である。
ホスト60-11は、ホスト60-3に向けてパケットを送信する(S31)。この際、ホスト60-11は、自身のEIDであるEID#11を自身のIPアドレスと認識してパケットの送信元アドレス(図13ではSAと表記)に付与し、ホスト60-3のEID#3をホスト60-3のIPアドレスと認識してパケットの宛先アドレス(図13ではDAと表記)に付与する。つまり、ホスト60-11やホスト60-3は、EIDをそのままIPアドレスとして認識して動作する。そのため、各ホスト60は、通常のIPホストとして動作すればよく、本実施の形態に特有の機能は不要となる。
CPE50-11のフォワーディング部51が、ホスト60-11からのパケットを受信すると、ルーティングテーブル54-11に当該パケットの宛先EIDが記載されていないため、RLOC解決部52は、コントローラ30に対してRLOC解決要求を送信する(S32)。RLOC解決要求には、ホスト60-11から受信したパケットの宛先アドレスであるEID#3と、CPE50-11自身が所属するエリアIDである#1が含まれる。
コントローラ30のCPE問い合わせ部31は、CPE50-11からのRLOC解決要求を受信すると、当該RLOC解決要求に含まれているEID=EID#3、エリアID=#1をキーとしてEID-RLOCデータベース33を検索する(S33)。検索した結果、EID=EID#3、エリアID=#1に該当するRLOCは、vCPE70のRLOCであるIP#31であることがわかる。なお、このレコードは、S21~S23においてvCPE70がコントローラ30に対して登録したものである。
続いて、CPE問い合わせ部31は、CPE50-11のRLOC解決部52に対してRLOC解決応答(RLOC=IP#31)を送信する(S34)。
CPE50-11のRLOC解決部52は、当該RLOC解決応答を受信すると、CPE50-11のルーティングテーブル54-11に、「宛先=EID#3、処理=Encap(IP#31)」を登録する(S35)(図6のルーティングテーブル54-11参照)。これは、宛先アドレスがEID#3のパケットを受信したら、(EID#3はvCPE70配下に存在し、vCPE70のRLOCがIP#31であるため)宛先=IP#31でカプセル化して送信することを示す。
続いて、CPE50-11のフォワーディング部51はルーティングテーブル54-11を参照して、ホスト60-11から受信したパケットを、宛先アドレス=IP#31、送信元アドレス=IP#11(CPE50-11自身のRLOC)でカプセル化し、vCPE70に向けて送信する(S36)。
vCPE70のフォワーディング部71は、CPE50-11からのパケットを受信すると、グローバルルーティングテーブル73(図7参照)に基づいて当該パケットを処理する。ここで、当該パケット(カプセル化されたパケット)は、宛先アドレス=IP#31であるため、フォワーディング部71は、該当する処理=Decap->Lookupを実行する。すなわち、フォワーディング部71は、まず、「Decap」に基づいて当該パケットをデカプセル化すると共に、vCPE70のコネクション情報テーブル75(図8)にコネクション情報を登録する(S37)。具体的には、フォワーディング部71は、デカプセル化後の送信元EID=EID#11、宛先EID=EID#3のペアと、デカプセル化前の宛先アドレス(IP#31)から識別したエリア(エリア1)を、自身が属するvCPE70のコネクション情報テーブル75に登録する。但し、既に該当するレコードがある場合には登録は行われない。なお、コネクション情報テーブル75に登録されたコネクション情報は、該当する通信が一定期間行われない場合にはタイムアウトし、コネクション情報テーブル75から削除することとする。
続いて、フォワーディング部71は、「Lookup」に基づいて、ルーティングテーブル54-31を再検索する(S38)。再検索する際のパケット(デカプセル化されたパケット)の宛先アドレスはEID#3であるため、該当する処理=Directとなる。したがって、フォワーディング部71は、当該パケットをEID#3のホスト60へ直接配送する(S39)。その結果、ホスト60-3がvCPE70から当該パケットを受信する。
図14は、ホスト60-3からホスト60-11への通信の流れを説明するためのシーケンス図である。この通信は、図13におけるホスト60-11からホスト60-3に向けての通信のリプライ(応答)の通信である。
ステップS41において、ホスト60-3がホスト60-11に向けてパケット(以下、「対象パケット」という。)を送信する(S41)。この際、対象パケットの宛先アドレスはホスト60-11のEIDであるEID#11にセットされ、対象パケットの送信元アドレスはホスト60-3のEIDであるEID#3にセットされる。
vCPE70のフォワーディング部71は、ホスト60-3から対象パケットを受信すると、まず、自vCPE70のコネクション情報テーブル75(図8)を参照して、対象パケットがホスト60-3→ホスト60-11のパケットの応答パケットであるかを確認したうえで、対象パケットのエリアIDを取得する(S42)。具体的には、フォワーディング部71は、対象パケットの(送信元アドレス,宛先アドレス)のペアに対して、コネクション情報テーブル75の宛先と送信元を入れ替えた(宛先EID,送信元アドレス)がマッチするレコードを検索する。今回の場合、対象パケットの宛先アドレスがEID#11、送信元アドレスがEID#3であるため、コネクション情報テーブル75(図8)の1レコード目の送信元EID=EID#11、宛先EID=EID#3がマッチする。このレコードのエリアIDはエリア1であるため、対象パケットはエリア1へ送信すべきであることが分かる。
続いて、フォワーディング部71は、対象パケットをエリア1のエリア代表ルータであるAR40-1へ送信するために、エリア1用ルーティングテーブル74-1(図7)を参照する(S43)。エリア1用ルーティングテーブル74-1には、宛先=Defaultのデフォルトルートのみが登録されているため、フォワーディング部71は、このデフォルトルートを参照して、処理=Encap(IP#A1)を実施する。すなわち、フォワーディング部71は、対象パケットをSRv6でカプセル化したうえで、宛先アドレスにIP#A1をセットして、カプセル化された対象パケットをAR40-1へ向けて送信する(S44)。
AR40-1のフォワーディング部41は、vCPE70からカプセル化された対象パケットを受信すると、ルーティングテーブル43-1(図9参照)を参照する(S45)。カプセル化された対象パケットの宛先アドレスはAR40-1自身のRLOCであるIP#A1であるため、ルーティングテーブル43-1の「宛先=IP#A1、処理=Decap->Lookup」のレコードが対象パケットに対応する。そこで、フォワーディング部41は、カプセル化された対象パケットをデカプセル化して、再度、ルーティングテーブル43-1を再検索する。デカプセル化されたパケットの宛先アドレスはEID#11であるため、ルーティングテーブル43-1では、「宛先=EID#11、処理=Encap(IP#11)」に該当する。したがって、フォワーディング部41は、対象パケットの宛先アドレスをIP#11にセットしてカプセル化をしたうえで、対象パケットをCPE50-11(RLOC=IP#11)に向けて送信する(S46)。
CPE50-11のフォワーディング部51は、AR40-1からカプセル化された対象パケットを受信すると、ルーティングテーブル54-11を参照する(S47)。具体的には、フォワーディング部51は、カプセル化された対象パケットの宛先アドレス=IP#11(CPE50-11のRLOC、つまり、自分宛て)をキーとしてCPE50-11のルーティングテーブル54-11を検索する。すると、「宛先=IP#11、処理=Decap->Lookup」のレコードが該当するため、フォワーディング部51は、カプセル化された対象パケットをデカプセル化して、ルーティングテーブル54-11を再検索する。デカプセル化された対象パケットの宛先アドレスはEID#11であるため、「宛先=EID#11、処理=Direct」のレコードに該当する。そこで、フォワーディング部51は、EID#11宛て、すなわち、ホスト60-11宛てに対象パケットを直接配送する(S48)。その結果、ホスト60-11は対象パケットを受信する。
次に、図15~図17を用いて、CPE50-11が、AR40-1配下からAR40-2配下へ移動した際に実行される処理手順について説明する。図15及び図16はシーケンス図を示し、図17はCPE50-11のルーティングテーブルの変化と、AR40-1、AR40-2のルーティングテーブルを示す図である。
CPE50-11(CPE50-11を有するデバイス10-11)がAR40-1配下からAR40-2配下へ移動すると、CPE50-11は、アクセス網に再接続する形になるため、ネットワークから払い出されるIPアドレス、すなわち、CPE50-11のRLOCが変更になる(S51)。この例では、CPE50-11のRLOCがIP#11からIP#22に変更になったと仮定する。そのため、CPE50-11のCPE登録部53は、CPE50-11のルーティングテーブル54-11において、「宛先=IP#11、処理=Decap->Lookup」のレコードを、「宛先=IP#22、処理=Decap->Lookup」に変更する(図17参照)。なお、このレコードは、AR40からCPE50-11宛てにパケットが送信されてきた場合、自分宛て(CPE50-11のRLOC宛て)であれば、デカプセル化してルーティングテーブル54-11を再検索する、という処理を行うためのものである。
CPE50-11がネットワークに接続されたら、CPE登録部53は、最寄りのAR40(この場合、AR40-2)に対して、CPE接続要求を送信する(S52)。CPE接続要求には、EID=EID#11、RLOC=IP#22が含まれる。EIDは移動前から変更は無いが、RLOCは前述のように、新たに払い出されたIPアドレスであるIP#22となる。
AR40-2のCPE接続部42は、CPE50-11からのCPE接続要求を受信すると、CPE50-11へパケットを送信するためのレコードをルーティングテーブル43-2へ登録する(S53)。具体的には、CPE接続部42は、図17のAR40-2のルーティングテーブル43-2に対し、「宛先=EID#11、処理=Encap(IP#22)」というレコードを登録する。これは、宛先アドレスがCPE50-11配下のEID#11宛てのパケットであれば、CPE50-11の新たなRLOCであるIP#22でカプセル化して当該パケットを送信する、という処理を示す。
AR40-2のCPE接続部42は、正常にルーティングテーブル43-2への登録ができたら、CPE50-11へCPE登録応答を送信する(S54)。CPE登録応答には、AR40-2が所属するエリアIDとして、エリアID=#2が含まれる。
以上で、CPE50-11がAR40-1からAR40-2の配下へ移動した際の接続手続きが完了する。
なお、AR40-1のルーティングテーブル43-1に登録されていたCPE50-11移動前の情報(宛先=EID#11、処理=Encap(IP#11))は、今後不要となるためにCPE50-11のCPE接続部42が削除する。削除する方法としては、CPE50-11へのパケットが到着しない状態が一定時間継続したらタイムアウト(一定時間、ルーティングテーブル43-1の特定のエントリが参照されなかったら削除する)してもよいし、CPE50-11又はAR40-2等からAR40-1に対してCPE50-11の移動が完了したことを明示的に通知して、CPE50-11のCPE接続部42が、AR40-1のルーティングテーブル43-1において不要になった情報を削除してもよい。
次に、ホスト60-11からホスト60-3へのパケットの流れを説明する。
ホスト60-11はホスト60-3に向けてパケットを送信する(S55)。
CPE50-11のフォワーディング部51が当該パケットを受信すると、CPE50-11のRLOC解決部52は、当該パケットの宛先アドレスであるEID#3に対応するRLOCを取得するため、コントローラ30にRLOC解決要求を送信する(S56)。RLOC解決要求には、解決したいEIDであるEID=#3と、CPE50-11が所属するエリアのIDであるエリアID=#2が含まれる。
コントローラ30のCPE問い合わせ部31は、RLOC解決要求を受信すると、RLOC解決要求に含まれるEID(EID#3)及びエリアID(#2)をキーとして、EID-RLOCデータベース33を検索する(S57)。EID-RLOCデータベース33(図11)には、EID=EID#3、エリアID=#2に該当するRLOCとして、IP#32(vCPE70のエリア2用のRLOC)が登録されているため、CPE問い合わせ部31は、RLOC=IP#32を含むRLOC解決応答を送信する(S58)。なお、CPE50-11がAR40-1配下に接続されていた時には、エリアID=#1であったため、RLOC=IP#31が返されたが、AR40-2配下の場合にはエリアID=#2であるためRLOC=IP#32が返される。この仕組みにより、vCPE70は、CPE50が所属するエリアによって、カプセル化された後の宛先アドレスが異なるパケットを受け取ることになるため、前述のように、応答パケットを送信する先のエリアを判別できるようになる。
CPE50-11のRLOC解決部52は、コントローラ30からRLOC解決応答を受信すると、EID=EID#3に対応するRLOCとしてRLOC=IP#32を解決できたため、ルーティングテーブル54-11に「宛先=EID#3、処理=Encap(IP#32)」のレコードを登録する(S59)。当該レコードは、EID#3宛てのパケットに対して、宛先アドレスをIP#32としたカプセル化を実施し、IP#32(すなわちvCPE70)に向けて当該パケットを送出することを意味する。
ルーティングテーブル54-11の登録が完了すると、CPE50-11のフォワーディング部51は、宛先アドレス=IP#32でカプセル化したパケットをvCPE70に向けて送出する(S60)。
vCPE70のフォワーディング部71は、当該パケットを受信すると、グローバルルーティングテーブル73を参照する(S61)。当該パケットについては、図7のvCPE70のグローバルルーティングテーブル73の、「宛先=IP#32、処理=Decap->Lookup」が該当する。これは、IP#32宛てのパケット(すなわち、vCPE70自身宛て)を受信したら、デカプセル化して、グローバルルーティングテーブル73を再度検索する処理を意味する。
そこで、vCPE70のフォワーディング部71は、当該パケットをデカプセル化すると共に、コネクション情報をコネクション情報テーブル75(図8)に登録する(S61)。具体的には、フォワーディング部71は、デカプセル化した後の元のパケットの送信元EID=EID#11、宛先EID=EID#3、及びデカプセル化する前の宛先IPアドレスであるIP#32から判別されたエリアID(エリア2)をコネクション情報テーブル75に登録する。
続いて、フォワーディング部71は、グローバルルーティングテーブル73を再度検索する(S62)。すると、図7の「宛先=EID#3、処理=Direct」のレコードが該当するため、フォワーディング部71は、EID#3(すなわち、ホスト60-3)にパケットを直接配送する(S63)。その結果、ホスト60-3は、ホスト60-11からのパケットを受信する。
一方、ホスト60-3からホスト60-11へのパケットの流れは、図16に示されるようになる。
ステップS64において、ホスト60-3がホスト60-11に向けてパケットを送出する(S64)。
vCPE70のフォワーディング部71は、ホスト60-3からのパケットを受信すると、まずコネクション情報テーブル75を検索して、このパケットがホスト60-11→ホスト60-3の応答パケット(送信元EIDと宛先EIDが逆になったパケット)であるかを確認し、エリアIDの情報を取得する(S65)。ここでは、ステップS61において登録された、送信元EID=EID#11、宛先EID=EID#3、エリアID=エリア2のレコードが該当するため、このパケットはエリア2のAR40(AR40-2)へ送信すればよいことがわかる。
そこで、フォワーディング部71は、エリア2用ルーティングテーブル74-2(図7)を参照する(S66)。エリア2用ルーティングテーブル74-2には、デフォルトルートのみが登録されており、その処理がEncap(IP#A2)となっている。フォワーディング部71は、これに従って、当該パケットを宛先アドレス=IP#A2でカプセル化して、エリア2のエリア代表ルータであるAR40-2へ送信する(S67)。
AR40-2のフォワーディング部41は、当該パケットを受信すると、ルーティングテーブル43-2(図17)を参照する(S68)。当該パケットには、図17のルーティングテーブル43-2の「宛先=IP#A2、処理=Decap->Lookup」のレコードが該当するため、フォワーディング部41は、当該パケットをデカプセル化して、再度ルーティングテーブルを検索する。デカプセル化されたパケット(元のパケット)の宛先はEID#11であるため、次の検索では、「宛先=EID#11、処理=Encap(IP#22)のレコード」が該当する。そのため、フォワーディング部41は、宛先アドレス=IP#22で当該パケットをカプセル化して、IP#22宛て、すなわち、CPE50-11宛てに当該パケットを送信する(S69)。
CPE50-11のフォワーディング部51は、AR40-2からのパケットを受信すると、ルーティングテーブル54-11を参照する(S69)。当該パケットには、図17の移動後のCPE50-11のルーティングテーブル54-11の、「宛先=IP#22、処理=Decap->Lookup」が該当するため、フォワーディング部51は、当該パケットをデカプセル化して、ルーティングテーブル54-11を再度検索する。すると、次は、「宛先=EID#11、処理=Direct」のレコードが該当するため、フォワーディング部51は、当該パケットをEID#11、すなわち、ホスト60-11に直接配送する(S70)。その結果、ホスト60-11は、ホスト60-3からのパケットを受信する。
このように、CPE50-11がAR40-1配下からAR40-2配下へ移動した場合、ルーティングテーブルに変更があるのは、AR40-1、AR40-2、CPE50-11のみであり、vCPE70のルーティングテーブルには変更は発生しない。このことは、デバイス10の数の増減や、デバイス10の移動によって、vCPE70のルーティングテーブル54に一切変化はなく、vCPE70が、ルーティングテーブル量や、ルーティングテーブルを変更するための処理量による影響を受けないことを示している。
[vCPE70のスケールイン・スケールアウト]
同一のデータセンタ20内のLAN(同一のEID)を接続するvCPE70が複数存在する場合にも、本実施形態は問題無く適用可能である。コントローラ30のEID-RLOCデータベース33(図11)に、同一のEID及びエリアIDに対して、RLOCが異なる複数のレコードが存在することになるが、CPE50がvCPE70のRLOCをコントローラ30に問い合わせた際に、当該問い合わせに係るEID及びエリアIDを含む複数のレコードの中からコントローラ30がランダムに、又はvCPE70の負荷状況等を考慮して、適切なレコード(適切なvCPE70)を1つ選択して、当該レコードに係るRLOCをCPE50へ返すことで、複数のvCPE70の中から一つを選択することができる。
同一のデータセンタ20内のLAN(同一のEID)を接続するvCPE70が複数存在する場合にも、本実施形態は問題無く適用可能である。コントローラ30のEID-RLOCデータベース33(図11)に、同一のEID及びエリアIDに対して、RLOCが異なる複数のレコードが存在することになるが、CPE50がvCPE70のRLOCをコントローラ30に問い合わせた際に、当該問い合わせに係るEID及びエリアIDを含む複数のレコードの中からコントローラ30がランダムに、又はvCPE70の負荷状況等を考慮して、適切なレコード(適切なvCPE70)を1つ選択して、当該レコードに係るRLOCをCPE50へ返すことで、複数のvCPE70の中から一つを選択することができる。
例えば、図18のように、vCPE70-1とvCPE70-2が、ともにエリア#1とエリア#2を収容する場合を考える。すなわち、図18の上側には、データセンタ20のvCPE70がスケールアウトされて、データセンタ20がvCPE70-1及びvCPE70-2の2つのvCPE70を有する例が示されている。また、図18の下側には、この状態におけるコントローラ30のEID-RLOCデータベース33の内容が示されている。
この状態において、エリア#1に属するCPE50から、(EID=EID#3、エリアID=#1)についてのRLOC解決要求がコントローラ30に送信されたとする。この場合、コントローラ30のEID-RLOCデータベース33を、検索キー「EID=EID#3、エリアID=#1」で検索すると、1レコード目のRLOC=IP#31と3レコード目のRLOC=IP#33の二つが返される。コントローラ30は、複数のレコードが検索された場合、ラウンドロビンやランダムにいずれかのレコードを選択して、CPE50にRLOC解決応答として当該レコードのRLOCを返す。そうすることで、CPE50単位で、複数のvCPE70を使い分ける負荷分散を実現することができる。vCPE70が3個以上の場合も同様である。これにより、vCPE70のスケールイン・スケールアウトを実現できる。
なお、同一のデータセンタ20のLAN内にvCPE70が複数存在する場合、LAN内のホスト60からの応答パケットを、ホスト60がどのvCPE70へ送信すべきであるかという問題が発生する。これについては、vCPE70とホスト60を対応付けて管理する方式、すなわち、vCPE70-1に対してはホスト60-31が、vCPE70-2に対してはホスト60-32がサービスを提供するという方法で解決できる。又は、複数のホスト60を負荷分散的に利用したい場合には、vCPE70からホスト60にパケットを送信する際に、vCPE70のLAN側のアドレスでSNAT(Source NAT)をする方法も考えられる。vCPE70でSNATをすることで、ホスト60からみた送信元アドレスはvCPE70のLAN側アドレスとなるため、応答パケットは自然に元のvCPE70に戻ることになる。
[vCPE70に単一のIPアドレスしか割り当てられない場合の対応]
vCPE70が設置されるデータセンタネットワークの環境によっては、vCPE70にIPアドレス(RLOC)が一つしか割り当てられないことがあり、vCPE70のIPアドレスでエリアを判別することができない。そのような場合には、CPE50においてSRv6でカプセル化する際に、(vCPEのIPアドレス,CPE50のエリアを識別するSID)というように、エリアを識別するSIDを追加で付与する。このパケットを受け取ったvCPE70は、SID Listの最後尾に付与されている「CPE50のエリアを識別するSID」を参照して、このパケットの送信元のCPE50が所属しているエリアを判別して、コネクション情報テーブル75にコネクション情報を追加する。このようにすることで、単一のIPアドレスしか割り当てられない環境においても、vCPE70が、CPE50の所属するエリアを判別することができる。
vCPE70が設置されるデータセンタネットワークの環境によっては、vCPE70にIPアドレス(RLOC)が一つしか割り当てられないことがあり、vCPE70のIPアドレスでエリアを判別することができない。そのような場合には、CPE50においてSRv6でカプセル化する際に、(vCPEのIPアドレス,CPE50のエリアを識別するSID)というように、エリアを識別するSIDを追加で付与する。このパケットを受け取ったvCPE70は、SID Listの最後尾に付与されている「CPE50のエリアを識別するSID」を参照して、このパケットの送信元のCPE50が所属しているエリアを判別して、コネクション情報テーブル75にコネクション情報を追加する。このようにすることで、単一のIPアドレスしか割り当てられない環境においても、vCPE70が、CPE50の所属するエリアを判別することができる。
上述したように、本実施の形態によれば、単一のvCPE70が複数のエリアからのパケットを処理可能であるため、トラフィック量によらずにエリア数分のvCPE70が必要であるという課題を解決することができる。これにより、トラフィック需要の増減に応じてvCPE70を柔軟にスケールアウト・スケールインできるようになり、vCPE70に充当するコンピューティングリソースを無駄にすることなく、必要なときに必要なだけ利用することができるようになる。すなわち、オーバーレイネットワークをエリアごとに集約する際の経済性を向上させることができる。
なお、本実施の形態において、vCPE70として機能するコンピュータは、通信装置の一例である。フォワーディング部71は、判別部、第1の送信部及び第2の送信部の一例である。コネクション情報テーブル75は、記憶部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 デバイス
20 データセンタ
30 コントローラ
31 CPE問い合わせ部
32 CPE登録・更新部
33 EID-RLOCデータベース
40 AR
41 フォワーディング部
42 CPE接続部
43 ルーティングテーブル
50 CPE
51 フォワーディング部
52 RLOC解決部
53 CPE登録部
54 ルーティングテーブル
60 ホスト
70 vCPE
71 フォワーディング部
72 登録部
73 グローバルルーティングテーブル
74 エリア別ルーティングテーブル
75 コネクション情報テーブル
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
N1 コアネットワーク
20 データセンタ
30 コントローラ
31 CPE問い合わせ部
32 CPE登録・更新部
33 EID-RLOCデータベース
40 AR
41 フォワーディング部
42 CPE接続部
43 ルーティングテーブル
50 CPE
51 フォワーディング部
52 RLOC解決部
53 CPE登録部
54 ルーティングテーブル
60 ホスト
70 vCPE
71 フォワーディング部
72 登録部
73 グローバルルーティングテーブル
74 エリア別ルーティングテーブル
75 コネクション情報テーブル
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
N1 コアネットワーク
Claims (5)
- LANに接続するコンピュータをコアネットワークへ収容する通信装置であって、
複数のエリアのうちのいずれかのエリアからの前記コンピュータを宛先とする第1のパケットが当該通信装置に対してエリア別に割り当てられた複数のIPアドレスのうちのいずれかのIPアドレスを宛先としてカプセル化された第2のパケットを受信すると、前記第2のパケットの宛先に基づいて前記第1のパケットの送信元が属するエリアを判別するように構成された判別部と、
前記第2のパケットの宛先に基づいて前記第2のパケットを前記コンピュータへ送信するように構成された第1の送信部と、
前記コンピュータからの応答を、前記判別部が判別したエリアを代表するルータのIPアドレスを宛先とする第3のパケットでカプセル化して、前記第3のパケットを送信するように構成された第2の送信部と、
を有することを特徴とする通信装置。 - 前記判別部は、前記第1のパケットについて判別したエリアと、前記第1のパケットの送信元及び宛先との対応関係を記憶部に記憶し、
前記第2の送信部は、前記記憶部が記憶する対応関係において前記応答の送信元及び宛先に対応するエリアを代表するルータのIPアドレスを宛先とする前記第3のパケットを送信する、
ことを特徴とする請求項1記載の通信装置。 - 前記第2の送信部は、エリアごとに定義されたルーティングテーブルのうち、前記判別部が判別したエリアに対応するルーティングテーブルを参照して、前記ルータのIPアドレスを特定する、
ことを特徴とする請求項1又は2記載の通信装置。 - LANに接続するコンピュータをコアネットワークへ収容する通信装置が、
複数のエリアのうちのいずれかのエリアからの前記コンピュータを宛先とする第1のパケットが当該通信装置に対してエリア別に割り当てられた複数のIPアドレスのうちのいずれかのIPアドレスを宛先としてカプセル化された第2のパケットを受信すると、前記第2のパケットの宛先に基づいて前記第1のパケットの送信元が属するエリアを判別する判別手順と、
前記第2のパケットの宛先に基づいて前記第2のパケットを前記コンピュータへ送信する第1の送信手順と、
前記コンピュータからの応答を、前記判別手順が判別したエリアを代表するルータのIPアドレスを宛先とする第3のパケットでカプセル化して、前記第3のパケットを送信する第2の送信手順と、
を実行することを特徴とする通信方法。 - LANに接続するコンピュータをコアネットワークへ収容する通信装置に、
複数のエリアのうちのいずれかのエリアからの前記コンピュータを宛先とする第1のパケットが当該通信装置に対してエリア別に割り当てられた複数のIPアドレスのうちのいずれかのIPアドレスを宛先としてカプセル化された第2のパケットを受信すると、前記第2のパケットの宛先に基づいて前記第1のパケットの送信元が属するエリアを判別する判別手順と、
前記第2のパケットの宛先に基づいて前記第2のパケットを前記コンピュータへ送信する第1の送信手順と、
前記コンピュータからの応答を、前記判別手順が判別したエリアを代表するルータのIPアドレスを宛先とする第3のパケットでカプセル化して、前記第3のパケットを送信する第2の送信手順と、
を実行させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/044554 WO2023100371A1 (ja) | 2021-12-03 | 2021-12-03 | 通信装置、通信方法及びプログラム |
JP2023564717A JPWO2023100371A1 (ja) | 2021-12-03 | 2021-12-03 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/044554 WO2023100371A1 (ja) | 2021-12-03 | 2021-12-03 | 通信装置、通信方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023100371A1 true WO2023100371A1 (ja) | 2023-06-08 |
Family
ID=86611758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/044554 WO2023100371A1 (ja) | 2021-12-03 | 2021-12-03 | 通信装置、通信方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2023100371A1 (ja) |
WO (1) | WO2023100371A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170026417A1 (en) * | 2015-07-23 | 2017-01-26 | Cisco Technology, Inc. | Systems, methods, and devices for smart mapping and vpn policy enforcement |
WO2021171365A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電信電話株式会社 | 経路情報管理装置、経路情報管理方法及びプログラム |
-
2021
- 2021-12-03 WO PCT/JP2021/044554 patent/WO2023100371A1/ja active Application Filing
- 2021-12-03 JP JP2023564717A patent/JPWO2023100371A1/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170026417A1 (en) * | 2015-07-23 | 2017-01-26 | Cisco Technology, Inc. | Systems, methods, and devices for smart mapping and vpn policy enforcement |
WO2021171365A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電信電話株式会社 | 経路情報管理装置、経路情報管理方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
PAU MINOVES ; OLE FRENDVED ; BO PENG ; ANDREW MACKAREL ; DAVE WILSON: "Virtual CPE: Enhancing CPE's deployment and operations through virtualization", CLOUD COMPUTING TECHNOLOGY AND SCIENCE (CLOUDCOM), 2012 IEEE 4TH INTERNATIONAL CONFERENCE ON, IEEE, 3 December 2012 (2012-12-03), pages 687 - 692, XP032323292, ISBN: 978-1-4673-4511-8, DOI: 10.1109/CloudCom.2012.6427560 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023100371A1 (ja) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI449380B (zh) | 資料中心網路系統及其封包傳送方法 | |
US9281995B2 (en) | Virtual network and management method of virtual network | |
JP5368459B2 (ja) | ユーザ装置における三重動作サービスのサポート | |
US7339895B2 (en) | Gateway device and control method for communication with IP and IPV6 protocols | |
US8457014B2 (en) | Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system | |
US6751207B1 (en) | Tunnelling voice over the internet protocol in a cellular network | |
US20020099856A1 (en) | Information processing device and method thereof, recording medium and program | |
JP4522035B2 (ja) | 通信システム及び方法 | |
US8547998B2 (en) | Tunneling IPv6 packet through IPv4 network using a tunnel entry based on IPv6 prefix and tunneling IPv4 packet using a tunnel entry based on IPv4 prefix | |
KR100429902B1 (ko) | 공중망에서 사설망 내의 디바이스를 제어하기 위한 장치및 방법 | |
KR20100070828A (ko) | 라우팅 확장성과 이동성을 지원하는 터널 포인트의 동작 방법 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
JP4925130B2 (ja) | 通信制御方法およびシステム | |
KR20150136184A (ko) | As 구조 기반 인터-도메인 라우팅을 위한 방법 및 장치 | |
CN1157902C (zh) | 非广播多路访问网络的ip地址映射发送方法 | |
JP2023510707A (ja) | 返信パケットを送信するための方法、経路広告メッセージを送信するための方法、ネットワークデバイス、および、コンピュータプログラム | |
EP1874005A1 (en) | A personal network comprising a plurality of clusters | |
WO2023100371A1 (ja) | 通信装置、通信方法及びプログラム | |
WO2022206667A1 (zh) | 一种路由方法及设备 | |
WO2015186366A1 (ja) | データ転送システム、データ転送サーバ、データ転送方法、および、プログラム記録媒体 | |
JP2006174399A (ja) | グループ内通信方法、システム及び記録媒体 | |
JP2000341330A (ja) | 通信プロトコル代行処理方法、通信プロトコル代行処理装置、及び通信プロトコル代行処理サービス装置 | |
WO2022176168A1 (ja) | 通信装置、通信方法及びプログラム | |
JP2003348148A (ja) | Ipマルチキャスト制御方法およびこれを用いるipマルチキャスト制御システム | |
Cisco | Configuring DECnet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21966450 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023564717 Country of ref document: JP |