JP2018064174A - 制御装置、通信システム、通信方法、および、プログラム - Google Patents

制御装置、通信システム、通信方法、および、プログラム Download PDF

Info

Publication number
JP2018064174A
JP2018064174A JP2016200932A JP2016200932A JP2018064174A JP 2018064174 A JP2018064174 A JP 2018064174A JP 2016200932 A JP2016200932 A JP 2016200932A JP 2016200932 A JP2016200932 A JP 2016200932A JP 2018064174 A JP2018064174 A JP 2018064174A
Authority
JP
Japan
Prior art keywords
arp
router
communication
control information
control device
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2016200932A
Other languages
English (en)
Inventor
賢太郎 笹川
Kentaro Sasagawa
賢太郎 笹川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2016200932A priority Critical patent/JP2018064174A/ja
Publication of JP2018064174A publication Critical patent/JP2018064174A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】制御装置が仮想ルータ宛てのARP(Address Resolution Protocol)要求に応答できない場合であっても、ユニキャスト通信を継続可能とすること。【解決手段】通信システムは、ルータ装置と、制御情報に従ってパケットを処理する通信装置と、通信装置が端末から受信した仮想ルータ宛てのARP要求に対して、ルータ装置が制御装置の代わりにARP応答を返すように制御する制御情報を通信装置に設定する制御装置と、を備えている。【選択図】図1

Description

