WO2020013094A1 - ネットワーク負荷分散装置および方法 - Google Patents

ネットワーク負荷分散装置および方法 Download PDF

Info

Publication number
WO2020013094A1
WO2020013094A1 PCT/JP2019/026815 JP2019026815W WO2020013094A1 WO 2020013094 A1 WO2020013094 A1 WO 2020013094A1 JP 2019026815 W JP2019026815 W JP 2019026815W WO 2020013094 A1 WO2020013094 A1 WO 2020013094A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
destination
hash value
packet
load distribution
Prior art date
Application number
PCT/JP2019/026815
Other languages
English (en)
French (fr)
Inventor
彩希 八田
晶子 大輝
川村 智明
晃嗣 山崎
羽田野 孝裕
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/258,359 priority Critical patent/US11451479B2/en
Publication of WO2020013094A1 publication Critical patent/WO2020013094A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types

Definitions

  • the present invention relates to an apparatus for controlling a destination of a packet, and in particular, to integrally provide priority control, load distribution, and distribution to a plurality of VMs (Virtual @ Machine) for a specific packet in a communication server auxiliary apparatus.
  • the present invention relates to a network load balancing apparatus and method that enables allocation to a plurality of VMs while ensuring QoS (Quality of Service) and improving throughput performance.
  • a network configured based on SDN (Software ⁇ Defined ⁇ Networking) / NFV (Network ⁇ Function ⁇ Virtualization) includes a plurality of general-purpose servers.
  • a plurality of VMs Virtual @ Machine
  • a single application is processed using the VMs, or a plurality of applications are processed using the respective VMs.
  • VNF Virtual Network Function
  • CAPEX / OPEX can be reduced as compared with a conventional network configuration using a dedicated device.
  • a load distribution device that has generally been configured using dedicated hardware has been known as a device having a more flexible configuration utilizing VNF.
  • a general-purpose network adapter (NIC: Network Interface Card) is mounted as a packet transmission / reception interface of the general-purpose server.
  • NIC Network Interface Card
  • received packets are stored in a data buffer, and the received packets are stored in a main memory in a server by using DMA (Direct Memory Access) transfer.
  • DMA Direct Memory Access
  • the number of data buffers and the method of controlling the distribution of packets to a plurality of data buffers differs depending on the NIC. . For example, by providing a plurality of data buffers and performing load distribution control on received packets, distributed processing can be performed by a plurality of CPU cores and throughput can be improved. Further, by occupying one data buffer and performing priority control on received packets having a flow, it is possible to prevent packet order inversion in the flow.
  • the CPU uses the hardware I / O virtualization support function SR-IOV (Single ⁇ Root-IO ⁇ Virtualization) of the general NIC.
  • SR-IOV Single ⁇ Root-IO ⁇ Virtualization
  • the mainstream configuration is to reduce the communication bottleneck with communication.
  • the conventional load balancing device since the distribution of a large amount of packets to a plurality of external servers is processed on the VNF side, if the traffic to be distributed exceeds a certain amount or more, it is assumed that the SR-IOV is used. However, there is a problem that a large amount of packets are discarded. For this reason, the maximum traffic amount that can flow in advance on the VNF side may be limited.
  • Patent Literature 1 realizes a packet distribution method that achieves both load distribution control and priority control of received packets.
  • 5 and 6 are diagrams showing a configuration example and an operation example of the network load distribution device of Patent Document 1.
  • Patent Document 1 a hash operation is performed on a specific area of a received packet, the calculated hash value is compared with a hash value registered in a priority route selection table, and if the hash value matches, the received packet is compared. Is transferred to the data buffers (4-1 to 4-3) registered in the priority route selection table, thereby realizing priority control. On the other hand, if the calculated hash value does not match the hash value registered in the priority path selection table, the hash value is notified to the load distribution control unit 30 and the data buffer registered in the load distribution path selection table is notified. To the packet while distributing the load.
  • the network load balancing device of Patent Document 1 when considering transmission of a packet from the NIC to each of a plurality of VMs, the network is not configured to transmit the packet in consideration of the destination VM. It is necessary to implement a bridge function for distributing to a VM by software. When the bridge function is implemented by software, there is a problem in that the throughput decreases as the number of VMs increases. Further, when the distribution to each VM is performed by software in the network load distribution device of Patent Literature 1, it is impossible to change the control method of the priority distribution and the load distribution distribution for each VM. This is because the control function such as priority distribution is provided in the NIC, and the distribution function to the VM is provided in the software, and the functions are completely separated from each other.
  • the server when a different application is executed for each of the plurality of VMs, if the distribution control method can be changed for each application, the server can be operated flexibly. For example, a VM with priority control set for an application that emphasizes flow such as image processing, and a VM with load distribution control set for other applications can be used to enhance the function and throughput of the entire system. Can be realized. On the other hand, if the distribution control method cannot be changed for each application, it is not possible to expect higher functionality and higher throughput of the entire system.
  • the present invention has been made in order to solve the above-described problems, and it is possible to change a packet distribution control method for each of a plurality of VMs while maintaining a high throughput of a VNF. It is an object of the present invention to provide a network load balancing device which realizes the network.
  • a network load balancing device of the present invention for each communication path of a transfer destination of a received packet, and a data buffer associated with a virtual function, and a field value or a field value of the received packet.
  • a function transfer control unit that determines a destination virtual function based on a hash value calculated using a field value, a hash value calculation unit that calculates a first hash value using the field value, and the first hash value Based on the first hash value or a second hash value based on the first hash value, and a priority control unit that determines a communication path of a transfer destination of a packet to be subjected to priority control based on the first hash value.
  • a load distribution control unit that determines a destination communication path, the destination virtual function determined by the function transfer control unit, and a communication path of the transfer destination determined by at least one of the priority control unit and the load distribution control unit And a packet transfer control unit for transmitting the packet to a data buffer corresponding to the destination virtual function and the communication path of the transfer destination.
  • the function transfer control unit may further include, for each of the plurality of virtual functions, a destination function selection table in which a field value of the destination virtual function or a hash value calculated using the field value is stored in advance; For each function, the field value of the received packet is compared with the field value of the destination function selection table, or the hash value calculated using the field value of the received packet and the hash value of the destination function selection table And a destination function control unit that determines the destination virtual function in accordance with the result of the comparison.
  • the function transfer control unit when the field value of the received packet or the hash value calculated using the field value is a value corresponding to a predetermined broadcast address set in advance, all the virtual functions May be determined as the destination virtual function.
  • the function transfer control unit determines, for each of the plurality of virtual functions, whether or not a promiscuous mode is set, and transfers all packets to the virtual function for which the promiscuous mode is set. It may be determined as a destination virtual function.
  • a network load distribution method for each communication path of a transfer destination of a received packet, and controls the transfer to a data buffer associated with a virtual function.
  • the function transfer control step for each of the plurality of virtual functions, a step of referring to a destination function selection table in which a hash value calculated using a field value or a field value of the destination virtual function is stored in advance, For each of the plurality of virtual functions, the field value of the received packet is compared with the field value of the destination function selection table, or the hash value calculated using the field value of the received packet and the destination function selection table And determining the destination virtual function in accordance with the result of the comparison.
  • the function transfer control step includes, when the field value of the received packet or the hash value calculated using the field value is a value corresponding to a predetermined broadcast address set in advance, all the virtual functions May be determined as the destination virtual function.
  • the function transfer control step determines, for each of the plurality of virtual functions, whether or not a promiscuous mode is set, and transmits all packets to the virtual function for which the promiscuous mode is set. It may be determined as a destination virtual function.
  • the present invention it is possible to provide a network load balancing apparatus that enables a packet distribution control method to be changed for each VM while maintaining a high throughput of a VNF, and realizes a high function and a high throughput of the entire system. It becomes possible.
  • FIG. 1 is a block diagram illustrating a configuration example of a network load distribution device according to an embodiment of the present invention.
  • FIG. 2 is a flowchart showing an operation example of the network load balancing device according to the embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating an operation example of the network load balancing device according to the first embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating an operation example of the network load balancing device according to the second embodiment of the present invention.
  • FIG. 5 is a block diagram showing a configuration example of a conventional network load distribution device.
  • FIG. 6 is a flowchart showing an operation example of the conventional network load distribution device.
  • FIG. 1 is a block diagram illustrating a configuration example of a network load distribution device according to an embodiment of the present invention.
  • the network load distribution device of the present invention is intended for use at a packet receiving end, and data in packet format is input to the network load distribution device.
  • a packet generally has, as header data, additional data indicating an attribute of the packet such as a field value of the packet.
  • the network load distribution device 1 includes a function transfer control unit 40, a hash value operation unit 10, a hash value operation control unit 11, a priority control unit 20, a load distribution control unit 30, a data buffer (4-1 to 4-M), a table An assignment control unit 50 and a packet transfer control unit 3 are provided.
  • the difference from the conventional configuration is that a function transfer control unit 40 is provided.
  • the network load distribution apparatus 1 can be realized using a device such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit) and a program operating on the device or circuit data of the device. When implemented by a program, the processor of the device executes processing according to the program stored in the memory, and functions as a network load distribution device.
  • the network load distribution device 1 can also be realized by using a program on a device such as a commonly used switch or router, or a virtual switch on a general-purpose server.
  • the function transfer control unit 40 is a block for determining which VNF to transfer the received packet 2 to. In the function transfer control unit 40, the destination virtual function of the received packet is determined.
  • VNF virtual network
  • VNFs can be assigned to 1 VM
  • multiple VNFs can be assigned to 1 VM.
  • two data buffers are associated with each function, but the present invention is not limited to this.
  • One data buffer may be assigned to one function, or three or more data buffers may be associated with one function.
  • the function transfer control unit 40 includes a destination function control unit 41 and a destination function selection table 42.
  • the destination function control unit 41 extracts a destination MAC address, which is a field value included in the received packet 2.
  • the destination function table 42 includes numerical information indicating whether or not a packet is transferred (ON / OFF) for each virtual function.
  • the MAC address of the destination virtual function is stored in advance in association with the MAC address. This destination function selection table can be preset from outside via the table assignment control unit 50.
  • the hash value calculation unit 10 of the network load balancing apparatus 1 acquires a field value at a predetermined position in the header data of the received packet 2, and acquires the acquired field value and a preset key ( key) and a hash value unique to the attribute of the packet is calculated from the value.
  • the calculated hash value is notified to the priority control unit 20 and the like.
  • the position of the field value to be obtained in the header data of the packet 2 is preset from the outside of the hash value calculation unit 10 via the hash value calculation control unit 11.
  • the key value can be preset from outside via the hash value calculation control unit 11.
  • the packet identification for an arbitrary field value having an arbitrary length instead of the fixed field value disclosed in Non-Patent Document 1, Processing can be realized. Further, it is possible to cope with special conditions, for example, acquisition of field values from a plurality of fields, and it is possible to secure future expandability.
  • the priority control unit 20 includes a priority route control unit 21 and a priority route selection table 22.
  • the possible value of the hash value calculated by the hash value calculation unit 10 for each virtual function and the communication path of the transmission destination are stored in advance in association with each other.
  • the contents of the priority route selection table are set in advance via the table allocation control unit 50.
  • the priority path control unit 21 of the priority control unit 20 compares the hash value (first hash value) calculated by the hash value calculation unit 10 with the priority path selection table 22, and calculates the hash value calculated by the hash value calculation unit 10. If the same value is registered in the priority route selection table 22, the information of the communication route of the transmission destination corresponding to this hash value is acquired from the priority route selection table 22, and the information of the communication route of the transmission destination is obtained. To the packet transfer control unit 3. On the other hand, when the same value as the hash value calculated by the hash value calculation unit 10 is not registered in the priority route selection table 22, the hash value calculated by the hash value calculation unit 10 is notified to the load distribution control unit 30. You.
  • the load distribution control unit 30 includes a load distribution path control unit 31, a load distribution path selection table 32, and a load distribution hash value calculation unit 33.
  • the load distribution route selection table 32 of the load distribution control unit 30 stores in advance the possible value of the hash value calculated by the load distribution hash value calculation unit 33 and the communication path of the destination in association with each other for each virtual function. I have.
  • the load distribution hash value calculation unit 33 of the load distribution control unit 30 calculates a hash value used for load distribution processing based on the hash value calculated by the hash value calculation unit 10 and information on a predetermined destination that can be used in load distribution control. (Second hash value). More specifically, for example, the hash value calculated by the hash value calculation unit 10 is used as the number of destination communication paths that can be used for load distribution control (for each virtual function, the number of all data buffers minus the data used for priority control). (The number of buffers).
  • the hash value calculated by the hash value calculation unit 10 is a value unique to the attribute of the packet.
  • the hash value calculated by the load balancing hash value calculation unit 33 is not always a value unique to the attribute of a packet, the same hash value may be calculated for different packet attributes.
  • the load distribution path control unit 31 of the load distribution control unit 30 refers to the hash value calculated by the load distribution hash value calculation unit 33 and the load distribution path selection table 32, and calculates the hash value calculated by the load distribution hash value calculation unit 33. Is obtained from the load distribution route selection table 32, and notifies the packet transfer control unit 3 of the information.
  • the packet transfer control unit 3 divides the received packet 2 according to the transfer destination function number determined by the function transfer control unit 40 and the information of the communication path of the transmission destination notified from the priority control unit 20 or the load distribution control unit 30. , To one of the data buffers (4-1 to 4-M) corresponding to the communication path. At this time, if there are a plurality of function numbers notified from the function transfer control unit 40, the target packet is duplicated and transmitted to each data buffer.
  • FIG. 2 is a flowchart showing an operation example of the network load balancing device according to the embodiment of the present invention.
  • the network load balancing apparatus Upon receiving the packet (S1-1), the network load balancing apparatus calculates a hash value using the field value of the received packet (S1-2), and extracts a destination MAC address included in the received packet (S1-2). S1-3), destination function control for determining the destination virtual function of the received packet based on the MAC address of the packet is performed (S1-4, S1-5).
  • the hash value calculation is performed between the reception of the packet and the extraction of the destination MAC address.
  • the present invention is not limited to this, and is performed before the destination function control or before the confirmation of the priority route selection table. You may. By performing the hash value calculation before the destination function control or before checking the priority route selection table, it is possible to change the hash calculation condition for each destination virtual function.
  • FIG. 3 is a flowchart showing an operation example of the network load balancing device according to the first embodiment of the present invention.
  • the destination function control unit checks whether the transfer setting of the destination function table is ON (S2-1). If the transfer setting is ON, it is checked whether the extracted destination MAC address matches the MAC address registered in the destination function table (S2-2). If the destination MAC address matches, the received packet is sent to the corresponding virtual function. The corresponding function number is notified to the packet transfer control unit as that to be transferred (S2-3). After that, the processing makes a transition to the processing (S1-6) for selecting the priority control transfer or the load distribution control transfer in FIG.
  • the transfer setting OFF or the extracted destination MAC address does not match the registered destination MAC address, some of the current virtual functions are confirmed (S2-4), and the number of virtual functions has reached N. If not, the packet transfer to the virtual function is not performed, and it is confirmed whether the packet is transferred to the next virtual function. If the number of virtual functions has reached N, it is checked whether or not to transfer packets to all virtual functions (S2-5). If not to transfer to all virtual functions, the received packet is checked. Is discarded and the process is terminated (S2-6). On the other hand, if there is at least one virtual function to be transferred, the flow proceeds to the repetition end processing (S1-11) in FIG. 2 to execute the packet distribution processing (S1-12).
  • the priority control unit compares the hash value calculated by the hash value calculation unit with the priority route selection table (S1-6), and the same value as the hash value calculated by the hash value calculation unit is registered in the priority route selection table. If so, the information of the communication route of the transmission destination corresponding to the hash value is acquired from the priority route selection table, and the information is notified to the packet transfer control unit (S1-7). If the same value as the hash value calculated by the hash value calculation unit is not registered in the priority route selection table, the hash value is notified to the load distribution control unit to perform load distribution (S1-8).
  • the load distribution control unit calculates a hash value used for the load distribution process from the hash value calculated by the hash value calculation unit and information on a predetermined destination that can be used in the load distribution control (S1-9). Specifically, the hash value calculated by the hash value calculation unit is used as the number of communication paths of the data buffer that can be used in the load distribution control (for each virtual function, the total number of data buffers ⁇ the number of data buffers used for the priority control). ).
  • the hash value calculated by the hash value calculation unit is a value unique to the attribute of the packet.
  • the hash value calculated by the load balancing hash value calculation unit is not necessarily a value unique to the attribute of the packet, and the same value may be calculated for different attributes.
  • the load distribution control unit compares the calculated hash value with the load distribution route selection table, obtains the information on the communication route of the destination corresponding to the calculated hash value from the load distribution route selection table, and obtains the communication of the destination.
  • the route information is notified to the packet transfer control unit (S1-10).
  • the packet transfer control unit converts the received packet into a corresponding data buffer according to the transfer destination function number determined by the function transfer control unit and the information of the communication path of the destination notified from the priority control unit or the load distribution control unit. And the packet is distributed (S1-12). At this time, if there are a plurality of function numbers notified from the function transfer control unit, a plurality of target packets may be copied and transmitted to each data buffer.
  • a method of distributing all virtual functions to any virtual function by priority control by setting the destination function selection table, the priority path selection table, and the load distribution path selection table, High-speed transfer of received packets is possible while assigning a method of distributing by priority, a method of distributing priority control and a method of distributing load, and the distribution control method of packets can be changed for each VM while maintaining high VNF throughput. As a result, it is possible to realize high functionality and high throughput of the entire system.
  • the distribution to the virtual function is performed based on the MAC address which is the field value of the received packet, but the present invention is not limited to this.
  • the distribution may be performed based on the IP address which is the field value of the received packet, or the distribution may be performed based on the hash value calculated using the field value of the received packet.
  • the hash value calculated by the hash value calculation unit 10 may be used, or the function transfer control unit may calculate the hash value.
  • the hash value is calculated by the load distribution hash value calculation unit of the load distribution control unit 30.
  • the hash value is not calculated by the load distribution hash value calculation unit, and the priority route of the priority control unit 20 is not calculated.
  • Load distribution control may be performed using the hash value notified from the control unit as it is.
  • FIG. 4 is a flowchart illustrating an operation example of the network load balancing device according to the second embodiment of the present invention. Note that the basic processing flow after receiving a packet according to the second embodiment is the same as that of the first embodiment (FIG. 2), and the processing of destination function control is different.
  • the function transfer control unit determines whether the extracted destination MAC address is a specific address (S3-). 2).
  • the specific address corresponds to, for example, a broadcast address of all “1”. If the destination MAC address is a broadcast address of all "1”, the received packet is regarded as a broadcast packet, and information of a function number for transferring the received packet to the virtual function is notified to the packet transfer control unit. (S3-5).
  • the MAC address extracted from the received packet is not a specific address, it is confirmed whether the setting of the promiscuous mode is valid in the current virtual function (S3-3).
  • the virtual function is regarded as a virtual function that receives all packets regardless of the destination MAC address of the input packet, and a function number indicating that the packet is transferred to the virtual function is set. The information is notified to the packet transfer control unit (S3-5).
  • the setting of the promiscuous mode is invalid, the processing flow is the same as that of the first embodiment (S3-4 to S3-8).
  • the validity / invalidity of the setting of the promiscuous mode may be determined, for example, based on numerical information indicating validity / invalidity for each virtual function stored in the destination function selection table, or the destination function selection table. May be determined based on whether or not the MAC address of the destination virtual function stored in the destination virtual function is a specific address indicating the promiscuous mode (for example, an all “0” address that is not normally used), but is not limited thereto, and another method may be used. You may.
  • a function of coping with a broadcast packet and a function of copying and transferring an arbitrary packet to an arbitrary function is provided. It is possible to provide a network load distribution device capable of performing a distribution process.
  • the present invention is not limited to this. For example, it may be determined whether to copy and transfer using the IP address of the received packet. Alternatively, a part of the destination address may be masked, and the determination may be made using only part of the destination address.
  • the network load distribution device may be a circuit or a device. This is the best mode of the configuration in which the network load distribution device shown in the embodiment of the present invention includes the priority control processing function for realizing the QoS function and the load distribution processing function for realizing high throughput.
  • the apparatus can also be realized by firmware stored in a ROM and hardware such as reconfigurable devices, elements, boards, and wiring. Further, the network load distribution device of the present invention can be configured by a combination of software and hardware, and further, a combination of firmware.
  • the firmware and software are stored as a program on a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
  • the program is read and executed by the CPU.
  • the program causes a computer to function as the network load balancing device of the present invention, or causes the computer to execute each step of the network load balancing device.
  • the present invention can be applied to destination control of a packet implemented on hardware with small resources.
  • SYMBOLS 1 Network load distribution apparatus, 2 ... Packet, 3 ... Packet transfer control part, 4-1 to 4-M ... Data buffer, 10 ... Hash value calculation part, 11 ... Hash value calculation control part, 20 ... Priority control part, Reference numeral 21: priority path control unit, 22: priority path selection table, 30: load distribution control unit, 31: load distribution path control unit, 32: load distribution path selection table, 33: load distribution hash value calculation unit, 40: function transfer Control unit 41: destination function control unit 42: destination function selection table 50: table allocation control unit

