【解決手段】それぞれが宛先アドレス及びプレフィックス長を含む複数の経路を有するBGPの経路情報を生成する経路情報生成部と、複数の経路のうち、優先する経路を決定する優先経路決定部と、優先する経路の宛先アドレスのプレフィックス長を長くするべく経路情報を更新する経路情報更新部とを備える経路制御装置を提供する。
それぞれが宛先アドレス及びプレフィックス長を含む複数の経路を有するBGP(Border Gateway Protocol)の経路情報を生成する経路情報生成部と、
前記複数の経路のうち、優先する経路を決定する優先経路決定部と、
前記優先する経路の前記宛先アドレスの前記プレフィックス長を長くするべく前記経路情報を更新する経路情報更新部と
を備える経路制御装置。
【発明を実施するための形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0010】
図1は、本実施形態に係る通信ネットワーク10の一例を概略的に示す。通信ネットワーク10は、インターネット20、AS(Autonomous System)110、AS120、AS130、AS140、AS150、IX(Internet eXchange)160及びルートサーバ200を有する。ルートサーバ200は、経路制御装置の一例であってよい。
【0011】
ここでは、AS110のAS番号が1100、AS120のAS番号が1200、AS130のAS番号が1300、AS140のAS番号が1400、AS150のAS番号が1500である場合を例に挙げて説明する。なお、AS110、AS120、AS130、AS140及びAS150のAS番号は例示であって、他のAS番号であってもよい。
【0012】
AS110は、ルータ112及びルータ114を有する。AS120は、ルータ122を有する。AS130は、ルータ132を有する。AS140は、ルータ142及びルータ144を有する。AS150は、ルータ152を有する。ルータ112、ルータ114、ルータ122、ルータ132、ルータ142及びルータ152は、BGPルータであってよい。
【0013】
AS110は、トランジットASであってよい。ルータ112は、インターネット20に接続される。ルータ114は、IX160を介してルータ122、ルータ132及びルートサーバ200に接続される。
【0014】
AS140は、トランジットASであってよい。ルータ142は、インターネット20に接続される。ルータ144は、ルータ132及びルータ152に接続される。
【0015】
AS120は、「172.16.0.0/13」及び「172.24.0.0/13」のネットワークを管理する。AS130は、「10.2.0.0/16」及び「10.3.0.0/16」のネットワークを管理する。AS150は、「192.168.0.0/16」のネットワークを管理する。なお、これらのアドレス空間は例示であり、AS120及びAS130は他のアドレス空間のネットワークを管理してもよい。特に、本実施形態では、アドレス空間の例としてプライベートアドレスを記載しているが、グローバルアドレスであってよいことは言うまでもない。
【0016】
ルートサーバ200は、IX160に接続された複数のASのそれぞれの経路情報を生成する。例えば、まず、ルートサーバ200は、ルータ114、ルータ122及びルータ132のそれぞれとBGPピアになり、経路データを収集する。経路データは、宛先アドレス及びプレフィックス長と、ASパス属性とを含んでよい。ASパス属性は、宛先のASに到達するまでに経由するASのAS番号であってよい。
【0017】
ルートサーバ200は、収集した経路データを用いて、AS110用の経路表、AS120用の経路表及びAS130用の経路表を生成してよい。経路表は、経路情報の一例であってよい。なお、ルートサーバ200は、経路表のデータ構造を、表構造ではなくツリー構造としてもよい。ルートサーバ200が生成した経路表は、データ構造が表構造であっても、ツリー構造であっても、経路情報の一例であってよい。
【0018】
下記表1は、ルートサーバ200が生成したAS110用の経路表の一例である。なお、経路表の行エントリを経路と呼ぶ場合がある。
【0020】
ルートサーバ200は、生成したAS110用の経路表をルータ114に送信する。ルータ114がルートサーバ200から受信した経路表は、ルータ112によってインターネット20に広報される。
【0021】
ルータ144は、ルータ132及びルータ152のそれぞれとBGPピアになり、経路データを収集する。そして、ルータ144は、収集した経路データを用いて経路表を生成する。下記表2は、ルータ144が生成した経路表の一例である。ルータ144が生成した経路表は、ルータ142によってインターネット20に広報される。
【0023】
例えば、インターネット20からの、「10.2.0.10/16」又は「10.3.0.0/16」のネットワーク宛のトラフィックは、BGPによる制御のもと、AS110経由又はAS140経由でAS130に配信される。ここで、例えば、AS140の処理負荷が高い場合等に、「10.2.0.0/16」又は「10.3.0.0/16」のネットワーク宛のトラフィックを、AS140経由ではなく、AS110経由で配信させたい場合がある。すなわち、AS140経由の配信よりも、AS110経由の配信を優先させたい場合がある。
【0024】
本実施形態に係るルートサーバ200は、ルータ114に送信したAS110用の経路表を更新することによって、AS140経由の配信よりも、AS110経由の配信を優先させる。具体的に、まず、ルートサーバ200は、AS110用の経路表に含まれる複数の経路のうち、「10.2.0.0/16」を含む経路及び「10.3.0.0/16」を含む経路を、優先する経路として決定する。
【0025】
そして、ルートサーバ200は、優先する経路の宛先アドレスのプレフィックス長を長くするべく、AS110用の経路表を更新する。ルートサーバ200は、例えば、「10.2.0.0/16」のプレフィックス長を長くさせるための変更データをルータ114に送信し、ルータ114に、AS110用の経路表における「10.2.0.0/16」のプレフィックス長を長くさせる。また、ルートサーバ200は、例えば、「10.3.0.0/16」のプレフィックス長を長くさせるための変更データをルータ114に送信し、ルータ114に、AS110用の経路表における「10.3.0.0/16」のプレフィックス長を長くさせる。また、ルートサーバ200は、「10.2.0.0/16」及び「10.3.0.0/16」のプレフィックス長を長くした経路表を、ルータ114に送信してもよい。
【0026】
下記表3は、ルートサーバ200によって更新されたAS110用の経路表の一例である。
【0028】
表3に示すように、ルートサーバ200によって更新されたAS110用の経路表では、「10.2.0.0/16」が、「10.2.0.0/17」及び「10.2.128.0/17」となっており、プレフィックス長が16から17になっている。また、「10.3.0.0/16」が、「10.3.0.0/17」及び「10.3.128.0/17」となっており、プレフィックス長が16から17になっている。ルートサーバ200によって更新されたAS110用の経路表は、ルータ112によって再度インターネット20に広報される。
【0029】
これにより、「10.2.0.0/16」のネットワーク及び「10.3.0.0/16」のネットワークについて、AS110がインターネット20に対して広報するプレフィックス長を、AS140がインターネット20に対して広報するプレフィックス長よりも長くすることができる。BGPでは最長一致の規則が採用されているので、「10.2.0.0/16」又は「10.3.0.0/16」のネットワーク宛のトラフィックについて、AS140経由の配信よりも、AS110経由の配信を優先させることができる。
【0030】
図2は、通信ネットワーク10の他の一例を概略的に示す。ここでは、
図1で説明した通信ネットワーク10とは異なる点を主に説明する。
図2は、AS150の経路データとして、AS150が実際には管理していない「172.16.0.0/14」が誤って登録された場合、すなわち、AS120が管理するネットワークへの経路が経路ハイジャックされた場合を例示している。経路ハイジャックとは、このように、誤った経路情報が登録されて、ネットワーク上に広報されてしまうことであってよい。このようにAS120が管理するネットワークへの経路が経路ハイジャックされると、AS120が管理するネットワークにトラフィックが到達しなくなり、通信障害が発生してしまう。
【0031】
本実施形態に係るルートサーバ200は、経路ハイジャックが発生した場合に、ハイジャックされた経路の宛先アドレスのプレフィックス長を長くするべく、経路表を更新する。ルートサーバ200は、例えば、ルートサーバ200のオペレータ等によって入力されたデータにより、経路ハイジャックが発生したことを検出する。ルートサーバ200のオペレータ等は、例えば、AS120が管理する「172.16.0.0/13」のネットワークに対する経路ハイジャックが発生した場合に、その旨をルートサーバ200に対して入力する。
【0032】
ルートサーバ200は、例えば、「172.16.0.0/13」のネットワークに対する経路ハイジャックが発生した旨を示すデータが入力された場合、IX160に接続された複数のASに対して送信した経路表のうち、「172.16.0.0/13」を含む経路を有する経路表を更新する。具体的に、ルートサーバ200は、「172.16.0.0/13」を含む経路を有する経路表の「172.16.0.0/13」のプレフィックス長を長くするべく、当該経路表を更新する。
【0033】
例えば、ルートサーバ200は、ルータ114に対した送信したAS110用の経路表を、次の手順で更新する。まず、ルートサーバ200は、AS110用の経路表に含まれる複数の経路のうち「172.16.0.0/13」を含む経路を、優先する経路として決定する。
【0034】
そして、ルートサーバ200は、優先する経路の宛先アドレスのプレフィックス長を長くするべく、AS110用の経路表を更新する。例えば、ルートサーバ200は、「172.16.0.0/13」のプレフィックス長を長くさせるための変更データをルータ114に送信し、ルータ114に、AS110用の経路表における「172.16.0.0/13」のプレフィックス長を長くさせる。
【0035】
また、ルートサーバ200は、「172.16.0.0/13」のプレフィックス長を長くした経路表を、ルータ114に送信してもよい。下記表4は、ルートサーバ200によって更新されたAS110用の経路表の一例である。
【0037】
表4に示すように、ルートサーバ200は、経路表における「172.16.0.0/13」を、「172.16.0.0/14」と「172.20.0.0/14」とに分割することによって、プレフィックス長を長くしてよい。なお、ここでは、ルートサーバ200が、プレフィックス長を1つ長くする場合を例示しているが、ルートサーバ200は、プレフィックス長を2つ以上長くしてもよい。
【0038】
ルートサーバ200は、経路ハイジャックされた「172.16.0.0/13」のプレフィックス長を、AS150に登録された「172.16.0.0/14」(ハイジャック経路と呼ぶ場合がある)のプレフィックス長よりも長くできることが望ましい。経路ハイジャックされた経路のプレフィックス長を、ハイジャック経路のプレフィックス長よりも長くすることによって、経路ハイジャックされた経路を優先させることができるからである。
【0039】
またさらに、経路ハイジャックされた経路のプレフィックス長を長くすると、経路表に含まれる経路の数が増えることになり、BGPルータの処理負荷が向上し、BGPルータの記憶容量もより消費することになるので、プレフィックス長を長くし過ぎることは望ましくない。そこで、ルートサーバ200は、経路ハイジャックされた経路のプレフィックス長を、ハイジャック経路のプレフィックス長よりも少しだけ長く、例えば、1つだけ長くできることが望ましい。
【0040】
しかし、ルートサーバ200は、ハイジャック経路のプレフィックス長を認識できない場合が多い。そこで、ルートサーバ200は、プレフィックス長を長くした経路のネットワークに対するトラフィックの変化を監視しながら、徐々に経路ハイジャックされた経路のプレフィックス長を長くしてよい。例えば、ルートサーバ200は、プレフィックス長を長くした経路のネットワークに対するトラフィックを監視して、トラフィックが増加しない場合に、さらにプレフィックス長を長くするという処理を繰り返す。これにより、経路ハイジャックを解消しつつ、プレフィックス長を長くし過ぎないように制御することができる。
【0041】
なお、ここでは、ルートサーバ200が、プレフィックス長を長くした後に、経路ハイジャックされた経路のネットワークに対するトラフィックが増加するまで、プレフィックス長を長くする処理を繰り返す例を説明したが、これに限らない。例えば、ルートサーバ200は、プレフィックス長を長くした経路のネットワークに対するトラフィックの量が、経路ハイジャックが発生する前のトラフィックの量にまで回復しない旨を示すデータをルータ122等から受信した場合に、当該経路のプレフィックス長をさらに長くさせてもよい。
【0042】
図3は、通信ネットワーク10の他の一例を概略的に示す。ここでは、
図2で説明した通信ネットワーク10とは異なる点を主に説明する。
図3に示す通信ネットワーク10は、監視装置280をさらに含む。
【0043】
監視装置280は、ルータ144によって送信される経路情報を取得する。なお、監視装置280は、ルータ144以外を監視対象としてもよい。すなわち、監視装置280は、ルータ144以外のルータによって送信される経路情報をさらに取得してもよい。監視装置280は、取得した経路情報をルートサーバ200に送信してよい。これにより、ルートサーバ200は、経路ハイジャックを発生させた経路データである「172.16.0.0/14」を認識することができる。
【0044】
ルートサーバ200は、経路ハイジャックされた経路の宛先アドレスのプレフィックス長を、経路ハイジャックを発生させた経路データである「172.16.0.0/14」のプレフィックス長よりも長くするべく、経路表を更新してよい。これにより、プレフィックス長を長くし過ぎることなく、経路ハイジャックを解消することができる。
【0045】
図4は、ルートサーバ200の機能構成の一例を概略的に示す。ルートサーバ200は、経路データ受信部212、経路表生成部214、経路表格納部216、経路表送信部218、表示制御部222、入力受付部224、優先経路決定部226、経路ハイジャック検出部228及び経路表更新部230を備える。なお、ルートサーバ200がこれらのすべての構成を備えることは必須とは限らない。
【0046】
経路データ受信部212は、IX160を介して接続された複数のASから、経路データを受信する。また、経路データ受信部212は、IX160を介して接続されたASが管理する経路データに変更が生じた場合に、当該変更を示す変更データを、当該ASから受信してよい。
【0047】
経路表生成部214は、経路データ受信部212が受信した経路データを用いて、経路表を生成する。経路表生成部214は、経路情報生成部の一例であってよい。経路表格納部216は、経路表生成部214が生成した経路表を格納する。経路表生成部214は、経路データ受信部212が変更データを受信した場合、当該変更データに従って、経路表格納部216に格納された経路表を変更してよい。
【0048】
経路表送信部218は、経路表格納部216に格納されている経路表を、IX160を介して接続された複数のASのそれぞれに送信する。経路表送信部218は、経路データ受信部212が変更データを受信した場合、当該変更データを、IX160を介して接続された複数のASのそれぞれに送信してよい。経路表送信部218は、経路情報送信部の一例であってよい。
【0049】
表示制御部222は、経路表格納部216に格納された経路表を表示するよう制御する。表示制御部222は、例えば、ルートサーバ200が備える不図示のディスプレイに経路表を表示させる。また、表示制御部222は、ネットワーク経由で通信接続された任意の通信装置に対して、経路表格納部216に格納された経路表を表示させてもよい。
【0050】
入力受付部224は、入力を受け付ける。入力受付部224は、例えば、ルートサーバ200が備える不図示の入力デバイスを介した入力を受け付ける。また、入力受付部224は、ネットワーク経由で通信接続された任意の通信装置から入力を受け付けてもよい。表示制御部222及び入力受付部224は、Web上で経路表を閲覧したり、操作したりすることを可能とするWebサービスを提供してよい。
【0051】
優先経路決定部226は、経路表格納部216に格納された経路表に含まれる複数の経路のうち、優先する経路を決定する。優先経路決定部226は、例えば、表示制御部222によって表示された経路表に含まれる複数の経路から、ルートサーバ200のオペレータによって、入力受付部224を介して選択された経路を、優先する経路として決定する。
【0052】
また、優先経路決定部226は、表示制御部222によって任意の通信装置に表示された経路表に含まれる複数の経路から、当該任意の通信装置の操作者によって、入力受付部224を介して入力された経路を、優先する経路として決定してもよい。ルートサーバ200のオペレータ及び任意の通信装置の操作者は、例えば、経路ハイジャックされた経路や、通信負荷を均衡させるためにトラフィックを集めたい経路などを選択してよい。
【0053】
経路ハイジャック検出部228は、経路ハイジャックを検出する。経路ハイジャック検出部228は、例えば、IX160に接続された複数のASのそれぞれが管理するトラフィックを監視して、継続していたトラフィックが途絶えたことを検知した場合に、経路ハイジャックが発生したことを検出する。なお、経路ハイジャック検出部228は、経路ハイジャックを検出する公知の技術を用いて経路ハイジャックを検出してもよい。例えば、経路ハイジャック検出部228は、複数のASのそれぞれに分散配置された経路監視装置のそれぞれが、IRR(Internet Routing Registry)データベースのデータと経路情報とを比較することにより経路ハイジャックを検出する技術をもちいて、経路ハイジャックを検出してもよい。
【0054】
経路表更新部230は、経路表を更新する。経路表更新部230は、例えば、経路表を有するBGPルータに対して経路表を変更する変更データを送信して、当該BGPルータに経路表を変更させることによって、経路表を更新する。また、経路表更新部230は、経路表格納部216に格納された経路表を変更して、変更した経路表をBGPルータに送信することによって、当該BGPルータが有する経路表を更新してもよい。経路表更新部230は、経路情報更新部の一例であってよい。
【0055】
図5は、ルートサーバ200による処理の流れの一例を概略的に示す。
図5に示す処理は、ルートサーバ200が、IX160を介して接続された複数のASから経路データを受信した状態を開始状態として説明する。
図5に示す各処理は、ルートサーバ200が備える制御部が主体となって実行される。
【0056】
ステップ502(ステップをSと省略して記載する場合がある。)では、経路表生成部214が、IX160を介して接続された複数のASのそれぞれの経路表を生成する。S504では、経路表送信部218が、S502で生成された複数の経路表のそれぞれを、複数のASのそれぞれに送信する。
【0057】
S506では、経路ハイジャック検出部228が経路ハイジャックを検出したか否かを判定する。経路ハイジャックを検出したと判定した場合、S508に進み、経路ハイジャックを検出したと判定しなかった場合、S510に進む。
【0058】
S508では、経路表更新部230が、経路ハイジャックされた経路を含む経路表の、当該経路の宛先アドレスのプレフィックス長を長くするべく、当該経路表を更新する。
【0059】
S510では、経路データ受信部212が変更データを受信したか否かを判定する。経路データ受信部212が変更データを受信したと判定した場合、S512に進み、変更データを受信したと判定しなかった場合、S514に進む。S512では、経路表送信部218が、S510で受信した変更データを、複数のASのうち対応するASに送信する。
【0060】
S514では、終了指示を受領したか否かを判定する。S514で終了指示を受領したと判定しなかった場合、S506に戻り、終了指示を受領したと判定した場合、処理を終了する。
【0061】
図6は、通信ネットワーク10の他の一例を概略的に示す。ここでは、
図1で説明した通信ネットワーク10とは異なる点を主に説明する。
図6は、ルートサーバ200が国際ローミングに適用された場合について説明する。
【0062】
図6に示す通信ネットワーク10は、それぞれ別々の国に配置されたAS310、AS320、AS330及びAS340と、IX180と、ルートサーバ200と、GRX(Global Roaming Exchange)プロバイダ410と、GRXプロバイダ420とを備える。AS310、AS320、AS330及びAS340は、例えば、アジア諸国に配置される。
【0063】
ここでは、AS310のAS番号が1000、AS320のAS番号が2000、AS330のAS番号が3000、AS340のAS番号が4000である場合を例に挙げて説明する。なお、AS310、AS320、AS330及びAS340のAS番号は例示であって、他のAS番号であってもよい。
【0064】
AS310は、「10.2.0.0/16」のネットワークを管理する。AS320は、「172.16.0.0/12」のネットワークを管理する。AS330は、「10.4.0.0/16」のネットワークを管理する。AS340は、「192.168.0.0/16」のネットワークを管理する。なお、これらのアドレス空間は例示であり、AS310、AS320、AS330及びAS340は他のアドレス空間のネットワークを管理してもよい。特に、本実施形態では、アドレス空間の例としてプライベートアドレスを記載しているが、グローバルアドレスであってよいことは言うまでもない。
【0065】
IX180は、別々の国に配置されたAS310、AS320、AS330及びAS340の間でトラフィックを直接交換することを可能にする。AS310、AS320、AS330及びAS340は、IX180経由でトラフィックを送信することによって、国をまたぐ通信を効率的に実行することができる。
【0066】
ここで、AS310、AS320、AS330及びAS340のそれぞれは、旧来のGRXプロバイダにも接続されている場合がある。例えば、
図6では、AS310及びAS320は、GRXプロバイダ410に接続されており、AS330及びAS340はGRXプロバイダ420に接続されている。
【0067】
例えば、GRXプロバイダ410がアムステルダムに配置されている場合において、AS310が、AS320に向けて送信したトラフィックが、GRXプロバイダ410経由でAS320に配信された場合、IX180を経由して配信された場合に比べて、大きなタイムロスが発生してしまう。そのため、AS310が送信したトラフィックは、GRXプロバイダ410経由ではなく、IX180経由で配信されることが望ましい。
【0068】
本実施形態に係るルートサーバ200は、AS310が送信したトラフィックが、GRXプロバイダ410経由ではなく、IX180経由で配信されるべく、AS310用の経路表を更新してよい。例えば、ルートサーバ200は、AS310用の経路表に含まれる宛先アドレス「172.16.0.0/12」及びASパス「2000」の経路を優先する経路として決定する。
【0069】
そして、ルートサーバ200は、当該経路の宛先アドレスのプレフィックス長を長くするべく、AS310用の経路表を更新する。具体的には、宛先アドレス「172.16.0.0/12」、ASパス「2000」の経路を、宛先アドレス「172.16.0.0/13」、ASパス「2000」の経路及び宛先アドレス「172.24.0.0/13」、ASパス「2000」の経路に更新する。
【0070】
GRXプロバイダ410には、AS320から宛先アドレス「172.16.0.0/12」、ASパス「2000」の経路が広報されるので、AS310がAS320に向けて送信したトラフィックは、最長一致の規則に従って、IX180経由でAS320に配信される。このように、本実施形態に係るルートサーバ200によれば、別々の国に配置された複数のASを直接接続するIX180経由のルートを、旧来のGRXプロバイダ経由のルートよりも優先させることができる。本実施形態に示す国際ローミングへの適用例では、AS310、AS320、AS330及びAS340がIX180に対して1ホップで接続されているので、最長一致の規則に従った、プレフィックス長の更新による経路制御がより顕著に機能する。
【0071】
以上の説明において、ルートサーバ200の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。また、ハードウエアとソフトウエアとの組み合わせにより実現されてもよい。また、プログラムが実行されることにより、コンピュータが、ルートサーバ200として機能してもよい。プログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、ルートサーバ200の少なくとも一部を構成するコンピュータにインストールされてよい。コンピュータにインストールされ、コンピュータを本実施形態に係るルートサーバ200として機能させるプログラムは、CPU等に働きかけて、コンピュータを、ルートサーバ200の各部としてそれぞれ機能させる。これらのプログラムに記述された情報処理は、コンピュータに読込まれることにより、ソフトウエアとルートサーバ200のハードウエア資源とが協働した具体的手段として機能する。
【0072】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0073】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
それぞれが宛先アドレス及びプレフィックス長を含む複数の経路を有するBGP(Border Gateway Protocol)の経路情報を生成する経路情報生成部と、
前記複数の経路のうち、優先する経路を決定する優先経路決定部と、
前記優先する経路の前記宛先アドレスの前記プレフィックス長を長くするべく前記経路情報を更新する経路情報更新部と
を備え、
前記経路情報更新部は、前記優先する経路の前記宛先アドレスの前記プレフィックス長を長くするべく前記経路情報を更新した後、前記プレフィックス長を長くした経路のネットワークに対するトラフィックを監視して、トラフィックが増加しない場合に、さらに前記プレフィックス長を長くする処理を実行する、経路制御装置。