JP7046756B2 - ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム - Google Patents

ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム Download PDF

Info

Publication number
JP7046756B2
JP7046756B2 JP2018145431A JP2018145431A JP7046756B2 JP 7046756 B2 JP7046756 B2 JP 7046756B2 JP 2018145431 A JP2018145431 A JP 2018145431A JP 2018145431 A JP2018145431 A JP 2018145431A JP 7046756 B2 JP7046756 B2 JP 7046756B2
Authority
JP
Japan
Prior art keywords
layer
packet
port
address
destination
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.)
Active
Application number
JP2018145431A
Other languages
English (en)
Other versions
JP2020022100A (ja
Inventor
和洋 前多
洋司 小澤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018145431A priority Critical patent/JP7046756B2/ja
Priority to CN201910487639.XA priority patent/CN110798391B/zh
Priority to US16/444,760 priority patent/US10764412B2/en
Publication of JP2020022100A publication Critical patent/JP2020022100A/ja
Application granted granted Critical
Publication of JP7046756B2 publication Critical patent/JP7046756B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • 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/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/437Ring fault isolation or reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/22Parsing or analysis of headers
    • 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
    • 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/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L2012/4629LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信ネットワークにおけるデータを中継する技術に関する。
通信ネットワークでは、ケーブルの断線や装置故障が発生すると通信不可となる課題が存在する。そこで、レイヤー2(OSI参照モデルにおけるレイヤー)のネットワークでは、メッシュトポロジやリングトポロジといったネットワークトポロジに依存せず論理的にブロッキングポートを設けることで、ループ構成を排除し、障害発生時にブロッキングポートを開放することで通信を復旧させるスパニングツリー(IEEE802.1Dで規定)が用いられている。
また、トポロジをリングに限定することで、障害検出と障害復旧とを高速化したリングプロトコルを各ネットワーク装置ベンダが独自に仕様を策定している。このようなリングプロトコルとしては、例えば、アラクサラリングプロトコルが知られている。
また、レイヤー2上で動作するレイヤー3では、レイヤー2の経路が切り替わった後に、レイヤー3の経路切替が行われる為、レイヤー3の経路切替には時間がかかる課題が存在している。そこで、障害箇所毎に切替経路を事前に検索しておき、障害発生時に事前に検索した経路を設定することで切替時間を高速化する技術が知られている(例えば、非特許文献1参照)。
RFC4090:Fast Reroute Extensions to RSVP-TE for LSP Tunnels
非特許文献1の技術を用いることで、経路切替の高速化が可能になるが、切替対象が多い場合や、切替の設定自体に時間がかかる場合、すべて切替が完了し、通信が可能になるまでに多くの時間がかかってしまう。また、切替経路を事前に検索する必要があり、事前の処理の負荷が大きい。
本発明は、上記事情に鑑みなされたものであり、その目的は、ネットワーク障害時の通信不可時間を短縮することのできる技術を提供することにある。
上記目的を達成するため、一観点に係るネットワーク中継装置は、受信したレイヤー2フレームからレイヤー3パケットを生成し、生成されたレイヤー3パケットを送信可能なネットワーク中継装置であって、データを送受信可能な複数のポートを有し、ポートを介して接続されたネットワークの障害を検出する検出部と、検出部によりネットワークの障害が検出された場合に、ポートを介して受信した1つのレイヤー2フレームから複数のレイヤー3パケットを生成し、生成した複数のレイヤー3パケットを複数のポートを介してネットワークに送信する送信処理部と、を備える。
本発明によれば、ネットワーク障害時の通信不可時間を短縮することができる。
図1は、一実施形態に係るネットワークシステムの全体構成図及びネットワークシステムの状態を説明する図である。 図2は、一実施形態に係るVXLAN通信の概念を示す図である。 図3は、一実施形態に係るVXLANに係るフレームとパケットのフォーマットを示す図である。 図4は、一実施形態に係るネットワークスイッチの機能構成図である。 図5は、一実施形態に係るARPテーブルの一例の構成図である。 図6は、一実施形態に係るVLAN-VNIテーブルの一例の構成図である。 図7は、一実施形態に係るFDBテーブルの一例の構成図である。 図8は、一実施形態に係る学習済みカプセル化テーブルの一例の構成図である。 図9は、一実施形態に係る複製IDテーブルの一例の構成図である。 図10は、一実施形態に係る複製切替登録テーブルの一例の構成図である。 図11は、一実施形態に係る未学習カプセル化テーブルの一例の構成図である。 図12は、一実施形態に係る受信時処理のフローチャートである。 図13は、一実施形態に係るカプセル化処理のフローチャートである。 図14は、一実施形態に係るデカプセル化処理のフローチャートである。 図15は、一実施形態に係るテーブル更新処理のフローチャートである。 図16は、一実施形態に係る障害対応処理のフローチャートである。 図17は、一実施形態に係る障害時処理のフローチャートである。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。
図1は、一実施形態に係るネットワークシステムの全体構成図及びネットワークシステムの状態を説明する図である。
ネットワークシステム1000は、複数(図1では、例えば、3台)のネットワークスイッチ1(SW:スイッチ)をリング状に接続したリングトポロジとなっている。SW1は、ネットワーク中継装置の一例である。ネットワークシステム1000においては、レイヤー2のリングプロトコルが動作している。レイヤー2ネットワークでは、BUM(Broadcast, Unknown Unicast, Multicast)フレームは、送信先が一意に決定されない為、すべてのポートに複製して中継する。その為、ループ状のネットワークが構成されると、ループ内を永久にフレームが中継され続けてしまう。本実施形態では、リングプロトコルは、通信を論理的にブロックすることで、ループが形成されることを論理的に排除しつつ、通信経路の冗長性を確保している。なお、本実施形態では、リングプロトコルを用いた例を示しているが、スパニングツリープロトコル(STP)を用いるようにしてもよい。STPとリングプロトコルとは、通信を論理的にブロックする点で共通である一方、異なる点も存在する。STPでは、メッシュトポロジやリングトポロジなど様々なトポロジが構成可能であるが、リングプロトコルでは、リングトポロジだけが構成可能である。また、STPは、複雑なトポロジが可能である為、経路切替に時間がかかる。一方、リングプロトコルは、トポロジを単純にしている為、経路切替がSTPに比べて高速である。
ネットワークシステム1000におけるネットワーク3は、3台のSW1(SW#1、SW#2、SW#3)がリング状に接続されたリングトポロジ構成となっている。SW1には、1台以上の端末2を接続可能である。SW#1には、端末Aと、端末Bとが接続さ、SW#2には、端末Cが接続され、SW#3には、端末Dが接続されている。各端末2は、SW1を介して通信を行う。
本実施形態では、SW#3がマスターノードに設定されている。マスターノードは、リングプロトコル制御の中心となる装置である。リングトポロジを構成するSW1の中のマスターノード以外のSW1(SW#1、SW#2)を、トランジットノードと呼ぶ。
リングトポロジを構成するSW1の2つのポートを、リングポートと呼ぶ。特に、マスターノードの2つのリングポートを、プライマリーポート及びセカンダリーポートと呼ぶ。ここでは、例えばポート番号の数字が小さいポートが自動的にプライマリーポートとなることとする。また、セカンダリーポートは、通常時には論理的に通信を遮断するブロッキングポートになる。
ネットワークシステム1000では、SW#1のポート1(図面上側)とSW#2のポート2(図面下側)が接続され、SW#2のポート1とSW#3のポート2とが接続され、SW#3のポート1とSW#1のポート2が接続されることにより、リングトポロジのネットワーク3が構成されている。
ネットワークシステム1000では、図1(a)に示すように、ネットワーク障害が発生していない通常状態では、マスターノードであるSW#3のポート2がブロックキングポートとなっており、SW#3のポート2に入る通常フレームは廃棄される。また、ネットワークシステム1000では、図1(b)に示すように、例えば、SW#1とSW#2との間のケーブルが断線したネットワーク障害時においては、SW#3のポート1がブロッキングポートから、フレーム中継を行う通常のポートに変更されることとなる。
マスターノード(SW#3)は、ヘルスチェックフレームの送受信を行う。ヘルスチェックフレームは、リングに断線箇所がないか、もしくはネットワークスイッチ1が故障などで中継不可となっていないかをチェックするためのフレームである。トランジットノード(SW#1、SW#2)がリングポートでヘルスチェックフレームを受信すると、受信したリングポートではないもう1つのリングポートへヘルスチェックフレームを送信する。これにより、マスターノード(SW#3)が送信したヘルスチェックフレームは、ネットワーク障害が発生していない場合には、各トランジットノードを経由してマスターノードに戻ってくることとなる。これにより、マスターノードは、ネットワーク障害が発生しているか否かを把握することができる。
次に、ネットワークシステム1000で行われるVXLAN(Virtual eXtensible Local Area Network)通信について説明する。
図2は、一実施形態に係るVXLAN通信の概念を示す図である。
ネットワークシステム1000では、IETF(The Internet Engineering Task Force)がRFC7348として仕様公開したVXLAN通信を実現している。VXLANは、レイヤー2フレーム100(図3参照)をレイヤー3パケットにカプセル化することで、レイヤー3ネットワーク上に仮想的にレイヤー2ネットワークを構築する技術である。SW1に設けられているVLAN処理部4は、VXLANの終端であり、レイヤー2フレーム100をVXLANパケット125(図3参照:レイヤー3パケット)にカプセル化したり、VXLANパケット125をレイヤー2フレーム100にデカプセル化したりする。
次に、VXLANに係るフレーム(レイヤー2フレーム100)と、パケット(VXLANパケット125)とについて説明する。
図3は、一実施形態に係るVXLANに係るフレームとパケットのフォーマットを示す図である。
図3に示すVXLANパケット125は、RFC7348で規定されているVXLANパケットである。
レイヤー2フレーム100は、宛先MACアドレス(Dst MAC Addr)101と、送信元MACアドレス(Src MAC Addr)102と、プロトコル種別(Ether Type)103と、VLAN Tag104と、payload105と、FCS106とを含む。宛先MACアドレス101は、フレームの送信元の装置のMACアドレスである。送信元MACアドレス102は、フレームの送信先の装置のMACアドレスである。プロトコル種別103は、フレームが対応しているプロトコルの種別を示す情報であり、図3の例では、「0x8100」である。VLAN Tag104は、VLANのTagである。payload105は、送信対象のユーザデータである。FCS106は、フレームの終端を示すFCS(Flame Check Sequence)である。
VXLANパケット125は、Outer MAC Header107と、Outer IP Header108と、Outer UDP Header109と、VXLAN Header110と、オリジナルL2フレーム(Original L2 Flame)111と、FCS112とを含む。Outer MAC Header107は、宛先MACアドレス113と、送信元MACアドレス114と、プロトコル種別115とを含む。Outer IP Header108は、IPヘッダ等(IP Header misc)116と、送信元IPアドレス(Outer Src IP)117と、宛先IPアドレス(Outer Dst IP)118とを含む。VXLAN Header110は、VXLAN IDに対応するVNI(VXLAN Network Identifier)123と、予約ビット(Reserved)124と、その他の識別子(VXLAN misc)122とを含む。オリジナルL2フレーム111は、宛先MACアドレス101と、送信元MACアドレス102と、payload105とを含む。宛先MACアドレス101と、送信元MACアドレス102と、payload105とは、カプセル化前又はデカプセル化後のレイヤー2フレーム100の内容に対応する。
次に、SW1の機能構成について詳細に説明する。
図4は、一実施形態に係るネットワークスイッチの機能構成図である。
SW1は、2個以上のポート200と、FDB(Forwarding Database)制御部201と、送信処理部の一例としてのVXLAN処理部4と、検出部の一例としてのレイヤー2リング処理部203と、CPU204と、ARP(Address Resolution Protocol)制御部205と、レイヤー2処理部215と、レイヤー3処理部216とを備える。
FDB制御部201は、FDBテーブル206を記憶し、宛先MACアドレスに応じた転送先を制御する。ARP制御部205はARPテーブル207を記憶し、ARP送受信を行ってARPテーブル207の登録、更新、削除を行う。レイヤー2リング処理部203は、レイヤー2リングプロトコルを制御する、具体的には、レイヤー2リング処理部203は、ヘルスチェックフレームや、障害通知フレーム、復旧通知フレーム等の送受信を行う。VXLAN処理部4は、VLAN-VNIテーブル214と、経路情報学習部及びアドレス学習部の一例としてのカプセル化処理部208と、デカプセル化処理部209とを含む。カプセル化処理部208は、学習済みカプセル化テーブル210と、複製IDテーブル211と、複製切替登録テーブル212と、未学習カプセル化テーブル213とを記憶し、レイヤー2フレーム100をVXLANパケット125へ変換するカプセル化処理を行う。デカプセル化処理部209は、VXLANパケット125をレイヤー2フレーム100に変換するデカプセル化処理を行う。VLAN-VNIテーブル214は、VXLANのVNIと、VLANIDとのマッピングを管理するテーブルである。レイヤー2処理部215は、レイヤー2に従ったレイヤー2フレームの中継等の処理を行う。レイヤー3処理部216は、レイヤー3に従ったVXLANパケット125の中継等の処理を行う。CPU204は、SW1全体の制御を行う。
図5は、一実施形態に係るARPテーブルの一例の構成図である。
ここで、図1に示すネットワークシステム1000の各SW1に備えられている各VXLAN処理部4には、IPアドレスが付与されている。また、SW#1のVXLAN処理部#1のIPアドレスをIP1、MACアドレスをMAC1とし、SW#2のVXLAN処理部#2のIPアドレスをIP2、MACアドレスをMAC2とし、SW#3のVXLAN処理部#3のIPアドレスをIP3、MACアドレスをMAC3として説明する。なお、IPアドレスを便宜的にIP1,IP2,IP3としたが、具体的には、IPv4であれば192.168.1.1などの表記となる。
図5(a)は、ネットワークシステム1000が図1(a)に示す通常状態である場合における各SW1のARPテーブル207を示し、図5(b)は、ネットワークシステム1000が図1(b)に示す障害状態となり、障害発生後にARP再解決が実行されて更新された場合における各SW1のARPテーブル207を示している。
ARPテーブル207は、IPアドレス207aと、MACアドレス207bと、出力ポート207cとの列を有する。IPアドレス207aには、中継先のSW1のIPアドレスが格納される。MACアドレス207bには、宛先の装置のMACアドレスが格納される。出力ポート207cには、宛先への通信に用いるポート200のID(識別子)が格納される。
ネットワークシステム1000が図1(a)に示す通常状態である場合においては、図5(a)に示すSW#1のARPテーブル207によると、SW#1では、IP2へ中継する場合には、宛先MACアドレスをMAC2としてport2から出力すればよいことを示している。
また、ネットワークシステム1000が図1(b)に示す障害状態である場合においては、図5(b)に示すSW#1のARPテーブル207によると、SW#1では、IP2へ中継する場合、宛先MACアドレスをMAC2としてport1から出力すればよいことを示している。なお、ARPの動作やARPテーブル207の作成についてはRFC826で定義されている。
図6は、一実施形態に係るVLAN-VNIテーブルの一例の構成図である。
VLAN-VNIテーブル214は、VXLANのカプセル化およびデカプセル化を行う際に、レイヤー2のVLANIDをVXLANのVNIにマッピングするために使用するテーブルであり、VLANID214aとVNI214bとのを列に持つ。VLANID214aには、VLANIDが格納される。VNI214bには、同一行(エントリ)のVLANIDに対応するVNIが格納される。図6の例では、VLANIDが“VID1”である場合、VNIは“VNI1”であり、VLANIDが“VID2”である場合、VNIは“VNI2”であることを示している。このVLAN-VNIテーブル214は、例えば、SW1の管理者によって登録される。
図7は、一実施形態に係るFDBテーブルの一例の構成図である。
FDBテーブル206は、MACアドレス206aと、VNI206bと、宛先処理部IPアドレス206cと、出力ポート206dとの列を持つ。MACアドレス206aには、通信対象の装置のMACアドレスが格納される。VNI206bには、同一行(エントリ)の装置が属するVLANに対応するVNIが格納される。宛先処理部IPアドレス206cには、宛先のVXLAN処理部4のIPアドレスが格納される。出力ポート206dには、同一行の装置と通信する際に使用するポートのIDが格納される。例えば、レイヤー2のフレーム中継では、宛先MACアドレスがFDBテーブル206に登録されている場合、その登録された受信ポートに向けて送信される一方、宛先マックアドレスが登録されていない場合(未学習の場合)には、リングポートの双方向のポートへ送信される。FDBテーブル206は、送信先アドレス情報に相当する。
図8は、一実施形態に係る学習済みカプセル化テーブルの一例の構成図である。
学習済みカプセル化テーブル210は、学習済みユニキャストカプセル化を行う際に参照されるテーブル(ユニキャストカプセル化テーブル)であり、宛先IPアドレス210aと、宛先MACアドレス210bと、出力ポート210cとの列に持つ。宛先IPアドレス210aには、宛先となる装置のIPアドレス(宛先IPアドレス)が格納される。宛先IPアドレス210aの宛先IPアドレスは、SW1の管理者がVXLAN処理部4同士の接続(トンネル)情報を登録する時に登録される。図8の例は、SW#1のVXLAN処理部#1における学習済みカプセル化テーブル210を示しており、VXLAN処理部#2のIPアドレス(IP2)およびVXLAN処理部#3のIPアドレス(IP3)と接続するように管理者が登録した状態を示している。宛先MACアドレス210bには、同一行の宛先IPアドレスの装置に対応するMACアドレスが格納される。出力ポート210cには、同一行の装置への出力時に使用するポートのIDが格納される。例えば、VXLAN処理部4は、学習済みカプセル化テーブル210の宛先IPアドレス210aに管理者が宛先IPアドレスを登録した後、宛先IPアドレスを用いてARPテーブル207を検索し、検索した得られた結果(MACアドレスおよび出力ポート)を宛先MACアドレス210bおよび出力ポート210cに登録する。また、VXLAN処理部4は、ARPテーブル207が更新されたタイミングでも、学習済みカプセル化テーブル210を更新する。この学習済みカプセル化テーブル210のエントリがレイヤー3パケット経路情報の一例である。
図9は、一実施形態に係る複製IDテーブルの一例の構成図である。
複製IDテーブル211は、レイヤー2フレーム100の受信時に参照されるテーブルであり、VNI毎の複製を特定する情報を記憶する。複製IDテーブル211は、VNI211aと、複製ID211bとの列を持つ。VNI211aには、SW1が関係するVNIが格納される。複製ID211bには、同一行のVNIが示すVXLANにおける中継時の複製を示すID(複製ID)が格納される。VNI211aには、SW1の管理者がVLAN-VNIテーブル214のVNI214aにVNIの登録を行ったことに基づいて、VNI214aの値と同じ値が登録され、また、それと同時に複製ID211bには、複製IDが格納される。複製ID211bに格納される複製IDは、複製IDテーブル211内でユニークな値であれば任意の値でよい。複製ID211bには、リングの状態に応じて、後述する複製切替登録テーブル212の対応するVNIの通常時複製ID212bもしくは障害時複製ID212cのいずれかの値が入る。複製ID211Bに格納されている複製IDが参照先情報に対応する。
図10は、一実施形態に係る複製切替登録テーブルの一例の構成図である。
複製切替登録テーブル212は、VNI212aと、通常時複製ID212bと、障害時複製ID212cとの列を持つ。VNI212aには、送信対象のVLANのVNIが格納される。通常時複製ID212bには、同一行のVNIのVLANについて、通常時の複製を示す複製IDが格納される。障害時複製ID212cには、同一行のVNIのVLANについて、障害時の複製を示す複製IDが格納される。
複製切替登録テーブル212の各列212a、212b、212cは、SW1の管理者がVLAN-VNIテーブル214にVNIの登録を行ったことに基づいて、登録される。複製切替登録テーブル212のVNI212aには、VLAN-VNIテーブル214のVNI214aと同じ値が登録され、通常時複製ID212bおよび障害時複製ID212cには、複製切替登録テーブル212内でユニークな値が登録される。
図11は、一実施形態に係る未学習カプセル化テーブルの一例の構成図である。
未学習カプセル化テーブル213は、中継先が学習されていない宛先に対するフレーム(未学習フレーム)をVXLANパケット125もしくはレイヤー2フレーム100のまま中継する際に参照されるテーブルであり、複製ID213aと、宛先IPアドレス213bと、宛先MACアドレス213cと、出力ポート213dとの列を持つ。未学習カプセル化テーブル213は、複製ID毎に1以上の行のグループを有する。複製ID213aには、複製を示す複製IDが格納される。宛先IPアドレス213bには、同一行(エントリ)の複製における送信データ単位(パケットまたはフレーム)の宛先となるIPアドレスが格納される。宛先MACアドレス213cには、エントリの複製における宛先となる装置のMACアドレスが格納される。出力ポート213dには、エントリの複製におけるパケットまたはフレームを出力するポートのIDが格納される。未学習カプセル化テーブル213の宛先IPアドレス213bおよび宛先MACアドレス213cに値が登録されているエントリが未学習用情報に対応し、障害時複製IDに対応付けられているエントリが障害時ポート情報に対応し、通常時複製IDに対応付けられているエントリが通常時ポート情報に対応する。
図11の未学習カプセル化テーブル213においては、複製ID213aが“id1”の複製のグループでは、4つの送信データ単位に複製されて中継されることを表している。宛先IPアドレス213bおよび宛先MACアドレス213cに値が登録されている場合、VXLANパケットにカプセル化して中継することを表し、宛先IPアドレス213bおよび宛先MACアドレス213bに値が登録されていない場合、レイヤー2フレーム100のまま中継することを表している。
未学習カプセル化テーブル213に、複製ID213aの値が、複製切替登録テーブル212の通常時複製ID212bに登録された値であるエントリを登録する際のカプセル化処理部208の処理動作について説明する。
カプセル化処理部208は、処理対象の複製に対応するVNIのVXLANにおいて、SW1の管理者が他のVXLAN処理部4との中継を許可しているVXLAN処理部4のIPアドレスのそれぞれが宛先IPアドレス213bに含まれるようにエントリを登録する。ここで、SW1の管理者は、予めVNI毎に、他のVXLAN処理部4との中継を許可しているVXLAN処理部4のIPアドレスをVXLAN処理部4等に記憶させているものとする。
例えば、複製ID213aが“id1”の場合には、複製切替登録テーブル212を“id1”を用いて参照することにより、“VNI1”を特定する。ここで、“VNI1”は、IPアドレス“IP2”および“IP3”のVXLAN処理部4との間で中継する設定がSW1の管理者により行われているものとすると、“VNI1”に対応して記憶されているIPアドレス“IP2”および“IP3”を特定し、“IP2”及び“IP3”のそれぞれを異なるエントリの宛先IPアドレス213bに設定する。
次いで、カプセル化処理部208は、ARPテーブル207を参照して“IP2”、“IP3”のそれぞれに対応するMACアドレスおよび出力ポートを検索し、検索結果のMACアドレスおよび出力ポートを、対応するエントリの宛先MACアドレス213cおよび出力ポート213dに登録する。また、カプセル化処理部208は、VLAN-VNIテーブル214を参照して、“id1”に対応する“VNI1”に対応する“VID1”を得る。さらに、カプセル化処理部208は、レイヤー2リング処理部203に、“VID1”が設定されているポートを問い合わせ、問い合わせにより得られたポートIDを、対応するエントリの出力ポート213dに登録する。なお、レイヤー2リング処理部203は、VLANIDと、VLANIDに設定されているポート200のポートIDとを対応付けて記憶している。
これにより、未学習カプセル化テーブル213には、複製IDが”id1“の場合、VXLANパケット125にカプセル化して宛先IPアドレス“IP2”および“IP3”に向けて中継し、レイヤー2フレーム100を“port3”および“port4”に複製して中継することを示すエントリが登録される。ただし、複製においては、レイヤー2フレーム100が入力されたポート200へ折り返して中継することはしないものとする。例えば“port3”からレイヤー2フレーム100が入力された場合は“port3”に折り返して中継せず、“port4”のみにレイヤー2フレーム100を複製して中継する。
次に、未学習カプセル化テーブル213に、複製ID213aの値が、複製切替登録テーブル212の障害時複製ID212cに登録された値であるエントリを登録する際のカプセル化処理部208の処理動作について説明する。
カプセル化処理部208は、複製ID213aの複製ID(障害時複製ID)と対応付けられている(同一エントリとして対応付けられている)複製切替登録テーブル212の通常時複製ID212bの複製ID(通常時複製ID)を特定し、未学習カプセル化テーブル213の複製ID213aの障害時複製IDのエントリを、通常時複製IDのエントリと同内容とする。例えば、複製ID213aが“id3”の場合、対応する“id1”を複製IDとする未学習カプセル化テーブル213のエントリにおける宛先IPアドレス213b、宛先MACアドレス213c、出力ポート213dの値を、複製ID213aが“id3”の各エントリの対応する列にコピーする。
次に、カプセル化処理部208は、VXLANパケット125にカプセル化することを示すエントリにおいて、出力ポート123dのポートIDがリングポートである場合、出力ポート123dの値を、このリングポートと対を成すリングポートに変更した新たなエントリをVXLANパケット125にカプセル化するためのエントリとして追加登録する。具体的には、複製ID213aが“id3”の場合、VXLANパケット125にカプセル化することを示すエントリとして宛先IPアドレス213b、宛先MACアドレス213c、出力ポート213cに“IP2”、“MAC2”、“port2”が設定されているエントリが存在しているので、このエントリをそのまま残し、出力ポート213cの値を“port2”と対をなす“port1”に変更した新たなエントリを追加登録する。同様に、VXLANパケット125にカプセル化することを示すエントリとして宛先IPアドレス213b、宛先MACアドレス213c、出力ポート213cに“IP3”、“MAC3”,“port1”が設定されているエントリが存在しているので、このエントリをそのまま残し、出力ポート213cの値を“port1”と対をなす“port2”に変更した新たなエントリを追加登録する。
これにより、障害時複製IDに対応付けられたエントリとしては、同一の宛先IPアドレス及び同一の宛先MACアドレスの宛先に対して、複数の異なるポート(例では、対となる2つのリングポート)により、カプセル化したVXLANパケット125を出力することとなる。
次に、SW1における処理動作について説明する。
図12は、一実施形態に係る受信時処理のフローチャートである。
SW1のVXLAN処理部4は、ポート200を介して通信データを受信すると、通信データが自装置宛VXLANパケットであるか否かを判定する(S11)。具体的には、VXLAN処理部4は、通信データが自装置宛VXLANパケットであるか否かについては、通信データが、UDP/IPパケットであり、パケットの宛先MACアドレス113が自装置宛(SW1のMACアドレス)であり、且つ宛先UDPポート番号120がVXLANに割り当てられているポート番号(例えば、“4789”)であるか否かにより判定している。
この結果、通信データが自装置宛VXLANパケットである場合(S11:Yes)には、VXLAN処理部4は、デカプセル化処理(図14参照)を実行する(S13)。一方、通信データが自装置宛VXLANパケットでない場合、すなわち、通信データがレイヤー2フレーム100である、又は、自装置以外宛のVXLANパケットである場合(S11:No)には、VXLAN処理部4は、カプセル化処理(図13参照)を実行する(S12)。
図13は、一実施形態に係るカプセル化処理のフローチャートである。カプセル化処理は、図12のステップS12の処理に対応する。
VXLAN処理部4は、受信データ(レイヤー2フレーム100、又はVXLANパケット125)のVLAN Tag104内のVLANIDを参照し、このVLANIDを用いてVLAN-VNIテーブル214を検索する(S21)。この検索の結果、VLAN-VNIテーブル214に登録されていない場合(S21:ミス)には、自装置が管理するVXLAN用の通信データではないことを意味しているので、VXLAN処理部4は、レイヤー2処理部215又はレイヤー3処理部216により、既存のレイヤー2処理もしくはレイヤー3処理を実行させ(S22)、処理を終了する。
一方、VLANIDがVLAN-VNIテーブル214に登録されている場合(S21:ヒット)には、VXLAN処理部4は、レイヤー2フレーム100の情報をFDBテーブル206に登録する(S23:カプセル化時FDBテーブル登録)。具体的には、VXLAN処理部4は、レイヤー2フレーム100の送信元MACアドレス102をMACアドレス206aに格納し、VLAN-VNIテーブル214をVLANIDで検索して得られたVNIをVNI206bに格納し、レイヤー2フレーム100を受信したポートのポート番号を出力ポート206dに格納したエントリをFDBテーブル206に追加する。なお、FDBテーブル206に、同じ内容のエントリが存在している場合には、VXLAN処理部4は、エントリを追加しない。例えば、送信元MACアドレス102が“MAC4”、VLANIDが“VID1”であるレイヤー2フレーム100を“port2”のポート200から受信した場合には、図7に示すFDBテーブル206における3行目のエントリが登録される。なお、ステップS23の処理で追加されるエントリにおいては、宛先処理部IPアドレス206cには、何も登録されない。
次に、VXLAN処理部4は、FDBテーブル206の検索を行う(S24)。具体的には、VXLAN処理部4は、レイヤー2フレーム100の宛先MACアドレス101および検索して得られたVNIの組み合わせが、FDBテーブル206に登録されているか否かを検索する。
この結果、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つかった場合(S24:ヒット)、VXLAN処理部4は、見つかったエントリの宛先処理部IPアドレス206cにIPアドレスが設定されているか否かを判定する(S25)。
この結果、見つかったエントリの宛先処理部IPアドレス206cにIPアドレスが設定されている場合(S25:Yes)には、VXLAN処理部4は、学習済みカプセル化、中継処理を行う(S26)。
ここで、学習済みカプセル化、中継処理を、VLAN-VNIテーブル214、FDBテーブル206、及び学習済みカプセル化テーブル210が図6乃至図8に示す状態であり、宛先MACアドレス101が“MAC2”であり、VLAN Tag104内のVLANIDが“VID1”であるレイヤー2フレーム100を受信した場合を例に説明する。
このレイヤー2フレーム100を受信した場合には、ステップS21で、“VID1“に対応するVNIが“VNI1“であると検索され、ステップS24では、FDBテーブル206から、”MAC2“および”VNI1“の組み合わせが検索されて、図7の1行目のエントリが検索され、ステップS25において、宛先処理部IPアドレス206cにIPアドレスとして”IP2“が設定されていることが判定される。
この場合に、VXLAN処理部4は、以下に示すように、レイヤー2フレーム100をカプセル化させてVXLANパケット125を生成する。この際、VXLAN処理部4は、宛先宛先処理部IPアドレス206cに設定された“IP2”を用いて学習済みカプセル化テーブル210を検索し、“IP2”をVXLANパケット125の宛先IPアドレス118とし、検索によって得られた学習済みカプセル化テーブル210のエントリの宛先MACアドレス210bの値(“MAC2”)を、VXLANパケット125の宛先MACアドレス113とする。また、VXLAN処理部4は、VXLAN処理部4のIPアドレス(“IP1”)をVXLANパケット125の送信元IPアドレス117とし、VXLAN処理部4のMACアドレス(“MAC1”)を送信元MACアドレス114とする。また、VXLAN処理部4は、VLAN-VNIテーブル214の検索結果のVNIの値をVXLANパケット125のVNI123とし、“4789”がVXLANパケット125の宛先ポート120とされる。この後、VLAN処理部4は、生成したVXLANパケット125を学習済みカプセル化テーブル210のエントリの出力ポート210cのIDのポート200を介して送信する。
一方、見つかったエントリの宛先処理部IPアドレス206cにIPアドレスが設定されていない場合(S25:No)には、VXLAN処理部4は、レイヤー2フレーム100を、エントリの出力ポート206dに設定されているIDのポート200により送信する学習済み中継処理を行う(S27)。
一方、ステップS24において、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つからなかった場合は(S24:ミス)、未学習カプセル化、中継処理を行う(S28)。未学習カプセル化、中継処理では、VXLAN処理部4は、レイヤー2フレーム100を複数のレイヤー2フレーム100に複製し、その一部のレイヤー2フレーム100をそれぞれVXLANパケット125にカプセル化して送信するとともに、残りのレイヤー2フレーム100をそのまま送信する。
ここで、未学習カプセル化、中継処理を、VLAN-VNIテーブル214、複製IDテーブル211、及び未学習カプセル化テーブル213が図6、図9、及び図11に示す状態であり、宛先MACアドレス101が“MAC2”であり、VLAN Tag104内のVLANIDが“VID1”であるレイヤー2フレーム100を受信した場合を例に説明する。なお、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つからなかったものとする。
VXLAN処理部4は、VNIを用いて複製IDテーブル211を参照して、複製IDを検索する。この結果、複製ID(“id1”)が検出された場合(通常時)には、VXLAN処理部4は、複製ID(“id1”)を用いて、未学習カプセル化テーブル213を検索する。これにより、図11の未学習カプセル化テーブル213の複製ID213aが“id1”である1行目から4行目までの4つのエントリが特定される。
次いで、VXLAN処理部4は、レイヤー2フレーム100を複製する。次いで、VXLAN処理部4は、1つのレイヤー2フレーム100を、宛先MACアドレス“MAC2”に対応する1行目のエントリを用いて、VXLANパケット125にカプセル化して“port2”から送信し、1つのレイヤー2フレーム100を、3行目のエントリに基づいて、“port3”から送信し、1つのレイヤー2フレーム100を、4行目のエントリに基づいて、“port4”から送信する。
一方、VNIを用いて複製IDテーブル211を参照して、複製ID(“id3”)が検出された場合、すなわち、リングにおけるネットワーク障害が発生した直後の場合には、VXLAN処理部4は、複製ID(“id3)”)を用いて、未学習カプセル化テーブル213を検索する。これにより、図11の未学習カプセル化テーブル213の複製ID213aが“id3”である6つのエントリが特定される。
次いで、VXLAN処理部4は、レイヤー2フレーム100を複製する。次いで、VXLAN処理部4は、1つのレイヤー2フレーム100を、宛先MACアドレス“MAC2”に対応する1番目のエントリを用いて、VXLANパケット125にカプセル化して“port2”から送信し、1つのレイヤー2フレーム100を、3番目のエントリに基づいて、“port3”から送信し、1つのレイヤー2フレーム100を、4番目のエントリに基づいて、“port4”から送信する。さらに、VXLAN処理部4は、1つのレイヤー2フレーム100を、宛先MACアドレス“MAC2”に対応する5番目のエントリを用いて、VXLANパケット125にカプセル化して“port1”から送信する。
この結果、宛先IPアドレスを“IP2”とし、宛先MACアドレスを“MAC2”とするVXLANパケット125を、リングポートである“port1”と、“port1”と対を成す“port2”との両方向に送信することができる。これにより、リングトポロジのネットワーク3の一部が遮断されている場合であっても、所望の送信先の装置に、VXLANパケット125を送信することができる。
図14は、一実施形態に係るデカプセル化処理のフローチャートである。デカプセル化処理は、図12のステップS13の処理に対応する。
VXLAN処理部4は、受信データ(すなわち、VXLANパケット125)レイヤー2フレーム100の情報をFDBテーブル206に登録する(S33:デカプセル化時FDBテーブル登録)。具体的には、VXLAN処理部4は、VXLANパケット125の送信元MACアドレス114をMACアドレス206aに格納し、VNI123をVNI206bに格納し、宛先IPアドレス118を宛先IPアドレス206cに格納したエントリをFDBテーブル206に追加する。なお、FDBテーブル206に、同じ内容のエントリが存在している場合には、VXLAN処理部4は、エントリを追加しない。例えば、送信元MACアドレス114が“MAC2”、VLANIDが“VID1”、送信先IPアドレスが“IP2”であるVXLANパケット125を受信した場合には、図7に示すFDBテーブル206における1行目のエントリが登録される。なお、ステップS33の処理で追加されるエントリにおいては、出力ポート206dには、何も登録されない。
次に、VXLAN処理部4は、FDBテーブル206の検索を行う(S34)。具体的には、VXLAN処理部4は、VXLANパケット125の宛先MACアドレス101およびVNI123のVNIの組み合わせが、FDBテーブル206に登録されているか否かを検索する。
この結果、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つかった場合(S34:ヒット)、VXLAN処理部4は、学習済みデカプセル化、中継処理を実行する(S35)。具体的には、VXLAN処理部4は、VXLANパケット125をデカプセル化してレイヤー2フレーム100を生成し、レイヤー2フレーム100をFDBテーブル206の見つかったエントリの出力ポート206dのIDのポート200に送信する。
一方、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つからなかった場合(S34:ミス)、VXLAN処理部4は、未学習デカプセル化、中継処理を実行する(S36)。
ここで、未学習デカプセル化、中継処理を、VLAN-VNIテーブル214、複製IDテーブル211、及び未学習カプセル化テーブル213が図6、図9、及び図11に示す状態であり、宛先MACアドレス101が“MAC2”であり、VNIが“VNI1”であるVXLANパケット125を受信した場合を例に説明する。なお、FDBテーブル206に宛先MACアドレス101およびVNIの組み合わせのエントリが見つからなかったものとする。
VXLAN処理部4は、VNIを用いて複製IDテーブル211を参照して、複製IDを検索する。この結果、複製ID(“id1”)が検出された場合には、VXLAN処理部4は、複製ID(“id1”)を用いて、未学習カプセル化テーブル213を検索する。これにより、図11の未学習カプセル化テーブル213の複製ID213aが“id1”である1行目から4行目までの4つのエントリが特定される。
次いで、VXLAN処理部4は、VXLANパケット125をデカプセル化してレイヤー2フレーム100を生成し、このレイヤー2フレームを複製して、1つのレイヤー2フレーム100を、宛先IPアドレス213bが設定されていない3番目のエントリに基づいて、port3”から送信し、1つのレイヤー2フレーム100を、4番目のエントリに基づいて、“port4”から送信する。
図15は、一実施形態に係るテーブル更新処理のフローチャートである。
テーブル更新処理は、ARPテーブル207が登録もしくは更新されたときに実行される。
ARPテーブル207が更新されると、VXLAN処理部4のカプセル化処理部208は、学習済みカプセル化テーブル210を設定、更新する(S41)。次に、カプセル化処理部208は、未学習カプセル化参照テーブル213のうち、通常時複製IDに対応するエントリを設定、更新する(S42)。次いで、カプセル化処理部208は、レイヤー2リング処理部203によって、リング状のネットワーク3に障害が検知されていない場合(S43:正常)、カプセル化処理部208は、未学習カプセル化テーブル213のうち、障害時複製IDに対応するエントリを設定、更新する(S44)。一方、レイヤー2リング処理部203により、リングに障害が検知されている、もしくはレイヤー2リング処理部203が動作していない場合(S43:障害、リング無効)は、カプセル化処理部208は、障害時複製IDに対応するエントリを設定、更新せずに処理を終了する。
図16は、一実施形態に係る障害対応処理のフローチャートである。
障害対応処理は、マスターノードにより実行される処理である。例えば、図1に示すように3台のSW1によってリングトポロジのネットワーク3を構成したときには、マスターノードであるSW#3が実行する処理である。以下、図1に示す構成を例に障害対応処理を説明する。
マスターノード(SW#3)のレイヤー2リング処理部203は、リングを構成するポート1とポート2との双方から一定周期、例えば10ms周期でヘルスチェックフレームを送信する(S1)。トランジットノード(SW#1、SW#2)は、ヘルスチェックフレームを受信すると、受信したリングポート以外のリングポートへ受信したヘルスチェックフレームを送信する。例えば、図1の構成ではSW#1がポート1からチェックフレームを受信した場合はポート2へ送信し、ポート2から受信した場合はポート1へ送信する。
次いで、マスターノード(SW#3)は、レイヤー2(L2)のリング障害が発生しているか否かを判定する(S2)。具体的には、マスターノードは、自身が送信したヘルスチェックフレームが戻ってくる間は、リング障害が発生していない状態(通常状態)であると判定する。一方、ヘルスチェックフレームがマスターノードに戻ってこない状態、例えば10ms周期でヘルスチェックを送信し続けているが、最後のヘルスチェック受信から30ms経過してもヘルスチェックがマスターノードに戻ってこない場合、マスターノードはリング障害が発生したと判定する。
この結果、リング異常が発生していないと判定した場合(S2:No)には、マスターノードは、処理をステップS1に進める。
一方、リング異常が発生していると判定した場合(S2:Yes)、マスターノードは、障害通知フレームを、プライマリーポート(ポート1)およびセカンダリーポート(ポート2)から送信する(S3)。障害通知フレームを受け取ったトランジットノードは、障害時処理(図17参照)を実行することとなる。
次いで、マスターノードは、ブロッキングポートを解除して、プライマリーポート(ポート1)およびセカンダリーポート(ポート2)を用いてデータを中継可能にする(S4)。次いで、マスターノードは、FDBテーブル206をクリア(FDBテーブル206のエントリをクリア:との部分も同様)し(S5)、後述する障害時処理(図17参照)の実行を開始する。
次いで、マスターノードは、再びリングを構成するポート1とポート2との双方から一定周期、例えば10ms周期でヘルスチェックフレームを送信する(S6)。次いで、マスターノードは、障害状態から復旧したか否かを判定する(S7)。
この結果、障害状態から復旧していない判定した場合、すなわち、ヘルスチェックフレームが戻ってこない場合(S7:No)には、マスターノードは、処理をステップS6に進める。
一方、障害状態から復旧したと判定した場合(S7:Yes)には、マスターノードは、障害復旧通知フレームをポート1およびポート2から送信する(S8)。障害復旧通知フレームを受け取ったトランジットノードは、FDBテーブル206をクリアする。これにより、障害時に学習した経路情報をクリアすることができる。
次いで、マスターノードは、ポート2にブロックポイントを設定し(S9)、FDBテーブル206をクリアすることにより障害時の経路情報をクリアし(S10)、処理をステップS1に進める。
図17は、一実施形態に係る障害時処理のフローチャートである。
障害時処理は、マスターノードでは、障害対応処理のステップS5において実行され、トランジットノードでは、障害通知フレームを受信した場合に実行される。
まず、SW1のカプセル化処理部208は、FDBテーブル206をクリアし、FDBテーブル206の学習を抑止する(S51)。FDBテーブル206をクリアすることにより、障害が発生していない状態の経路情報を削除し、障害発生時には送信していなかった経路での通信データの中継を行うことができるようになる。例えば、図1(a)の通常状態では端末Aが端末Cへ通信する場合、SW#1からSW#2を経由して通信していたのに対し、図1(b)の障害状態では、SW#1からSW#2へ中継不可であるが、SW#1からSW#3、SW#2の順に経由して通信が可能となる。
なお、対向する(直接接続されている)VLAN処理部4からのVXLANパケットについてのみのFDBテーブル206の学習を抑止するようにして、それ以外の装置との間(例えば、端末2)との間の通信データについてのFDBテーブル206の学習については抑止しなくてもよい。このようにすると、リングにおける通信障害によってFDBテーブル206がクリアされた後、対向するVXLAN処理部4からのパケットの学習だけが抑止され、自VXLAN処理部4の配下に接続された装置(端末2)のMACアドレスは学習される為、自VXLAN処理部4の配下の端末2間の通信を学習した状態とすることができ、対向するVXLAN処理部4との通信のみについて、未学習カプセル化、中継処理(S28)を実行するようにすることができる。つまり、すべてについてFDBテーブル206の学習を抑止するよりも、不要に複製してデータを中継する処理を抑制することができる。
次に、カプセル化処理部208は、複製IDテーブル211の複製ID211bの複製IDを、複製切替登録テーブル212の障害時複製ID212cの複製ID(障害時複製ID)に書換える(S52)。これにより、未学習カプセル化、中継処理(S28)において、障害発生前のARPテーブル207によってARP解決したレイヤー3の中継経路へ送信していたVXLANパケット125を、レイヤー3の中継経路に加えて、リングポートの対を成すポートに対して送信が可能となる。つまり、レイヤー3の中継動作を、一時的にレイヤー2に似た動作にすることができる。このステップを実行することにより、VXLANパケットの通信が復旧する。このステップでの複製IDの書換にかかる処理時間は、複製切替登録テーブル212の障害時複製ID212cに登録された複製IDについての読み込み時間と、複製IDテーブル211の複製ID211bへの複製IDの書き込み時間とに限定することができ、比較的短時間となる。なお、通常時複製IDと、障害時複製IDとの対応関係を常に固定的にしておき、例えば通常時複製IDの値は1~4,000、障害時複製IDの値は10,001~14,000として、若い順番からそれぞれ対応するように決めておけば、複製IDの書換にかかる処理時間を、複製IDテーブル211の複製ID 211bに障害時複製IDを書き込むだけの時間だけに限定することができる。
次に、カプセル化処理部208は、カプセル化経路の再学習が完了したか否か(S53)、すなわち、障害発生時におけるARPテーブル207の再学習と、学習済みカプセル化テーブル210と、未学習カプセル化テーブル213の通常時複製IDに対応するエントリの更新がすべて完了したか否かを判定する。この結果、カプセル化経路の再学習が完了していない場合(S53:未完)には、カプセル化処理部208は、処理をステップS53に進めて、再学習が完了するまで待つ。
一方、カプセル化経路の再学習が完了した場合(S53:完了)は、カプセル化処理部208は、複製IDテーブル211の複製IDを通常時複製IDに書き換える(S54)。これにより、レイヤー2の障害に合わせて、レイヤー3の中継経路の完全な切替が完了する。
次に、カプセル化処理部208は、FDBテーブル206の学習の抑止を解除し(S55)、処理を終了する。これにより、障害通知フレームの受信後のVXLANパケットへのカプセル化を、未学習カプセル化、中継処理(S28)のみとなるよう制限していた動作を、学習済みカプセル化、中継処理(S26)も動作するようにすることができる。
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施形態では、障害時処理のステップS51においては、FDBテーブル206の経路情報の全体(全エントリ)をクリアするようにして、クリアに係る処理時間を短くするようにしていたが、本発明はこれに限られず、例えば、FDBテーブル206のVXLANパケットの送信に関わるエントリ(すなわち、IPアドレスが設定されているエントリ)のみをクリアするようにしてもよい。このようにすると、VXLANパケット以外の通信データについては、障害発生前の経路情報をそのまま利用して、不要なデータの複製と中継に係る処理を抑制することができる。
また、上記実施形態において、FDB制御部201、VXLAN処理部4、レイヤー2リング処理部203、ARP制御部205、レイヤー2処理部215、レイヤー3処理部216が行っていた処理の一部又は全部を、CPU204がプログラムを実行することに実現するようにしてもよい。このプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
1…SW(ネットワーク中継装置)、2…端末、3…ネットワーク、4…VXLAN処理部、100…レイヤー2フレーム、125…VXLANパケット、200…ポート、201…FDB制御部、203…レイヤー2リング処理部、204…CPU、205…ARP制御部、206…FDBテーブル、207…ARPテーブル、208…カプセル化処理部、209…デカプセル化処理部、210…学習済みカプセル化テーブル、211…複製IDテーブル、212…複製切替登録テーブル、213…未学習カプセル化テーブル、215…レイヤー2処理部、216…レイヤー3処理部







Claims (5)

  1. 受信したレイヤー2フレームからレイヤー3パケットを生成し、生成されたレイヤー3パケットを送信可能なネットワーク中継装置であって、
    データを送受信可能な複数のポートを有し、
    前記ポートを介して接続されたネットワークの障害を検出する検出部と、
    前記検出部により前記ネットワークの障害が検出された場合に、前記ポートを介して受信した1つのレイヤー2フレームから複数のレイヤー3パケットを生成し、生成した複数のレイヤー3パケットを複数のポートを介してネットワークに送信する送信処理部と、
    を備え
    前記ネットワークの障害が発生している際における各宛先への前記レイヤー3パケットを出力すべきポートを学習してレイヤー3パケット経路情報として記憶する経路情報学習部をさらに備え、
    前記経路情報学習部による前記レイヤー3パケット経路情報の学習が終了した場合に、前記送信処理部は、受信した1つのレイヤー2フレームから1つのレイヤー3パケットを生成して、前記レイヤー3パケット経路情報に基づいて、前記レイヤー3パケットを出力すべき前記ポートを特定し、特定した前記ポートに対して、生成した前記レイヤー3パケットを送信し、
    受信したレイヤー2フレームに基づいて、MACアドレスに対応するIPアドレスを学習して送信先アドレス情報として記憶するアドレス学習部をさらに備え、
    前記送信処理部は、送信先アドレス情報に、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されている場合には、前記レイヤー3パケット経路情報に基づいて学習されているIPアドレスに対応するポートを特定し、
    前記アドレス学習部は、前記障害が検出された場合に、前記IPアドレスの学習を抑止し、
    前記レイヤー2フレームの送信先のIPアドレスが送信先アドレス情報に学習されていない場合における、前記レイヤー3パケットを出力すべきポートを示す未学習用情報を記憶し、
    前記送信処理部は、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されていない場合に、前記未学習用情報に基づいて、前記レイヤー3パケットを出力すべきポートを介して送信する
    ネットワーク中継装置。
  2. 前記未学習用情報は、前記ネットワークに障害が発生した場合に、前記レイヤー3パケットを出力すべき複数のポートを示す障害時ポート情報と、それ以外の時に前記レイヤー3パケットを出力すべきポートを示す通常時ポート情報とを含み、
    前記送信処理部は、前記検出部により前記ネットワークの障害が検出された場合であって、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されていない場合に、前記障害時ポート情報に基づいて、前記レイヤー3パケットを出力すべき複数のポートに送信する
    請求項に記載のネットワーク中継装置。
  3. 前記未学習用情報における障害時ポート情報と、前記通常時ポート情報とのいずれかを示す参照先情報を記憶し、
    前記送信処理部は、前記参照先情報を用いて、前記未学習情報から障害時ポート情報又は前記通常時ポート情報を参照し、
    前記送信処理部は、前記検出部により前記ネットワークの障害が検出された場合に、前記参照先情報として、前記障害時ポート情報を示す参照先情報を設定する
    請求項に記載のネットワーク中継装置。
  4. 受信したレイヤー2フレームからレイヤー3パケットを生成し、生成されたレイヤー3パケットを送信可能なネットワーク中継装置によるネットワーク中継方法であって、
    前記ネットワーク中継装置は、データを送受信可能な複数のポートを有し、
    前記ポートを介して接続されたネットワークの障害を検出し、
    前記ネットワークの障害が検出された場合に、前記ポートを介して受信した1つのレイヤー2フレームから複数のレイヤー3パケットを生成し、
    生成した複数のレイヤー3パケットを複数のポートを介してネットワークに送信し、
    前記ネットワークの障害が発生している際における各宛先への前記レイヤー3パケットを出力すべきポートを学習してレイヤー3パケット経路情報として記憶し、
    前記レイヤー3パケット経路情報の学習が終了した場合に、受信した1つのレイヤー2フレームから1つのレイヤー3パケットを生成して、前記レイヤー3パケット経路情報に基づいて、前記レイヤー3パケットを出力すべき前記ポートを特定し、特定した前記ポートに対して、生成した前記レイヤー3パケットを送信し、
    受信したレイヤー2フレームに基づいて、MACアドレスに対応するIPアドレスを学習して送信先アドレス情報として記憶し、
    送信先アドレス情報に、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されている場合には、前記レイヤー3パケット経路情報に基づいて学習されているIPアドレスに対応するポートを特定し、
    前記障害が検出された場合に、前記IPアドレスの学習を抑止し、
    前記レイヤー2フレームの送信先のIPアドレスが送信先アドレス情報に学習されていない場合における、前記レイヤー3パケットを出力すべきポートを示す未学習用情報を記憶し、
    受信した前記レイヤー2フレームの送信先のIPアドレスが学習されていない場合に、前記未学習用情報に基づいて、前記レイヤー3パケットを出力すべきポートを介して送信する
    ネットワーク中継方法。
  5. 受信したレイヤー2フレームからレイヤー3パケットを生成し、生成されたレイヤー3パケットを送信可能なネットワーク中継装置を構成するコンピュータに実行させるネットワーク中継プログラムであって、
    前記コンピュータは、データを送受信可能な複数のポートを有し、
    前記コンピュータを、
    前記ポートを介して接続されたネットワークの障害を検出する検出部と、
    前記検出部により前記ネットワークの障害が検出された場合に、前記ポートを介して受信した1つのレイヤー2フレームから複数のレイヤー3パケットを生成し、生成した複数のレイヤー3パケットを複数のポートを介してネットワークに送信する送信処理部と、
    して機能させ、
    前記ネットワークの障害が発生している際における各宛先への前記レイヤー3パケットを出力すべきポートを学習してレイヤー3パケット経路情報として記憶する経路情報学習部としてさらに機能させ、
    前記経路情報学習部による前記レイヤー3パケット経路情報の学習が終了した場合に、前記送信処理部は、受信した1つのレイヤー2フレームから1つのレイヤー3パケットを生成して、前記レイヤー3パケット経路情報に基づいて、前記レイヤー3パケットを出力すべき前記ポートを特定し、特定した前記ポートに対して、生成した前記レイヤー3パケットを送信し、
    受信したレイヤー2フレームに基づいて、MACアドレスに対応するIPアドレスを学習して送信先アドレス情報として記憶するアドレス学習部としてさらに機能させ、
    前記送信処理部は、送信先アドレス情報に、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されている場合には、前記レイヤー3パケット経路情報に基づいて学習されているIPアドレスに対応するポートを特定し、
    前記アドレス学習部は、前記障害が検出された場合に、前記IPアドレスの学習を抑止し、
    前記レイヤー2フレームの送信先のIPアドレスが送信先アドレス情報に学習されていない場合における、前記レイヤー3パケットを出力すべきポートを示す未学習用情報を記憶し、
    前記送信処理部は、受信した前記レイヤー2フレームの送信先のIPアドレスが学習されていない場合に、前記未学習用情報に基づいて、前記レイヤー3パケットを出力すべきポートを介して送信するように機能させる
    ネットワーク中継プログラム。
JP2018145431A 2018-08-01 2018-08-01 ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム Active JP7046756B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018145431A JP7046756B2 (ja) 2018-08-01 2018-08-01 ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム
CN201910487639.XA CN110798391B (zh) 2018-08-01 2019-06-05 网络中继装置、网络中继方法、以及网络中继程序
US16/444,760 US10764412B2 (en) 2018-08-01 2019-06-18 Network relay device, network relay method, and network relay program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018145431A JP7046756B2 (ja) 2018-08-01 2018-08-01 ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム

Publications (2)

Publication Number Publication Date
JP2020022100A JP2020022100A (ja) 2020-02-06
JP7046756B2 true JP7046756B2 (ja) 2022-04-04

Family

ID=69229359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018145431A Active JP7046756B2 (ja) 2018-08-01 2018-08-01 ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム

Country Status (3)

Country Link
US (1) US10764412B2 (ja)
JP (1) JP7046756B2 (ja)
CN (1) CN110798391B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637776B2 (en) * 2021-04-27 2023-04-25 Realtek Singapore Pte Ltd. Network device and packet replication method

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232462A (ja) 2001-02-07 2002-08-16 Hitachi Ltd Ipパケット通信装置及び冗長構成切替え方法
JP2006270169A (ja) 2005-03-22 2006-10-05 Fujitsu Ltd パケット中継装置
JP2011066564A (ja) 2009-09-16 2011-03-31 Fujitsu Ltd データ中継装置、及びリング型通信システム
WO2013061604A1 (ja) 2011-10-28 2013-05-02 日本電気株式会社 リング型ネットワークにおけるノード装置およびその経路切替制御方法
US20150365319A1 (en) 2014-06-13 2015-12-17 Cisco Technology, Inc. Active/Static Path Redundancy
JP2017098842A (ja) 2015-11-26 2017-06-01 富士通株式会社 通信装置及び通信システム
JP2017229027A (ja) 2016-06-24 2017-12-28 APRESIA Systems株式会社 スイッチ装置および中継システム
JP2018501738A (ja) 2015-01-16 2018-01-18 アルカテル−ルーセント 仮想拡張可能ローカルエリアネットワーク上での双方向フォワーディング検出
JP2019083449A (ja) 2017-10-31 2019-05-30 アラクサラネットワークス株式会社 ネットワークシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2103075A1 (en) * 2006-12-22 2009-09-23 Telefonaktiebolaget LM Ericsson (PUBL) Preventing spoofing
JP4773981B2 (ja) * 2007-01-12 2011-09-14 富士通株式会社 通信制御プログラム
CN102771092B (zh) * 2010-02-25 2015-02-11 三菱电机株式会社 通信装置以及地址学习方法
JP5485821B2 (ja) * 2010-07-08 2014-05-07 富士通テレコムネットワークス株式会社 通信フレームの中継装置および中継方法
US8619546B2 (en) * 2010-08-17 2013-12-31 Alcatel Lucent Method and apparatus for coping with link failures in central control plane architectures
US8565069B2 (en) * 2010-11-23 2013-10-22 Force10 Networks, Inc. Method of shrinking a data loss window in a packet network device
CN103873368B (zh) * 2012-12-11 2017-09-15 新华三技术有限公司 以太网报文转发方法和接入设备
US9374323B2 (en) * 2013-07-08 2016-06-21 Futurewei Technologies, Inc. Communication between endpoints in different VXLAN networks
US9385942B2 (en) * 2014-04-30 2016-07-05 Extreme Networks, Inc. Methods, systems, and computer readable media for providing N-node multi-switch link aggregation groups (MLAGs)
CN105577417B (zh) * 2014-11-06 2019-02-22 新华三技术有限公司 基于vxlan网络的报文转发方法及装置
JP6549996B2 (ja) * 2016-01-27 2019-07-24 アラクサラネットワークス株式会社 ネットワーク装置、通信方法、及び、ネットワークシステム
CN107547347B (zh) * 2017-07-25 2020-06-09 新华三技术有限公司 基于vni的路径调整方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232462A (ja) 2001-02-07 2002-08-16 Hitachi Ltd Ipパケット通信装置及び冗長構成切替え方法
JP2006270169A (ja) 2005-03-22 2006-10-05 Fujitsu Ltd パケット中継装置
JP2011066564A (ja) 2009-09-16 2011-03-31 Fujitsu Ltd データ中継装置、及びリング型通信システム
WO2013061604A1 (ja) 2011-10-28 2013-05-02 日本電気株式会社 リング型ネットワークにおけるノード装置およびその経路切替制御方法
US20150365319A1 (en) 2014-06-13 2015-12-17 Cisco Technology, Inc. Active/Static Path Redundancy
JP2018501738A (ja) 2015-01-16 2018-01-18 アルカテル−ルーセント 仮想拡張可能ローカルエリアネットワーク上での双方向フォワーディング検出
JP2017098842A (ja) 2015-11-26 2017-06-01 富士通株式会社 通信装置及び通信システム
JP2017229027A (ja) 2016-06-24 2017-12-28 APRESIA Systems株式会社 スイッチ装置および中継システム
JP2019083449A (ja) 2017-10-31 2019-05-30 アラクサラネットワークス株式会社 ネットワークシステム

Also Published As

Publication number Publication date
US20200045149A1 (en) 2020-02-06
CN110798391B (zh) 2021-12-21
JP2020022100A (ja) 2020-02-06
US10764412B2 (en) 2020-09-01
CN110798391A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
JP4744723B2 (ja) マルチプロトコル冗長ルータプロトコルサポート方法及び装置
JP4676528B2 (ja) Rprリングネットワークのオン・オフリングの処理、データ転送方法及びそのネットワーク設備
US20150172190A1 (en) Packet forwarding
WO2015074394A1 (zh) 一种报文转发方法及装置
JP5150679B2 (ja) スイッチ装置
JP2000349778A (ja) トポロジ情報自動構築方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
JP2004304371A (ja) レイヤ2のスイッチング装置
WO2011121673A1 (ja) ネットワーク中継ノード装置、ネットワーク中継方法、プログラム、およびネットワークシステム
US20080123561A1 (en) Minimizing Spanning-Tree Protocol Event Processing and Flooding in Distribution Networks
WO2018171529A1 (zh) 一种实现双控制平面的方法、装置、计算机存储介质
WO2013061604A1 (ja) リング型ネットワークにおけるノード装置およびその経路切替制御方法
US9531564B2 (en) Single hop overlay architecture for line rate performance in campus networks
US8218446B2 (en) Frame transfer route confirmation method, node, frame transfer route confirmation program and frame transfer route confirmation system
JP4193832B2 (ja) ネットワークシステム及びデータ転送方法
JP7046756B2 (ja) ネットワーク中継装置、ネットワーク中継方法、及びネットワーク中継プログラム
JP6629681B2 (ja) スイッチ装置および中継システム
JP2005175591A (ja) スイッチングハブ
JPH0624368B2 (ja) 学習機能を持ったブリッジ方式
JP2007049495A (ja) リングノード装置
JP4967876B2 (ja) ネットワーク、ネットワーク装置及びそれらに用いる伝送経路冗長化方法
JP3599096B2 (ja) 二重化ネットワーク装置と二重化装置のmacアドレス整合方法
JP2019083449A (ja) ネットワークシステム
WO2014086242A1 (zh) 多链路透明互连网络中组播转发方法及装置、路由桥
JP2017200099A (ja) 仮想化システムおよび転送方法
JP2017005446A (ja) 中継装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220323

R150 Certificate of patent or registration of utility model

Ref document number: 7046756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150