JP2019022111A - 転送制御プログラム、転送制御方法および転送制御装置 - Google Patents

転送制御プログラム、転送制御方法および転送制御装置 Download PDF

Info

Publication number
JP2019022111A
JP2019022111A JP2017139786A JP2017139786A JP2019022111A JP 2019022111 A JP2019022111 A JP 2019022111A JP 2017139786 A JP2017139786 A JP 2017139786A JP 2017139786 A JP2017139786 A JP 2017139786A JP 2019022111 A JP2019022111 A JP 2019022111A
Authority
JP
Japan
Prior art keywords
frame
count value
router bridge
router
mac
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
JP2017139786A
Other languages
English (en)
Inventor
英世 福永
Hideyo Fukunaga
英世 福永
慶彦 古賀
Yoshihiko Koga
慶彦 古賀
藤吉 新一
Shinichi Fujiyoshi
新一 藤吉
浩明 久保
Hiroaki Kubo
浩明 久保
恒晴 鈴木
Tsuneharu Suzuki
恒晴 鈴木
孝史 加藤
Takashi Kato
孝史 加藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017139786A priority Critical patent/JP2019022111A/ja
Priority to US16/031,297 priority patent/US20190028396A1/en
Publication of JP2019022111A publication Critical patent/JP2019022111A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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
    • 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
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】フレームを効率よく転送する。【解決手段】転送制御装置1は、制御部1aと記憶部1bを備える。制御部1aは、中継転送に応じて減算されるカウント値を含む受信フレームの宛先に応じた所定カウント値を特定する。また、制御部1aは、受信フレームの中継転送の際に送信する送信フレームのカウント値を、特定した所定カウント値に設定し、所定カウント値を含む送信フレームを転送する。記憶部1bは、所定カウント値やその他の制御情報を記憶する。さらに、制御部1aは、宛先装置に属する中継装置に送信フレームが到達した際に、送信フレームに含まれるカウント値が所定値となるように所定カウント値を特定する。【選択図】図1

Description