Abstract

VNF(Virtual Network Function)の高スループットを維持しながら、複数のVM(Virtual Machine)毎にパケットの振分け制御手法を変更可能とし、システム全体の高機能化・高スループット化を実現するネットワーク負荷分散装置を提供する。 本発明のネットワーク負荷分散装置は、受信したパケットの転送先の通信経路ごとに設けられ、仮想ファンクションに対応づけられたデータバッファを有し、受信したパケットのフィールド値に基づいて宛先仮想ファンクションを決定し、フィールド値を用いて演算した第1のハッシュ値に基づいて、優先制御の対象となるパケットの転送先の通信経路を決定し、第1のハッシュ値に基づく第2のハッシュ値に基づいて、予め設定したデータバッファの負荷分散状況と合致するように、負荷分散制御の対象となるパケットの転送先の通信経路を決定し、決定した宛先仮想ファンクションと転送先の通信経路に従って、宛先仮想ファンクションおよび転送先の通信経路に対応するデータバッファにパケットを送信するように構成されている。

Description

ネットワーク負荷分散装置および方法
 本発明は、パケットの送出先を制御するための装置に係り、特に通信サーバ補助装置内での特定のパケットに対する優先制御、負荷分散および複数のVM(Virtual Machine)への振分けを統合的に具備させることによってQoS(Quality of Service)の確保とスループット性能の向上とを実現しながら複数のVMへの振分けを可能とするネットワーク負荷分散装置および方法に関するものである。
 通常、SDN(Software Defined Networking)/NFV(Network Function Virtualization)に基づいて構成されるネットワークは、複数の汎用サーバで構成される。汎用サーバ内に複数のVM(Virtual Machine)を構築し、それらを用いて1つのアプリケーションの処理をさせたり、それぞれのVMを用いて複数のアプリケーションの処理をさせる場合もある。
 このように、VM上で動作する仮想化された通信アプリケーションのソフトウェアはVNF(Virtual Network Function)と呼ばれる。ひとつの汎用サーバで様々なVNFを運用できるため、専用装置を使用する従来のネットワーク構成と比べてCAPEX/OPEXを低減できる。従来専用ハードウェアによる構成が一般的であった負荷分散装置においても、VNFを活用したより柔軟な構成を有する装置が公知となっている。
 一方、汎用サーバのパケット送受信インタフェースとしては、汎用のネットワークアダプタ(NIC:Network Interface Card)が搭載される。非特許文献1に開示される一般的なNICでは、受信パケットをデータバッファに蓄積し、DMA(Direct Memory Access)転送を用いてサーバ内の主記憶へ受信パケットを格納する。
 NIC内でのデータバッファへのパケット振分け制御手法はパケット転送性能やサーバシステム全体で実現できる機能に大きく影響するため、データバッファの個数や複数のデータバッファへのパケット振分け制御手法はNICによってそれぞれ異なる。例えば、複数のデータバッファを備え、受信パケットに対して負荷分散制御を行うことで複数のCPUコアで分散処理をさせ、スループットが向上できる。また、1つのデータバッファを占有し、フローを持った受信パケットに対して優先制御を行うことでフロー内でのパケット順序逆転を防止することができる。
 また、汎用サーバ・汎用NICおよびVNFの構成を有する負荷分散装置では、前述の一般的なNICが備えるハードウェアのI/O仮想化支援機能SR-IOV(Single Root-IO Virtualization)を用いてCPUとの通信ボトルネックを低減する構成が主流である。しかしながら、従来の負荷分散装置では、複数の外部サーバに向けた大量のパケットの振り分けをVNF側で処理するため、振り分け対象となるトラヒックが一定量以上を超えた場合、SR-IOVを用いたとしても大量のパケット廃棄が発生するという問題がある。そのため、VNF側で予め流すことができる最大トラヒック量の制限をかける場合もある。
 上記課題を解決するため、受信パケットを効率的に振り分けることにより、CPU負荷を低減する装置が提案されている。例えば、特許文献1では、受信パケットの負荷分散制御や優先制御を両立させるパケット振分け手法を実現している。図5、6は、特許文献1のネットワーク負荷分散装置の構成例と動作例を示す図である。
 特許文献1では、受信したパケットの特定領域に対してハッシュ演算が行われ、演算されたハッシュ値を優先経路選択テーブルに登録されているハッシュ値と比較し、一致した場合には、受信したパケットを優先経路選択テーブルに登録されているデータバッファ(4-1~4-3)へ転送することにより優先制御を実現する。一方、演算されたハッシュ値が優先経路選択テーブルに登録されているハッシュ値と一致しない場合には、ハッシュ値を負荷分散制御部30へ通知し、負荷分散経路選択テーブルに登録されているデータバッファへ、パケットを負荷分散しながら転送する。