本発明は、制御装置、通信システム、通信方法、および、プログラムに関し、特に制御情報に従ってパケットを処理する通信装置に制御情報を設定する制御装置、および、制御装置を備えた通信システムに関する。
近年、ネットワーク技術の複雑化、事業環境の急激な変化、ユーザーニーズの多様化といった課題に対応するために、ソフトウエアのように柔軟に制御可能なネットワーク(いわゆるSDN(Software Defined Networking))が求められている。
SDNを実現するための技術として、オープンフロー(OpenFlow、非特許文献1)が知られている。オープンフローでは、制御機能と転送機能が単一の機器に共存するネットワーク機器とは相違し、制御機能(コントロールプレーン)を担う機器と転送機能(データプレーン)を担う機器とを分離したアーキテクチャが採用されている。具体的には、オープンフローでは、オープンフローコントローラ(OFC:OpenFlow Controller、以下「コントローラ」という。)が制御機能を担い、オープンフロースイッチ(OFS:OpenFlow Switch、以下「スイッチ」という。)が転送機能を担う。このように、スイッチがパケット転送を担当し、スイッチの外部に設けられたコントローラが経路制御を担当することにより、外部からのネットワークの制御が容易となり、柔軟性に富んだネットワークを構築することができる。
また、関連技術として、仮想テナントネットワーク(VTN:Virtual Tenant Network)および仮想ルータ(vRouter)をサポートしたプロアクティブ型のコントローラも実現されている。さらに、タグVLAN(Virtual Local Area Network)毎にサブインタフェースを設定可能なレガシールータ機能を内蔵したスイッチや、レガシールータ機能を備えたレガシールータと接続可能なスイッチも知られている。なお、コントローラによるレガシーネットワーク制御用のコンフィグと連動して、telnetやSSH(Secure Shell)経由でレガシールータのコンフィグ設定を行う機能も実現されている。
さらに、特許文献1には、ARP(Address Resolution Protocol)要求に対する応答をコントローラに代わってネットワーク機器(スイッチ)が行うことにより、コントローラおよびセキュアチャネル(コントローラとスイッチの間のチャネル)の負荷を軽減する技術が記載されている。
特許第5858141号公報
ONF (Open Networking Foundation), "OpenFlow Switch Specification, Version 1.5.1 (Protocol version 0x06)," March 26, 2015. [平成28(2016)年10月3日検索]、インターネット<URL: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.5.1.pdf>
上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
VTN(Virtual Tennant Network)をサポートするオープンフローコントローラ(OFC:OpenFlow Controller、「コントローラ」)を用いることにより、オープンフロースイッチ(OFS:OpenFlow Switch、「スイッチ」)のみでL3(Layer 3、レイヤ3)ネットワーク(IP(Internet Protocol)ネットワーク)を構成することができる。このとき、スイッチに接続された端末のデフォールトゲートウェイアドレスは、仮想ルータの(該当するインタフェースの)IP(Internet Protocol)アドレスとなる。
スイッチに接続された端末間で新規に通信を行う場合、送信元の端末からデフォールトゲートウェイにARP(Address Resolution Protocol)要求を送信する必要がある。ここで、仮想ルータ機能はコントローラのソフトウエア上で実装される機能である。したがって、デフォールトゲートウェイ宛てのARP要求は一旦コントローラにパケットイン(Packet In)させ、コントローラからARP応答をパケットアウト(Packet Out)させることになる。
関連技術によると、オープンフローチャネル(OpenFlow Channel)に障害が発生した場合やコントローラのクラスタ切り替え中に、端末からARP要求が出された場合、コントローラはARP応答を返すことができない。端末からのARP要求は端末が持つARPエントリのリフレッシュ動作の場合があり、ARP応答ができないと、既存のユニキャスト通信に対して通信断、転送遅延などの影響を及ぼすおそれがある。
特許文献1には、ARP代理応答に関連する技術が開示されている。しかし、特許文献1に記載された技術は仮想ルータではなく宛先端末のARP応答を独自の機能拡張を行ったスイッチに代理応答させるものであるため、宛先端末のARPエントリが未学習のケースには対応していない。
また、オープンフローネットワークに接続する端末の台数が増えた場合、管理するARPエントリの数が増大し、コントローラのメモリやスイッチのフローテーブルの容量を圧迫するおそれがある。そこで、ARP代理応答を常時実現するためには、一定期間通信が行われないARPエントリや関連するフローエントリを消去するしくみ(エージアウト機能)を実装することが望ましい。
そこで、制御装置が仮想ルータ宛てのARP要求に応答できない場合であっても、ユニキャスト通信を継続可能とすることが課題となる。本発明の目的は、かかる課題解決に寄与する制御装置、通信システム、通信方法、およびプログラムを提供することにある。
本発明の第1の態様に係る制御装置は、ルータ装置および制御情報に従ってパケットを処理する通信装置と通信する通信部を備えている。また、前記制御装置は、前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が前記制御装置の代わりにARP応答を返すように制御する制御情報を、前記通信部を介して前記通信装置に設定する設定部を備えている。
本発明の第2の態様に係る通信システムは、ルータ装置および制御情報に従ってパケットを処理する通信装置を備えている。また、前記通信システムは、前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が制御装置の代わりにARP応答を返すように制御する制御情報を、前記通信装置に設定する制御装置を備えている。
本発明の第3の態様に係る通信方法は、ルータ装置および制御情報に従ってパケットを処理する通信装置を備えた通信システムにおける制御装置による通信方法である。前記通信方法は、前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が前記制御装置の代わりにARP応答を返すように制御する制御情報を生成するステップを含む。また、前記通信方法は、生成した制御情報を前記通信装置に設定するステップを含む。
本発明の第4の態様に係るプログラムは、ルータ装置および制御情報に従ってパケットを処理する通信装置を備えた通信システムにおける制御装置に設けられたコンピュータに、前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が前記制御装置の代わりにARP応答を返すように制御する制御情報を生成する処理を実行させる。また、前記プログラムは、生成した制御情報を前記通信装置に設定する処理を前記コンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。
本発明に係る制御装置、通信システム、通信方法、およびプログラムによると、制御装置が仮想ルータ宛てのARP要求に応答できない場合であっても、ユニキャスト通信を継続することができる。
一実施形態に係る通信システムの構成を例示するブロック図である。 一実施形態に係る通信システムの構成を例示する図である。 第1の実施形態に係る通信システムの構成を例示するブロック図である。 第1の実施形態に係る通信システムの物理ネットワーク構成を例示する図である。 第1の実施形態に係る通信システムの仮想ネットワーク構成を例示する図である。 第1の実施形態におけるコントローラのコンフィグ設定例を示す図である。 第1の実施形態に係る通信システムにおける設定動作を例示するシーケンス図である。 第1の実施形態に係る通信システムにおけるオープンフローチャネル(OpenFlow channel)障害から復旧動作を例示するシーケンス図である。 第2の実施形態に係る通信システムにおけるスイッチ(複数タグVLANをサポート)の構成を例示するブロック図である。 第2の実施形態におけるコントローラのコンフィグ設定例を示す図である。 実施形態に係る通信システムの適用事例(センタ−拠点間構成)を示す図である。
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1は、一実施形態に係る通信システムの構成を例示するブロック図である。図1を参照すると、通信システム1は、ルータ装置4(例えば図2のスイッチ(OFS:OpenFlow Switch)20の外部に接続されたレガシールータ40、または、図3のスイッチ20に内蔵されたレガシールータ40)を備えている。また、通信システム1は、制御情報(例えばOpenFlowにおけるフローエントリ)に従ってパケットを処理する通信装置2(例えば図2または図3のスイッチ20)を備えている。さらに、通信システム1は、制御情報を通信装置2に設定する制御装置3(例えば図2または図3のコントローラ(OFC:OpenFlow Controller)30)を備えている。
制御装置3は、ルータ装置4および通信装置2と通信する通信部6を有する。また、制御装置3は、通信装置2が端末5から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、ルータ装置4が制御装置3の代わりにARP応答を返すように制御する制御情報を、通信部6を介して通信装置2に設定する。例えば、設定部7は、通信装置2が端末5から受信したARP要求をルータ装置4および制御装置3に転送する制御情報を通信装置2に設定する。
かかる通信システム1によると、通信装置2が端末5から受信した仮想ルータ宛てのARP要求に対して、制御装置3が応答できない場合であっても、ルータ装置4が制御装置3の代わりにARP応答を返すことができ、端末5に関する既存のユニキャスト通信を継続することができる。
また、一実施形態に係る発明をオープンフロー(OpenFlow)技術に適用した場合、オープンフローネットワーク上に存在する仮想ルータ宛てARP要求パケットに対する代理応答を実現することができる。
一実施形態に係る発明は、図2に示すように、スイッチ(OFS:OpenFlow Switch)20にレガシールータ40を外部接続し、仮想ルータ宛てのARP要求に関する応答をレガシールータ40に代理で行わせることで実現することができる。一方、一実施形態に係る発明は、図3に示すように、スイッチ20に内蔵されたレガシールータ機能を使用して、仮想ルータ宛てのARP要求に関する応答をレガシールータ40に代理で行わせることで実現することもできる。
このように、一実施形態によると、コントローラ(OFC:OpenFlow Controller)やオープンフローチャネル(OpenFlow Channel、コントローラとスイッチとの間のチャネル、セキュアチャネルともいう。)に障害が発生したときや、コントローラのクラスタ切り替え中であっても、仮想ルータ宛てのARP要求に対するARP応答を返すことができる。これにより、新規または既存のユニキャスト通信を継続することができる。すなわち、一実施形態によると、プロアクティブ型のコントローラとの連携により、コントローラが仮想ルータ宛のARP要求に対するアドレス解決をしない場合でも、端末間のユニキャスト転送を継続することが可能となる。
<実施形態1>
次に、第1の実施形態に係る通信システムについて図面を参照して説明する。
[構成]
図3は、本実施形態に係る通信システムの構成を例示するブロック図である。図3を参照すると、本実施形態の通信システムはコントローラ30およびスイッチ20を備えている。図3には、スイッチ20に接続された端末5も併せて示す。
図3を参照すると、コントローラ30は、記憶部31、通信部32、設定部33、および、更新部34を備えている。ここでは、コントローラ30をオープンフローコントローラ(OFC:OpenFlow Controller)とする。
記憶部31は、ARP(Address Resolution Protocol)テーブルおよびMAC(Media Access Control)テーブルを保持する。ARPテーブルとは、IP(Internet Protocol)アドレスとMACアドレスの組合せが記述されたARPエントリが設定されるテーブルである。一方、MACテーブルとは、 MACアドレスと対応するスイッチおよびオープンフロー(OpenFlow)ポートとの組合せが記述されたMACエントリが設定されるテーブルである。
通信部32は、スイッチ20との間で通信を行う。設定部33は、通信部32を介してスイッチ20およびスイッチ20に設けられたレガシールータ40に対して、後述するさまざまな設定を行う。更新部34は、記憶部31が保持するARPテーブルを更新する。
図3を参照すると、スイッチ20は、記憶部21、処理部22、および、レガシールータ40を備えている。ここでは、一例として、スイッチ20はオープンフロースイッチ(OFC:OpenFlow Switch)とする。
記憶部21は、フローテーブルおよびグループテーブルを保持する。ここで、フローテーブルとは、後述するフローエントリが設定されるテーブルである。一方、グループテーブルとは、後述するグループエントリが設定されるテーブルである。レガシールータ40は、レガシールータ機能を有し、ARPテーブルを保持する。
本実施形態では、コントローラ30としてプロアクティブ型のオープンフローコントローラを用いる。すなわち、本実施形態では、コントローラ30は仮想ルータ機能(vRouter)宛てのARP要求に対する応答を、コントローラ30の代わりにレガシールータ40(代理応答ルータ)に行わせるように、スイッチ20に対してプロアクティブ型の設定を行う。
設定部33は、CLI(Command Line Interface)を介したVTN(Virtual Tenant Network)設定と同期して、スイッチ20に接続された端末5からのARP要求をコントローラ30とレガシールータ40の双方に転送させるためのフローエントリ(後述する「フローエントリ(1)」)をスイッチ20に設定する。
また、設定部33は、ARP要求パケットのタグVLAN(Virtual Local Area Network)の有無やタグVLANの番号によって、パケットの転送先を変えられるようにフローエントリを設定する(実施形態2参照)。
さらに、設定部33は、コントローラ30のVTN設定と同期して、レガシールータ40に対してARP代理応答のための設定を行う。ここで、設定部33は、コントローラ30からレガシールータ40への設定において、例えばtelnetやセキュアシェル(SSH:Secure Shell)などの通信プロトコルを使用する。また、設定部33は、該当する物理インタフェースや仮想インタフェースに対して、指定されたタグVLAN単位でIPアドレスを設定する(実施形態2参照)。
更新部34は、コントローラ30がARPパケットインを受け取ると、コントローラ30の記憶部31が保持する仮想ルータ(vRouter)のARPテーブルを更新する。
また、設定部33は、ARPパケットインを契機として、レガシールータ40からのARP応答を端末5に転送するためのフローエントリ(後述する「フローエントリ(6)」)をスイッチ20に設定する。さらに、設定部33は、ARP要求を送信した端末5宛てのユニキャストの宛先MAC(Media Access Control)アドレスを書き換えるためのフローエントリ(後述する「フローエントリ(7)」)をスイッチ20に設定する。なお、宛先MACアドレス書き換えのフローエントリ(後述する「フローエントリ(6)、(7)」)設定前の段階では、後述するようにフラッディング通信でARP応答の転送を行うことができる。また、このフラッディング転送のためのフローエントリ(後述する「フローエントリ(2)、(3)」)は、該当する仮想ルータ(vRouter)の設定を契機として行われる。
さらに、コントローラ30が一定期間、特定の端末5からのARP(要求/応答)を受信しなかった場合、更新部34は、仮想ルータの該当するARPエントリを削除(ARPエージアウト)する。また、ARPエージアウトを契機として、設定部33はARPパケットイン契機でスイッチ20に設定したフローエントリを削除する。
また、コントローラ30へのARPパケットインを削減するため、設定部33はARPパケットイン契機のフローエントリ設定後の一定期間に亘って、コントローラ30にARPパケットを転送しない別のフローエントリ(後述する「フローエントリ(8)」)をスイッチ20に設定してもよい。なお、設定部33は、かかるフローエントリに対してタイムアウト(hard_timeout)を設定する。ここで、設定部33は、タイムアウト値として、ARPエントリのエージアウト時間よりも短い値を設定する。
さらに、コントローラ30がARPのパケットインを受信できなくなった場合、設定部33は、障害復旧後にコントローラ30がARP代理応答を行うレガシールータ40にアクセスし、一時的にARPエントリのリフレッシュ間隔を短くする。オープンフロー(OpenFlow)チャネルにおける障害発生時やクラスタ切り替え中などにより、コントローラ30がARPのパケットインを受信できない場合がある。ARPが受信できないと、端末5からリフレッシュのARP要求が到来するまで、端末間のユニキャスト通信がフラッディング転送となってしまい、ネットワークの通信負荷が高い期間が長期間継続する。かかるフラッディング転送の期間を短くするため、設定部33は、ARP要求のみならず、代理応答させるレガシールータ40からのARP要求に伴う端末5からのARP応答もパケットインさせるようにスイッチ20に設定する(後述する「フローエントリ(1)」)。このとき、コントローラ30の設定部33は、(telnetやSSH経由で)一時的にレガシールータ40のARPリフレッシュ間隔を短くさせる。これにより、コントローラ30に対して早期にARP応答をパケットインさせることが可能となる。
以下では、具体的なネットワーク構成に基づいて、本実施形態の通信システムについてさらに説明する。
ここでは、コントローラ30として、仮想テナントネットワーク(VTN:Virtual Tenant Network)および仮想ルータ(vRouter)をサポートするプロアクティブ型のオープンフローコントローラを使用して、L3(IPネットワーク)のオープンフロー(OpenFlow)ネットワークを構築する。プロアクティブ型の設定を想定するため、パケットイン(Packet In)またはパケットアウト(Packet Out)するパケットはARPパケットのみとなる。ARPパケットは、コントローラ30のARP学習、MAC学習のためにも必要となる。なお、一部のフローエントリ(後述する「フローエントリ(6)〜(8)」)を除いて、CLI(Command Line Interface)のコミットコマンド実行を契機としてフローエントリ(後述する「フローエントリ(1)〜(5)」)が設定される。
図4は、本実施形態の通信システムを適用するネットワーク構成(物理ネットワーク)を示す。図5は、図4に示すネットワークに対する仮想ネットワークの構成を示す。図4における3台のスイッチ(OFS:OpenFlow Switch)20A〜20Cは、それぞれ、図3に示すレガシールータ機能を備えたスイッチ20である。図4を参照すると、3台のスイッチ20A〜20Cには、それぞれ端末5A〜5Cが接続されている。ここでは、接続された端末5A〜5C間でユニキャスト通信を行うものとする。なお、本実施形態では、タグVLANが設定されていないアンタグ(untag)パケットのみを扱う。タグVLANパケットについては、第2の実施形態で説明する。
本実施形態では、スイッチ20としてオープンフロー(OpenFlow)機能内蔵のルータスイッチ(図3参照)を使用する。また、代理応答用のレガシールータ40として、スイッチ20に内蔵されたレガシールータ機能を有するユニットを用いる。
図3を参照すると、処理部22とレガシールータ40間は、仮想インタフェースVIF0で接続される。コントローラ30は、telnetまたはSSH経由でスイッチ20のレガシールータ40にアクセスし、レガシールータ40のコンフィグ設定を行う。レガシールータ40へのコンフィグ設定は、コントローラ30のコンフィグ設定に同期して自動的に行われる。
図6は、コントローラ30のコンフィグ設定を例示する図である。図6を参照すると、(1)では、VTN(Virtual Tenant Network)としてVTN1を定義している。また、(2)では、VTN1内に仮想ルータ(vRouter)であるvrt1を定義している。
さらに、(3)、(4)において、スイッチ20A(DPID: 0000-0000-0000-0001)のポート1(port 1、図4)を、図5に示すIPアドレス192.168.1.254/24を持つ仮想ルータ(vRouter)のインタフェースif1に割り当てている。ここで、インタフェースif1宛てのARPの代理応答は、スイッチ20Aの仮想インタフェースVIF0を介して、IPアドレス192.168.1.253を持つレガシールータ40が行うように設定する。なお、VLAN設定が省略されているため、タグVLANが設定されていないアンタグパケットの通信のみがサポートされる。
同様に、(5)、(6)では、スイッチ20B(DPID: 0000-0000-0000-0002)のポート1(port 1、図4)を、図5に示すIPアドレス192.168.2.254/24を持つ仮想ルータ(vRouter)のインタフェースif2に割り当てている。インタフェースif2宛てのARPの代理応答は、スイッチ20Bの仮想インタフェースVIF0を介して、IPアドレス192.168.2.253を持つレガシールータ40が行うように設定する。ここでは、VLAN設定が省略されているため、タグVLANが設定されていないアンタグパケットの通信のみがサポートされる。
また、(7)、(8)では、スイッチ20C(DPID: 0000-0000-0000-0003)のポート1(port 1、図4)を、IPアドレス192.168.3.254/24を持つ仮想ルータ(VRouter)のインタフェースif3に割り当てている。インタフェースif3宛てのARPの代理応答は、スイッチ20Cの仮想インタフェースVIF0を介して、IPアドレス192.168.3.253を持つレガシールータ40が行うように設定する。なお、VLAN設定が省略されているため、タグVLANが設定されていないアンタグパケットの通信のみがサポートされる。
次に、コントローラ30の設定部33がスイッチ20Aに設定するフローエントリ(1)〜(8)およびグループエントリ(1)について説明する。スイッチ20Aは、コントローラ30から設定されたフローエントリ(1)〜(8)およびグループエントリ(1)を、それぞれ、記憶部21が保持するフローテーブルおよびグループテーブルに格納する。
以下のフローエントリの説明におけるマッチ(match)条件とARPパケットのヘッダフィールドに記載された情報とがマッチする場合、スイッチ20の処理部22は、ARPパケットに対してアクション(action)に記載された処理を実行する。
「フローエントリ(1)」
端末5からのARP要求およびARP応答を、代理応答するレガシールータ40に転送し、かつコントローラ30にパケットインさせるフローエントリである。フローエントリ(1)は、CLIからのport-mapコマンドのコミットを契機として設定される。
・マッチ条件:
eth_type: ARP (0x0806)
arp_op: 0x01 (request)
arp_tpa: vRouter if1のIPアドレス(192.168.1.254)
vlan_vid: port-mapコマンドで指定したVLAN ID(本実施形態はアンタグ(untag)であるためOFPVID_NONE)
・アクション:
group: グループエントリ(1)
「グループエントリ(1)」
設定パラメータ
type = OFPGT_ALL
bucket 0:
output: To controller
bucket 1:(宛先IPアドレスをレガシールータ40に変更)
arp_tpa: 代理応答するレガシールータ40のIPアドレス(192.168.1.253)
output: 代理応答するレガシールータ40が接続されたポート(VIF0)
「フローエントリ(2)」
レガシールータ40からのARP応答およびレガシールータ40からの(リフレッシュ)ARP要求を、(ARPエントリ未学習のため)該当するネットワークアドレスに属する全ポートから出力(フラッディング転送)させるフローエントリである。フローエントリ(2)は、CLIからのport-mapコマンドのコミットを契機として設定される。また、フローエントリ(2)は、フローエントリ(6)の優先度よりも低い優先度で設定する。
・マッチ条件:
eth_type: ARP (0x0806)
arp_tpa: 端末5Aのネットワークアドレス(192.168.1.0/24)
・アクション:送信元MAC、IPを書き換える。出力先ポートを指定する。
arp_spa: vRouter if1のIPアドレス(192.168.1.254)
eth_src: コントローラ30のMACアドレス(00:00:00:00:00:fe)
arp_sha: コントローラ30のMACアドレス(00:00:00:00:00:fe)
output: 該当するネットワークアドレスに対応するポート(port 1) (複数ポート指定される場合あり)
「フローエントリ(3)」
宛先MACアドレス不明のユニキャストを該当するOpenFlowポート(外向きポート、すなわち端末5Aまたは外部のレガシースイッチと接続されるOpenFlowポート)に出力するためのフローエントリである。なお、フローエントリ(3)によるパケットの転送はフラッディング転送となる。また、フローエントリ(3)はフローエントリ(7)の優先度よりも低い優先度で設定する。
・マッチ条件:
ip_dst: 送信先の端末5Aのネットワークアドレス(192.168.1.0/24)
・アクション(宛先MAC(ブロードキャストアドレス)、送信元MACの設定。出力先ポートの指定)
output: 該当するネットワークアドレスに対応するポート(port 1) (複数ポート指定される場合あり)
eth_src: コントローラ30のMACアドレス(00:00:00:00:00:fe)
eth_dst: ブロードキャストアドレス(ff:ff:ff:ff:ff:ff)
「フローエントリ(4)、(5)」
外向きのOpenFlowポートから入力されたパケットを、他のスイッチに転送する(すなわち内向きポートに出力する)ためのフローエントリ(ingressフロー)である。なお、フローエントリ(4)、(5)は、それぞれ複数設定される場合もある。
「フローエントリ(4)」
・マッチ条件:
ip_dst: 送信先の端末5Aのネットワークアドレス(192.168.2.0/24)
・アクション:
output: 該当するネットワークアドレスに対応するポート(port 100)
「フローエントリ(5)」
・マッチ条件:
ip_dst: 送信先の端末5Aのネットワークアドレス(192.168.3.0/24)
・アクション:
output: 該当するネットワークアドレスに対応するポート(port 101)
「フローエントリ(6)」
レガシールータ40からのARP応答を、送信先となる端末5Aが接続されているポートに出力するフローエントリである。フローエントリ(6)は、レガシールータ40からの(リフレッシュ)ARP要求を端末5Aに転送する。フローエントリ(6)は、ARP要求のパケットインによるARP学習契機で設定される。なお、フローエントリ(6)は、フローエントリ(2)の優先度よりも高い優先度で設定する。
・マッチ条件:
eth_type: ARP (0x0806)
arp_tpa: 端末5AのIPアドレス(192.168.1.1)
・アクション:送信元MAC、IPを書き換える。出力先ポートを指定する。
arp_spa: vRouter if1のIPアドレス(192.168.1.254)
eth_src: コントローラ30のMACアドレス(00:00:00:00:00:fe)
arp_sha: コントローラ30のMACアドレス(00:00:00:00:00:fe)
output: 該当する送信先IPアドレスに対応するポート(port 1)
「フローエントリ(7)」
ARP要求を送信した端末宛てのユニキャストの宛先MACアドレスを書き換えるためのフローエントリ(egressフロー)である。フローエントリ(7)は、フローエントリ(3)の優先度よりも高い優先度で設定する。
・マッチ条件:
ip_dst: 端末5AのIPアドレス(192.168.1.1)
・アクション:宛先MAC(学習済みのMACアドレス)、送信元MACの設定を行う。出力先ポートを指定する。
output: 端末5Aが接続されているOpenFlowポート(port 1)
eth_src: コントローラ30のMACアドレス(00:00:00:00:00:fe)
eth_dst: 端末5AのMACアドレス(00:00:00:00:00:01)
「フローエントリ(8)」
ARPエントリを学習済みのため、一定期間ARPエントリをコントローラ30にパケットインさせないようにするフローエントリである。
・マッチ条件:
in_port: 端末5Aが接続されているポート(port 1) 運用中の端末のポート移動に対応するために、in_portをマッチ条件に加える。
eth_type: ARP (0x0806)
eth_src: 端末5AのMACアドレス(00:00:00:00:00:01)
vlan_vid: port-mapコマンドで指定したVLAN ID(本実施形態はアンタグ(untag)であるためOFPVID_NONE)
・アクション:宛先IPアドレスをレガシールータ40に変更する。
arp_tpa: 代理応答するレガシールータ40のIPアドレス(192.168.1.253)
output: 代理応答するレガシールータ40が接続されるポート(VIF0)
[動作]
次に、本実施形態の通信システムの動作について説明する。図7は、VTN設定後にコミットコマンドを実行し、スイッチ20Aにフローエントリ(1)〜(5)およびグループエントリ(1)が設定されるまでの手順と、スイッチ20Aに接続された端末5AからのARP要求のパケットインを契機として、スイッチ20Aにフローエントリ(6)〜(8)を設定する手順を示すシーケンス図である。なお、スイッチ20Bおよびスイッチ20Cに対するフローエントリおよびグループエントリの設定はスイッチ20Aに対する設定と同様であることから、説明を省略する。
ユーザは、コントローラ30のCLI(Commend Line Interface)経由でVTN設定を行う(図7のステップ1)。
コントローラ30は、CLIのコミットコマンドを契機として、telnet経由でスイッチ20のレガシールータ40にアクセスし、仮想インタフェースの作成およびIPアドレスの設定を行う(図7のステップ1.1)。仮想インタフェースが生成されると、レガシールータ40と接続されるオープンフロー(OpenFlow)ポートが新たに追加されるため、オープンフロー(OpenFlow)ネットワークのトポロジが変更されることになる。
コントローラ30は、オープンフローポートが追加されたタイミングで、関連するフローエントリ(フローエントリ(1)〜(5))とグループエントリ(グループエントリ(1))をスイッチ20Aに設定する(図7のステップ1.2、ステップ1.3)。
スイッチ20Aに接続された端末5A(192.168.1.1)がスイッチ20Bに接続された端末5B(192.168.2.2)と通信を行う場合、端末5Bと端末5Aとではネットワークアドレスが異なる。このとき、端末5Aはデフォールトゲートウェイである仮想ルータ(vrt1)のインタフェース(if1: 192.168.1.254)に対してARP要求を送信する(図7のステップ2)。
スイッチ20Aは、受信したARP要求がフローエントリ(1)およびグループエントリ(1)のマッチ(match)条件にヒットするため、受信したARP要求パケットをコントローラ30およびレガシールータ40に転送する(図7のステップ2.1、ステップ2.2)。
スイッチ20Aは、レガシールータ40から受信したARP応答がフローエントリ(2)のマッチ条件にヒットするため、受信したARP応答パケットの送信元アドレスおよびarp_shaをコントローラ30のMACアドレスに書き換えて、端末5Aに転送する(図7のステップ2.2.1、ステップ2.2.1.1)。
ARP要求パケットを受信したコントローラ30は、記憶部31が保持するARPテーブルおよびMACテーブルの更新(すなわちARP学習、MAC学習)を行う。さらに、コントローラ30は、フラッディング動作をさせることなく、ARPパケットやユニキャスト転送を行うためのフローエントリ(6)、(7)、および、オープンフロー(OpenFlow)チャネルの通信量を削減するために不要なARPパケットをドロップ(drop、破棄)するフローエントリ(8)をスイッチ20に設定する(図7のステップ2.1.1)。
フローエントリ(6)〜(8)の設定後、端末5Aと端末5Bとの間では、スイッチ20A、20Bを介してユニキャスト通信が行われる(ステップ3、ステップ3.1、および、ステップ3.1.1、ステップ3.1.2またはステップ4、ステップ4.1)。
次に、オープンフローチャネルが障害から復旧したときの動作について説明する。図8は、オープンフローチャネル障害からの復旧時の動作を例示するシーケンス図である。
障害から復旧した後、スイッチ20Aはコントローラ30に再接続する(図8のステップ1)。すると、コントローラ30は、レガシールータ40のARPリフレッシュ間隔を一時的に短くする。具体的には、コントローラ30は、レガシールータ40に対して、ARPリフレッシュ間隔を短くする設定を行い(図8のステップ1.1、ステップ1.1.1)、一定期間が経過した後、ARPリフレッシュ間隔を元に戻す設定を行う(図8のステップ2、ステップ2.1)。
これにより、ARP学習に失敗した端末からのARPパケットを、速やかにコントローラ30へ転送することができる。したがって、障害復旧後、短時間で必要なフローエントリ(フローエントリ(6)〜(8)相当)を設定することが可能となる。
[効果]
本実施形態の通信システム1では、スイッチ20が端末5から受信した仮想ルータ宛てのARP要求に対して、コントローラ30が応答できない場合であっても、スイッチ20に内蔵されたレガシールータ40がコントローラ30の代わりにARP応答を返すことができる。したがって、本実施形態の通信システムによると、オープンフロー(OpenFlow)チャネルの障害発生時やコントローラ(OFC:OpenFlow Controller)のクラスタ切り替え中であっても、新規または既存のユニキャスト通信を継続することができる。すなわち、本実施形態によると、オープンフロー(OpenFlow)ネットワークの障害許容性を向上させることができる。さらに、本実施形態によると、ARPエントリのエージアウトを行うコントローラ(OFC:OpenFlow Controller)を使用する場合であっても、常時ARP代理応答を実現することができる。
<実施形態2>
次に、第2の実施形態に係る通信システムについて図面を参照して説明する。
[構成]
本実施形態に係る通信システムは、第1の実施形態に係る通信システム(図3)と同様にコントローラ30およびスイッチ20を備えている。ただし、本実施形態では、スイッチ20は、図9に示すスイッチ20aの構成を有する。
図9を参照すると、スイッチ20aは、記憶部21a、処理部22a、および、レガシールータ40a、40bを備えている。ここでは、一例として、スイッチ20aはオープンフロースイッチ(OFC:OpenFlow Switch)とする。
本実施形態
では、1つのスイッチ20aで複数のタグVLANパケットを扱う場合のコンフィグ設定例を説明する。本実施形態では、代理応答するレガシールータ40a、40bの仮想インタフェースは、タグVLAN毎に設定される。
図10は、コントローラ30のコンフィグ設定を例示する図である。図10を参照すると、(1)では、VTN(Virtual Tenant Network)としてVTN1を定義している。また、(2)では、VTN1内に仮想ルータ(vRouter)vrt1を定義している。
さらに、(3)、(4)において、タグVLAN1が設定されたパケットの通信用に、スイッチ20A(DPID: 0000-0000-0000-0001)のポート1を、IPアドレス192.168.11.254/24を持つ仮想ルータvrt1のインタフェースif11に割り当てている。インタフェースif11宛てのARPの代理応答は、仮想インタフェースVIF1を介して、IPアドレス192.168.11.253を持つレガシールータ40aが行うように設定する。
同様に、(5)、(6)において、タグVLAN2が設定されたパケットの通信用に、スイッチ20A(DPID: 0000-0000-0000-0001)のポート2を、IPアドレス192.168.12.254/24を持つ仮想ルータvrt1のインタフェースif12に割り当てている。インタフェースif12宛てのARPの代理応答は、仮想インタフェースVIF2を介して、IPアドレス192.168.12.253を持つレガシールータ40bが行うように設定する。
[効果]
本実施形態の通信システム1では、スイッチ20aが端末5から受信した仮想ルータ宛てのARP要求に対して、コントローラ30が応答できない場合であっても、タグVLANに応じてスイッチ20に内蔵されたレガシールータ40a、40bの一方がコントローラ30の代わりにARP応答を返すことができる。したがって、本実施形態の通信システムによると、VLANに分割されたネットワークにおいて、オープンフロー(OpenFlow)チャネルの障害発生時やコントローラ(OFC:OpenFlow Controller)のクラスタ切り替え中であっても、新規または既存のユニキャスト通信を継続することができる。
上記実施形態に係る通信システムは、一例として、図11に示すようなセンタと拠点1、2の間のオープンフロー(OpenFlow)ネットワークに適用することができる。図11を参照すると、センタと拠点1、2との間はWAN(Wide Area Network)回線で接続される。コントローラ(OFC:OpenFlow Controller)30は、センタ側に配置されている。拠点側のスイッチ(OFS:OpenFlow Swtich)20B、20Cとのオープンフロー(OpenFlow)チャネルはin-band構成を採用している。一方、センタ側スイッチ20Aと拠点側スイッチ20B、20Cとの間はIPsec(Security architecture for Internet protocol)トンネルで接続される。
かかる構成において、各拠点にレガシールータ40を内蔵したスイッチ20B、20Cを配置することで、WAN回線を経由するARPパケットインおよびARPパケットアウトの数を削減することが可能となる。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係る制御装置のとおりである。
[形態2]、
前記設定部は、前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を、前記通信装置に設定する、
形態1に記載の制御装置。
[形態3]
前記設定部は、前記ルータ装置から受信した前記ARP応答をフラッディング転送する制御情報を前記通信装置に設定する、
形態1または2に記載の制御装置。
[形態4]
前記設定部は、前記通信装置から前記ARP要求を受信すると、前記ルータ装置から受信した前記ARP応答を前記端末が接続されたポートに転送する制御情報を、前記通信装置に設定する、
形態1ないし3のいずれか一に記載の制御装置。
[形態5]
前記設定部は、前記通信装置から前記ARP要求を受信すると、前記ARP要求を前記制御装置に転送することなく前記ルータ装置に転送する制御情報を、前記通信装置に設定する、
形態1ないし4のいずれか一に記載の制御装置。
[形態6]
前記設定部は、前記ルータ装置からのARP要求を前記端末に転送する制御情報、ならびに、前記端末からのARP応答を前記ルータ装置および前記制御装置に転送する制御情報を前記通信装置に設定し、前記制御装置と前記通信装置との間の通信が障害から復旧すると、前記ルータ装置におけるARPエントリのリフレッシュ間隔を一時的に短くする、
形態1ないし5のいずれか一に記載の制御装置。
[形態7]
上記第2の態様に係る通信システムのとおりである。
[形態8]
前記制御装置は、前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を、前記通信装置に設定する、
形態7に記載の通信システム。
[形態9]
前記制御装置は、前記ルータ装置から受信した前記ARP応答をフラッディング転送する制御情報を、前記通信装置に設定する、
形態7または8に記載の通信システム。
[形態10]
前記制御装置は、前記通信装置から前記ARP要求を受信すると、前記ルータ装置から受信した前記ARP応答を前記端末が接続されたポートに転送する制御情報を、前記通信装置に設定する、
形態7ないし9のいずれか一に記載の通信システム。
[形態11]
前記制御装置は、前記通信装置から前記ARP要求を受信すると、前記ARP要求を前記制御装置に転送することなく前記ルータ装置に転送する制御情報を、前記通信装置に設定する、
形態7ないし10のいずれか一に記載の通信システム。
[形態12]
前記制御装置は、前記ルータ装置からのARP要求を前記端末に転送する制御情報、ならびに、前記端末からのARP応答を前記ルータ装置および前記制御装置に転送する制御情報を前記通信装置に設定し、前記制御装置と前記通信装置との間の通信が障害から復旧すると、前記ルータ装置におけるARPエントリのリフレッシュ間隔を一時的に短くする、
形態7ないし11のいずれか一に記載の通信システム。
[形態13]
上記第3の態様に係る通信方法のとおりである。
[形態14]
前記制御装置が、前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を、前記通信装置に設定するステップを含む、
形態13に記載の通信方法。
[形態15]
上記第4の態様に係るプログラムのとおりである。
[形態16]
前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を前記通信装置に設定する処理を、前記コンピュータに実行させる、
形態15に記載のプログラム。
なお、上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
1 通信システム
2 通信装置
3 制御装置
4 ルータ装置
5、5A〜5C 端末
6 通信部
7 設定部
20、20A〜20C、20a スイッチ(OFS)
21、21a 記憶部
22、22a 処理部
30 コントローラ(OFC)
31 記憶部
32 通信部
33 設定部
34 更新部
40、40a、40b レガシールータ
41 記憶部
VIF0〜VIF2 仮想インタフェース