本発明は、転送制御プログラム、転送制御方法および転送制御装置に関する。
IPv4(Internet Protocol version 4)やIPv6(IP version 6)のフレームには、ヘッダ内にTTL(Time To Live)と呼ばれるフレームの生存可能時間が指定される8ビットのフィールドが設けられている。
TTLが設定されたフレームは、ルータを通過する度にTTLの値から1が減算され、TTLでは、最大255ホップ数まで転送することが可能である。また、TTLの値が0になったフレームは、廃棄処理がなされて、廃棄通知がフレームの送信元に転送される。このような制御により、フレームがネットワーク内でループ状態になることを防止している。
特開平2−109445号公報 特開2003−298629号公報
データセンタやネットワークの仮想化技術の進展に伴い、仮想化環境に適したイーサネットファブリックの導入が拡大している(イーサネットは登録商標、以下省略)。イーサネットファブリックでは、IETF(The Internet Engineering Task Force)で標準化される、例えば、TRILL(Transparent Interconnection of Lots of Links)をベースにした機能が実装される。
TRILLは、冗長構成の制御やロードバランスを実現する。また、TRILLフレームにおいても、ループ状態の発生を防止するために、フレームの生存可能時間を指定可能なホップカウント(Hop Count)のフィールドが設けられている。
しかし、TRILLでは、ホップカウント値のフィールドが6ビットしか規定されていないため、最大63ホップ数しか転送できず、ホップ数が64を超えるフレームは廃棄されてしまう。このため、ホップカウント値に制限されて、64ホップ以上のフレーム転送が困難な非効率なフレーム転送になっている。
1つの側面では、本発明は、フレームを効率よく転送する転送制御プログラム、転送制御方法および転送制御装置を提供することを目的とする。
上記課題を解決するために、転送制御プログラムが提供される。転送制御プログラムは、コンピュータに、中継転送に応じて減算されるカウント値を含む受信フレームの宛先に応じた所定カウント値を特定し、受信フレームの中継転送の際に送信する送信フレームのカウント値を所定カウント値に設定し、所定カウント値を含む送信フレームを転送する処理を実行させる。
また、上記課題を解決するために、コンピュータが上記転送制御プログラムの制御を実行する転送制御方法が提供される。
さらに、上記課題を解決するために、上記転送制御プログラムの制御を実行する転送制御装置が提供される。
1側面によれば、フレームを効率よく転送することが可能になる。
転送制御装置の構成の一例を示す図である。 通信ネットワークの構成の一例を示す図である。 ルータブリッジのハードウェア構成の一例を示す図である。 ルータブリッジの機能ブロックの一例を示す図である。 TRILLフレームのフォーマットを示す図である。 TRILLネットワーク経由のフレーム転送の一例を示す図である。 テーブル管理の一例を示す図である。 通信ネットワークの構成の一例を示す図である。 ホップカウント値の書き替え動作を説明するための図である。 ホップカウント値の書き替え動作を説明するための図である。 テーブル管理の一例を示す図である。 フレーム転送経路の一部を示す図である。 FCSの比較を行ってループ受信を検出する動作を説明するための図である。 ルータブリッジの動作を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態の転送制御装置について図1を用いて説明する。図1は転送制御装置の構成の一例を示す図である。転送制御装置1は、制御部1aと記憶部1bを備える。制御部1aは、中継転送に応じて減算されるカウント値を含むフレームの転送制御を行う場合、受信フレームの宛先に応じた所定カウント値を特定する。
また、制御部1aは、受信フレームの中継転送の際に送信する送信フレームのカウント値を、特定した所定カウント値に設定し、所定カウント値を含む送信フレームを転送する。記憶部1bは、所定カウント値やその他の制御情報を記憶する。
図1に示す例を用いて制御部1aの動作について説明する。ネットワークN1は、中継装置R1、・・・、R4を含み、中継装置R4には宛先装置となる端末2が接続している。なお、中継装置R1、・・・、R4は、転送制御装置1の機能を備える。また、中継装置R1、・・・、R4によって中継転送されるフレームには、中継毎に1が減算される整数値のカウント値が含まれる。
〔ステップS1〕中継装置R1は、ネットワークN1内を中継してきたフレームを受信し、受信したフレームに設定されているカウント値Ctから1を減算して、中継装置R2にフレームを送信する。
中継装置R1で減算されることによって、カウント値Ctが0になったとし、カウント値Ctが0に設定されたフレームF1が中継装置R1から送信されるとする。
〔ステップS2〕中継装置R2は、カウント値Ctが0のフレームF1を受信する。この場合、中継装置R2は、宛先装置である端末2に属する中継装置R4にフレームが到達した際に、該フレームに含まれるカウント値Ctが所定値、例えば、0となるようにカウント値Ctを特定する。この例では、カウント値Ct(所定カウント値)を1と特定してカウント値Ctの書き替えを行う。
〔ステップS3〕中継装置R2は、カウント値Ctに書き替え後の1を設定したフレームF2を中継装置R3に送信する。
〔ステップS4〕中継装置R2は、カウント値Ctの書き替え後のフレームの誤り検出用データとして例えば、FCS(Frame Check Sequence)を算出して保持する。また、中継装置R2は、フレームの受信時、受信したフレームのFCSと、保持しているFCSとの比較を行い、FCSが一致している場合、受信したフレームがループして戻ってきたものとし(ループ受信)、該フレームを廃棄する。
〔ステップS5〕中継装置R3は、受信したフレームF2のカウント値Ctから1を減算する。中継装置R3において、カウント値Ctは0になる。そして、中継装置R3は、カウント値Ctを0に設定したフレームF3を中継装置R4に送信する。
〔ステップS6〕中継装置R4は、カウント値Ctが0に設定されたフレームF3を受信するが、中継装置R4は宛先装置となる端末2に属している。したがって、中継装置R4は、端末2へフレームF3を送信する。
上記のように、中継装置R2でカウント値Ctが0のフレームF1が受信された場合、中継装置R2では、カウント値Ctを1に書き替えてフレームを送信する。これにより、中継装置R3、R4経由でフレームが転送された場合、中継装置R3で1が減算されてカウント値Ctが0になり、中継装置R4までフレームが中継され、端末2に属する中継装置R4から端末2へフレームが送信されることになる。
このように、宛先装置に属していない中継装置は、カウント値が0のフレームを受信した場合、宛先装置まで該フレームが送信されるように、カウント値の書き替えを行うので、カウント値に制限されずにフレーム転送を行うことが可能になる。
また、カウント値の書き替えによってフレームがループしてしまう可能性がある。したがって、上記のように、カウント値を書き替えた中継装置では、カウント値の書き替え後のFCSにもとづいてループ受信の検出を行い、ループ受信を検出した場合はフレームの廃棄を行う。これにより、ループ受信を抑制することも可能になる(図12、図13で後述)。
[第2の実施の形態]
次に第2の実施の形態について説明する。第2の実施の形態は、TRILLネットワークに本発明の機能を適用したものである。まず、ネットワーク構成について説明する。
図2は通信ネットワークの構成の一例を示す図である。通信ネットワーク1−1は、イーサネット21、22およびTRILLネットワーク23を備える。
イーサネット21は、端末aを含み、イーサネット22は、端末b、cを含む。TRILLネットワーク23は、レイヤ2(またはレイヤ3)スイッチ機能を有するルータブリッジRB1、・・・、RB6を含む。
機器間の接続関係は、端末aは、ルータブリッジRB1に接続する。ルータブリッジRB1はさらに、ルータブリッジRB2、RB3に接続する。ルータブリッジRB4は、ルータブリッジRB2、RB3、RB5に接続する。ルータブリッジRB6は、ルータブリッジRB3、RB5および端末bに接続する。端末cは、ルータブリッジRB5に接続する。
<ルータブリッジのハードウェア>
図3はルータブリッジのハードウェア構成の一例を示す図である。ルータブリッジRBは、プロセッサ100によって装置全体が制御されている。すなわち、プロセッサ100は、ルータブリッジRBの制御部として機能する。
プロセッサ100には、バス103を介して、メモリ101および複数の周辺機器が接続されている。プロセッサ100は、マルチプロセッサであってもよい。プロセッサ100は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ100は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
メモリ101は、ルータブリッジRBの主記憶装置として使用される。メモリ101には、プロセッサ100に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ101には、プロセッサ100による処理に要する各種データが格納される。
また、メモリ101は、ルータブリッジRBの補助記憶装置としても使用され、OSのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ101は、補助記憶装置として、フラッシュメモリやSSD(Solid State Drive)等の半導体記憶装置やHDD(Hard Disk Drive)等の磁気記録媒体を含んでもよい。
バス103に接続されている周辺機器としては、入出力インタフェース102およびネットワークインタフェース104がある。入出力インタフェース102は、プロセッサ100からの命令にしたがってルータブリッジRBの状態を表示する表示装置として機能するモニタ(例えば、LED(Light Emitting Diode)やLCD(Liquid Crystal Display)等)が接続されている。
また、入出力インタフェース102は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ100に送信する。
さらにまた、入出力インタフェース102は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース102は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)等がある。
また、入出力インタフェース102は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース102との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
ネットワークインタフェース104は、ネットワークとのインタフェース制御を行い、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等が使用できる。ネットワークインタフェース104で受信されたデータは、メモリ101やプロセッサ100に出力される。
以上のようなハードウェア構成によって、ルータブリッジRBの処理機能を実現することができる。例えば、ルータブリッジRBは、プロセッサ100がそれぞれ所定のプログラムを実行することで本発明の制御を行うことができる。
ルータブリッジRBは、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ルータブリッジRBに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
例えば、ルータブリッジRBに実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ100は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ100からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ100が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
<ルータブリッジの機能ブロック>
図4はルータブリッジの機能ブロックの一例を示す図である。ルータブリッジRBは、光通信モジュールOC−1、・・・、OC−n、フレーム転送制御部10およびテーブル管理部10aを備える。
フレーム転送制御部10は、I/F(インタフェース)部11−1、・・・、11−n、多重部12、フレーム識別部13、ヘッダ情報抽出部14a、ヘッダ情報更新部14b、テーブル検索/更新部15、FCS演算部16a、FCS判定部16b、ループ判定部17および出力振分部18を含む。テーブル管理部10aは、MAC/RB対応テーブルT1、距離テーブルT2およびFCSテーブルT3を含む。
光通信モジュールOC−1、・・・、OC−nは、光回線を通じて隣接するルータブリッジRBまたは端末から送信された光のフレームを受信した場合、O(光)/E(電気)変換を行って電気のフレームを生成し、I/F部11−1、・・・、11−nへ出力する。
また、光通信モジュールOC−1、・・・、OC−nは、I/F部11−1、・・・、11−nから送信された電気のフレームを受信した場合、E/O変換を行って光のフレームを生成し、隣接するルータブリッジRBまたは端末へ光回線を通じて出力する。
I/F部11−1、・・・、11−nは、フレームのバッファリング、変復調処理およびMAC(Media Access Control)アドレスにもとづくフレーム解析等といったイーサネットのレイヤ1、2に関するインタフェース制御を行う。
多重部12は、自身に接続する回線で受信したフレームを多重化する。フレーム識別部13は、多重化されたフレームの接続先を識別する。ヘッダ情報抽出部14aは、識別されたフレーム毎に、該フレームからヘッダ情報を抽出する。
ヘッダ情報更新部14bは、テーブル検索/更新部15から送信された宛先/距離情報と、ヘッダ情報抽出部14aで抽出されたヘッダ情報とにもとづいて、ヘッダ情報を更新する。
テーブル検索/更新部15は、テーブル管理部10aで格納管理されるMAC/RB対応テーブルT1、距離テーブルT2およびFCSテーブルT3の登録内容の検索および更新を行う。
FCS演算部16aは、更新後のヘッダ情報にもとづきFCS演算を行う。FCS判定部16bは、受信したフレームのFCSと、保持しているFCSとの比較判定を行う。ループ判定部17は、FCSが一致している場合はループしているフレームと判定して該フレームを廃棄する。出力振分部18は、ループしていないフレームを受信すると、宛先につながるI/F部へフレームを出力して振り分ける。
なお、フレーム転送制御部10は、図3に示したプロセッサ100で実現され、テーブル管理部10aは、図3に示したメモリ101で実現される。また、各構成部を論理回路等によってハードウェア回路で構成することもできる。さらに、フレーム転送制御部10は、図1に示した制御部1aの機能を有し、テーブル管理部10aは、図1に示した記憶部1bの機能を有する。
<TRILLフレームのフォーマット>
図5はTRILLフレームのフォーマットを示す図である。TRILLフレーム3は、ヘッダおよびペイロードを含み、ペイロードの後部に4バイトのFCSが付加される。また、ヘッダは、Inner MACヘッダ31、TRILLヘッダ32およびOuter MACヘッダ33を含む。
Inner MACヘッダ31は、送信元から送信されるイーサネットフレーム30に含まれるヘッダである。イーサネットフレーム30がTRILLネットワークに入力すると、TRILLネットワーク内のルータブリッジRBによってイーサネットフレーム30にTRILLヘッダ32が付加されてカプセル化される。
さらに、ルータブリッジRBによって、TRILLネットワーク内をルーティングするためのOuter MACヘッダ33が付加される。そして、ルータブリッジRBを経由する度に、Outer MACヘッダ33内のOuter MAC SA(Source Address)とOuter MAC DA(Destination Address)の内容は書き替えられる。
ここで、Inner MACヘッダ31内のInner MAC SAには、フレームの送信元端末のMACアドレスが設定され、Inner MAC DAには、フレームの宛先端末のMACアドレスが設定される。
TRILLヘッダ32内のIngress RB Nicknameには、TRILLネットワークの入口(Ingress)ルータブリッジRBの識別子が設定され、Egress RB Nicknameには、出口(Egress)ルータブリッジRBの識別子が設定される。また、TRILLヘッダ32には、6ビットのHop Countフィールドが設けられている。
Outer MACヘッダ33内のOuter MAC SAには、ルータブリッジRBの送信元MACアドレスが設定され、Outer MAC DAには、ルータブリッジRBの宛先MACアドレスが設定される。
<フレーム転送例>
図6はTRILLネットワーク経由のフレーム転送の一例を示す図である。図2に示した通信ネットワーク1−1において、端末aから端末bにフレームを転送する際に、ルータブリッジRB1、RB3、RB6を経由するものとする(IngressはルータブリッジRB1、EgressはルータブリッジRB6)。
なお、端末a、b、cのMACアドレスをそれぞれA、B、Cとする。また、ルータブリッジRB1、RB2、RB3、RB4、RB5、RB6のMACアドレスをそれぞれD、E、F、G、H、Iとする。
〔ステップS11〕端末aは、Inner MACヘッダ31a内のInner MAC SAにMACアドレス=Aを設定し、Inner MAC DAにMACアドレス=Bを設定してフレームf1を生成し、フレームf1をルータブリッジRB1に送信する。
〔ステップS12〕ルータブリッジRB1は、フレームf1を受信する。ルータブリッジRB1は、Ingress RB NicknameにルータブリッジRB1の識別子=RB1を設定し、Egress RB NicknameにルータブリッジRB6の識別子=RB6を設定したTRILLヘッダ32aをフレームf1に付加する。
さらに、ルータブリッジRB1は、Outer MAC SAにルータブリッジRB1のMACアドレス=Dを設定し、Outer MAC DAにルータブリッジRB3のMACアドレス=Fを設定したOuter MACヘッダ33a−1をフレームf1に付加する。
そして、ルータブリッジRB1は、フレームf1にTRILLヘッダ32aおよびOuter MACヘッダ33a−1を付加することによってフレームf2を生成し、フレームf2をルータブリッジRB3に送信する。
〔ステップS13〕ルータブリッジRB3は、フレームf2を受信する。ルータブリッジRB3は、Outer MACヘッダ33a−1内のOuter MAC SAを、ルータブリッジRB1のMACアドレス=DからルータブリッジRB3のMACアドレス=Fに書き替える。
さらに、ルータブリッジRB3は、Outer MACヘッダ33a−1内のOuter MAC DAを、ルータブリッジRB3のMACアドレス=FからルータブリッジRB6のMACアドレス=Iに書き替える。
そして、ルータブリッジRB3は、MACアドレス書き替え後のOuter MACヘッダ33a−2を付加したフレームf2aを生成し、フレームf2aをルータブリッジRB6に送信する。
〔ステップS14〕ルータブリッジRB6は、フレームf2aを受信する。ルータブリッジRB6は、フレームf2aからOuter MACヘッダ33a−2およびTRILLヘッダ32aを削除してフレームf1を生成し、フレームf1を端末bに送信する。
<テーブル管理>
図7はテーブル管理の一例を示す図である。各ルータブリッジRBでは、図4で示したテーブル管理部10aにおいて、MAC/RB対応テーブルT1、距離テーブルT2およびFCSテーブルT3が管理される。図7の例では、図6で上述したフレーム転送におけるルータブリッジRB6のテーブル管理状態を示している。
MAC/RB対応テーブルT1は、TRILLネットワークに接続する端末のMACアドレスと、端末に接続するIngressまたはEgressに位置するルータブリッジRBの識別子との対応関係が登録される。
MAC/RB対応テーブルT1は、端末がどのルータブリッジRBに接続しているかを認識するために用いられる。また、MAC/RB対応テーブルT1は、MAC学習により、転送されてきたフレームのInner MAC SA(送信元アドレス情報)とIngress RB Nickname(中継装置の識別情報)とにもとづいて生成される。
図7の例では、端末aは、ルータブリッジRB1に接続するので、MACアドレス=Aと、ルータブリッジ識別子=RB1が対応付けられる。また、端末bは、ルータブリッジRB6に接続するので、MACアドレス=Bと、ルータブリッジ識別子=RB6が対応付けられる。さらに、端末cは、ルータブリッジRB5に接続するので、MACアドレス=Cと、ルータブリッジ識別子=RB5が対応付けられる。
一方、距離テーブルT2は、ルータブリッジRBと端末までの距離(ホップ数)を管理するテーブルである。ルータブリッジRBは、受信したフレームに設定されているホップカウント値から、該フレームを送信した端末までのホップ数を計算して距離テーブルT2に登録する。また、距離は、受信したフレームのTRILLヘッダ32内のHop Countに設定されている値を64(最大カウント値)から減算することで算出される。
図7の例では、ルータブリッジRB6の場合、端末aから送信されてきたフレームは、ルータブリッジRB1、RB3を経由するので(最短ルート)、ルータブリッジRB6に到着した時点のフレームのホップカウント値は62になっている。よって、ルータブリッジRB6は、端末aとの距離を2(=64−62)と算出する。
また、端末bから送信されてきたフレームは、ルータブリッジRB6に直接送信されるので、ルータブリッジRB6は、端末bとの距離を0(=64−64)と算出する。
さらに、端末cから送信されてきたフレームは、ルータブリッジRB5を経由するので(最短ルート)、ルータブリッジRB6に到着した時点のフレームのホップカウント値は63になっている。よって、ルータブリッジRB6は、端末cとの距離を1(=64−63)と算出する。このようにして算出された距離は、距離テーブルT2によって登録管理される。
一方、FCSテーブルT3は、ホップカウント値の書き替え後のフレームのFCSの計算結果を管理するテーブルである。FCSテーブルT3は、ホップカウント値の書き替え後のフレームのループ受信を検出するために用いられる。
なお、MAC/RB対応テーブルT1、距離テーブルT2およびFCSテーブルT3において、MACアドレス/ルータブリッジRBの識別子と、距離と、FCSとは対応付けられて管理される。
また、FCSテーブルT3に登録される、MACアドレス/ルータブリッジRBの識別子に対応付けられるFCSの数は、少なくともルータブリッジRBのレイテンシの時間分に算出されたFCSが登録される。
<ホップカウント値の書き替え>
次にホップカウント値の書き替え動作について図8、図9、図10を用いて説明する。図8は通信ネットワークの構成の一例を示す図である。通信ネットワーク1−2は、TRILLネットワーク23aを含み、TRILLネットワーク23aには、端末a、b、c、tが接続されている。
TRILLネットワーク23aは、ルータブリッジRB1、・・・、RB16を含む。機器間の接続関係は、端末aは、ルータブリッジRB1に接続する。ルータブリッジRB1は、ルータブリッジRB2、RB4に接続し、ルータブリッジRB2はさらに、ルータブリッジRB3に接続する。
ルータブリッジRB5は、ルータブリッジRB3、RB4、RB7に接続する。また、ルータブリッジRB5は、図示しない複数のルータブリッジRBを介して、ルータブリッジRB6に接続する。ルータブリッジRB8は、ルータブリッジRB6、RB9、RB10に接続し、ルータブリッジRB9はさらに、ルータブリッジRB7、RB12に接続する。
ルータブリッジRB10は、ルータブリッジRB12、RB13、RB15に接続する。ルータブリッジRB14は、ルータブリッジRB12、RB16に接続し、ルータブリッジRB16はさらに、ルータブリッジRB13に接続する。ルータブリッジRB11は、ルータブリッジRB13および端末bに接続する。端末cは、ルータブリッジRB15に接続し、端末tは、ルータブリッジRB12に接続する。
なお、端末a、b、c、tの各MACアドレスをA、B、C、Tとする。また、ルータブリッジRB*のMACアドレスを(RB*:MAC=*)と表記すると、ルータブリッジRB1、・・・RB16の各MACアドレスを以下に示すような値とする。
(RB1:MAC=D)、(RB2:MAC=E)、(RB3:MAC=F)、(RB4:MAC=G)、(RB5:MAC=H)、(RB6:MAC=I)、(RB7:MAC=J)、(RB8:MAC=K)、(RB9:MAC=L)、(RB10:MAC=M)、(RB11:MAC=N)、(RB12:MAC=O)、(RB13:MAC=P)、(RB14:MAC=Q)、(RB15:MAC=R)、(RB16:MAC=S)
図9、図10はホップカウント値の書き替え動作を説明するための図である。また、図11はテーブル管理の一例を示す図であり、ルータブリッジRB10における、MAC/RB対応テーブルT1a、距離テーブルT2aおよびFCSテーブルT3aの管理状態を示している。
通信ネットワーク1−2において、端末aから端末bにフレームが転送されるものとし、TRILLネットワーク23a内では、ルータブリッジRB1、RB4、RB5、RB6、RB8、RB10、RB13、RB11の順にフレームが中継されるものとする。よって、Ingressは、ルータブリッジRB1であり、Egressは、ルータブリッジRB11である。
〔ステップS21〕端末aは、Inner MACヘッダ31b内のInner MAC SAにMACアドレス=Aを設定し、Inner MAC DAにMACアドレス=Bを設定してフレームf11を生成し、フレームf11をルータブリッジRB1に送信する。
〔ステップS22〕ルータブリッジRB1は、フレームf11を受信する。ルータブリッジRB1は、Ingress RB NicknameにルータブリッジRB1の識別子=RB1を設定し、Egress RB NicknameにルータブリッジRB11の識別子=RB11を設定したTRILLヘッダ32bをフレームf11に付加する。
さらに、ルータブリッジRB1は、Outer MAC SAにルータブリッジRB1のMACアドレス=Dを設定し、Outer MAC DAにルータブリッジRB4のMACアドレス=Gを設定したOuter MACヘッダ33b−1をフレームf11に付加する。
そして、ルータブリッジRB1は、フレームf11にTRILLヘッダ32bおよびOuter MACヘッダ33b−1を付加することによってフレームf12を生成し、フレームf12をルータブリッジRB4に送信する。なお、フレームf12に設定されるホップカウント値は63である。
〔ステップS23〕ルータブリッジRB4は、フレームf12を受信する。ルータブリッジRB4は、Outer MACヘッダ33b−1内のOuter MAC SAを、ルータブリッジRB1のMACアドレス=DからルータブリッジRB4のMACアドレス=Gに書き替える。
さらに、ルータブリッジRB4は、Outer MACヘッダ33b−1内のOuter MAC DAを、ルータブリッジRB4のMACアドレス=GからルータブリッジRB5のMACアドレス=Hに書き替える。
そして、ルータブリッジRB4は、MACアドレス書き替え後のOuter MACヘッダ33b−2を付加したフレームf13を生成し、フレームf13をルータブリッジRB5に送信する。なお、フレームf13に設定されるホップカウント値は62である。
〔ステップS23a〕ルータブリッジRB5は、フレームf13を受信する。ルータブリッジRB5は、Outer MACヘッダ33b−2内のOuter MAC SAを自己のMACアドレス=Hと書き替え、Outer MAC DAを宛先ルータブリッジRBのMACアドレスに書き替えて送信する。なお、ルータブリッジRB5から出力されたフレームは、ホップ数を61経由するものとする。
〔ステップS24〕ルータブリッジRB6は、転送されてきたフレームを受信すると、Outer MAC SAにルータブリッジRB6のMACアドレス=Iを設定し、Outer MAC DAにルータブリッジRB8のMACアドレス=Kを設定する。
そして、ルータブリッジRB6は、MACアドレス書き替え後のOuter MACヘッダ33b−3を付加したフレームf14を生成し、フレームf14をルータブリッジRB8に送信する。なお、フレームf14に設定されるホップカウント値は1である。
〔ステップS25〕ルータブリッジRB8は、フレームf14を受信する。ルータブリッジRB8は、Outer MACヘッダ33b−3内のOuter MAC SAを、ルータブリッジRB6のMACアドレス=IからルータブリッジRB8のMACアドレス=Kに書き替える。
さらに、ルータブリッジRB8は、Outer MACヘッダ33b−3内のOuter MAC DAを、ルータブリッジRB8のMACアドレス=KからルータブリッジRB10のMACアドレス=Mに書き替える。
そして、ルータブリッジRB8は、MACアドレス書き替え後のOuter MACヘッダ33b−4を付加したフレームf15を生成し、フレームf15をルータブリッジRB10に送信する。なお、フレームf15に設定されるホップカウント値は0である。
〔ステップS26〕ルータブリッジRB10は、フレームf15を受信する。フレームf15のホップカウント値=0なので、ルータブリッジRB10は、ホップカウント値の書き替えを行う。
この例では、図11に示すルータブリッジRB10で管理されるテーブルにもとづき、ルータブリッジRB10は、MAC/RB対応テーブルT1aから、端末bはルータブリッジRB11に属していることを検出する。また、ルータブリッジRB10は、距離テーブルT2aから、端末bまでは距離=2であり、自身から2つ先にあることを検出する。したがって、ルータブリッジRB10は、ホップカウント値を1(=2−1=(距離−1))に書き替える。
また、ルータブリッジRB10は、Outer MACヘッダ33b−4内のOuter MAC SAをルータブリッジRB10のMACアドレス=Mに書き替える。さらに、ルータブリッジRB10は、Outer MACヘッダ33b−4内のOuter MAC DAをルータブリッジRB13のMACアドレス=Pに書き替える。
そして、ルータブリッジRB10は、MACアドレス書き替え後のOuter MACヘッダ33b−5を付加したフレームf16を生成し、フレームf16をルータブリッジRB13に送信する。なお、フレームf16に設定されるホップカウント値は書き替え後の1である。
〔ステップS27〕ルータブリッジRB13は、フレームf16を受信する。ルータブリッジRB13は、Outer MACヘッダ33b−5内のOuter MAC SAをルータブリッジRB13のMACアドレス=Pに書き替える。さらに、ルータブリッジRB13は、Outer MACヘッダ33b−5内のOuter MAC DAをルータブリッジRB11のMACアドレス=Nに書き替える。
そして、ルータブリッジRB13は、MACアドレス書き替え後のOuter MACヘッダ33b−6を付加したフレームf17を生成し、フレームf17をルータブリッジRB11に送信する。なお、フレームf17に設定されるホップカウント値は0である。
〔ステップS28〕ルータブリッジRB11は、フレームf17を受信する。フレームf17のホップカウント値は0であるが、ルータブリッジRB11は、端末bに属している。したがって、ルータブリッジRB11は、フレームf17からOuter MACヘッダ33b−6およびTRILLヘッダ32bを削除してフレームf11を生成し、フレームf11を端末bに送信する。
<FCSの比較によるループ受信検出>
次にFCSの比較によるループ受信検出について図12、図13を用いて説明する。図12はフレーム転送経路の一部を示す図である。通信ネットワーク1−2において、経路41は、ループが発生していない場合のフレーム転送経路の一部を示しており、ルータブリッジRB6、RB8、RB10の順にフレームが流れる経路とする。
また、経路42は、ループが発生した場合のフレーム転送経路の一部を示しており、ルータブリッジRB8、RB10、RB12、RB9、RB8の順にフレームがループする経路とする。
図13はFCSの比較を行ってループ受信を検出する動作を説明するための図である。 (状態St1)
状態St1は、経路41において、ルータブリッジRB6、RB8で生成されるフレームf14、f15を示している。
ルータブリッジRB6は、フレームf14のホップカウント値をBとし、FCSを0xBBBBBBBBと算出し、ホップカウント値=Bと、FCS=0xBBBBBBBBとを含むフレームf14を生成する。
また、ルータブリッジRB8は、フレームf15のホップカウント値をXとし、FCSを0xXXXXXXXXと算出し、ホップカウント値=Xと、FCS=0xXXXXXXXXとを含むフレームf15を生成する。なお、フレームf14、f15のヘッダ部の生成動作については、図10で上述したので説明は省略する。
(状態St2)
状態St2は、経路42において、ルータブリッジRB9、RB8で生成されるフレームf14a、f15を示している。
ルータブリッジRB9は、フレームf14aのホップカウント値をAとし、FCSを0xAAAAAAAAと算出し、ホップカウント値=Aと、FCS=0xAAAAAAAAとを含むフレームf14aを生成する。
なお、フレームf14aのヘッダ部については、フレームf14aのInner MACヘッダ内のInner MAC SAにはMACアドレス=A、Inner MAC DAにはMACアドレス=Bが設定される。TRILLヘッダのIngress RB NicknameにはルータブリッジRB1の識別子=RB1、Egress RB NicknameにはルータブリッジRB11の識別子=RB11が設定される。
さらに、Outer MACヘッダ内のOuter MAC SAには、ルータブリッジRB9のMACアドレス=Lが設定され、Outer MAC DAにはルータブリッジRB8のMACアドレス=Kが設定される。
一方、ルータブリッジRB8は、フレームf15のホップカウント値をXとし、FCSを0xXXXXXXXXと算出し、ホップカウント値=Xと、FCS=0xXXXXXXXXとを含むフレームf15を生成する。
ここで、ルータブリッジRB8によってホップカウント値の書き替え後のフレームf15が送信された場合、フレームf15が経路42でループして、再びルータブリッジRB8に戻ってきたとする。
この場合、Outer MACヘッダからペイロードまでの内容は変わらず一致するため、FCSも一致することになる。したがって、ルータブリッジRB8は、受信したフレームのFCSと、FCSテーブルT3に登録されているFCSとを比較して一致した場合、出力したフレームが戻ってきたものと判定し該フレームの廃棄を行う。
以上説明したように、ルータブリッジRBでは、ホップカウント値が0のフレームを受信すると、フレームが宛先端末に届くようにホップカウント値を書き替える。
ただし、単純にホップカウント値を書き替えただけのフレームを転送すると、TRILLネットワーク上をループするフレームが発生する可能性がある。
このため、ホップカウント値を書き替えたルータブリッジRBでは、FCSを算出してFCSテーブルに保持する。そして、ルータブリッジRBは、受信したフレームのFCSと、FCSテーブルで保持しているFCSとの比較判定を行い、FCSが一致している場合は、ループ受信したフレームと判定して該フレームを廃棄する。
これにより、ルータブリッジRBは、ホップカウント値に制限されずにフレーム転送を宛先端末まで転送することができ、かつループ受信の発生を抑制することができるので、フレームを効率よく転送することが可能になり、さらにフレーム転送の拡張性を図ることが可能になる。
<フローチャート>
図14はルータブリッジの動作を示すフローチャートである。
〔ステップS31〕ルータブリッジRBはフレームを受信する。
〔ステップS32〕ルータブリッジRBは、受信したフレームから、Inner MAC SAとIngress RB Nicknameとを抽出する。
〔ステップS33〕ルータブリッジRBは、MAC/RB対応テーブルT1および距離テーブルT2から、宛先端末に属するルータブリッジRBの距離を抽出する。
〔ステップS34〕ルータブリッジRBは、受信したフレームのOuter MACヘッダの書き替えを行い、また、ホップカウント値が0のフレームを受信した場合は、距離にもとづきホップカウント値の書き替えを行う。
〔ステップS35〕ルータブリッジRBは、ホップカウント値の書き替え後のフレームのFCSを算出する。
〔ステップS36〕ルータブリッジRBは、受信したフレームのFCSをFCSテーブルT3の登録内容と比較する。FCSが一致の場合はステップS37へ処理が進み、FCSが不一致の場合はステップS38へ処理が進む。
〔ステップS37〕ルータブリッジRBは、ループ受信と判定して、受信したフレームを廃棄する。
〔ステップS38〕ルータブリッジRBは、算出したFCSをFCSテーブルT3に登録し、フレームを転送する。
上記で説明した本発明の転送制御装置1およびルータブリッジRBの処理機能は、コンピュータによって実現することができる。この場合、転送制御装置1およびルータブリッジRBが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
プログラムを流通させる場合、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 転送制御装置
1a 制御部
1b 記憶部
2 端末
N1 ネットワーク
R1、R2、R3、R4 中継装置
F1、F2、F3 フレーム
Ct カウント値

