WO2021260948A1 - データノード、データノード管理方法、および、データノード管理プログラム - Google Patents

データノード、データノード管理方法、および、データノード管理プログラム Download PDF

Info

Publication number
WO2021260948A1
WO2021260948A1 PCT/JP2020/025369 JP2020025369W WO2021260948A1 WO 2021260948 A1 WO2021260948 A1 WO 2021260948A1 JP 2020025369 W JP2020025369 W JP 2020025369W WO 2021260948 A1 WO2021260948 A1 WO 2021260948A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
nos
fib
hardware layer
data node
Prior art date
Application number
PCT/JP2020/025369
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 PCT/JP2020/025369 priority Critical patent/WO2021260948A1/ja
Priority to JP2022532230A priority patent/JP7367873B2/ja
Priority to US18/012,034 priority patent/US20230262149A1/en
Publication of WO2021260948A1 publication Critical patent/WO2021260948A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality

Definitions

  • the present invention relates to a data node, a data node management method, and a data node management program.
  • FIG. 8 is a block diagram showing an example of the white box device 701.
  • the white box device 701 includes a physical layer (PHY), which is six communication ports indicated by diagonally shaded squares in order from the bottom of the drawing, an ASIC that bundles those PHYs and performs transfer processing at high speed, and the ASIC. It is equipped with a NOS that controls the transfer.
  • PHY physical layer
  • NOS NOS that controls the transfer.
  • Non-Patent Document 1 describes "Node Slicing" in which one or more data planes, which are hardware in a communication device, are linked to one VM (Virtual Machine) operating on the communication device. By operating multiple VMs in a redundant configuration on the same communication device, even if one VM fails, another VM replaces it, improving reliability in the event of software failure.
  • VM Virtual Machine
  • Juniper Networks "Juniper Networks, What is” Node Slicing ", [online], [Search May 27, 2020], Internet ⁇ URL: https://www.juniper.net/jp/jp/products- services / what-is / node-slicing />
  • Non-Patent Document 1 describes a technique for making one software (VM) use a plurality of hardware resources.
  • NOS multiple software
  • FIG. 9 is a block diagram when the white box device of FIG. 8 is divided into resources.
  • the white box device 702 includes a logical unit 702A in which L3VPN (Layer 3 Virtual Private Network) operates and a logical unit 702B in which L2VPN (Layer 2 Virtual Private Network) operates. It is a configuration that shares the same ASIC.
  • L3VPN Layer 3 Virtual Private Network
  • L2VPN Layer 2 Virtual Private Network
  • the white box device 703 has a logical unit 703A used by the first department of the company, a logical unit 703B used by the second department of the company, and a third department of the company. It is a configuration that shares the same ASIC with the logical unit 703C used by.
  • resources are divided in logical units for each experimental network. In this way, when the processing load is light in each logical unit, by integrating it into one white box device 702,703, the cost is higher than the method of preparing a dedicated physical device for each logical unit. Can be reduced.
  • FIG. 10 is a block diagram showing a problem in the resource division of FIG.
  • the NOS of the logical unit 703A receives the notification of the route "0.0.0.1" of the user A, and the route control table so as to associate its own port information (the second PHY from the left in FIG. 10) as the transfer destination of the route. Call a write command to (FIB: Forwarding Information Base).
  • the NOS of the logical unit 703C receives the notification of the route "0.0.0.1" of the user C and writes it to the FIB so as to associate its own port information (the fifth PHY from the left in FIG. 10) as the transfer destination of the route. Call the command. Note that user A and user C are different users, and accidentally use the same route "0.0.0.1".
  • the main subject of the present invention is to divide the hardware resources of the data node into resources so that they can be controlled by a plurality of NOSs.
  • the present invention provides a bridge layer that mediates a message between a hardware layer that transfers data with reference to a FIB indicating a transfer destination and a plurality of NOSs that set the contents of the FIB for the hardware layer.
  • the bridge layer A setting storage unit that stores setting information that associates resources of the hardware layer that can be used by each NOS, and a setting storage unit. After receiving a message for setting the contents of the FIB from each NOS, and converting the message so that each NOS includes resources of the hardware layer that can be used according to the setting information of the setting storage unit, after conversion. It is characterized by having a message processing unit for updating the contents of the FIB based on the message of.
  • the hardware resources of the data node can be divided into resources and can be controlled by a plurality of NOSs.
  • FIG. 1 is a configuration diagram showing an outline of the data node 100. Similar to FIG. 10, the data node 100 of FIG. 1 can be resource-divided into logical units 100A, 100B, and 100C. The number of resource divisions is not limited to the three in FIG. Therefore, the data node 100 includes a plurality of NOS 10s (NOS 10A, 10B, 10C for each logical unit), an ASIC processing unit 41, and a physical layer (PHY) which is six communication ports indicated by shaded squares. It has a FIB 43.
  • NOS 10A, 10B, 10C for each logical unit
  • ASIC processing unit 41 ASIC processing unit 41
  • PHY physical layer
  • a bridge layer 20 is newly deployed as a component between the NOS 10 and the ASIC processing unit 41.
  • the bridge layer 20 writes resource information to the FIB 43 so that resource information (port information such as "port 2", routing information such as "0.0.0.1”, etc.) written to the FIB 43 among a plurality of NOS 10s does not collide with each other. Is converted to a message as appropriate.
  • each NOS 10 can operate as if it owns the hardware resources of the data node 100 without knowing the behavior of the other NOS 10.
  • the bridge layer 20 is implemented by one background program, a container, or the like. Further, the NOS 10 and the bridge layer 20 may be constructed in the data node 100 (white box switch), or may be constructed in an external server which is a device different from the data node 100. Then, the control driver of the ASIC processing unit 41 is implemented based on the published specifications such as the OFDPA Pipeline model. For example, the "vrf table" of the OFDPA Pipeline model can be used to divide routing information.
  • FIG. 2 is a hardware configuration diagram of the data node 100.
  • the data node 100 is configured as a computer 900 having a CPU 901, a RAM 902, a ROM 903, an HDD 904, a communication I / F 905, an input / output I / F 906, and a media I / F 907.
  • the communication I / F 905 is connected to an external communication device 915.
  • the input / output I / F 906 is connected to the input / output device 916.
  • the media I / F907 reads / writes data from the recording medium 917.
  • the CPU 901 controls each processing unit by executing a program (also referred to as an application or an abbreviation thereof) read into the RAM 902.
  • the program can also be distributed via a communication line, or recorded and distributed on a recording medium 917 such as a CD-ROM.
  • FIG. 3 is a configuration diagram showing details of the data node 100 shown in FIG.
  • the data node 100 has a plurality of NOS 10, a bridge layer 20, an ASIC side interface 31, an ASIC control unit 32, and a hardware layer 40 as software processing units that perform route management and the like.
  • Each NOS 10 has a RIB (Routing Information Base) 11 and an API call unit 12. Further, each NOS 10 also has a routing engine (route calculation unit) (not shown) and a UI (User Interface) for inputting settings such as CLI (Command Line Interface) and Netconf.
  • the bridge layer 20 has an OS side interface 21, a message conversion unit (message processing unit) 22, an API calling unit 23, and a setting storage unit 24.
  • the data node 100 has an ASIC processing unit 41, a PHY 42, and a FIB 43 as a hardware layer 40 for data transfer.
  • the installation method of NOS10 basically should comply with the method recommended by each NOS10.
  • the ASIC side interface 31 is set to be referred to, but when the data node 100 of the present embodiment is installed, the reference destination address, port information, etc. of the NOS 10 are set so as to refer to the OS side interface 21. do.
  • the RIB 11 of the NOS 10 stores routing information calculated by a routing protocol such as BGP (Border Gateway Protocol) operating on the NOS 10.
  • the routing information in the RIB 11 is updated as appropriate as the network topology changes (S11).
  • the API call unit 12 sends an API call to the OS side interface 21 for requesting write processing to the FIB 43 in order to reflect the latest routing information stored in the RIB 11 in the transfer processing of its own ASIC processing unit 41. Notify (S12).
  • the OS-side interface 21 receives an API call from the API call unit 12 of each NOS10, and propagates the API call to the message conversion unit 22 (S13).
  • the message conversion unit 22 requests the setting storage unit 24 for resource information (details, port information, I / F information, etc. in FIG. 6) referred to in the message conversion described later in S16 (S14), and obtains the answer. (S15).
  • Resource information is stored in the setting storage unit 24 as a setting file or a database.
  • the message conversion unit 22 appropriately converts the resource information written to the FIB 43 into a message so that the resource information written to the FIB 43 indicated by the API call propagated in S13 does not collide with each other (S16).
  • the message conversion unit 22 propagates the message (API call) converted in S16 to the API calling unit 23 (S21).
  • the API calling unit 23 performs wait processing (S22) so that the message of S21 (API call from a certain NOS10) does not conflict with an API call from another NOS10, and then makes an API call to the ASIC side interface 31. Notify (S23).
  • the API calling unit 23 waits for a plurality of messages in order so that the ASIC-side interface 31 processes only one message at a time. For example, the API calling unit 23 notifies the ASIC side interface 31 of the message from the NOS 10A, and after the response to the message is returned from the ASIC side interface 31, the API calling unit 23 notifies the ASIC side interface 31 of the message from the NOS 10B. ..
  • the ASIC side interface 31 is middleware for using the ASIC control unit 32, and is provided as an SDK (Software Development Kit) unique to the communication equipment vendor or an API (Application Programming Interface) that can be used openly. Will be done.
  • the following API is open to the public.
  • OF-DPA OpenFlow Data Plane Abstraction
  • Open NSL Network Switch Layer
  • SAI Switch Abstraction Interface
  • the ASIC control unit 32 is a control driver that depends on the hardware layer 40, and is provided by the communication equipment vendor.
  • the ASIC processing unit 41 performs high-speed transmission (forwarding) of packets by hardware to and from an external device via the PHY 42 according to the contents described in the FIB 43.
  • a port number (0/0/0 to 0/0/5) is assigned to each PHY 42.
  • the API call notified to the ASIC side interface 31 in S23 is notified to the ASIC control unit 32 ⁇ the ASIC processing unit 41 ⁇ the FIB 43, so that the contents of the FIB 43 are rewritten.
  • the ASIC processing unit 41 can send and receive data packets to and from other devices via an appropriate port obtained by referring to the latest FIB 43.
  • the ASIC processing unit 41 receives a control system packet (such as a link state of a routing protocol) for updating the RIB 11 from another device, refers to the latest FIB 43, and sets the appropriate NOS 10 among the NOS 10s of the own device. Can be forwarded to.
  • a control system packet such as a link state of a routing protocol
  • FIG. 6 is a configuration diagram showing a first example of the setting storage unit 24.
  • the setting storage unit 24 has a list of port information (Port) of the PHY 42 to be used for each identifier (ID, Name) of the NOS 10, and an ASIC side interface 31 (I / F) used when writing data to the FIB 43. Is associated with.
  • the resource information used by the NOS 10 may be associated with routing information (route 0.0.0.1 in FIG. 1 or the like) in addition to port information. In this way, by separating the ASIC side interface 31 to be used and the PHY 42 to be used for each NOS10 and registering them in the setting storage unit 24, a plurality of NOS10s can use the same ASIC processing unit 41 in parallel. , Individual PHY 42 is available.
  • the message conversion unit 22 may also convert the routing information.
  • the following is an example of writing the number described in the ID column of the setting storage unit 24 as it is in the vrf field of the FIB 43.
  • the following is an example of the vrf field before conversion.
  • GoTo 60
  • FIG. 7 is a configuration diagram showing a second example of the setting storage unit 24.
  • the setting storage unit 24B is updated to the setting storage unit 24C.
  • the message conversion unit 22 may respond by updating the port column in the setting storage unit 24 in the same manner when the number of ports is reduced.
  • the data node 100 of the present invention mediates a message between a hardware layer 40 that transfers data with reference to a FIB 43 indicating a transfer destination and a plurality of NOS 10s that set the contents of the FIB 43 for the hardware layer 40.
  • the bridge layer 20 is provided, and the bridge layer 20 is provided.
  • the bridge layer 20 A setting storage unit 24 that stores setting information that associates resources of the hardware layer 40 that can be used by each NOS10, and a setting storage unit 24. After receiving a message for setting the contents of the FIB 43 from each NOS10 and converting the message so that each NOS10 includes the resources of the hardware layer 40 that can be used according to the setting information of the setting storage unit 24, the converted message is displayed. It is characterized by having a message conversion unit 22 for updating the contents of the FIB 43.
  • the present invention is a bridge layer 20 that mediates a message between a hardware layer 40 that transfers data with reference to a FIB 43 indicating a transfer destination and a plurality of NOS 10s that set the contents of the FIB 43 for the hardware layer 40. Equipped with The bridge layer 20 A setting storage unit 24 that stores setting information that associates resources of the hardware layer 40 that can be used by each NOS10, and a setting storage unit 24. Receives a message from each NOS10 to set the contents of the FIB 43, and rejects the message including the resource of the hardware layer 40 in which the NOS10 is not available in the setting information of the setting storage unit 24, while the hardware in which the NOS10 can be used. It is characterized by having a message conversion unit 22 for updating the contents of the FIB 43 based on the message including the resource of the layer 40.
  • the data node 100 further includes an API calling unit 23.
  • the API caller 23 sends a message containing resources of the hardware layer 40 that can be used by the NOS 10 to the hardware layer 40 to update the contents of the FIB 43, until the message from one NOS 10 is completed. It is characterized by waiting for the transmission of a message from NOS10.

Abstract

データノード(100)は、転送先を示すFIB(43)を参照してデータを転送するハードウェア層(40)と、ハードウェア層(40)に対してFIB(43)の内容を設定する複数のNOS(10)との間でメッセージを仲介するブリッジ層(20)を備えており、ブリッジ層(20)は、各NOS(10)が使用可能なハードウェア層(40)のリソースを対応づける設定情報が格納される設定格納部(24)と、各NOS(10)からFIB(43)の内容を設定するメッセージを受け、設定格納部(24)の設定情報に従い、各NOS(10)が使用可能なハードウェア層(40)のリソースを含むようにメッセージを変換してから、変換後のメッセージをもとにFIB(43)の内容を更新させるメッセージ変換部(22)とを有する。

Description

データノード、データノード管理方法、および、データノード管理プログラム
 本発明は、データノード、データノード管理方法、および、データノード管理プログラムに関する。
 スイッチなどの通信装置は、通信装置に搭載されるハードウェアと、そのハードウェア上で動作するNOS(Network Operating System)などのソフトウェアが統合された状態で、従来は販売されていた。つまり、通信装置内の実装の内容は使用者には隠蔽(ブラックボックス化)されていた。
 一方、通信装置に対して使用者が自由に機能を追加したいというニーズがある。そこで、ASIC(Application Specific Integrated Circuit)をハードウェアとして搭載する通信装置上で動作するソフトウェアを、使用者が自由に開発できるようにしたホワイトボックス機器が提案されている。
 図8は、ホワイトボックス機器701の一例を示すブロック図である。
 ホワイトボックス機器701は、図面下側から順に、斜線を付した四角で示す6本の通信ポートである物理層(PHY)と、それらのPHYを束ねて転送処理を高速に行うASICと、そのASICに対して転送制御を行うNOSとが備えられている。
 非特許文献1には、通信装置上で動作する1つのVM(Virtual Machine)に対して、通信装置内のハードウェアであるデータプレーンを1つ以上紐付ける「Node Slicing」が記載されている。同じ通信装置上に複数のVMを冗長構成として動作させることで、1つのVMが故障しても他のVMが代替し、ソフトウェア故障時の信頼性を高める。
ジュニパーネットワークス、「ジュニパーネットワークス, "Node Slicingとは」、[online]、[2020年5月27日検索]、インターネット〈URL:https://www.juniper.net/jp/jp/products-services/what-is/node-slicing/〉
 非特許文献1では、複数のハードウェア資源を1つのソフトウェア(VM)に使用させるための技術を説明した。一方、1つのハードウェア資源を複数のソフトウェア(NOS)に共用させたいニーズもある。
 例えば、単一のASICを複数のNOSで共有してマウント(紐付け)することで、ASICをNOS単位にリソース分割し、ASICのリソース効率を高めるユースケースを検討する。
 図9は、図8のホワイトボックス機器をリソース分割したときのブロック図である。
 機能ごとの論理単位でリソース分割をする例として、ホワイトボックス機器702は、L3VPN(Layer 3 Virtual Private Network)が動作する論理単位702Aと、L2VPN(Layer 2 Virtual Private Network)が動作する論理単位702Bとで同じASICを共用する構成である。
 用途ごとの論理単位でリソース分割をする例として、ホワイトボックス機器703は、会社の第1部署が使用する論理単位703Aと、会社の第2部署が使用する論理単位703Bと、会社の第3部署が使用する論理単位703Cとで同じASICを共用する構成である。または、実験網ごとの論理単位でリソース分割をする場合も挙げられる。
 このように、個別の論理単位では処理負荷が軽量である場合には、1台のホワイトボックス機器702,703に統合することで、論理単位ごとに専用の物理装置を用意する方式よりもコストを削減できる。
 図10は、図9のリソース分割における問題点を示すブロック図である。
 論理単位703AのNOSは、ユーザAの経路「0.0.0.1」の通知を受け、その経路の転送先として自身のポート情報(図10の左から2番目のPHY)を対応づけるように経路制御表(FIB:Forwarding Information Base)に書き込み命令を呼び出す。
 論理単位703CのNOSは、ユーザCの経路「0.0.0.1」の通知を受け、その経路の転送先として自身のポート情報(図10の左から5番目のPHY)を対応づけるようにFIBに書き込み命令を呼び出す。なお、ユーザAとユーザCとは別のユーザであり、偶然に同じ経路「0.0.0.1」を用いている。
 ここで、ASICは、両NOSからの命令を受け、そのままFIBに経路「0.0.0.1」を書き出してしまうと、最初に書き出した経路「0.0.0.1」→「左から2番目のPHY」が、次に書き出した経路「0.0.0.1」→「左から5番目のPHY」により上書きされ、消失してしまう。
 この消失が発生するのは、既存のNOSが、ハードウェアのリソースを分割して他のNOSとリソースを共用するように設計されていないためである。なお、NOS自体にリソースを共用する拡張を行うことは運用上大きな負担となるので、拡張はNOS以外に施す必要がある。
 そこで、本発明は、データノードのハードウェア資源をリソース分割し、複数のNOSによって制御可能とすることを主な課題とする。
 前記課題を解決するために、本発明のデータノードは、以下の特徴を有する。
 本発明は、転送先を示すFIBを参照してデータを転送するハードウェア層と、前記ハードウェア層に対して前記FIBの内容を設定する複数のNOSとの間でメッセージを仲介するブリッジ層を備えており、
 前記ブリッジ層が、
 前記各NOSが使用可能な前記ハードウェア層のリソースを対応づける設定情報が格納される設定格納部と、
 前記各NOSから前記FIBの内容を設定するメッセージを受け、前記設定格納部の設定情報に従い、前記各NOSが使用可能な前記ハードウェア層のリソースを含むようにメッセージを変換してから、変換後のメッセージをもとに前記FIBの内容を更新させるメッセージ処理部とを有することを特徴とする。
 本発明によれば、データノードのハードウェア資源をリソース分割し、複数のNOSによって制御可能とすることができる。
本実施形態に係わるデータノードの概要を示す構成図である。 本実施形態に係わるデータノードのハードウェア構成図である。 本実施形態に係わる図1に示したデータノードの詳細を示す構成図である。 本実施形態に係わるデータノードの処理を示すシーケンス図である。 本実施形態に係わるデータノードの処理を示すシーケンス図である。 本実施形態に係わる設定格納部の第1例を示す構成図である。 本実施形態に係わる設定格納部の第2例を示す構成図である。 ホワイトボックス機器の一例を示すブロック図である。 図8のホワイトボックス機器をリソース分割したときのブロック図である。 図9のリソース分割における問題点を示すブロック図である。
 以下、本発明の一実施形態について、図面を参照して詳細に説明する。
 図1は、データノード100の概要を示す構成図である。
 図1のデータノード100は、図10と同様に、論理単位100A,100B,100Cにリソース分割が可能である。なお、リソースの分割数は、図1の3つに限定されない。そのため、データノード100は、複数のNOS10(論理単位ごとのNOS10A,10B,10C)と、ASIC処理部41と、斜線を付した四角で示す6本の通信ポートである物理層(PHY)と、FIB43とを有する。
 一方、図1のデータノード100は、新たに、ブリッジ層20がNOS10とASIC処理部41との間にコンポーネントとして配備されている。ブリッジ層20は、複数のNOS10間でFIB43に書き出すリソース情報(「2番ポート」などのポート情報、「0.0.0.1」などのルーティング情報など)が、互いに衝突しないように、FIB43に書き出すリソース情報を適宜メッセージ変換する。
 これにより、各NOS10が他のNOS10の挙動を知らなくても、データノード100のハードウェア資源をあたかも自身が専有しているかのように動作することができる。
 なお、ブリッジ層20は、1バックグランドプログラムやコンテナ等で実装される。またNOS10、ブリッジ層20は、データノード100(ホワイトボックススイッチ)内に構築してもよいし、データノード100とは別装置である外部サーバに構築してもよい。
 そして、ASIC処理部41の制御用ドライバは、例えば、OFDPA Pipeline modelなどの公開されている仕様を元に実装される。例えば、OFDPA Pipeline modelの「vrf table」は、ルーティング情報を分割するために活用できる。
 図2は、データノード100のハードウェア構成図である。
 データノード100は、CPU901と、RAM902と、ROM903と、HDD904と、通信I/F905と、入出力I/F906と、メディアI/F907とを有するコンピュータ900として構成される。
 通信I/F905は、外部の通信装置915と接続される。入出力I/F906は、入出力装置916と接続される。メディアI/F907は、記録媒体917からデータを読み書きする。さらに、CPU901は、RAM902に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、各処理部を制御する。そして、このプログラムは、通信回線を介して配布したり、CD-ROM等の記録媒体917に記録して配布したりすることも可能である。
 図3は、図1に示したデータノード100の詳細を示す構成図である。
 データノード100は、経路管理などを行うソフトウェアの処理部として、複数のNOS10と、ブリッジ層20と、ASIC側インタフェース31と、ASIC制御部32と、ハードウェア層40とを有する。
 各NOS10は、RIB(Routing Information Base)11と、APIコール部12とを有する。さらに、各NOS10には、図示省略したルーティングエンジン(経路演算部)と、CLI(Command Line Interface)やNetconfなどの設定投入用UI(User Interface)も有する。
 ブリッジ層20は、OS側インタフェース21と、メッセージ変換部(メッセージ処理部)22と、API呼出部23と、設定格納部24とを有する。
 データノード100は、データ転送を行うハードウェア層40として、ASIC処理部41と、PHY42と、FIB43とを有する。
 NOS10のインストール方法は、基本的には、各NOS10が推奨する方法に準拠すればよい。一方、従来のインストール時にはASIC側インタフェース31を参照するように設定するが、本実施形態のデータノード100のインストール時にはOS側インタフェース21を参照するように、NOS10の参照先アドレス、ポート情報などを設定する。
 図4のシーケンス図を適宜参照しながら、図3の構成要素を明らかにする。
 NOS10のRIB11には、NOS10上で動作するBGP(Border Gateway Protocol)などのルーティングプロトコルにより計算されたルーティングの情報が格納される。RIB11内のルーティングの情報は、ネットワークトポロジの変化に伴い、適宜更新される(S11)。
 APIコール部12は、RIB11に格納されている最新のルーティングの情報を自身のASIC処理部41の転送処理に反映させるため、FIB43への書き込み処理を依頼するためのAPIコールをOS側インタフェース21に通知する(S12)。
 OS側インタフェース21は、各NOS10のAPIコール部12からのAPIコールを受け、メッセージ変換部22にAPIコールをメッセージ伝搬する(S13)。メッセージ変換部22は、S16で後記するメッセージ変換において参照されるリソース情報(詳細は、図6のポート情報、I/F情報など)を設定格納部24に要求し(S14)、その回答を得る(S15)。設定格納部24には、リソース情報が、設定ファイルまたはデータベースとして格納される。
 そして、メッセージ変換部22は、S13で伝搬されたAPIコールが示すFIB43に書き出すリソース情報が、NOS10どうしで衝突しないように、FIB43に書き出すリソース情報を適宜メッセージ変換する(S16)。
 図5のシーケンス図を適宜参照しながら、図3の構成要素を明らかにする。
 メッセージ変換部22は、S16で変換したメッセージ(APIコール)をAPI呼出部23に伝搬する(S21)。
 API呼出部23は、S21のメッセージ(あるNOS10からのAPIコール)を、他のNOS10からのAPIコールとコンフリクトしないように、待ち合わせ処理を行ってから(S22)、ASIC側インタフェース31にAPIコールを通知する(S23)。
 つまり、API呼出部23は、ASIC側インタフェース31に対して、同時に1つのメッセージだけを処理させるように、複数のメッセージを順番に待ち合わせる。
 例えば、API呼出部23は、NOS10AからのメッセージをASIC側インタフェース31に通知した後、そのメッセージへの応答がASIC側インタフェース31から戻ってきた後に、NOS10BからのメッセージをASIC側インタフェース31に通知する。
 図3に戻り、ASIC側インタフェース31は、ASIC制御部32を利用するためのミドルウェアであり、通信機器ベンダ独自のSDK(Software Development Kit)や、オープンに使用可能なAPI(Application Programming Interface)として提供される。例えば、以下のAPIが公開されている。
 ・OF-DPA(OpenFlow Data Plane Abstraction)
 ・Open NSL(Network Switch Layer)
 ・SAI(Switch Abstraction Interface)
 ASIC制御部32は、ハードウェア層40に依存した制御用ドライバであり、通信機器ベンダにより提供される。
 ASIC処理部41は、FIB43に記載された内容に従って、PHY42を介して外部の装置との間で、ハードウェアによるパケットの高速伝送(フォワーディング)を行う。なお、各PHY42には、ポート番号(0/0/0~0/0/5)が割り当てられている。
 S23でASIC側インタフェース31に通知されたAPIコールは、ASIC制御部32→ASIC処理部41→FIB43に通知されることで、FIB43の内容が書き換わる。
 これにより、ASIC処理部41は、最新のFIB43を参照して得た適切なポートを介して、他装置との間でデータパケットを送受信できる。また、ASIC処理部41は、他装置からRIB11を更新するための制御系パケット(ルーティングプロトコルのリンクステートなど)を受け、最新のFIB43を参照して自装置の各NOS10のうちの適切なNOS10に向けて転送できる。
 図6は、設定格納部24の第1例を示す構成図である。
 設定格納部24には、NOS10の識別子(ID,Name)ごとに、利用するPHY42のポート情報のリスト(Port)と、FIB43にデータを書き込むときに利用するASIC側インタフェース31(I/F)とが対応づけられている。なお、図示しないがNOS10が利用するリソース情報として、ポート情報の他にルーティング情報(図1の経路0.0.0.1など)なども対応づけられていてもよい。
 このように、あらかじめ利用するASIC側インタフェース31や利用するPHY42をNOS10ごとに分離して設定格納部24に登録しておくことで、複数のNOS10が同じASIC処理部41を並列的に利用しつつ、個別のPHY42を利用できる。
 以下、メッセージ変換部22が、NOS10CからのAPIコールを受信したときの、リソース情報の重複を避けるためのメッセージ変換処理(S16)の一例を説明する。
 まず、NOS10Cが設定格納部24に登録されているNOS10Cのポート情報(Port=0/0/4、0/0/5)を知っている場合を考える。このとき、NOS10Cから受信するAPIコールに、「Port=0/0/4、0/0/5」以外のポートが指定されることはNOS10C側の誤りである。よって、メッセージ変換部22は、誤ったAPIコールを拒否すればよい。
 一方、NOS10Cが設定格納部24のポート情報(Port=0/0/4、0/0/5)を知らない場合には、メッセージ変換部22は、NOS10Cから受信したAPIコールの「Port=0/0/4、0/0/5」以外のポートを、以下のように変換すればよい。
 ・変換前「Port=0/0/0」→変換後「Port=0/0/4」
 ・変換前「Port=0/0/1」→変換後「Port=0/0/5」
 以下に、変換前のFIB43(VLANテーブル)のエントリの一例を示す。
 Table ID 10 (VLAN):
  --  inPort = 0(Physical)  vlanId:mask = 0x0000:0x1fff (VLAN 0) | GoTo =20 …
  --  inPort = 1(Physical)  vlanId:mask = 0x0000:0x1fff (VLAN 0) | GoTo =20 …
 以下に、変換後のFIB43(VLANテーブル)のエントリの一例を示す。
 Table ID 10 (VLAN):
  --  inPort = 4(Physical)  vlanId:mask = 0x0000:0x1fff (VLAN 0) | GoTo =20 …
  --  inPort = 5(Physical)  vlanId:mask = 0x0000:0x1fff (VLAN 0) | GoTo =20 …
 「(Physical)」の前の数字がポート番号(Port=0/0/NのNに該当)である。
 また、メッセージ変換部22は、ルーティング情報の変換も行ってもよい。以下では、設定格納部24のID列に記載の番号をそのままFIB43のvrfフィールドに書き込む一例を示す。
 以下に、変換前のvrfフィールドの一例を示す。
 Table ID 30 (Unicast Routing):
    --  etherType = 0x0800 vrf = 0x0000 dstIp4 = 100.100.0.0/255.255.255.252 | GoTo = 60
 以下に、変換後のvrfフィールドの一例を示す。
 Table ID 30 (Unicast Routing):
    --  etherType = 0x0800 vrf = 0x0003 dstIp4 = 100.100.0.0/255.255.255.252 | GoTo = 60
 「vrf = 0x0003」の1桁目「3」が、NOS10Cに対応する設定格納部24のID列「3」と同じになるように、ルーティング情報が変換されている。
 図7は、設定格納部24の第2例を示す構成図である。
 ここでは、2つのNOS10(NOS10A、NOS10B)がインストールされ、4つのポート情報(Port=0/0/0~0/0/3)を使用する設定格納部24Bの例を説明する。
 新たに5つめのポート情報(Port=0/0/4)が増設されると、メッセージ変換部22は、S14で設定格納部24に要求する処理として、負荷が高いNOS10Aに対して、新たにPort=0/0/4を追加する。これにより、設定格納部24Bから設定格納部24Cに更新される。
 また、メッセージ変換部22は、ポートの減設時も同様に、設定格納部24内のPort列の更新により対応すればよい。
[効果]
 本発明のデータノード100は、転送先を示すFIB43を参照してデータを転送するハードウェア層40と、ハードウェア層40に対してFIB43の内容を設定する複数のNOS10との間でメッセージを仲介するブリッジ層20を備えており、
 ブリッジ層20が、
 各NOS10が使用可能なハードウェア層40のリソースを対応づける設定情報が格納される設定格納部24と、
 各NOS10からFIB43の内容を設定するメッセージを受け、設定格納部24の設定情報に従い、各NOS10が使用可能なハードウェア層40のリソースを含むようにメッセージを変換してから、変換後のメッセージをもとにFIB43の内容を更新させるメッセージ変換部22とを有することを特徴とする。
 これにより、ブリッジ層20において、ハードウェア層40に対するメッセージのやり取りを仲介することにより、複数のNOS10におけるRIB11変更時のFIB43への書込処理について、複数のNOS10間でのリソース競合を回避する。
 よって、NOS10、ハードウェア層40への機能追加なしに、1台のホワイトボックス機器(データノード100)に対して同時並列的に複数NOS10を利用できるので、単一のハードウェア層40のリソースの利用効率を向上できる。
 本発明は、転送先を示すFIB43を参照してデータを転送するハードウェア層40と、ハードウェア層40に対してFIB43の内容を設定する複数のNOS10との間でメッセージを仲介するブリッジ層20を備えており、
 ブリッジ層20が、
 各NOS10が使用可能なハードウェア層40のリソースを対応づける設定情報が格納される設定格納部24と、
 各NOS10からFIB43の内容を設定するメッセージを受け、設定格納部24の設定情報において、NOS10が使用可能ではないハードウェア層40のリソースを含むメッセージを拒否する一方で、NOS10が使用可能なハードウェア層40のリソースを含むメッセージをもとにFIB43の内容を更新させるメッセージ変換部22とを有することを特徴とする。
 これにより、複数のNOS10がそれぞれ使用可能なハードウェア層40のリソースを制限することで、FIB43への書込処理について、複数のNOS10間でのリソース競合を回避できる。
 本発明は、データノード100が、さらに、API呼出部23を備えており、
 API呼出部23が、NOS10が使用可能なハードウェア層40のリソースを含むメッセージをハードウェア層40に送信してFIB43の内容を更新させる処理について、一方のNOS10からのメッセージが完了するまで、他方のNOS10からのメッセージの送信を待ちあわせることを特徴とする。
 これにより、FIB43に書き込む処理中のコンフリクト(書込み処理衝突)を回避できる。
 10  NOS
 11  RIB
 12  APIコール部
 20  ブリッジ層
 21  OS側インタフェース
 22  メッセージ変換部(メッセージ処理部)
 23  API呼出部
 24  設定格納部
 31  ASIC側インタフェース
 32  ASIC制御部
 40  ハードウェア層
 41  ASIC処理部
 42  PHY
 43  FIB
 100 データノード

Claims (6)

  1.  転送先を示すFIB(Forwarding Information Base)を参照してデータを転送するハードウェア層と、前記ハードウェア層に対して前記FIBの内容を設定する複数のNOS(Network Operating System)との間でメッセージを仲介するブリッジ層を備えており、
     前記ブリッジ層は、
     前記各NOSが使用可能な前記ハードウェア層のリソースを対応づける設定情報が格納される設定格納部と、
     前記各NOSから前記FIBの内容を設定するメッセージを受け、前記設定格納部の設定情報に従い、前記各NOSが使用可能な前記ハードウェア層のリソースを含むようにメッセージを変換してから、変換後のメッセージをもとに前記FIBの内容を更新させるメッセージ処理部とを有することを特徴とする
     データノード。
  2.  転送先を示すFIBを参照してデータを転送するハードウェア層と、前記ハードウェア層に対して前記FIBの内容を設定する複数のNOSとの間でメッセージを仲介するブリッジ層を備えており、
     前記ブリッジ層は、
     前記各NOSが使用可能な前記ハードウェア層のリソースを対応づける設定情報が格納される設定格納部と、
     前記各NOSから前記FIBの内容を設定するメッセージを受け、前記設定格納部の設定情報において、前記NOSが使用不可能な前記ハードウェア層のリソースを含むメッセージを拒否する一方で、前記NOSが使用可能な前記ハードウェア層のリソースを含むメッセージをもとに前記FIBの内容を更新させるメッセージ処理部とを有することを特徴とする
     データノード。
  3.  前記データノードは、さらに、API呼出部を備えており、
     前記API呼出部は、前記NOSが使用可能な前記ハードウェア層のリソースを含むメッセージを前記ハードウェア層に送信して前記FIBの内容を更新させる処理について、一方の前記NOSからのメッセージが完了するまで、他方の前記NOSからのメッセージの送信を待ちあわせることを特徴とする
     請求項1または請求項2に記載のデータノード。
  4.  データノードは、転送先を示すFIBを参照してデータを転送するハードウェア層と、前記ハードウェア層に対して前記FIBの内容を設定する複数のNOSとの間でメッセージを仲介するブリッジ層を備えており、
     前記ブリッジ層は、設定格納部と、メッセージ処理部とを有しており、
     前記設定格納部には、前記各NOSが使用可能な前記ハードウェア層のリソースを対応づける設定情報が格納され、
     前記メッセージ処理部は、前記各NOSから前記FIBの内容を設定するメッセージを受け、前記設定格納部の設定情報に従い、前記各NOSが使用可能な前記ハードウェア層のリソースを含むようにメッセージを変換してから、変換後のメッセージをもとに前記FIBの内容を更新させることを特徴とする
     データノード管理方法。
  5.  データノードは、転送先を示すFIBを参照してデータを転送するハードウェア層と、前記ハードウェア層に対して前記FIBの内容を設定する複数のNOSとの間でメッセージを仲介するブリッジ層を備えており、
     前記ブリッジ層は、設定格納部と、メッセージ処理部とを有しており、
     前記設定格納部には、前記各NOSが使用可能な前記ハードウェア層のリソースを対応づける設定情報が格納され、
     前記メッセージ処理部は、前記各NOSから前記FIBの内容を設定するメッセージを受け、前記設定格納部の設定情報において、前記NOSが使用不可能な前記ハードウェア層のリソースを含むメッセージを拒否する一方で、前記NOSが使用可能な前記ハードウェア層のリソースを含むメッセージをもとに前記FIBの内容を更新させることを特徴とする
     データノード管理方法。
  6.  コンピュータを、請求項1ないし請求項3のいずれか1項に記載のデータノードとして機能させるためのデータノード管理プログラム。
PCT/JP2020/025369 2020-06-26 2020-06-26 データノード、データノード管理方法、および、データノード管理プログラム WO2021260948A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/025369 WO2021260948A1 (ja) 2020-06-26 2020-06-26 データノード、データノード管理方法、および、データノード管理プログラム
JP2022532230A JP7367873B2 (ja) 2020-06-26 2020-06-26 データノード、データノード管理方法、および、データノード管理プログラム
US18/012,034 US20230262149A1 (en) 2020-06-26 2020-06-26 Data node, data node management method, and data node management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/025369 WO2021260948A1 (ja) 2020-06-26 2020-06-26 データノード、データノード管理方法、および、データノード管理プログラム

Publications (1)

Publication Number Publication Date
WO2021260948A1 true WO2021260948A1 (ja) 2021-12-30

Family

ID=79282143

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/025369 WO2021260948A1 (ja) 2020-06-26 2020-06-26 データノード、データノード管理方法、および、データノード管理プログラム

Country Status (3)

Country Link
US (1) US20230262149A1 (ja)
JP (1) JP7367873B2 (ja)
WO (1) WO2021260948A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535342A (ja) * 2005-04-01 2008-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション オペレーティング・システム・パーティションのためのネットワーク通信
JP2019041368A (ja) * 2017-08-25 2019-03-14 日本電信電話株式会社 転送装置、転送システム、転送方法、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075718A (ja) 2007-09-19 2009-04-09 Hitachi Ltd 仮想i/oパスの管理方法、情報処理システム及びプログラム
SG11201800020UA (en) 2016-11-09 2018-06-28 Huawei Tech Co Ltd Packet processing method in cloud computing system, host, and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535342A (ja) * 2005-04-01 2008-08-28 インターナショナル・ビジネス・マシーンズ・コーポレーション オペレーティング・システム・パーティションのためのネットワーク通信
JP2019041368A (ja) * 2017-08-25 2019-03-14 日本電信電話株式会社 転送装置、転送システム、転送方法、およびプログラム

Also Published As

Publication number Publication date
US20230262149A1 (en) 2023-08-17
JP7367873B2 (ja) 2023-10-24
JPWO2021260948A1 (ja) 2021-12-30

Similar Documents

Publication Publication Date Title
TWI813742B (zh) 在網路路由環境中的非同步物件管理機制
CN112673596B (zh) 逻辑网关处的服务插入方法、设备和系统
US9979605B2 (en) Virtualization mapping
US8423639B2 (en) Switching API
JP4343760B2 (ja) ネットワークプロトコル処理装置
JP5710928B2 (ja) ネットワークシステム、仮想ネットワーク管理方法及びルータ
US20150288750A1 (en) Interaction with a virtual network
CN106953848B (zh) 一种基于ForCES的软件定义网络实现方法
JP2014135721A (ja) データセンタネットワークのトラフィックを分配するための装置および方法
CN101964799A (zh) 点到网隧道方式下地址冲突的解决方法
JP2017224895A (ja) 通信制御プログラム、通信制御方法及び通信制御装置
US11050655B2 (en) Route information distribution through cloud controller
US9166947B1 (en) Maintaining private connections during network interface reconfiguration
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
JP2017017539A (ja) 仮想ネットワーク設定方法、仮想ネットワーク設定プログラム及び中継装置
WO2021260948A1 (ja) データノード、データノード管理方法、および、データノード管理プログラム
WO2016173196A1 (zh) 地址映射关系的学习方法及装置
WO2020181733A1 (zh) 一种基于vpc的多数据中心互通方法及相关设备
JP4272105B2 (ja) ストレージグループ設定方法および装置
WO2014172869A1 (zh) 一种在虚拟局域网中通信的方法、设备和系统
US20210226839A1 (en) Mac-sync based mechanism for bridge port failover
US8352637B2 (en) Techniques for resolving network connectivity
CN114928589B (zh) 数据传输方法、数据传输装置、计算机可读介质及设备
WO2015146215A1 (ja) ネットワークアドレス変換装置、ネットワークアドレス変換システム、ネットワークアドレス変換方法、及びコンピュータ読み取り可能な記録媒体
WO2022143854A1 (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: 20941989

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022532230

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20941989

Country of ref document: EP

Kind code of ref document: A1