特開2017-139597号公報
"Intel Ethernet(登録商標) Controller XL710 Datasheet",2015,<http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf>
 しかしながら、特許文献1のネットワーク負荷分散装置では、NICから複数VMへそれぞれパケットを送信することを考えた際に、宛先VMを考慮してパケットを送信する構成となっていないため、受信パケットを各VMへ振分けるブリッジ機能をソフトウェアで実装する必要がある。ブリッジ機能をソフトウェアで実装する場合、VM数の増加に伴いスループットが低下するという問題がある。また、特許文献1のネットワーク負荷分散装置で各VMへの振分けをソフトウェアで行った場合には、VM毎に優先度振分けや負荷分散振分けの制御手法を変更することが不可能である。優先度振分け等制御機能はNICに備えられ、VMへの振分け機能はソフトウェアに備えられており、各機能が完全に分離されて配置されているからである。
 ここで、複数VM毎に異なるアプリケーションを実行させる場合、アプリケーション毎に振分け制御手法を変更できれば、サーバの柔軟な運用が可能となる。例えば、画像処理などフローを重視するアプリケーションの場合は優先制御を設定したVM、その他のアプリケーションの場合は負荷分散制御を設定したVMを使用できるようにすれば、システム全体の高機能化、高スループット化を実現することができる。一方、アプリケーション毎に振分け制御手法を変更できない場合には、システム全体の高機能化・高スループット化が期待できない。
 本発明は、上記課題を解決するためになされたものであり、VNFの高スループットを維持しながら、複数のVM毎にパケットの振分け制御手法を変更可能とし、システム全体の高機能化・高スループット化を実現するネットワーク負荷分散装置を提供することを目的とする。
 上記課題を解決するために、本発明のネットワーク負荷分散装置は、受信したパケットの転送先の通信経路ごとに設けられ、仮想ファンクションに対応づけられたデータバッファと、前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値に基づいて宛先仮想ファンクションを決定するファンクション転送制御部と、前記フィールド値を用いて第1のハッシュ値を演算するハッシュ値演算部と、前記第1のハッシュ値に基づいて、優先制御の対象となるパケットの転送先の通信経路を決定する優先制御部と、前記第1のハッシュ値または前記第1のハッシュ値に基づく第2のハッシュ値に基づいて、予め設定した前記データバッファの負荷分散状況と合致するように、負荷分散制御の対象となるパケットの転送先の通信経路を決定する負荷分散制御部と、前記ファンクション転送制御部が決定した前記宛先仮想ファンクションと、前記優先制御部および前記負荷分散制御部の少なくともいずれかが決定した前記転送先の通信経路に従って、前記宛先仮想ファンクションおよび前記転送先の通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御部とを備える。
 また、前記ファンクション転送制御部は、複数の前記仮想ファンクションごとに、前記宛先仮想ファンクションのフィールド値またはフィールド値を用いて演算したハッシュ値が予め記憶されている宛先ファンクション選択テーブルと、複数の前記仮想ファンクションごとに、前記受信したパケットのフィールド値と前記宛先ファンクション選択テーブルのフィールド値との照合、または、前記受信したパケットのフィールド値を用いて演算したハッシュ値と前記宛先ファンクション選択テーブルのハッシュ値との照合を行い、前記照合の結果に応じて前記宛先仮想ファンクションを決定する宛先ファンクション制御部とを備えてもよい。
 また、前記ファンクション転送制御部は、前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値が、予め設定した所定のブロードキャストアドレスに相当する値であった場合に、全ての前記仮想ファンクションを前記宛先仮想ファンクションとして決定してもよい。
 また、前記ファンクション転送制御部は、複数の前記仮想ファンクションごとに、プロミスキャスモードの設定の有無を判定し、前記プロミスキャスモードが設定されている前記仮想ファンクションを、全てのパケットが転送される前記宛先仮想ファンクションとして決定してもよい。
 上記課題を解決するために、本発明のネットワーク負荷分散方法は、受信したパケットの転送先の通信経路ごとに設けられ、仮想ファンクションに対応づけられたデータバッファへの転送を制御するネットワーク負荷分散方法であって、前記受信したパケットに含まれるフィールド値またはフィールド値を用いて演算したハッシュ値に基づいて宛先仮想ファンクションを決定するファンクション転送制御ステップと、前記フィールド値を用いて第1のハッシュ値を演算するハッシュ値演算ステップと、前記第1のハッシュ値に基づいて、優先制御の対象となるパケットの転送先の通信経路を決定する優先制御ステップと、前記第1のハッシュ値または前記第1のハッシュ値に基づく第2のハッシュ値に基づいて、予め設定した前記データバッファの負荷分散状況と合致するように、負荷分散制御の対象となるパケットの転送先の通信経路を決定する負荷分散制御ステップと、前記ファンクション転送制御ステップにおいて決定された前記宛先仮想ファンクションと、前記優先制御ステップおよび前記負荷分散制御ステップの少なくともいずれかにおいて決定された前記転送先の通信経路に従って、前記宛先仮想ファンクションおよび前記転送先の通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含む。
 また、前記ファンクション転送制御ステップは、複数の前記仮想ファンクションごとに、前記宛先仮想ファンクションのフィールド値またはフィールド値を用いて演算したハッシュ値が予め記憶されている宛先ファンクション選択テーブルを参照するステップと、複数の前記仮想ファンクションごとに、前記受信したパケットのフィールド値と前記宛先ファンクション選択テーブルのフィールド値との照合、または、前記受信したパケットのフィールド値を用いて演算したハッシュ値と前記宛先ファンクション選択テーブルのハッシュ値との照合を行い、前記照合の結果に応じて前記宛先仮想ファンクションを決定するステップとを含んでもよい。
 また、記ファンクション転送制御ステップは、前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値が、予め設定した所定のブロードキャストアドレスに相当する値であった場合に、全ての前記仮想ファンクションを前記宛先仮想ファンクションとして決定してもよい。
 また、前記ファンクション転送制御ステップは、複数の前記仮想ファンクションごとに、プロミスキャスモードの設定の有無を判定し、前記プロミスキャスモードが設定されている前記仮想ファンクションを、全てのパケットが送信される前記宛先仮想ファンクションとして決定してもよい。
 本発明によれば、VNFの高スループットを維持しながら、VM毎にパケットの振分け制御手法を変更可能とし、システム全体の高機能化・高スループット化を実現するネットワーク負荷分散装置を提供することが可能となる。