Claims (7)

  1. コンピュータに、
    中継転送に応じて減算されるカウント値を含む受信フレームの宛先に応じた所定カウント値を特定し、
    前記受信フレームの中継転送の際に送信する送信フレームの前記カウント値を前記所定カウント値に設定し、
    前記所定カウント値を含む前記送信フレームを転送する、
    処理を実行させる転送制御プログラム。
  2. 前記処理は、宛先装置が属する中継装置に前記送信フレームが到達した際に、前記送信フレームに含まれる前記カウント値が所定値となるように前記所定カウント値を特定する請求項1記載の転送制御プログラム。
  3. 前記処理は、前記宛先装置から出力されたフレームに含まれる送信元アドレス情報と、前記中継装置の識別情報とから、前記宛先装置と前記中継装置との対応関係を検出し、前記フレームに含まれる前記カウント値を最大カウント値から減算した減算結果を前記宛先装置に対応付けて、前記減算結果にもとづき、前記宛先装置に応じた前記所定カウント値を求める請求項2記載の転送制御プログラム。
  4. 前記送信フレームは、該送信フレームの所定領域のデータを対象とする所定の演算により生成した誤り検出用データを含み、
    前記処理は、
    前記誤り検出用データを記憶部に記憶させ、
    前記送信フレームの送信後に新たなフレームを受信して、該フレームの宛先に応じて前記所定カウント値を反映させたデータを対象とする前記所定の演算により生成した前記誤り検出用データが、前記記憶部に記憶された前記誤り検出用データと一致する場合は、前記送信フレームのループ受信を検出する、
    請求項1記載の転送制御プログラム。
  5. 前記受信フレームおよび前記送信フレームは、TRILL(Transparent Interconnection of Lots of Links)フレームである請求項1記載の転送制御プログラム。
  6. コンピュータが、
    中継転送に応じて減算されるカウント値を含む受信フレームの宛先に応じた所定カウント値を特定し、
    前記受信フレームの中継転送の際に送信する送信フレームの前記カウント値を前記所定カウント値に設定し、
    前記所定カウント値を含む前記送信フレームを転送する、
    転送制御方法。
  7. 中継転送に応じて減算されるカウント値を含む受信フレームの宛先に応じた所定カウント値を特定し、前記受信フレームの中継転送の際に送信する送信フレームの前記カウント値を前記所定カウント値に設定し、前記所定カウント値を含む前記送信フレームを転送する制御部、
    を有する転送制御装置。