Claims (10)

  1. ルータ装置および制御情報に従ってパケットを処理する通信装置と通信する通信部と、
    前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が制御装置の代わりにARP応答を返すように制御する制御情報を、前記通信部を介して前記通信装置に設定する設定部と、を備える、
    ことを特徴とする制御装置。
  2. 前記設定部は、前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を、前記通信装置に設定する、
    請求項1に記載の制御装置。
  3. 前記設定部は、前記ルータ装置から受信した前記ARP応答をフラッディング転送する制御情報を、前記通信装置に設定する、
    請求項1または2に記載の制御装置。
  4. 前記設定部は、前記通信装置から前記ARP要求を受信すると、前記ルータ装置から受信した前記ARP応答を前記端末が接続されたポートに転送する制御情報を、前記通信装置に設定する、
    請求項1ないし3のいずれか1項に記載の制御装置。
  5. 前記設定部は、前記通信装置から前記ARP要求を受信すると、前記ARP要求を前記制御装置に転送することなく前記ルータ装置に転送する制御情報を、前記通信装置に設定する、
    請求項1ないし4のいずれか1項に記載の制御装置。
  6. 前記設定部は、前記ルータ装置からのARP要求を前記端末に転送する制御情報、ならびに、前記端末からのARP応答を前記ルータ装置および前記制御装置に転送する制御情報を前記通信装置に設定し、前記制御装置と前記通信装置との間の通信が障害から復旧すると、前記ルータ装置におけるARPエントリのリフレッシュ間隔を一時的に短くする、
    請求項1ないし5のいずれか1項に記載の制御装置。
  7. ルータ装置と、
    制御情報に従ってパケットを処理する通信装置と、
    前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が制御装置の代わりにARP応答を返すように制御する制御情報を、前記通信装置に設定する制御装置と、を備える、
    ことを特徴とする通信システム。
  8. 前記制御装置は、前記ARP要求を前記ルータ装置および前記制御装置に転送する制御情報を前記通信装置に設定する、
    請求項7に記載の通信システム。
  9. ルータ装置および制御情報に従ってパケットを処理する通信装置を備えた通信システムにおける制御装置が、
    前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が前記制御装置の代わりにARP応答を返すように制御する制御情報を生成するステップと、
    生成した制御情報を前記通信装置に設定するステップと、を含む、
    ことを特徴とする通信方法。
  10. ルータ装置および制御情報に従ってパケットを処理する通信装置を備えた通信システムにおける制御装置に設けられたコンピュータに対して、
    前記通信装置が端末から受信した仮想ルータ宛てのARP(Address Resolution Protocol)要求に対して、前記ルータ装置が前記制御装置の代わりにARP応答を返すように制御する制御情報を生成する処理と、
    生成した制御情報を前記通信装置に設定する処理と、を実行させる、
    ことを特徴とするプログラム。