図1は、本発明の実施の形態に係るネットワーク負荷分散装置の構成例を示すブロック図である。 図2は、本発明の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。 図3は、本発明の第1の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。 図4は、本発明の第2の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。 図5は、従来のネットワーク負荷分散装置の構成例を示すブロック図である。 図6は、従来のネットワーク負荷分散装置の動作例を示すフローチャートである。
 以下、本発明の実施形態について図面を参照して説明する。本発明は様々な実施形態で実施することが可能であり、以下に示す実施形態に限定されるものではない。
<ネットワーク負荷分散装置>
 図1は、本発明の実施の形態に係るネットワーク負荷分散装置の構成例を示すブロック図である。本発明のネットワーク負荷分散装置はパケット受信端での利用を想定しており、ネットワーク負荷分散装置にはパケット形式のデータが入力される。パケットは、一般にヘッダデータとして、パケットのフィールド値等のパケットの属性を表す付加データを有している。
 ネットワーク負荷分散装置1は、ファンクション転送制御部40、ハッシュ値演算部10、ハッシュ値演算制御部11、優先制御部20、負荷分散制御部30、データバッファ(4-1~4-M)、テーブル割り当て制御部50、およびパケット転送制御部3を備えている。従来構成との差分は、ファンクション転送制御部40を備えている点である。
 ネットワーク負荷分散装置1は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データを用いて実現することができる。プログラムで実現する場合、デバイスのプロセッサが、メモリに格納されたプログラムに従って処理を実行し、ネットワーク負荷分散装置として機能する。また、ネットワーク負荷分散装置1は、一般に利用されるスイッチまたはルータのような装置上のプログラムあるいは汎用サーバ上の仮想スイッチなどを利用して実現することもできる。
