(57)【要約】【課題】ＡＳＩＣ等のように特定用途に設計・実装され、回路構成を変更できない集積回路でこれらのパケットの転送が可能であると共に、パケットを二つのルータ間でループさせるＤｏＳ攻撃を回避できる。【解決手段】中継ノードであるルータＲは、リンクの数分のＩＦ１０と、経路識別情報とＩＦ１０とが対応付けられた最適化ＳＬＩＤテーブルＳが格納されるメモリ３１と、受信したパケットに格納される経路識別情報をキーにして最適化ＳＬＩＤテーブルＳを参照することで対応するＩＦ１０を判定し、判定したＩＦ１０にパケットを出力する転送処理部３２と、を備えることを特徴とする。【選択図】図３
2015159486.tif 000002
【特許請求の範囲】
【請求項１】
自己の中継ノードと１以上の他の中継ノードとによってネットワークを構成し、前記中継ノード及び各前記中継ノード間のリンクを指定することで特定される経路に従って前記自己の中継ノードからパケットを前記他の中継ノードに転送する中継ノードであって、
前記パケットのＦｌｏｗ  Ｌａｂｅｌフィールドには、前記経路を識別する経路識別情報が格納されており、
前記中継ノードと隣接する前記他の中継ノードとの間のリンクの数分のインタフェースと、
前記経路識別情報と、前記インタフェースとが対応付けられた第１情報が格納される第１の記憶部と、
受信した前記パケットに格納される経路識別情報をキーにして前記第１情報を参照することで対応するインタフェースを判定し、判定した前記インタフェースにパケットを出力する転送処理部と、
を備えることを特徴とする中継ノード。
【請求項２】
前記経路識別情報と、前記中継ノード及び前記リンクの内の少なくとも何れか一方を送信元側から送信先側に向かって転送順に並べた経路情報とが対応付けられた第２情報が格納される第２の記憶部と、
前記第２情報から前記第１情報を作成する経路計算部と、をさらに備え、
前記経路計算部は、
前記経路情報に前記自己の中継ノードを送信元側とする前記リンクが含まれている場合に、当該リンクに対応する前記インタフェースを前記経路識別情報に対応づけ、
前記経路情報に前記他の中継ノードが含まれている場合に、前記自己の中継ノードから送信先側で最も近い前記他の中継ノードに対応する前記インタフェースを前記経路識別情報に対応づける、
ことを特徴とする請求項１に記載の中継ノード。
【請求項３】
前記経路計算部は、
前記経路情報に含まれる前記他の中継ノードから前記経路情報の送信先側で最も遠い前記他の中継ノードまでの最短経路探索を行い、自己の中継ノードが探索した最短経路に含まれているか否かにより送信先側で最も近い他の中継ノードを算出する、
ことを特徴とする請求項２に記載の中継ノード。
【請求項４】
自己の中継ノードと１以上の他の中継ノードとによってネットワークを構成し、前記中継ノード及び各前記中継ノード間のリンクを指定することで特定される経路に従って前記自己の中継ノードからパケットを前記他の中継ノードに転送する中継ノードの経路制御方法であって、
前記パケットのＦｌｏｗ  Ｌａｂｅｌフィールドには、前記経路を識別する経路識別情報が格納されており、
前記中継ノードは、
前記中継ノードと隣接する前記他の中継ノードとの間のリンクの数分のインタフェースと、
前記経路識別情報と、前記インタフェースとが対応付けられた第１情報が格納される第１の記憶部と、を有し、
受信した前記パケットに格納される経路識別情報をキーにして前記第１情報を参照することで対応するインタフェースを判定し、判定した前記インタフェースにパケットを出力するステップを実行する、
ことを特徴とする経路制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定された経路に従ってパケットを転送する中継ノード及び経路制御方法に関する。
【背景技術】
【０００２】
パケットが通過する経路を指定する方法として、セグメントルーティングという方法が提案されている。セグメントルーティングは、複数の中継ノードとこれらの中継ノードを結ぶリンクとで構成されるネットワークにおいて、特定の中継ノード又は隣接ノードへのリンクを指定することでパケットが通過する経路を指定するものである。これにより、ネットワークは、複数のセグメントに仮想的に分割され、例えば、データの種類（映像、音声、画像）等に応じて経路を設定することで、帯域要件を超えないように制御することが可能である。
【０００３】
セグメントルーティングを実現するために、ＩＰｖ６（Internet Protocol Version6）やＭＰＬＳ（Multi-Protocol Label Switching）の利用が考えられている。
ＭＰＬＳは、ＲＳＶＰ−ＴＥ（Resource Reservation Protocol- Traffic Engineering）を用いることで、中継ノード（例えば、ルータ）間に設定した仮想的な経路であるＬＳＰ（Label Switching Path）を指定することができるので、セグメントルーティングに適用することが可能である。
【０００４】
一方、ＩＰｖ６は、ルーティング拡張ヘッダタイプに「０」を指定することで通過するルータを指定することができる（非特許文献１参照）。また、新規のルーティング拡張ヘッダを用いて、ＩＰｖ６をセグメントルーティングに適用することが予定されている。
以下では、ＩＰｖ６をセグメントルーティングに適用した経路制御システムを、図８を参照して説明する。
【０００５】
図８に示す経路制御システム１ａは、ルータＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ８（以下、区別しない場合には「ルータＲ」）がリンクを介して接続されている。なお、図８に示す括弧書き（例えば、「Ｒ１ａ」）は、後記する本実施形態との区別をするために便宜上付与したものである。
【０００６】
各ルータＲは、少なくともリンク数分のインタフェース（ＩＦ）を有する。以下では、データ転送における出力側のインタフェースを出力インタフェース（ＯＩＦ）として表す。また、各ルータＲには、ＩＰアドレスが設定されている。ルータＲ４，Ｒ５には、さらに、ａｎｙｃａｓｔアドレス「3ffe::51:100:9」が設定されている。これらの情報は、ＩＰアドレスと出力インタフェース（ＯＩＦ）とを対応付けた経路表Ｋとして各ルータＲに保有されている。ルータＲ２が保有する経路表Ｋ２を図９（ａ）に例示する。
【０００７】
また、各ルータＲには、セグメントルーティング特有のノードＳＩＤ（Node Segment ID）が設定されている。ここでは、ノードＳＩＤを四桁の数字で表すことにする。
ルータＲ１にはノードＳＩＤ「1001」が設定され、ルータＲ２にはノードＳＩＤ「1002」が設定され、ルータＲ３にはノードＳＩＤ「1003」が設定され、ルータＲ４にはノードＳＩＤ「1004」が設定され、ルータＲ５にはノードＳＩＤ「1005」が設定され、ルータＲ８にはノードＳＩＤ「1008」が設定されている。また、ａｎｙｃａｓｔアドレスが設定されたルータＲ４，Ｒ５には、共通のノードＳＩＤ「2009」が設定されている。
【０００８】
セグメントルーティングでは、ＯＳＰＦ（Open Shortest Path First）やＩＳ−ＩＳ（Intermediate System to Intermediate System）等のＩＧＰ（Interior Gateway Protocol）のルーティングプロトコルを用いて、ノードＳＩＤをルータＲ間で相互に通知する。ここでは、ノードＳＩＤはＩＧＰによって全てのルータＲに配布済みであるものとして説明する。これにより、これらの情報は、ノードＳＩＤとＩＰアドレスとを対応付けた対応表Ｎとして各ルータＲに保有されている。ルータＲが保有する対応表Ｎを図９（ｂ）に例示する。
【０００９】
また、隣接するルータＲを結ぶリンクには、データ送信方向毎にＡｄｊａｃｅｎｃｙ−ＳＩＤ（以下、省略して「Ａｄｊ−ＳＩＤ」）が設定されている。ここでは、Ａｄｊ−ＳＩＤを四桁の数字で表すことにする。なお、以下では、「ノードＳＩＤ」と「Ａｄｊ−ＳＩＤ」とをまとめて、単に「ＳＩＤ」と呼ぶことにする。
【００１０】
ルータＲ２及びルータＲ３の間には二つのリンクが設けられており、上側のリンクのルータＲ２からルータＲ３の方向（図８の矢印）には、Ａｄｊ−ＳＩＤ「9001」が設定され、下側のリンクのルータＲ２からルータＲ３の方向（図８の矢印）には、Ａｄｊ−ＳＩＤ「9002」が設定されている。また、これらの上下のリンクのルータＲ２からルータＲ３の方向（図８の矢印）には、共通のＡｄｊ−ＳＩＤ「9003」が設定されている。
【００１１】
なお、ここでは、ルータＲ１が送信元側でルータＲ８側が送信先側であると想定し、ルータＲ２からルータＲ３の方向のみにＡｄｊ−ＳＩＤ「9001」,「9002」,「9003」を設定した。しかしながら、ルータＲ８が送信元側でルータＲ１側が送信先側であると想定し、ルータＲ３からルータＲ２の方向に別のＡｄｊ−ＳＩＤを設定することも可能である。
これらの情報は、Ａｄｊ−ＳＩＤと出力インタフェース（ＯＩＦ）とを対応付けた対応表ＡとしてＡｄｊ−ＳＩＤを設定したリンクの送信側のルータＲに保有されている。ルータＲ２が保有する対応表Ａ２を図９（ｃ）に例示する。
【００１２】
そして、セグメントルーティングでは、パケットの転送経路を送信元から送信先に向かって１以上のＳＩＤを並べてリスト化したもので表す。以下では、ＳＩＤをリスト化したものを「セグメントリスト」と呼ぶ。セグメントリストとパケットの転送経路との対応表Ｌを図１０に示す。図１０では、５つの経路を例示している。セグメントリストは、転送されるパケットのルーティング拡張ヘッダに挿入されている。
セグメントリストが挿入されたパケットを受信したルータＲは、ＩＰｖ６のＮｅｘｔ  Ｈｅａｄｅｒフィールドの順次探索を行い、拡張ヘッダの中からセグメントルーティングに必要なルーティング拡張ヘッダを発見し、そのルーティング拡張ヘッダの内容、経路表Ｋ、及び対応表Ｎ，Ａを参照することでパケットを次のルータＲに転送する。
【００１３】
これにより、対応表Ｌにおける例１の場合、「1008」のＳＩＤが付与されているルータＲ８のみ指定されているため、ルータＲ１から送出したパケットはルータＲ８に向けて最短パスで転送される。
対応表Ｌにおける例２の場合、ルータＲ１から送出したパケットは「1002」のＳＩＤが付与されているルータＲ２に転送され、「9001」が指定されるルータＲ２−Ｒ３間の上側のリンクを通ってルータＲ３に到着したのちに、ルータＲ８に最短パスで転送される。
【００１４】
対応表Ｌにおける例３の場合、ルータＲ１から送出したパケットは「1002」のＳＩＤが付与されているルータＲ２に転送され、「9003」が指定されるルータＲ２−Ｒ３間の上側・下側の２つのリンクをＥＣＭＰ（Equal Cost Multi Path）で分散して転送されてルータＲ３に到着したのちに、ルータＲ８に最短パスで転送される。
対応表Ｌにおける例４の場合、ルータＲ１から送出したパケットは「1004」のＳＩＤが付与されているルータＲ４に最短パス（ルータＲ２を経由）で転送され、その後にルータＲ８に最短パス（ルータＲ３を経由）で転送される。
【００１５】
対応表Ｌ４における例５の場合、ルータＲ１から送出したパケットは「2009」のＳＩＤが付与されているａｎｙｃａｓｔアドレスを持つルータＲ４，Ｒ５に最短パス（ルータＲ２を経由）で分散して転送され、その後にルータＲ８に最短パス（Ｒ３を経由）で転送される。
【００１６】
このように、ＩＰｖ６においてルーティング拡張ヘッダのタイプ「０」を用い、中継するルータＲを示すＳＩＤを指定するセグメントリストをパケットの中に挿入することによって、ルータＲは、パケットに挿入されたセグメントリストを参照し、それに従ってパケットを転送する。その結果、パケットが転送される経路を制御することができる。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】“Internet Protocol, Version 6 (IPv6) Specification”、[online]、December 1998、IETF、[平成２６年２月１２日検索]、インターネット、＜URL:http://www.ietf.org/rfc/rfc2460.txt＞
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、ＩＰｖ６の拡張ヘッダを用いたセグメントルーティングでは、以下の２つの課題があった。
【００１９】
第１に、パケットの高速な転送が難しい点がある。ＩＰｖ６において標準ヘッダは固定長になっているが、拡張ヘッダについてはＮｅｘｔ  Ｈｅａｄｅｒフィールドを順次探索する必要がある。加えて、Ｎｅｘｔ  Ｈｅａｄｅｒの順序は推奨される順序はあるものの、必須となる順序がなく、かつ、Ｎｅｘｔ  Ｈｅａｄｅｒがどのような順序であっても受け入れるべきであることが、ＩＰｖ６ノードの要件として非特許文献１に指定されている。
【００２０】
こういった理由から、ＩＰｖ６の拡張ヘッダを用いたセグメントルーティングでは、パケットの処理が一意に決められる定型的な処理にならない。その為、特定用途に設計・実装され、回路構成を変更できない集積回路(ＡＳＩＣ等)では実装の実現が難しく、論理的な回路を動的に切替えて処理する技術やソフトウェアを汎用プロセッサ上で動作させる必要がある。そして、ＩＰｖ６の拡張ヘッダを用いたセグメントルーティングでは、転送すべきパケット自体にセグメントリストを挿入しているため、これらの処理がパケット毎に発生することになる。この結果、パケットの高速な転送が難しくなる。
【００２１】
第２に、ＤｏＳ（Denial of Service：サービス妨害）攻撃への対応が脆弱になるという問題がある。明示的に経路を指定する方法として、ＩＰｖ６ではルーティング拡張ヘッダタイプのタイプ「０」によりソースルーティングが実現できたが、ネットワーク管理管轄外の第三者から細工したパケットを送付する事でループを容易に実現できる問題があった。セグメントルーティングをＩＰｖ６の拡張ヘッダ上で実施する場合においても、経路とするルータのＳＩＤを拡張ヘッダに挿入する方式ではネットワーク管理管轄外の第三者から細工したパケットを送付され、ループなどを引き起こす可能性がある。例えば、悪意の第三者がソースルーティングを指定することによって二つのルータ間を往復する（ループする）パケットを作成することで、比較的容易にサービス妨害することが可能である。なお、この問題が指摘されて以降は、ＩＰｖ６においてルーティング拡張ヘッダのタイプ「０」は標準で無効化している（ルーティング拡張ヘッダのタイプに「０」を設定しない）。
【００２２】
本発明は、前記問題に鑑みてなされたものであり、ＡＳＩＣ等のように特定用途に設計・実装され、回路構成を変更できない集積回路でこれらのパケットの転送が可能であると共に、パケットをルータ間でループさせるＤｏＳ攻撃を回避できる、中継ノード及び経路制御方法を提供することを課題とする。
【課題を解決するための手段】
【００２３】
前記課題を解決するため、本発明に係る中継ノードは、自己の中継ノードと１以上の他の中継ノードとによってネットワークを構成し、前記中継ノード及び各前記中継ノード間のリンクを指定することで特定される経路に従って前記自己の中継ノードからパケットを前記他の中継ノードに転送する中継ノードであって、前記パケットのＦｌｏｗ  Ｌａｂｅｌフィールドには、前記経路を識別する経路識別情報が格納されており、前記中継ノードと隣接する前記他の中継ノードとの間のリンクの数分のインタフェースと、前記経路識別情報と、前記インタフェースとが対応付けられた第１情報が格納される第１の記憶部と、受信した前記パケットに格納される経路識別情報をキーにして前記第１情報を参照することで対応するインタフェースを判定し、判定した前記インタフェースにパケットを出力する転送処理部と、を備えることを特徴とする。
【００２４】
また、本発明に係る経路制御方法は、自己の中継ノードと１以上の他の中継ノードとによってネットワークを構成し、前記中継ノード及び各前記中継ノード間のリンクを指定することで特定される経路に従って前記自己の中継ノードからパケットを前記他の中継ノードに転送する中継ノードの経路制御方法であって、前記パケットのＦｌｏｗ  Ｌａｂｅｌフィールドには、前記経路を識別する経路識別情報が格納されており、前記中継ノードが、前記中継ノードと隣接する前記他の中継ノードとの間のリンクの数分のインタフェースと、前記経路識別情報と、前記インタフェースとが対応付けられた第１情報が格納される第１の記憶部と、を有し、受信した前記パケットに格納される経路識別情報をキーにして前記第１情報を参照することで対応するインタフェースを判定し、判定した前記インタフェースにパケットを出力するステップを実行する、ことを特徴とする。
【００２５】
このようにすることで、本発明に係る中継ノード及び経路制御方法は、パケットの中に中継するノードを示したセグメントリストを持たず、経路を識別する情報のみでパケットを転送する。したがって、ＩＰｖ６標準ヘッダのみを用いて経路を指定してパケットを転送する事が可能になり、拡張ヘッダを用いないことからＮｅｘｔ  Ｈｅａｄｅｒの順次探索という非定型処理を実施する必要がない。その為、本発明に係る中継ノード及び経路制御方法は、定型的な処理しか実施できないＡＳＩＣ等のハードウェアを用いても、経路を制御してパケットを転送することができる。
【００２６】
本発明に係る中継ノード及び経路制御方法は、前記説明した通り、パケットの中に中継するノードを示したセグメントリストを持たず、経路を識別する情報のみでパケットを転送する。したがって、悪意の第三者が任意の経路をパケットに指定することができず、パケットをルータ間でループすることを排除できる。その為、本発明に係る中継ノード及び経路制御方法は、パケットのループを用いたＤｏＳ攻撃を回避できる。
【００２７】
また、本発明に係る中継ノードは、前記経路識別情報と、前記中継ノード及び前記リンクの内の少なくとも何れか一方を送信元側から送信先側に向かって転送順に並べた経路情報とが対応付けられた第２情報が格納される第２の記憶部と、前記第２情報から前記第１情報を作成する経路計算部と、をさらに備え、前記経路計算部が、前記経路情報に前記自己の中継ノードを送信元側とする前記リンクが含まれている場合に、当該リンクに対応する前記インタフェースを前記経路識別情報に対応づけ、前記経路情報に前記他の中継ノードが含まれている場合に、前記自己の中継ノードから送信先側で最も近い前記他の中継ノードに対応する前記インタフェースを前記経路識別情報に対応づける、ことを特徴とする。
【００２８】
このようにすることで、本発明に係る中継ノードは、第２情報から第１情報を作成する。したがって、ネットワークを構成する中継ノード毎に内容が異なる第１情報を、各々の中継ノードで作成することができる。その為、本発明に係る中継ノードは、ネットワークを構成する中継ノードに共通する第１情報を広告するだけでよく、ネットワークの管理が容易である。
【００２９】
また、本発明に係る中継ノードは、前記経路計算部が、前記経路情報に含まれる前記他の中継ノードから前記経路情報の送信先側で最も遠い前記他の中継ノードまでの最短経路探索を行い、自己の中継ノードが探索した最短経路に含まれているか否かにより送信先側で最も近い他の中継ノードを算出する、ことを特徴とする。
【００３０】
このようにすることで、本発明に係る中継ノードは、既存の中継ノードが一般的に備える最短経路探索の機能を用いて、自己の中継ノードから送信先側で最も近い他の中継ノードを算出する。その為、本発明に係る中継ノードは、実装する機能の量を抑えながらも、第２情報から第１情報を作成することができる。
【発明の効果】
【００３１】
本発明に係る中継ノード及び経路制御方法によれば、ＡＳＩＣ等のように特定用途に設計・実装され、回路構成を変更できない集積回路でこれらのパケットの転送が可能であると共に、パケットをルータ間でループさせるＤｏＳ攻撃を回避できる。
【図面の簡単な説明】
【００３２】
【図１】本発明に係る経路制御の概要を説明するための図である。
【図２】本実施形態に係る経路制御システムの構成図の例示である。
【図３】本実施形態に係るルータの構成図の例示である。
【図４】本実施形態に係るルータが有するテーブルの構成図の例示であり、図４（ａ）はＳＬＩＤとＳＩＤリストとを対応づけた対応表の例示であり、図４（ｂ）はＳＬＩＤとＯＩＦとを対応づけた対応表との例示である。
【図５Ａ】本実施形態に係るルータにおける最適化ＳＬＩＤテーブルの作成処理を示すフローチャート（１）である。
【図５Ｂ】本実施形態に係るルータにおける最適化ＳＬＩＤテーブルの作成処理を示すフローチャート（２）である。
【図６】本実施形態に係るルータにおける最適化ＳＬＩＤテーブルを用いたパケットの転送処理を示すフローチャートである。
【図７】変形例に係るルータの処理を説明するための図であり、図７（ａ）は実施形態におけるＩＰｖ６パケットの構成を示す図であり、図７（ｂ）は変形例におけるＩＰｖ６パケットの構成を示す図である。
【図８】従来技術における経路制御システムの構成図の例示である。
【図９】従来技術におけるルータが有するテーブルの構成図であり、図９（ａ）はＩＰアドレスとＯＩＦとを対応づけた経路表の例示であり、図９（ｂ）はノードＳＩＤとＩＰアドレスとを対応づけた対応表の例示であり、図９（ｃ）はＡｄｊ−ＳＩＤとＯＩＦとを対応づけた対応表の例示である。
【図１０】従来技術におけるセグメントリストとパケットの転送経路とを対応づけた対応表の例示である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施するための形態を、適宜図面を参照しながら詳細に説明する。
各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。また、参照する図面において、本発明を構成する部材の寸法は、説明を明確にするために誇張して表現されている場合がある。なお、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
【００３４】
≪概要≫
前記説明した通り、ＩＰｖ６拡張ヘッダを用いたセグメントルーティングでは、対象となるＮｅｘｔ  Ｈｅａｄｅｒがどの位置に存在するかを事前に中継ノードが知ることができない。その為、発明者は、ＩＰｖ６標準ヘッダを用いて経路制御を行うことを考え出した。ＩＰｖ６ヘッダのフィールドのうち、Ｆｌｏｗ  Ｌａｂｅｌフィールドが一般的に使用されていないので、本発明では、このフィールドに経路情報を格納し、各中継ノードにおいてこの情報を参照してＩＰｖ６パケットを転送する。
【００３５】
具体的には、Ｆｌｏｗ  Ｌａｂｅｌフィールドは、２０ｂｉｔの固定長なので、２０ｂｉｔ以上のレコード長であるセグメントリストをそのままの状態で格納することができない。そこで、図１に示すように、セグメントリストからセグメントリストを識別する情報を「セグメントリストＩＤ（ＳＬＩＤ）」と定義し、このＳＬＩＤをＦｌｏｗ  Ｌａｂｅｌフィールドに格納する（図１ではＳＬＩＤ＝「30002」）。ＳＬＩＤは、全体長が２０ｂｉｔ以内に収まれば任意のものを採用でき、例えば、セグメントリスト又はこれに準じる情報のバイト列を任意のハッシュ関数で変換したものを使用してもよいし、特定のＩＤ空間から順に番号を設定してもよい。
【００３６】
一方、本発明では、セグメントリストに準じる情報（例えば、経路を構成するＳＩＤを検索可能なデータ形式の情報）を「ＳＩＤリスト」と定義し、各中継ノードには、ＳＬＩＤとＳＩＤリストとの対応を示す「伝搬セグメントリストＩＤテーブル（伝搬ＳＬＩＤテーブル）」を広告する。そして、各中継ノードは、パケットを転送するための情報に伝搬ＳＬＩＤテーブルを最適化する。ここでは、伝搬ＳＬＩＤテーブルを最適化したものを「最適化セグメントリストＩＤテーブル（最適化ＳＬＩＤテーブル）」と定義し、この最適化ＳＬＩＤテーブルは、ＳＬＩＤと出力インタフェース（ＯＩＦ）との対応が示されている。
【００３７】
伝搬ＳＬＩＤテーブルの最適化は、例えば、ＳＩＤリストの各ＳＩＤに対応するルータからＳＩＤリストの最終ＳＩＤに対応するルータまで最短経路探索を行い、自己の中継ノードがその通過点にあるか否かによって行う。そして、中継ノードは、ＩＰｖ６パケットを受け取った場合に、Ｆｌｏｗ  Ｌａｂｅｌフィールドに格納されるＳＬＩＤをキーにして最適化ＳＬＩＤテーブルを参照し、そのキーに対応する出力インタフェースに当該パケットを出力することで、パケットを経路にしたがって転送していく。
【００３８】
≪実施形態に係る経路制御システムの構成≫
図２に示すように、本実施形態に係る経路制御システム１は、ルータＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ８（以下、区別しない場合には「ルータＲ」）がリンクを介して接続されている。これらのルータＲには、図８に示す従来技術における経路制御システム１ａと同様に、ＩＰアドレス、及びセグメントルーティング特有のＳＩＤ（ノードＳＩＤ、Ａｄｊ−ＳＩＤ）が設定されている。設定されているＩＰアドレス、及びＳＩＤは、前記説明した経路制御システム１ａと同じなので説明を省略する。
【００３９】
＜ルータ＞
図３に示すように、ルータＲは、複数のインタフェース（ＩＦ）１０と、制御部２０と、転送部３０と、を備えて構成されている。インタフェース（ＩＦ）１０は、自己のルータＲを他のルータＲや外部制御装置２に物理的に接続するためのものである。外部制御装置２は、経路制御システム１の管理者が所有する端末である。
【００４０】
制御部２０及び転送部３０は、ＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等によって実現される。ここでは、制御部２０は、汎用用途向けのＬＳＩ（Large Scale Integration）で実現されており、一方、転送部３０は、パケットの転送処理の用途に適合するように専用に設計された特定用途向けのＬＳＩであるＡＳＩＣによって実現されている。
【００４１】
制御部２０は、経路計算及び装置全体の制御を行うものである。制御部２０は、メモリ２１と、経路計算部２２と、を備えている。メモリ２１には、経路表Ｋと、ノードＳＩＤ・ＩＰアドレス対応表Ｎと、Ａｄｊ−ＳＩＤ・ＯＩＦ対応表Ａと、伝搬セグメントリストＩＤテーブル（伝搬ＳＬＩＤテーブル）Ｄと、最適化セグメントリストＩＤテーブル（最適化ＳＬＩＤテーブル）Ｓと、が記憶されている。経路表Ｋ及び対応表Ｎ，Ａは、前記説明した図９に示すものと同様であるのでここでは説明を省略する。
【００４２】
図４（ａ）を参照して、伝搬ＳＬＩＤテーブルＤについて説明する。伝搬ＳＬＩＤテーブルＤは、ＳＬＩＤとＳＩＤリストとを対応付けた情報である。ここでは、ＳＩＤリスト「1008」にＳＬＩＤ「30001」を付与し、ＳＩＤリスト「1002→9001→1008」にＳＬＩＤ「30002」を付与し、ＳＩＤリスト「1002→9003→1008」にＳＬＩＤ「30003」を付与し、ＳＩＤリスト「1004→1008」にＳＬＩＤ「30004」を付与し、ＳＩＤリスト「2009→1008」にＳＬＩＤ「30005」を付与している。なお、図４（ａ）における括弧表記は、ＳＩＤの種類を明確にするために便宜上付記したものである。
【００４３】
伝搬ＳＬＩＤテーブルＤは、全てのルータＲが共通で保有する情報である。伝搬ＳＬＩＤテーブルＤは、例えば、経路制御システム１の管理者によって作成され、外部制御装置２からの広告、及びルータＲ間での広告により学習される。つまり、ルータＲは、外部制御装置２から直接、又は他のルータＲを介して伝搬ＳＬＩＤテーブルＤを受信し、メモリ２１に記憶する。
【００４４】
図４（ｂ）を参照して、最適化ＳＬＩＤテーブルＳについて説明する。最適化ＳＬＩＤテーブルＳは、伝搬ＳＬＩＤテーブルＤがパケットを転送するための情報に最適化されたものである。具体的には、最適化ＳＬＩＤテーブルＳは、ＳＬＩＤと一つ以上の出力インタフェース（ＯＩＦ）とを対応付けた情報である。最適化ＳＬＩＤテーブルＳは、経路計算部２２によって作成される。最適化ＳＬＩＤテーブルＳは、各々のルータＲで異なる内容となる。図４（ｂ）に示すものは、ルータＲ２が作成して保有する最適化ＳＬＩＤテーブルＳ２を例示したものである。
【００４５】
図３を参照し、経路計算部２２について説明する。経路計算部２２は、経路表Ｋ及び対応表Ｎ，Ａ及び伝搬ＳＬＩＤテーブルＤを基にして最適化ＳＬＩＤテーブルＳを作成する。ここでは、その概略のみを説明し、詳細は後記する。例えば、経路計算部２２は、伝搬ＳＬＩＤテーブルＤのＳＩＤリストに自己のルータＲを送信側とするリンクが含まれている場合に、対応表Ａを参照して当該リンクに対応する出力インタフェース（ＯＩＦ）を当該ＳＬＩＤに対応付ける。また、経路計算部２２は、伝搬ＳＬＩＤテーブルＤのＳＩＤリストに他のルータＲが含まれる場合に、自己のルータＲから送信先側で最も近いルータＲに対応する出力インタフェース（ＯＩＦ）を当該ＳＬＩＤに対応付ける。
【００４６】
転送部３０は、少なくともＩＰｖ６パケットの送受信の制御を行うものである。転送部３０は、メモリ３１と、転送処理部３２と、エッジ処理部３３と、を備えている。メモリ３１には、最適化セグメントリストＩＤテーブル（最適化ＳＬＩＤテーブル）Ｓが記憶されている。この最適化ＳＬＩＤテーブルＳは、制御部２０で作成され、メモリ２１に記憶されているものがコピーされたものであり、メモリ２１に記憶されるものと同じ内容である。このような構成とした理由は、転送部３０が制御部２０に対して冗長化された場合を想定しているためである。すなわち、障害対策等のために予備の転送部３０をさらに備える構成にし、故障した転送部３０から予備の転送部３０に切り替える場合にメモリ２１に記憶される最適化ＳＬＩＤテーブルＳが必要になる。その為、システム構成によっては、最適化ＳＬＩＤテーブルＳが転送部３０にのみ記憶されていてもよい。
【００４７】
転送処理部３２は、パケットを送出するインタフェース１０を判定し、判定したインタフェース１０にパケットを送出するものである。ここでは、その概略のみを説明し、詳細は後記する。例えば、転送処理部３２は、パケットに格納されるＳＬＩＤをキーにしてメモリ３１に記憶されている最適化ＳＬＩＤテーブルＳを参照し、対応する出力インタフェース（ＯＩＦ）を判定する。
【００４８】
エッジ処理部３３は、ルータＲが経路制御システム１の管理外の中継ノードに接続されている場合、例えば、セグメントルーティングドメインのエッジルータである場合に処理を行う。ルータＲがセグメントルーティングドメインのエッジルータであるか否かは、経路制御システム１の管理者が、例えば、ＯＳＰＦ等のＩＧＰのルーティングプロトコルを用いて指定を行ってもよい。その際、必要な情報は制御部２０からエッジ処理部３３に伝達される。
【００４９】
エッジ処理部３３は、管理外の中継ノードからＩＰｖ６パケットを受信した場合に、ＩＰｖ６ヘッダのフィールドのＦｌｏｗ  ＬａｂｅｌフィールドにＳＬＩＤを挿入する。Ｆｌｏｗ  Ｌａｂｅｌフィールドに挿入する処理は、特に限定されず何れの処理であってもよい。例えば、経路制御システム１の管理者が、セグメントルーティングドメインのエッジのルータＲに、送信元アドレスやポート番号とＳＬＩＤとを対応させた情報を登録しておき、エッジ処理部３３が、その情報を参照して対応するＳＬＩＤを挿入する。
【００５０】
また、エッジ処理部３３は、管理外の中継ノードに対してＩＰｖ６パケットを送信する場合に、ＩＰｖ６ヘッダのフィールドのＦｌｏｗ  Ｌａｂｅｌフィールドを変更する。これにより、ＩＰｖ６パケットが、セグメントルーティングドメインを通過する前の状態を保つことができる。多くの場合、ＩＰｖ６ヘッダのフィールドのＦｌｏｗ  Ｌａｂｅｌフィールドには「０」が挿入されているので、元の状態に戻さなくても簡易的に「０」を挿入することも考えられる。
以上で、実施形態に係る経路制御システム１の構成についての説明を終了する。
【００５１】
≪実施形態に係る経路制御システムの処理≫
最初に、最適化ＳＬＩＤテーブルＳの作成方法について説明し、続いて、最適化ＳＬＩＤテーブルＳを用いたパケットの転送方法について説明する。
【００５２】
＜最適化ＳＬＩＤテーブルの作成方法＞
図５Ａ，図５Ｂを参照して、最適化ＳＬＩＤテーブルＳの作成方法について説明する。図５Ａ，図５Ｂは、伝搬ＳＬＩＤテーブルＤから最適化ＳＬＩＤテーブルＳへの変換アルゴリズムの例示である。経路計算部２２（図３参照）は、例えば、外部制御装置２が伝搬ＳＬＩＤテーブルＤを更新した場合（外部制御装置２から最新版の伝搬ＳＬＩＤテーブルＤを受信した場合）に、図５Ａ，図５Ｂに示す処理を行う。その場合に、少なくとも伝搬ＳＬＩＤテーブルＤのうちで更新されたＳＩＤリストについて処理を行えばよい。ＳＩＤリストは、ｎ（ｎは１以上の整数）個のＳＩＤが送信元側から送信先側に向かって「ＳＩＤ１→ＳＩＤ２→・・・→ＳＩＤｎ」のように並べられている。
【００５３】
経路計算部２２（図３参照）は、伝搬ＳＬＩＤテーブルＤの更新されたＳＬＩＤに対応するＳＩＤリストから次のＳＩＤｘ（１≦ｘ≦ｎであり、最初はｘ＝１）を取得する（ステップＳ１）。続いて、経路計算部２２は、ステップＳ１で取得したＳＩＤｘに対応する情報を対応表Ｎに持たない又はＳＩＤｘがＡｄｊ−ＳＩＤであるか否かを判定する（ステップＳ２）。ステップＳ２で“Ｙｅｓ”の場合に処理はステップＳ１に進む。一方、ステップＳ２で“Ｎｏ”の場合に処理はステップＳ３に進む。
【００５４】
ステップＳ２で“Ｎｏ”の場合に、経路計算部２２は、ＳＩＤｘがＳＩＤリストの最終のＳＩＤ（ＳＩＤｎ）であるか否かを判定する（ステップＳ３）。ステップＳ３で“Ｙｅｓ”の場合に処理はステップＳ４に進む。一方、ステップＳ３で“Ｎｏ”の場合に処理はステップＳ７に進む。
【００５５】
ステップＳ３で“Ｙｅｓ”の場合に、経路計算部２２は、ＳＩＤｘが自ノード（自己のルータＲ）に設定されたノードＳＩＤ（Node SID）と同一であるか否かを判定する（ステップＳ４）。ステップＳ４で“Ｙｅｓ”の場合に処理はステップＳ５に進む。一方、ステップＳ４で“Ｎｏ”の場合に処理はステップＳ６に進む。
【００５６】
ステップＳ４で“Ｙｅｓ”の場合に、経路計算部２２は、最適化ＳＬＩＤテーブルＳの該当ＳＬＩＤのＯＩＦを空にする（何も代入しない）（ステップＳ５）。そして、当該ＳＩＤリストでの処理を終了する。一方、ステップＳ４で“Ｎｏ”の場合に、経路計算部２２は、ＳＩＤリストの最終のＳＩＤに対応するＩＰアドレスを対応表Ｎから取得し、取得したＩＰアドレスに対する経路探索を経路表Ｋで行い、経路探索で求められるＯＩＦを最適化ＳＬＩＤテーブルＳの該当ＳＬＩＤのＯＩＦに代入する（ステップＳ６）。そして、当該ＳＩＤリストでの処理を終了する。
【００５７】
ステップＳ３で“Ｎｏ”の場合に、経路計算部２２は、ＳＩＤｘのノードから最終のＳＩＤ（ＳＩＤｎ）に対する経路に対し、最短経路探索（ダイクストラ法計算）を行い、自ノード（自己のルータＲ）が始点を除く通過点に存在するか否かを判定する（ステップＳ７）。ステップＳ７で“Ｙｅｓ”の場合に処理はステップＳ１に進む。一方、ステップＳ７で“Ｎｏ”の場合に処理はステップＳ８に進む。
【００５８】
ステップＳ７で“Ｎｏ”の場合に、経路計算部２２は、ＳＩＤｘが自ノード（自己のルータＲ）のノードＳＩＤと同一であるか否かを判定する（ステップＳ８）。ステップＳ８で“Ｙｅｓ”の場合に処理はステップＳ９に進む。一方、ステップＳ８で“Ｎｏ”の場合に処理はステップＳ１１に進む。そして、経路計算部２２は、ＳＩＤｘに対応するＩＰアドレスを対応表Ｎから取得し、取得したＩＰアドレスに対する経路探索を経路表Ｋを参照して行い、経路探索で求められるＯＩＦを最適化ＳＬＩＤテーブルＳの該当ＳＬＩＤのＯＩＦに代入する（ステップＳ１１）。そして、当該ＳＩＤリストでの処理を終了する。
【００５９】
ステップＳ８で“Ｙｅｓ”の場合に、経路計算部２２は、ＳＩＤリストのＳＩＤｘの次のＳＩＤ（ＳＩＤｘ＋１）がＡｄｊ−ＳＩＤであるか否かを判定する（ステップＳ９）。ステップＳ９で“Ｙｅｓ”の場合に処理はステップＳ１０に進む。一方、ステップＳ９で“Ｎｏ”の場合に処理はステップＳ１に進む。
【００６０】
ステップＳ９で“Ｙｅｓ”の場合に、経路計算部２２は、ＳＩＤリストのＳＩＤｘの次のＳＩＤ（ＳＩＤｘ＋１）であるＡｄｊ−ＳＩＤと対応するＯＩＦを対応表Ａから取得し、取得したＯＩＦを最適化ＳＬＩＤテーブルＳの該当ＳＬＩＤのＯＩＦに代入する（ステップＳ１０）。そして、当該ＳＩＤリストでの処理を終了する。
【００６１】
続いて、図４（ａ）に示す伝搬ＳＬＩＤテーブルＤを用いて図５Ａ，図５Ｂに示す処理を行った場合を例示する。
【００６２】
・ルータＲ２でＳＬＩＤ「30002」の処理を行った場合
ステップＳ１において、ルータＲ２の経路計算部２２は、ＳＩＤリスト「1002→9001→1008」の一つ目のＳＩＤ１「1002」を取得する。ステップＳ２において、経路計算部２２は、「1002」が対応表Ｎに存在し、また、対応表Ａに存在しないことからＡｄｊ−ＳＩＤでないと判定し、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ１「1002」がＳＩＤリスト「1002→9001→1008」の最終のＳＩＤ（ＳＩＤ３「1008」）でないと判定し、処理をステップＳ７に進める。
【００６３】
ステップＳ７において、経路計算部２２は、ＳＩＤ１「1002」が設定されているルータＲ２からＳＩＤ３「1008」が設定されているルータＲ８までの最短経路探索を実施し、自ノードであるルータＲ２が始点を除く通過点に存在しないと判定し、処理をステップＳ８に進める。ステップＳ８において、経路計算部２２は、ＳＩＤ１「1002」が自ノードであるルータＲ２のＳＩＤと同一であると判定し、処理をステップＳ９に進める。
【００６４】
ステップＳ９において、経路計算部２２は、ＳＩＤリスト「1002→9001→1008」のＳＩＤ１「1002」の次のＳＩＤ２「9001」が対応表Ａに存在することから、ＳＩＤ２「9001」がＡｄｊ−ＳＩＤであると判定し、処理をステップＳ１０に進める。ステップＳ１０において、経路計算部２２は、対応表Ａを参照してＳＩＤ２「9001」に対応するＯＩＦ「E0」を最適化ＳＬＩＤテーブルＳのＳＬＩＤ「30002」のＯＩＦに代入する。
【００６５】
・ルータＲ２でＳＬＩＤ「30004」の処理を行った場合
ステップＳ１において、ルータＲ２の経路計算部２２は、ＳＩＤリスト「1004→1008」の一つ目のＳＩＤ１「1004」を取得する。ステップＳ２において、経路計算部２２は、「1004」が対応表Ｎに存在し、また、対応表Ａに存在しないことからＡｄｊ−ＳＩＤでないと判定し、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ１「1004」がＳＩＤリスト「1004→1008」の最終のＳＩＤ（ＳＩＤ２「1008」）でないと判定し、処理をステップＳ７に進める。
【００６６】
ステップＳ７において、経路計算部２２は、ＳＩＤ１「1004」が設定されているルータＲ４からＳＩＤ２「1008」が設定されているルータＲ８までの最短経路探索を実施し、自ノードであるルータＲ２が始点を除く通過点に存在しないと判定し、処理をステップＳ８に進める。ステップＳ８において、経路計算部２２は、ＳＩＤ１「1004」が自ノードであるルータＲ２のＳＩＤと同一でないと判定し、処理をステップＳ１１に進める。
【００６７】
ステップＳ１１において、経路計算部２２は、ＳＩＤ１「1004」に対応するＩＰアドレス「3ffe::2:4/128」を対応表Ｎから取得し、取得したＩＰアドレスに対する経路探索を経路表Ｋで行い、経路探索で求められたＯＩＦ「E2」を最適化ＳＬＩＤテーブルＳのＳＬＩＤ「30004」のＯＩＦに代入する。
【００６８】
・ルータＲ２でＳＬＩＤ「30001」の処理を行った場合
ステップＳ１において、ルータＲ２の経路計算部２２は、ＳＩＤリスト「1008」の一つ目のＳＩＤ１「1008」を取得する。ステップＳ２において、経路計算部２２は、「1008」が対応表Ｎに存在し、また、対応表Ａに存在しないことからＡｄｊ−ＳＩＤでないと判定し、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ１「1008」がＳＩＤリスト「1008」の最終のＳＩＤであると判定し、処理をステップＳ４に進める。
【００６９】
ステップＳ４において、経路計算部２２は、ＳＩＤ１「1008」が自ノードであるルータＲ２のＳＩＤ「1002」と同一でないと判定し、処理をステップＳ６に進める。ステップＳ６において、経路計算部２２は、ＳＩＤリスト「1008」の最終のＳＩＤ（ＳＩＤ１「1008」）に対応するＩＰアドレス「3ffe::2:8/128」を対応表Ｎから取得し、経路表Ｋで取得したＩＰアドレスに対する経路探索を再帰的に行い、経路探索で求められたＯＩＦ「E1」を最適化ＳＬＩＤテーブルＳのＳＬＩＤ「30001」のＯＩＦに代入する。
【００７０】
・ルータＲ８でＳＬＩＤ「30001」の処理を行った場合
ステップＳ１において、ルータＲ８の経路計算部２２は、ＳＩＤリスト「1008」の一つ目のＳＩＤ１「1008」を取得する。ステップＳ２において、経路計算部２２は、「1008」が対応表Ｎに存在すると判定し（ルータＲ８は対応表Ａを有しないのでＡｄｊ−ＳＩＤでないと判定してもよい）、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ１「1008」がＳＩＤリスト「1008」の最終のＳＩＤであると判定し、処理をステップＳ４に進める。ステップＳ４において、経路計算部２２は、ＳＩＤ１「1008」が自ノードであるルータＲ８のＳＩＤと同一であると判定し、処理をステップＳ５に進める。ステップＳ５において、経路計算部２２は、最適化ＳＬＩＤテーブルＳのＳＬＩＤ「30001」のＯＩＦを空にする（何も代入しない）。
【００７１】
・ルータＲ３でＳＬＩＤ「30002」の処理を行った場合
ステップＳ１において、ルータＲ３の経路計算部２２は、ＳＩＤリスト「1002→9001→1008」の一つ目のＳＩＤ１「1002」を取得する。ステップＳ２において、経路計算部２２は、「1002」が対応表Ｎに存在すると判定し（ルータＲ３は対応表Ａを有しないのでＡｄｊ−ＳＩＤでないと判定してもよい）、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ１「1002」がＳＩＤリスト「1002→9001→1008」の最終のＳＩＤ（ＳＩＤ３「1008」）でないと判定し、処理をステップＳ７に進める。
【００７２】
ステップＳ７において、経路計算部２２は、ＳＩＤ１「1002」が設定されているルータＲ２からＳＩＤ３「1008」が設定されているルータＲ８までの最短経路探索を実施し、「ルータＲ２→ルータＲ３→ルータＲ８」となるため、自ノードであるルータＲ３が始点を除く通過点に存在すると判定し、処理をステップＳ１に進める。ステップＳ１において、経路計算部２２は、ＳＩＤリスト「1002→9001→1008」の一つ目のＳＩＤ２「9001」を取得する。ステップＳ２において、経路計算部２２は、ＳＩＤ２「9001」を取得したが、ルータＲ３は対応表Ａを持たない（対応表Ａを持つのはルータＲ２のみ）ので、ＳＩＤ２「9001」を未知のものと判定し、処理をステップＳ１に進める。
【００７３】
ステップＳ１において、経路計算部２２は、ＳＩＤリスト「1002→9001→1008」の一つ目のＳＩＤ３「1008」を取得する。ステップＳ２において、経路計算部２２は、「1008」が対応表Ｎに存在すると判定し（ルータＲ３は対応表Ａを有しないのでＡｄｊ−ＳＩＤでないと判定してもよい）、処理をステップＳ３に進める。ステップＳ３において、経路計算部２２は、ＳＩＤ３「1008」がＳＩＤリスト「1002→9001→1008」の最終のＳＩＤであると判定し、処理をステップＳ４に進める。
【００７４】
ステップＳ４において、経路計算部２２は、ＳＩＤ３「1008」が自ノードであるルータＲ３のＳＩＤ「1003」と同一でないと判定し、処理をステップＳ６に進める。ステップＳ６において、経路計算部２２は、ＳＩＤリスト「1002→9001→1008」の最終のＳＩＤ（ＳＩＤ３「1008」）に対応するＩＰアドレスを対応表Ｎから取得し、取得したＩＰアドレスに対する経路探索を経路表Ｋで行い、経路探索で求められたＯＩＦ「E1」を最適化ＳＬＩＤテーブルＳのＳＬＩＤ「30002」のＯＩＦに代入する。
【００７５】
・ａｎｙｃａｓｔ  ＳＩＤの処理について
ａｎｙｃａｓｔ  ＳＩＤ（例えば、ＳＩＤ「2009」）は、複数のノードＳＩＤに分解できる（例えば、ＳＩＤ「2009」については、ＳＩＤ「1004」，「1005」）。その為、経路計算部２２は、ａｎｙｃａｓｔ  ＳＩＤの処理について、分解したそれぞれのＳＩＤについて処理を行うようにする。つまり、ａｎｙｃａｓｔ  ＳＩＤに含まれるＳＩＤの数分だけ、処理を繰り返して行えばよい。
【００７６】
＜最適化ＳＬＩＤテーブルを用いたパケットの転送方法＞
次に、図６を参照して、最適化ＳＬＩＤテーブルＳを用いたパケットの転送方法について説明する。図６は、ルータＲがＩＰｖ６パケットを受信した場合の転送アルゴリズムの例示である。
【００７７】
転送処理部３２（図３参照）は、受信したＩＰｖ６パケットのＦｌｏｗ  Ｌａｂｅｌフィールドに格納されるＳＬＩＤが、自ノードが保持する最適化ＳＬＩＤテーブルＳで一致するものが存在するか否かを判定する（ステップＳ２１）。ステップＳ２１で“Ｙｅｓ”の場合に処理はステップＳ２３に進む。一方、ステップＳ２１で“Ｎｏ”の場合に処理はステップＳ２２に進み、転送処理部３２は、通常の宛先アドレスを用いたパケットの転送を行う（ステップＳ２２）。
【００７８】
ステップＳ２１で“Ｙｅｓ”の場合に、転送処理部３２は、最適化ＳＬＩＤテーブルＳの一致した最適化ＳＬＩＤテーブルにＯＩＦが存在するか否かを判定する（ステップＳ２３）。ステップＳ２３で“Ｙｅｓ”の場合に処理はステップＳ２５に進む。一方、ステップＳ２３で“Ｎｏ”の場合に処理はステップＳ２４に進む。
【００７９】
ステップＳ２３で“Ｙｅｓ”の場合に、転送処理部３２は、最適化ＳＬＩＤテーブルＳのＯＩＦを用いた転送を行う（ステップＳ２５）。ステップＳ２３で“Ｎｏ”の場合に、エッジ処理部３３は、セグメントルーティングドメイン外に出る際の処理を行う（ステップＳ２４）。そして、処理はステップＳ２２に進み、転送処理部３２は、通常の宛先アドレスを用いたパケットの転送を行う（ステップＳ２２）。
【００８０】
続いて、ルータＲにおいて、図４（ｂ）に示す最適化ＳＬＩＤテーブルＳを用いて図６に示す処理を行った場合を例示する。
・ルータＲ２で図６に示す処理を行った場合
ステップＳ２１において、転送処理部３２は、受信したＩＰｖ６パケットのＦｌｏｗ  Ｌａｂｅｌフィールドに格納されるＳＬＩＤが「30001」〜「30005」であれば、処理をステップＳ２３に進める。ルータＲ２が有する最適化ＳＬＩＤテーブルＳ２（図４（ｂ）参照）のＯＩＦには、これらの値に対応する値が代入されているので、処理をステップＳ２５に進め、ＯＩＦを用いた転送を行う。一方、転送処理部３２は、受信したＩＰｖ６パケットのＦｌｏｗ  Ｌａｂｅｌフィールドに格納されるＳＬＩＤが「30001」〜「30005」以外の値であれば、処理をステップＳ２２に進め、通常の宛先アドレスを用いた転送を行う。
【００８１】
・ルータＲ８で図６に示す処理を行った場合
ステップＳ２１において、転送処理部３２は、受信したＩＰｖ６パケットのＦｌｏｗ  Ｌａｂｅｌフィールドに格納されるＳＬＩＤが「30001」〜「30005」であれば、処理をステップＳ２３に進める。ルータＲ８が有する最適化ＳＬＩＤテーブルＳ８（図示せず）のＯＩＦには、これらの値に対応する値が代入されていないので（図５ＢのステップＳ５参照）、処理をステップＳ２４に進める。エッジ処理部３３は、ＩＰｖ６ヘッダのフィールドのＦｌｏｗ  Ｌａｂｅｌフィールドを元の状態に戻し（例えば、簡易的に「０」を挿入する）、転送処理部３２は、通常の宛先アドレスを用いた転送を行う。
以上で、実施形態に係る経路制御システム１の処理についての説明を終了する。
【００８２】
以上のように、実施形態に係る経路制御システム１、及び中継ノードであるルータＲは、パケットの中に中継するノードを示したセグメントリストを持たず、経路を識別する情報のみでパケットを転送する。したがって、ＩＰｖ６標準ヘッダのみを用いて経路を指定してパケットを転送する事が可能になり、拡張ヘッダを用いないことからＮｅｘｔ  Ｈｅａｄｅｒの順次探索という非定型処理を実施する必要がない。その為、実施形態に係る経路制御システム１、及び中継ノードであるルータＲは、定型的な処理しか実施できないＡＳＩＣ等のハードウェアを用いても、経路を制御してパケットを転送することができる。
【００８３】
また、実施形態に係る経路制御システム１及び中継ノードであるルータＲは、前記説明した通り、パケットの中に中継するノードを示したセグメントリストを持たず、経路を識別する情報のみでパケットを転送する。したがって、悪意の第三者が任意の経路をパケットに指定することができず、パケットをルータ間でループすることを排除できる。その為、実施形態に係る経路制御システム１、及び中継ノードであるルータＲは、パケットのループを用いたＤｏＳ攻撃を回避することができる。
【００８４】
［変形例］
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、特許請求の範囲の趣旨を変えない範囲で実施することができる。実施形態の変形例を以下に示す。
【００８５】
実施形態では、ルータＲが経路制御システム１の管理外の中継ノードに接続されている場合に、エッジ処理部３３は、ＩＰｖ６ヘッダのフィールドのＦｌｏｗ  Ｌａｂｅｌフィールドの値を変更していた。しかしながら、ＩＰｖ６パケットが管理ドメインに入った場合に、エッジ処理部３３は、管理ドメイン内用の新規のＩＰｖ６ヘッダをパケットの先頭に追加し、その新規のＩＰｖ６ヘッダのＦｌｏｗ  ＬａｂｅｌフィールドにＳＬＩＤを代入するようにしてもよい（図７（ｂ）参照）。そして、ＩＰｖ６パケットが管理ドメインから出る場合に、エッジ処理部３３は、管理ドメイン内用の新規のＩＰｖ６ヘッダを取り除く。この場合、管理外の中継ノードから受信したパケットの内容を完全に保持することができる。
【００８６】
また、エッジ処理部３３は、管理ドメイン内用の新規のＩＰｖ６ヘッダをパケットの先頭に追加し、その新規のＩＰｖ６ヘッダのソースアドレスにＳＬＩＤを代入するようにしてもよい。基本的に、ルータＲは、宛先アドレスを参照してパケットを転送する。その為、ソースアドレスは、一般的に転送先の決定に使用されないからである。
【００８７】
また、実施形態では、セグメントルーティングを前提に説明していた。しかしながら、経路制御システム１は、中継ノードであるルータＲ、及び中継ノード間のリンクを指定することで経路を特定できるものであれば、セグメントルーティング以外にも適用できる。
【００８８】
また、実施形態では、それぞれのルータＲで伝搬ＳＬＩＤテーブルＤから最適化ＳＬＩＤテーブルＳを作成していたが、外部制御装置２でそれぞれのルータＲの最適化ＳＬＩＤテーブルＳを作成するようにしてもよい。その場合、ルータＲは、ＩＦ１０を介して最適化ＳＬＩＤテーブルＳを受信し、受信した最適化ＳＬＩＤテーブルＳをメモリ２１やメモリ３１に記憶するようにする。
【符号の説明】
【００８９】
１      経路制御システム
２      外部制御装置
１０    ＩＦ（インタフェース）
２０    制御部
２１    メモリ（第２の記憶部）
２２    経路計算部
３０    転送部
３１    メモリ（第１の記憶部）
３２    転送処理部
３３    エッジ処理部
Ｒ      ルータ（中継ノード）
Ｋ      経路表
Ｎ      ノードＳＩＤ・ＩＰアドレス対応表
Ａ      Ａｄｊ−ＳＩＤ・ＯＩＦ対応表
Ｄ      伝搬ＳＬＩＤテーブル
Ｓ      最適化ＳＬＩＤテーブル（第１情報）
【図１】
2015159486.tif 000003
【図２】
2015159486.tif 000004
【図３】
2015159486.tif 000005
【図４】
2015159486.tif 000006
【図５Ａ】
2015159486.tif 000007
【図５Ｂ】
2015159486.tif 000008
【図６】
2015159486.tif 000009
【図７】
2015159486.tif 000010
【図８】
2015159486.tif 000011
【図９】
2015159486.tif 000012
【図１０】
2015159486.tif 000013