JP2017139786A 2017-07-19 2017-07-19 転送制御プログラム、転送制御方法および転送制御装置 Pending JP2019022111A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017139786A JP2019022111A (ja) 2017-07-19 2017-07-19 転送制御プログラム、転送制御方法および転送制御装置
US16/031,297 US20190028396A1 (en) 2017-07-19 2018-07-10 Relay device, method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017139786A JP2019022111A (ja) 2017-07-19 2017-07-19 転送制御プログラム、転送制御方法および転送制御装置

Publications (1)

Publication Number Publication Date
JP2019022111A true JP2019022111A (ja) 2019-02-07

Family

ID=65023586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017139786A Pending JP2019022111A (ja) 2017-07-19 2017-07-19 転送制御プログラム、転送制御方法および転送制御装置

Country Status (2)

Country Link
US (1) US20190028396A1 (ja)
JP (1) JP2019022111A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112015007035T5 (de) * 2015-11-26 2018-07-19 Mitsubishi Electric Corporation Weiterleitungsvorrichtung und kommunikationsnetz

Also Published As

Publication number Publication date
US20190028396A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
CN110012125B (zh) 集群网络通信方法、装置、存储介质和设备
US9985869B2 (en) Support for high availability of service appliances in a software-defined network (SDN) service chaining infrastructure
WO2021233267A1 (zh) SRv6业务链中转发报文的方法、SFF及SF设备
US11398956B2 (en) Multi-Edge EtherChannel (MEEC) creation and management
US20150249587A1 (en) Method and apparatus for topology and path verification in networks
US10257086B2 (en) Source imposition of network routes in computing networks
TW201603531A (zh) 全網域服務控制器
US9894144B2 (en) Application level mirroring in distributed overlay virtual networks
CN114374634A (zh) 报文转发方法以及网络设备
CN107872389B (zh) 用于业务负载平衡的方法、设备及计算机可读存储介质
US10270681B2 (en) Method for scalable computer network partitioning
JP2017224895A (ja) 通信制御プログラム、通信制御方法及び通信制御装置
US11121969B2 (en) Routing between software defined networks and physical networks
WO2023165137A1 (zh) 一种跨集群的网络通信系统和方法
US10681126B2 (en) Mechanism for overlay virtual networking
CN104065553A (zh) 虚拟网络迁移方法和相关设备
CN114567544A (zh) 一种路由通告方法、装置及系统
JP2019022111A (ja) 転送制御プログラム、転送制御方法および転送制御装置
EP2645677B1 (en) A method and a network element for content based addressing in a data transfer network
US9246820B1 (en) Methods and apparatus for implementing multiple loopback links
JP5505707B2 (ja) ネットワークシステム及びその運用方法
CN113497757B (zh) 利用域分段标识符来进行域间最短路径分段路由
US9544225B2 (en) Method for end point identification in computer networks
KR20230035673A (ko) 경로 광고 방법 및 관련 디바이스
JP2018191263A (ja) 通信管理装置、通信装置、通信システム、通信経路切替え方法およびプログラム