<ファンクション転送制御部>
 ファンクション転送制御部40は、受信したパケット2をどのVNFに転送するかを決定するためのブロックである。ファンクション転送制御部40において、受信パケットの宛先仮想ファンクションが決定される。
 ここで、サーバ上に構築されたVMとVNFはOS内で対応付けがされているものとする。例えば、1VNFを1VMに割り当てたり、複数VNFを1VMに割り当てることができる。また、図1の構成例では、各ファンクションには2つのデータバッファが対応づけられているが、これに限られるものではない。1ファンクションに1データバッファを割り当ててもよいし、1ファンクションに3つ以上のデータバッファを対応づけても良い。
 ファンクション転送制御部40は、宛先ファンクション制御部41と宛先ファンクション選択テーブル42とから構成されている。宛先ファンクション制御部41は、受信したパケット2内に含まれるフィールド値である宛先MACアドレスを抽出し、宛先ファンクションテーブル42には仮想ファンクション毎にパケットの転送有無(ON/OFF)を示す数値情報と宛先仮想ファンクションのMACアドレスとが対応付けて予め記憶されている。この宛先ファンクション選択テーブルは、外部からテーブル割当て制御部50を介して予め設定することができる。
 宛先ファンクション制御部41は、パケット2を受信すると、受信したパケット2内に含まれる宛先MACアドレスを抽出し、抽出した宛先MACアドレスが宛先ファンクション選択テーブルに登録されているMACアドレスと一致しているか照合し、一致していた場合は対応する仮想ファンクションへ受信したパケット2を転送するものとして、当該ファンクション番号をパケット転送制御部3へ通知する。また、仮想ファンクション毎(ファンクション番号=0~N)にこの宛先ファンクション処理を繰り返すことにより、宛先MACアドレスに対応するファンクション番号を検索し、パケット転送制御部3へ通知する。
<ハッシュ演算部>
 ネットワーク負荷分散装置1のハッシュ値演算部10は、パケット2を受信すると、受信したパケット2のヘッダデータ中の所定の位置にあるフィールド値を取得し、取得したフィールド値と予め設定されたキー(key)値とからパケットの属性に固有のハッシュ値を演算する。演算したハッシュ値は、優先制御部20等に通知される。
 ここで、パケット2のヘッダデータ中の取得するフィールド値の位置は、ハッシュ値演算部10に対して外部からハッシュ値演算制御部11を介して予め設定される。同様に、キー値についても、外部からハッシュ値演算制御部11を介して予め設定することができる。
 取得するヘッダデータ中のフィールド値の位置を外部から指定できるようにすれば、非特許文献1に開示されたような固定のフィールド値ではなく、任意の長さを持つ任意のフィールド値に対するパケット識別処理を実現することができる。また、特殊な条件、例えば、複数のフィールドからのフィールド値の取得等に対応することも可能となり、将来の拡張性を確保することができる。