JP2016200932A 2016-10-12 2016-10-12 制御装置、通信システム、通信方法、および、プログラム Pending JP2018064174A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016200932A JP2018064174A (ja) 2016-10-12 2016-10-12 制御装置、通信システム、通信方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016200932A JP2018064174A (ja) 2016-10-12 2016-10-12 制御装置、通信システム、通信方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2018064174A true JP2018064174A (ja) 2018-04-19

Family

ID=61968073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016200932A Pending JP2018064174A (ja) 2016-10-12 2016-10-12 制御装置、通信システム、通信方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2018064174A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021192008A1 (ja) * 2020-03-24 2021-09-30 日本電信電話株式会社 パケット転送装置、パケット転送方法及びパケット転送プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021192008A1 (ja) * 2020-03-24 2021-09-30 日本電信電話株式会社 パケット転送装置、パケット転送方法及びパケット転送プログラム
JPWO2021192008A1 (ja) * 2020-03-24 2021-09-30
JP7485010B2 (ja) 2020-03-24 2024-05-16 日本電信電話株式会社 パケット転送装置、パケット転送方法及びパケット転送プログラム

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
CN106936777B (zh) 基于OpenFlow的云计算分布式网络实现方法、系统
JP5846199B2 (ja) 制御装置、通信システム、通信方法、および通信プログラム
EP2615782A1 (en) Computer system and communication method in computer system
WO2014136864A1 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
US20120250496A1 (en) Load distribution system, load distribution method, and program
EP3528441B1 (en) Message forwarding
WO2018171529A1 (zh) 一种实现双控制平面的方法、装置、计算机存储介质
CN108123819B (zh) 一种虚实网络无缝融合的仿真方法
EP3095216B1 (en) Single hop overlay architecture for line rate performance in campus networks
Jin et al. Magneto: Unified fine-grained path control in legacy and OpenFlow hybrid networks
WO2011160517A1 (zh) 一种多协议标签交换业务隧道切换的方法及系统
JP2016501462A (ja) 仮想シャーシシステム制御プロトコル
Lopez-Pajares et al. Amaru: Plug&play resilient in-band control for SDN
WO2014129624A1 (ja) 制御装置、通信システム、経路切替方法及びプログラム
JP6402078B2 (ja) ネットワークシステムおよびパケット転送方法
US11228459B2 (en) Anycast address configuration for extended local area networks
CN110752989A (zh) 一种东西向流量转发方法与装置
US20150256455A1 (en) Communication system, path information exchange apparatus, communication node, forwarding method for path information and program
George et al. A Brief Overview of VXLAN EVPN
CN113037883A (zh) 一种mac地址表项的更新方法及装置
Owada et al. An Implementation of layer 2 overlay mesh network and edge computing platform for IoT
Rizvi et al. Towards carrier grade SDNs
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP2018064174A (ja) 制御装置、通信システム、通信方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210105