<優先制御部>
 優先制御部20は、優先経路制御部21と優先経路選択テーブル22とから構成される。優先制御部20の優先経路選択テーブル22には、仮想ファンクション毎にハッシュ値演算部10が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この優先経路選択テーブルの内容は、テーブル割り当て制御部50を介して予め設定される。
 優先制御部20の優先経路制御部21は、ハッシュ値演算部10が演算したハッシュ値(第1のハッシュ値)と優先経路選択テーブル22とを照合し、ハッシュ値演算部10が演算したハッシュ値と同一の値が優先経路選択テーブル22に登録されている場合には、このハッシュ値に対応する送出先の通信経路の情報を優先経路選択テーブル22から取得して、送出先の通信経路の情報をパケット転送制御部3へ通知する。一方、ハッシュ値演算部10が演算したハッシュ値と同一の値が優先経路選択テーブル22に登録されていない場合には、ハッシュ値演算部10が演算したハッシュ値は負荷分散制御部30へ通知される。
<負荷分散制御部>
 負荷分散制御部30は、負荷分散経路制御部31と、負荷分散経路選択テーブル32と、負荷分散ハッシュ値演算部33とから構成される。負荷分散制御部30の負荷分散経路選択テーブル32には、仮想ファンクション毎に負荷分散ハッシュ値演算部33が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。
 負荷分散制御部30の負荷分散ハッシュ値演算部33は、ハッシュ値演算部10が演算したハッシュ値と、負荷分散制御で利用可能な所定の送出先の情報とから負荷分散処理に利用するハッシュ値(第2のハッシュ値)を演算する。具体的には、例えば、ハッシュ値演算部10が演算したハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数(仮想ファンクションごとに、全データバッファの数-優先制御に使用するデータバッファの数)で除算すればよい。
 ハッシュ値演算部10が演算するハッシュ値は、パケットの属性に固有の値である。一方、負荷分散ハッシュ値演算部33が演算するハッシュ値は、パケットの属性に固有の値であるとは限らないため、異なるパケットの属性について同一のハッシュ値が算出される場合が有り得る。
 負荷分散制御部30の負荷分散経路制御部31は、負荷分散ハッシュ値演算部33が演算したハッシュ値と負荷分散経路選択テーブル32とを参照し、負荷分散ハッシュ値演算部33が演算したハッシュ値に対応する送出先の通信経路の情報を負荷分散経路選択テーブル32から取得して、パケット転送制御部3へ通知する。
<パケット転送制御部>
 パケット転送制御部3は、受信したパケット2を、ファンクション転送制御部40で決定される転送先ファンクション番号と、優先制御部20あるいは負荷分散制御部30から通知される送出先の通信経路の情報に従って、通信経路に対応するデータバッファ(4-1~4-M)のいずれかへ送信する。この際、ファンクション転送制御部40から通知されるファンクション番号が複数あった場合は、対象パケットを重複分複製し、各データバッファへ送信する。
<ネットワーク負荷分散装置の動作>
 図2は、本発明の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。ネットワーク負荷分散装置では、パケットを受信する(S1-1)と、受信したパケットのフィールド値を用いてハッシュ値を演算し(S1-2)、受信パケット内に含まれる宛先MACアドレスを抽出し(S1-3)、パケットのMACアドレスに基づいて受信パケットの宛先仮想ファンクションを決定する宛先ファンクション制御を行う(S1-4、S1-5)。
 図2の動作例では、ハッシュ値演算はパケットの受信と宛先MACアドレス抽出の間に行われるが、これに限ることはなく、宛先ファンクション制御の前、または優先経路選択テーブルの確認の前に行ってもよい。宛先ファンクション制御の前、または優先経路選択テーブルの確認の前にハッシュ値演算を行うことにより、宛先仮想ファンクション毎にハッシュ演算の条件を変更することも可能となる。
 図3は、本発明の第1の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。図3では、受信したパケットの宛先MACアドレスに対応する宛先仮想ファンクションを決定する処理を仮想ファンクション毎(ファンクション番号=0~N)に繰り返すことにより、宛先MACアドレスに対応するファンクション番号を検索する。
 宛先ファンクション制御部では、宛先ファンクションテーブルの転送設定がONかを確認する(S2-1)。転送設定=ONの場合、抽出した宛先MACアドレスが宛先ファンクションテーブルに登録されているMACアドレスと一致しているか照合し(S2-2)、一致していた場合は対応する仮想ファンクションへ受信パケットを転送するものとして、対応するファンクション番号をパケット転送制御部へ通知する(S2-3)。その後、図2における優先制御転送か負荷分散制御転送かを選択するための処理(S1-6)へ遷移する。
 一方、転送設定=OFFまたは抽出した宛先MACアドレスが登録されている宛先MACアドレスに一致しない場合には、現在の仮想ファンクションがいくつかを確認し(S2-4)、仮想ファンクションがNに達していない場合は、当該仮想ファンクションへのパケット転送をしないものとし、次の仮想ファンクションへ転送するかを確認する。仮想ファンクションがNまで達成していた場合において、全ての仮想ファンクションに対してパケット転送をしないか確認し(S2-5)、全ての仮想ファンクションに対してパケット転送をしない場合には、受信したパケットを廃棄して終了する(S2-6)。一方、1つでも転送する仮想ファンクションが存在する場合は、図2の繰り返し終了処理(S1-11)に遷移しパケット振分け処理(S1-12)を実行する。
 図2において、受信したパケットが当該仮想ファンクションに転送すると決定された場合には、優先制御転送か負荷分散制御転送かを選択し、送出先の通信経路をパケット転送制御部へ通知する処理が行われる。
 優先制御部は、ハッシュ値演算部が演算したハッシュ値と優先経路選択テーブルとを照合し(S1-6)、ハッシュ値演算部が演算したハッシュ値と同一の値が優先経路選択テーブルに登録されている場合には、このハッシュ値と対応する送出先の通信経路の情報を優先経路選択テーブルから取得して、その情報をパケット転送制御部へ通知する(S1-7)。ハッシュ値演算部が演算したハッシュ値と同一の値が優先経路選択テーブルに登録されていない場合には、負荷分散を行うためハッシュ値を負荷分散制御部へ通知する(S1-8)。
 負荷分散制御部は、ハッシュ値演算部が演算したハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから負荷分散処理に利用するハッシュ値を演算する(S1-9)。具体的には、ハッシュ値演算部が演算したハッシュ値を負荷分散制御で利用可能なデータバッファの通信経路の数(仮想ファンクションごとに、全データバッファの数-優先制御に使用するデータバッファの数)で除算すればよい。
 上記のとおり、ハッシュ値演算部が演算するハッシュ値は、パケットの属性に固有の値である。一方、負荷分散ハッシュ値演算部が演算するハッシュ値は、パケットの属性に固有の値であるとは限らず、異なる属性について同一の値が算出される場合が有り得る。
 負荷分散制御部は、演算したハッシュ値と負荷分散経路選択テーブルとを照合し、演算したハッシュ値と対応する送出先の通信経路の情報を負荷分散経路選択テーブルから取得して、送出先の通信経路の情報をパケット転送制御部へ通知する(S1-10)。
 パケット転送制御部は、受信したパケットを、ファンクション転送制御部で決定される転送先ファンクション番号と、優先制御部あるいは負荷分散制御部から通知される送出先の通信経路の情報に従って、対応するデータバッファへ送信し、パケット振り分けを行う(S1-12)。この際、ファンクション転送制御部から通知されるファンクション番号が複数あった場合は、複数の対象パケットを複製し、各データバッファへ送信すればよい。
 このように、本実施の形態によれば、宛先ファンクション選択テーブル、優先経路選択テーブル、負荷分散経路選択テーブルの設定により任意の仮想ファンクションに対して、全て優先制御で振分ける手法、全て負荷分散制御で振分ける手法、優先制御と負荷分散制御を混ぜて振分ける手法を割当てながら、受信パケットの高速転送が可能となり、VNFの高スループットを維持しながら、VM毎にパケットの振分け制御手法を変更可能となり、システム全体の高機能化・高スループット化を実現することが可能となる。
 また、本実施の形態では、仮想ファンクションへの振分けを受信したパケットのフィールド値であるMACアドレスに基づいて行ったが、これに限られることはない。例えば、受信したパケットのフィールド値であるIPアドレスに基づいて振り分けを行っても良いし、受信パケットのフィールド値を用いて演算したハッシュ値に基づいて振分けを行っても良い。ハッシュ値を用いて振分けを行う場合には、ハッシュ値演算部10で演算したハッシュ値をもちいてもよいし、ファンクション転送制御部においてハッシュ値を演算するようにしてもよい。
 また、本実施の形態では、負荷分散制御部30の負荷分散ハッシュ値演算部でハッシュ値を演算したが、負荷分散ハッシュ値演算部でハッシュ値を演算せずに、優先制御部20の優先経路制御部から通知されたハッシュ値をそのまま用いて負荷分散制御を行ってもよい。
<第2の実施の形態>
 第2の実施の形態では、第1の実施の形態の動作に加え、受信パケットを複製して複数の仮想ファンクションへ転送するブロードキャスト転送およびプロミスキャスモード転送を行う。図4は、本発明の第2の実施の形態に係るネットワーク負荷分散装置の動作例を示すフローチャートである。なお、第2の実施の形態におけるパケットを受信してからの基本的な処理フローは、第1の実施の形態と同一(図2)であり、宛先ファンクション制御の処理が異なっている。
 図4では、ファンクション転送制御部において、宛先ファンクション選択テーブルを参照した結果(S3-1)、転送設定=ONだった場合には、抽出した宛先MACアドレスが特定のアドレスかを判定する(S3-2)。特定アドレスとは、例えば、all”1”のブロードキャストアドレスが該当する。宛先MACアドレスがall”1”のブロードキャストアドレスだった場合には、受信パケットはブロードキャストパケットとみなされ、受信したパケットを当該仮想ファンクションへ転送する旨のファンクション番号の情報がパケット転送制御部へ通知される(S3-5)。
 一方、受信したパケットから抽出したMACアドレスが特定のアドレスでない場合には、現在の仮想ファンクションで、プロミスキャスモードの設定が有効かを確認する(S3-3)。プロミスキャスモードの設定が有効の場合には、当該仮想ファンクションは入力されたパケットの宛先MACアドレスに関わらず全てのパケットを受信する仮想ファンクションとみなされ、当該仮想ファンクションへ転送する旨のファンクション番号の情報がパケット転送制御部へ通知される(S3-5)。一方、プロミスキャスモードの設定が無効の場合には、以後、第1の実施の形態と同様の処理フローとなる(S3-4~S3-8)。
 ここで、プロミスキャスモードの設定の有効/無効の判断は、例えば、宛先ファンクション選択テーブルに記憶した仮想ファンクション毎の有効/無効を示す数値情報に基づいて判断してもよいし、宛先ファンクション選択テーブルに記憶されている宛先仮想ファンクションのMACアドレスがプロミスキャスモードを示す特定アドレス(例えば、通常使用されないall”0”アドレス)かどうかで判断してもよいが、これに限られず他の方法を用いてもよい。
 なお、プロミスキャスモードの設定の有効/無効の判断に、宛先ファンクション選択テーブルに記憶した仮想ファンクション毎の有効/無効を示す数値情報に基づいて判断する場合は、例えば、2進数表記で00(及び01)の場合は「転送設定=OFF」(プロミスキャスモードも無効)、10の場合は「転送設定=ON」だが、プロミスキャスモードは無効、11の場合は「転送設定=ON」でプロミスキャスモードも有効と判断する。
 このように、本実施の形態によれば、第1の実施の形態に加え、ブロードキャストパケットの対応や任意のパケットに対して任意のファンクションへ複製転送する機能を備えているため、より高度なパケット振分け処理を可能とするネットワーク負荷分散装置を提供することができる。
 また、本実施の形態においては、受信パケットの複製転送をするかを判定する際に、受信したパケットの宛先MACアドレスを使用する説明をしたが、これに限ることはない。例えば、受信パケットのIPアドレスを使用して複製転送をするかを判定しても良い。また、宛先アドレスの一部にマスクをかけ、宛先アドレスの一部のみを使用して判定するようにしても良い。
 本発明の実施の形態のネットワーク負荷分散装置は、回路であってもよいし、機器であってもよい。本発明の実施の形態で示したネットワーク負荷分散装置が、QoS機能を実現する優先制御処理機能と高スループットを実現する負荷分散処理機能とを具備する構成の最良の形態であるが、ネットワーク負荷分散装置は、ROMに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現することもできる。また、本発明のネットワーク負荷分散装置は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで構成することもできる。
 ここで、ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPUにより読み出されて実行される。プログラムは、本発明のネットワーク負荷分散装置としてコンピュータを機能させるものであり、あるいは、ネットワーク負荷分散装置の各ステップをコンピュータに実行させるものである。
 本発明は、小資源のハードウェア上で実施されるパケットの送出先制御に適用することができる。
 1…ネットワーク負荷分散装置、2…パケット、3…パケット転送制御部、4-1~4-M…データバッファ、10…ハッシュ値演算部、11…ハッシュ値演算制御部、20…優先制御部、21…優先経路制御部、22…優先経路選択テーブル、30…負荷分散制御部、31…負荷分散経路制御部、32…負荷分散経路選択テーブル、33…負荷分散ハッシュ値演算部、40…ファンクション転送制御部、41…宛先ファンクション制御部、42…宛先ファンクション選択テーブル、50…テーブル割り当て制御部。

Claims (8)

  1.  受信したパケットの転送先の通信経路ごとに設けられ、仮想ファンクションに対応づけられたデータバッファと、
     前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値に基づいて宛先仮想ファンクションを決定するファンクション転送制御部と、
     前記フィールド値を用いて第1のハッシュ値を演算するハッシュ値演算部と、
     前記第1のハッシュ値に基づいて、優先制御の対象となるパケットの転送先の通信経路を決定する優先制御部と、
     前記第1のハッシュ値または前記第1のハッシュ値に基づく第2のハッシュ値に基づいて、予め設定した前記データバッファの負荷分散状況と合致するように、負荷分散制御の対象となるパケットの転送先の通信経路を決定する負荷分散制御部と、
     前記ファンクション転送制御部が決定した前記宛先仮想ファンクションと、前記優先制御部および前記負荷分散制御部の少なくともいずれかが決定した前記転送先の通信経路に従って、前記宛先仮想ファンクションおよび前記転送先の通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御部とを備える
     ネットワーク負荷分散装置。
  2.  前記ファンクション転送制御部は、
     複数の前記仮想ファンクションごとに、前記宛先仮想ファンクションのフィールド値またはフィールド値を用いて演算したハッシュ値が予め記憶されている宛先ファンクション選択テーブルと、
     複数の前記仮想ファンクションごとに、前記受信したパケットのフィールド値と前記宛先ファンクション選択テーブルのフィールド値との照合、または、前記受信したパケットのフィールド値を用いて演算したハッシュ値と前記宛先ファンクション選択テーブルのハッシュ値との照合を行い、前記照合の結果に応じて前記宛先仮想ファンクションを決定する宛先ファンクション制御部とを備えること
     を特徴とする請求項1記載のネットワーク負荷分散装置。
  3.  前記ファンクション転送制御部は、
     前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値が、予め設定した所定のブロードキャストアドレスに相当する値であった場合に、全ての前記仮想ファンクションを前記宛先仮想ファンクションとして決定すること
     を特徴とする請求項1または2記載のネットワーク負荷分散装置。
  4.  前記ファンクション転送制御部は、
     複数の前記仮想ファンクションごとに、プロミスキャスモードの設定の有無を判定し、前記プロミスキャスモードが設定されている前記仮想ファンクションを、全てのパケットが転送される前記宛先仮想ファンクションとして決定すること
     を特徴とする請求項1乃至3のいずれか1項に記載のネットワーク負荷分散装置。
  5.  受信したパケットの転送先の通信経路ごとに設けられ、仮想ファンクションに対応づけられたデータバッファへの転送を制御するネットワーク負荷分散方法であって、
     前記受信したパケットに含まれるフィールド値またはフィールド値を用いて演算したハッシュ値に基づいて宛先仮想ファンクションを決定するファンクション転送制御ステップと、
     前記フィールド値を用いて第1のハッシュ値を演算するハッシュ値演算ステップと、
     前記第1のハッシュ値に基づいて、優先制御の対象となるパケットの転送先の通信経路を決定する優先制御ステップと、
     前記第1のハッシュ値または前記第1のハッシュ値に基づく第2のハッシュ値に基づいて、予め設定した前記データバッファの負荷分散状況と合致するように、負荷分散制御の対象となるパケットの転送先の通信経路を決定する負荷分散制御ステップと、
     前記ファンクション転送制御ステップにおいて決定された前記宛先仮想ファンクションと、前記優先制御ステップおよび前記負荷分散制御ステップの少なくともいずれかにおいて決定された前記転送先の通信経路に従って、前記宛先仮想ファンクションおよび前記転送先の通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含むこと
     を特徴とするネットワーク負荷分散方法。
  6.  前記ファンクション転送制御ステップは、
     複数の前記仮想ファンクションごとに、前記宛先仮想ファンクションのフィールド値またはフィールド値を用いて演算したハッシュ値が予め記憶されている宛先ファンクション選択テーブルを参照するステップと、
     複数の前記仮想ファンクションごとに、前記受信したパケットのフィールド値と前記宛先ファンクション選択テーブルのフィールド値との照合、または、前記受信したパケットのフィールド値を用いて演算したハッシュ値と前記宛先ファンクション選択テーブルのハッシュ値との照合を行い、前記照合の結果に応じて前記宛先仮想ファンクションを決定するステップとを含むこと
     を特徴とする請求項5記載のネットワーク負荷分散方法。
  7.  前記ファンクション転送制御ステップは、
     前記受信したパケットのフィールド値またはフィールド値を用いて演算したハッシュ値が、予め設定した所定のブロードキャストアドレスに相当する値であった場合に、全ての前記仮想ファンクションを前記宛先仮想ファンクションとして決定すること
     を特徴とする請求項5または6記載のネットワーク負荷分散方法。
  8.  前記ファンクション転送制御ステップは、
     複数の前記仮想ファンクションごとに、プロミスキャスモードの設定の有無を判定し、前記プロミスキャスモードが設定されている前記仮想ファンクションを、全てのパケットが送信される前記宛先仮想ファンクションとして決定すること
     を特徴とする請求項5乃至7のいずれか1項に記載のネットワーク負荷分散方法。
PCT/JP2019/026815 2018-07-09 2019-07-05 ネットワーク負荷分散装置および方法 WO2020013094A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/258,359 US11451479B2 (en) 2018-07-09 2019-07-05 Network load distribution device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018129759A JP7077825B2 (ja) 2018-07-09 2018-07-09 ネットワーク負荷分散装置および方法
JP2018-129759 2018-07-09

Publications (1)

Publication Number Publication Date
WO2020013094A1 true WO2020013094A1 (ja) 2020-01-16

Family

ID=69142853

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/026815 WO2020013094A1 (ja) 2018-07-09 2019-07-05 ネットワーク負荷分散装置および方法

Country Status (3)

Country Link
US (1) US11451479B2 (ja)
JP (1) JP7077825B2 (ja)
WO (1) WO2020013094A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021234765A1 (ja) * 2020-05-18 2021-11-25 日本電信電話株式会社 パケット識別装置、パケット識別方法およびパケット識別プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017139597A (ja) * 2016-02-03 2017-08-10 日本電信電話株式会社 ネットワーク負荷分散装置および方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8854972B1 (en) * 2013-01-25 2014-10-07 Palo Alto Networks, Inc. Security device implementing flow lookup scheme for improved performance
US10320568B1 (en) * 2015-06-09 2019-06-11 Google Llc Protocol-independent multi-table packet routing using shared memory resource
US10348619B2 (en) * 2015-07-31 2019-07-09 Nicira, Inc. Generating conjunctive match flow entries
US10880206B2 (en) * 2018-06-13 2020-12-29 Futurewei Technologies, Inc. Multipath selection system and method for datacenter-centric metro networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017139597A (ja) * 2016-02-03 2017-08-10 日本電信電話株式会社 ネットワーク負荷分散装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SAWAZAKI, FUMIHIKO ET AL.: "A study about SPP design with countermesure of data buffer overflow (Paper: NS2017-171)", IEICE TECHNICAL REPORT, vol. 117, no. 459, 22 February 2018 (2018-02-22), pages 23 - 25, ISSN: 0913-5685 *
TSUJIOKA, TETSUO ET AL.: "A New Packet Forwarding Scheme Based on Per-Packet Deadlines in IP Networks", IEICE TRANSACTIONS B, vol. J86-B, no. 12, 1 December 2003 (2003-12-01), pages 2501 - 2510, XP055675667, ISSN: 1344-4697 *

Also Published As

Publication number Publication date
JP2020010190A (ja) 2020-01-16
JP7077825B2 (ja) 2022-05-31
US11451479B2 (en) 2022-09-20
US20210281516A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
US9307018B2 (en) Workload deployment with real-time consideration of global network congestion
CN107078950B (zh) 用于建立服务链的方法、装置和计算机可读存储介质
CN108463989B (zh) 跨多个子网络的业务功能链接
EP3031179B1 (en) Switch clusters having layer-3 distributed router functionality
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
EP2318926B1 (en) Method and system for low-overhead data transfer
KR102586898B1 (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
EP2250772B1 (en) Method and system for offloading network processing
US20190245791A1 (en) System and method for implementing universal cloud classification (ucc) as a service (uccaas)
US20130346585A1 (en) Network system, and policy route setting method
US20150381510A1 (en) Flow control credits for priority in lossless ethernet
US9571338B2 (en) Scalable distributed control plane for network switching systems
EP3629162B1 (en) Technologies for control plane separation at a network interface controller
US10911405B1 (en) Secure environment on a server
WO2020013094A1 (ja) ネットワーク負荷分散装置および方法
US11128569B2 (en) Load distribution system and load distribution method
US20180091447A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
US9547613B2 (en) Dynamic universal port mode assignment
JP6965838B2 (ja) ネットワーク負荷分散装置および方法
US20240061796A1 (en) Multi-tenant aware data processing units
CN117643039A (zh) 组织网络中进行服务链接

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: 19833327

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19833327

Country of ref document: EP

Kind code of ref document: A1