(57)【要約】１つ以上のネットワークデバイスまたはインターフェースからトラフィックをシフトするトラフィックシフトシステムを記載する。システムは、シフトが発生する前に、トラフィックが安全に確実にネットワークデバイスからシフトできるようにする。この方法は、発見段階、事前チェック段階、シフト段階及びシフト後段階などのいくつかの段階に細分化して記載する。シフトが発生する前に、発見段階を使用してネットワークトポロジ及び構成情報を取得する。事前チェック段階では、ネットワークに悪影響を与えることなくシフトを確実に実行できるよう、その情報を調査する。事前チェック段階に合格すると、トラフィックがシフトしている任意のデバイス上のインターフェースに関連するコストパラメータなど、構成パラメータの調整を通じて、ネットワークシフトを発生することができる。最終的に、シフト後段階では、トラフィックをネットワークデバイスから確実にシフトするためにチェックが行われる。【選択図】図１
2019503611.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上でトラフィックをネットワークデバイスからシフトする方法であって、
前記ネットワークデバイスの識別情報を受信することと、
前記ネットワークデバイスが構成情報及びネットワークトポロジ情報について問い合わせを受ける、発見段階を行うことと、
前記ネットワークトポロジ情報及び前記構成情報が前記ネットワークデバイスとネイバーネットワークデバイスとの間で一致しているかどうかを判定することと、
前記ネットワークが、前記ネットワークデバイスを使用することなくトラフィックをルーティングするのに十分な容量を有するかどうかを判定することと、
前記ネットワークデバイスに格納されたルーティング構成情報を変更することによって、前記ネットワークデバイスからネットワークトラフィックをシフトすることと、
一定期間が経過した後、前記ネットワークデバイス上の前記ネットワークトラフィックが所定の閾値を下回って減少したことをチェックすることと、
を備える、前記方法。
【請求項２】
前記ネットワークが十分な容量を有するかどうか前記判定することは、ネットワークトラフィックの現在の容量を判定することと、代替的なネットワークデバイス及び前記ネットワーク内の関連リンクが前記ネットワークトラフィックの現在の容量を処理するのに十分な帯域幅を有するかどうかを判定することとを含む、請求項１に記載の方法。
【請求項３】
実行時に、コンピュータシステムに、
ネットワークトラフィックがシフトされることになるネットワークデバイスの識別情報を受信することであって、前記ネットワークデバイスはネットワーク内にある、前記受信することと、
前記ネットワークデバイスを前記ネットワークから取り外すことができるかどうかの判定を行う事前チェックを行うことと、
トラフィックを前記ネットワークデバイスからシフトできるように、前記ネットワークデバイスに格納されたルーティング構成情報を変更することによって、前記ネットワークデバイスを構成することと、
を行わせる命令を含む、コンピュータ可読記憶媒体。
【請求項４】
前記事前チェックを前記行うことは、
前記ネットワークデバイスのネットワークトポロジ情報を決定することと、
前記ネットワークトポロジ情報が前記ネットワークデバイス及びネイバーネットワークデバイスにわたって一致していることを判定することと、
を備える、請求項３によるコンピュータ可読記憶媒体。
【請求項５】
前記ネットワーク情報が一致していることの前記判定は、前記ネットワークデバイスが前記ネイバーネットワークデバイスを識別し、前記ネイバーネットワークデバイスが前記ネットワークデバイスを識別することをチェックすることを含む、請求項４によるコンピュータ可読記憶媒体。
【請求項６】
前記事前チェックを前記行うことは、
一度前記ネットワークトラフィックが前記ネットワークデバイスからシフトされると、ネットワーク容量が十分であると判定すること
を備える、請求項３〜５のいずれかによるコンピュータ可読記憶媒体。
【請求項７】
前記事前チェックを前記行うことは、
ネイバーネットワークデバイスに接続するために使用され、ルーティングプロトコルに含まれている前記ネットワークデバイス上のインターフェースを決定すること
を備える、請求項３〜６のいずれかによるコンピュータ可読記憶媒体。
【請求項８】
前記ルーティング構成情報を前記変更することは、ルーティングポリシーを変更すること、または前記ネットワークデバイス上のコストパラメータを増加することを含む、請求項３〜７のいずれかによるコンピュータ可読記憶媒体。
【請求項９】
前記命令は、実行時に、前記コンピュータシステムにさらに、
前記構成後及び所定の期間の後、前記ネットワークデバイス上のネットワークトラフィックが閾値レベルを下回って低下したかどうかをチェックさせる、
請求項３〜８のいずれかによるコンピュータ可読記憶媒体。
【請求項１０】
前記コンピュータシステムにさらに、
現在のコスト設定について前記ネットワークデバイスを問い合わせ、ネイバーデバイスのコスト設定が前記現在のコスト設定と等しいかどうかを判定させる命令をさらに含む、請求項３〜９のいずれかによるコンピュータ可読記憶媒体。
【請求項１１】
実行時に、前記コンピュータシステムに、
構成情報が前記ネットワークデバイスから取得される発見段階を行わせる命令をさらに含む、請求項３〜１０のいずれかによるコンピュータ可読記憶媒体。
【請求項１２】
前記ルーティング構成情報を前記変更することは、前記ネットワークデバイス上の外部ボーダゲートウェイプロトコル（ＢＧＰ）ピアまたはピアグループに関連するルーティングポリシー情報を変更することを含む、請求項３〜１１のいずれかによるコンピュータ可読記憶媒体。
【請求項１３】
前記命令は、実行時に、前記コンピュータシステムにさらに、
前記構成後及び所定の期間の後、前記ルーティング構成情報が更新されたことを確実にするために、プロトコル状態情報をチェックさせる、請求項３〜１２のいずれかによるコンピュータ可読記憶媒体。
【請求項１４】
システムであって、
データセンタ内の第１のネットワークデバイスと、
ネットワークデバイスのセットであって、前記第１のネットワークデバイス及び前記ネットワークデバイスのセットは、その間にネットワーク内でネットワーク接続を確立するための通信経路を有する、前記ネットワークデバイスのセットと、
サーバコンピュータであって、
第１のネイバー情報について前記第１のネットワークデバイスを問い合わせることと、
第２のネイバー情報について前記ネットワークデバイスのセットを問い合わせることと、
前記第１のネイバー情報及び第２のネイバー情報が一致していることをチェックすることと、
ネットワークトラフィックを前記第１のネットワークデバイスからシフトできるよう、ルーティング構成情報を前記第１のネットワークデバイスに書き込むことと
を行うように動作可能な前記サーバコンピュータと
を備える、前記システム。
【請求項１５】
前記ルーティング構成情報はポリシーまたはコスト情報を含む、請求項１４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
インターネット上のトラフィックは過去１０年で著しく増加しており、増加し続けている。ルータはこの増加を支える上で重要な役割を担っている。ルータには、共に通信するための様々なプロトコルが存在する。通常、プロトコルにより、ルータは、ネイバー及びこれらのネイバーへのパケットのルーティングに関わるコストを識別することができる。このような情報により、ルータは、トポロジマップを構築し、ネットワークパケットを転送するのに最適なルートを選択することができる。オープンショーテストパスファースト（ＯＳＰＦ）は、インターネットプロトコルネットワークのルーティングプロトコルの一例である。
【０００２】
いくつかの場合、保守または他の理由により、ルータまたはルータのグループからトラフィックをシフトすることが必要である。このようなトラフィックシフトは、決められた技法を確立することなく、手動で実行されることが多い。トラフィックシフトのより効率的な選択肢が必要とされる。
【図面の簡単な説明】
【０００３】
【図１】ネットワーク内の１つ以上のネットワークデバイスからトラフィックをシフトする方法のフローチャートである。
【図２】異なるエリアに分割された複数のルータを備え、トラフィックがルータのうちの１つからシフトされるルータネットワークを示す。
【図３】データセンタ間で通信しているルータのセットを備え、トラフィックがルータのセットからシフトされる複数のデータセンタを示す。
【図４】構成及びネットワークトポロジストレージを伴うルータ構造の一実施形態を示す。
【図５】ルータがトラフィックシフトサービスによってシフトされたトラフィックを有することができるデータセンタ内の複数のルータの例を示す。
【図６】一実施形態による、複数のネットワークデバイスからトラフィックをシフトするための詳細なフローチャートを示す。
【図７】別の実施形態による、複数のネットワークデバイスからトラフィックをシフトするためのフローチャートを示す。
【図８】さらに別の実施形態による、複数のネットワークデバイスからトラフィックをシフトするためのフローチャートを示す。
【図９】記載した革新が実装され得る、好適なコンピューティング環境の一般例を図示する。
【発明を実施するための形態】
【０００４】
本明細書に記載の実施形態は、１つ以上のネットワークデバイスからトラフィックをシフトすることに関する。いくつかの例では、保守、更新、交換等の目的上、１つ以上のネットワークデバイス（例えば、ルータ、スイッチ、ブリッジ、ハブ等）をネットワークから取り外すことが望ましい。一般的には、ネットワークデバイスのルーティング構成情報を変更すること（例えば、コストパラメータの増加またはルーティングポリシー情報の変更）は、他のネットワークデバイスにとって些細な方法として見られる。しかしながら、追加チェックを伴うことなくルーティング構成情報のみを調整することは、著しいネットワークの問題を引き起こす可能性がある。例えば、ネットワークデバイスの喪失に耐えられるほど十分なリソースがネットワークにない場合、コストパラメータの調整はネットワークの機能全体に悪影響を及ぼす可能性がある。
【０００５】
結果的に、システムは、シフトが発生する前に、トラフィックを安全にネットワークデバイスからシフトできることを確実にする。この方法は、明確性のために、発見段階、事前チェック段階、シフト段階及びシフト後段階などのいくつかの段階に細分化して記載する。識別段階などの他の段階を追加することができるか、またはシフト後段階もしくは発見段階などの段階を除外することができる。代替的には、本明細書に記載の段階のうちのいくつかを結合することができる。シフトが発生する前に、発見段階を使用してネットワークトポロジ及び構成情報を取得する。事前チェック段階では、ネットワークに悪影響を与えることなくシフトを確実に実行できるよう、その情報を調査する。事前チェック段階に合格すると、トラフィックがシフトしている任意のデバイス上のインターフェースに関連するルーティング構成情報の調整を通じて、ネットワークシフトを発生することができる。最終的に、シフト後段階では、トラフィックをネットワークデバイスから確実にシフトするためにチェックが行われる。
【０００６】
図１は、それぞれの段階を順番に示す。図１の処理ブロックは、サービスプロバイダ環境（例えば、クラウド環境）内のサーバコンピュータなどの、サーバコンピュータによって実行することができる。処理ブロック１１０は、１つ以上のネットワークデバイスが識別される識別段階を示す。単一のネットワークデバイスの場合、グローバル一意識別子（ＧＵＩＤ）またはアドレスなどの単一の識別を使用することができる。複数のネットワークデバイスの場合、複数の識別子を使用することができる。識別子は、テキストファイル、ＡＰＩまたは他の手段の形態でトラフィックシフトを行うサービスに渡すことができる。代替的には、２つ以上のエンドポイントを識別するサービスに対して要求することができる。例えば、２つのデータセンタを識別して、２つのデータセンタ間に連結されるリンクを確立するために使用される全てのネットワークインターフェースを取り外すよう要求することができる。このような場合、これらのデータセンタに関連するネットワークデバイスを決定する必要がある。このような情報の取得には複数の技法が存在する。例えば、リスト（例えば、電子テキストファイル）をサービスに提供することができ、この場合、リストは２つのエンドポイント間に接続される全ての関連ネットワークデバイスを含む。代替的には、サービスは、サービスプロバイダから、エンドポイントに関連するネットワークデバイスのリストを要求することができる。いずれにしても、識別段階の終わりには、１つ以上のネットワークデバイスのリストを取得する。
【０００７】
処理ブロック１２０では、１つ以上のネットワークデバイスのローカルトポロジ情報及び／または構成情報を取得する発見段階を行う。例えば、サービスは、トポロジ情報または構成情報について、識別された各デバイスを問い合わせることができる。代替的には、サービスは、サービスプロバイダの他のサービスからこのような情報を取得することができる。トポロジ情報は、ネイバーネットワークデバイスの識別子、隣接ルータの特徴、使用中のネットワークプロトコル、セグメントによって結合されているネットワークデバイス、境界ルータ情報等を含むことがある。追加のトポロジ情報は、各デバイス上のアクティブなネットワークインターフェース（例えば、使用中のポートチャネル）、これらのポートチャネル上で使用中のネットワークプロトコル等を含むことがある。構成情報は、ネットワークデバイスの構成方法に関する任意の格納されたパラメータを含むことがある。オープンショーテストパスファースト（ＯＳＰＦ）プロトコルでは、例えば、構成パラメータは、コスト、再送間隔、送信遅延、認証等に関することがある。コストパラメータにより、他のネットワークデバイスはネットワーク経路の脆弱性を判断することができる。例えば、ルータは、通常、宛先までの複数の候補ルートを決定する。ルータの構成に格納されたコストパラメータにより、ネイバールータは、どのルートが最適かを決定することができる。ボーダゲートウェイプロトコル（ＢＧＰ）などの他のプロトコルでは、ルーティング構成は、ウェイトパラメータ、ローカルプリファレンスパラメータ、ＡＳ経路パラメータ等を含むことがある。発見段階の間、いくつかの識別されたデバイスは、トラフィックがシフトされることになるデバイスのリストから削除することができる。例えば、ネイバー情報が２つの接続デバイス間で一致しない場合、これらのデバイスまたはこれらのデバイス上のインターフェースのうちの１つ以上をリストから削除することができる。いくつかの場合、発見段階の全体を回避することができ、ネットワークデバイスを識別した後に事前チェック段階を開始することができる。
【０００８】
処理ブロック１３０では、何らかの潜在的なエラー状態を検出するために、事前チェックが行われる。例えば、発見段階中に取得した情報は、エラー状態を検出するために使用することができる。多様な事前チェックを行うことができる。例えば、ネットワークトポロジ情報がデバイスにわたって確実に一致するように、ネットワークトポロジ情報をチェックすることができる。ネットワークトポロジ情報は、それぞれが他方をネイバーとして識別するかどうかを判定するためにネットワークインターフェースをクロスチェックすることを含むことがある。例えば、ルータＡ上のネットワークインターフェース１がルータＢ上のネットワークインターフェース２を識別する場合、チェックにより、ネットワークインターフェース２もネットワークインターフェース１をネイバーとして確実に識別することを判定する。一致する場合、事前チェックに合格したとみなされ、不合格の場合、トラフィックシフトが発生しないようにロールバックすることができる。このような状況では、技術者がエラーを調査できるよう、顧客にエラーメッセージを送信することができる。２つのエンドポイントが識別された場合、一方のエンドポイントのネットワークインターフェースの数と、他方のエンドポイントのネットワークインターフェースの数とを比較することによって、追加のネットワークトポロジチェックを行うことができる。各エンドポイントでのインターフェースの数は一致しなければならない。
【０００９】
別の事前チェックは、コストパラメータの全てがシフト中のルータにわたって確実に一致するようにすることである。例えば、ＯＳＰＦプロトコルは、等価コストマルチパス（ＥＣＭＰ）と呼ばれる、全てのルータが等しいコストパラメータを有する負荷を分散するオプションを有する。ゆえに、全てのデバイスのコストパラメータが確実に等しくなるよう、これらをクロスチェックすることができ、等しくない場合、エラー状態を生成することができる。他の事前チェックは、ネットワークから取り外されることのない、様々なネットワークデバイスまたは様々なエンドポイントを識別することができるブラックリストをチェックすることを含む。このようなブラックリストは、顧客または管理者によって提供することができ、トラフィックシフトサービスに対してアクセス可能である。さらに別の事前チェックでは、ネットワークデバイスまたはネットワークデバイスのセットがネットワークから取り外された場合に、ネットワークがまだ確実に動作可能であるように、ネットワーク容量をチェックすることができる。例えば、ルータのネットワークの持続性が危機的であると判定される場合、トラフィックシフトを終了することができる。こうして、トラフィックシフト後の残りのネットワークデバイスが、現在のネットワークトラフィックを維持するのに不十分な帯域を有していることを示すエラー状態を開始することができる。さらに別の事前チェックでは、全てのポートチャネルが同じサイズ（つまり、インターフェースの数が同じ）であるかどうか及びポートチャネルが同じ動作状態であるかどうかを判定する。負荷を分散させる目的上、同じ方法で動作しているネットワークデバイスのトラフィックがいくつかのデバイスからシフトされることが望ましい。全ての事前チェックがネットワーク自体からの情報取得を必要とするわけではない。例えば、ネットワークから取り外されているネットワークデバイスの情報を伴うことなく、ネットワーク容量のチェックを行うことができる。その結果、事前チェックのうちのいくつかは、発見段階を伴うことなく行うことができる。しかしながら、発見段階は、より確かな選択肢のリストを提供する。
【００１０】
処理ブロック１４０では、全ての事前チェックに合格したと仮定して、ネットワークトラフィックのシフトを行うことができる。例えば、ネットワークトラフィックは、データセンタ間に連結されたリンクからシフトすることができる。発見段階及び事前チェック段階から、ネットワークトラフィックがシフトされることになるネットワークデバイス、ネットワークインターフェースまたはリンクの最終リストを使用することができる。ネットワークトラフィック、ネットワークデバイスまたはネットワークデバイスのセットをシフトすることは、高いコストパラメータ（例えば、最大値）がネットワークデバイスに確実に関連するように、（ネットワークインターフェースベースなどで）それらのルーティング構成を変更するか、またはポリシーを変更することができる。いずれの場合でも、ネットワークインターフェースは、ネイバーにとっては、パケットのルーティングには望ましくない選択肢である。１つの例では、サーバコンピュータは並列処理を生成することができ、各ネットワークデバイスに対して１つの処理を生成でき、これによって、構成情報を変更するために、全てのネットワークデバイスを並列的に（ほぼ同じ時間に）書き込むことができる。例えば、１つのエンドポイントに２０のルータがある場合、サーバコンピュータは、コスト構成情報をルータに並列的かつほぼ同じ時間に書き込むために並列的に実行する２０の処理を開始することができる。別の例では、単一のネットワークデバイスが取り外されると、そのネットワークデバイス上の全てのインターフェースはルーティング構成情報（例えば、コストまたはポリシーパラメータ）を変更することができる。例を続けると、構成情報を２０のルータに同時に書き込むことによって、ネットワークトラフィックがこれらの構成情報を変更する前に他の２０のルータのうちのいずれかへのシフトを開始するわけではない。一度コストパラメータまたはポリシーパラメータが書き込まれると、デバイスからコストパラメータまたはポリシーパラメータをリードバックし、予想した値がリードバックされたことをクロスチェックすることによって、これらをチェックすることができる。コストパラメータまたはポリシーパラメータのいずれも書き込まれた値に等しくない場合、エラー状態を生成することができ、管理者または顧客に通知される。２つのエンドポイントがあるいくつかの場合、各エンドポイントを順次書き込むことができ、これによって、第１のエンドポイントは第２のエンドポイントより前に再構成される。
【００１１】
処理ブロック１５０では、ネットワークトラフィックが１つ以上のネットワークデバイスからシフトされたことを確認するために、事後チェックを行うことができる。トラフィックはすぐにゼロになる必要はない。むしろ、新しいコストパラメータがネイバーデバイスに伝わるにつれ、トラフィックは徐々にシフトすることができる。事後チェックは、トラフィック量が所望の削減閾値を確実に満たすように、複数の所定の時間間隔でチェックを行うことを含むことができる。１つの例では、チェックは、トラフィック量がゼロまたは略ゼロなどの閾値レベルを下回るまで、３０秒おきに行うことができる。別の例では、ルーティング構成情報が更新されたことを確実にするために、プロトコル状態情報をチェックすることができる。例えば、リードバックの内容が書き込まれた内容と確実に一致するように、コストパラメータをチェックすることができる。
【００１２】
上記の実施形態は、ＯＳＰＦルーティングプロトコルを使用して説明したが、他のルーティングプロトコルを使用することができる。例えば、任意のインテリアゲートウェイプロトコル（ＩＧＰ）またはエクステリアゲートウェイプロトコル（例えば、ＢＧＰ）を使用することができる。他のプロトコルの例は、ＯＳＰＦ、ルーティングインフォメーションプロトコル（ＲＩＰ）、中間システム−中間システム（ＩＳ−ＩＳ）、ラベルディストリビューションプロトコル（ＬＤＰ）及びリソースリザベーションプロトコル（ＲＳＶＰ）を含む。ネットワークデバイスの多くには、通常、ルータが含まれる。ルータは、本明細書に記載する通り、ネットワーク上の他の機器（例えば、他のネットワーク要素、エンドステーション）と通信可能に相互連結するハードウェア及びソフトウェアを含む。一部のルータは、複数のネットワーク機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２アグリゲーション、セッションボーダー制御等）のサポート提供及び／または複数のアプリケーションサービス（例えば、データ、音声及びビデオ）のサポート提供を行う。ルータは通常、制御プレーン及びデータプレーン（転送プレーンと呼ばれる場合もある）を含む。制御プレーンは、データ（例えば、パケット）がどのようにルーティングされるか（例えば、データのネクストホップ及びそのデータのための出力ポート）を決定し、データプレーンはデータを転送する。制御プレーンは、ルートを交換し、１つ以上のルーティングメトリックに基づいてそれらのルートを選択するために、他のルータと通信する１つ以上のルーティングプロトコルを含むことができる。
【００１３】
ＯＳＰＦを実装しているルータは、自身が常駐する自律システム（ＡＳ）のトポロジを記述する同一のリンクステートデータベース（ＬＳＤＢ）を維持するリンクステートルーティングプロトコルを実行する。ＬＳＤＢリスト内の各レコードは、特定のネットワーク要素の使用可能なインターフェース及びエリアもしくはＡＳの外部の到達可能なネイバー、アジャセンシーもしくはルートをリスト化する。隣接ルータは、共通ネットワークへのインターフェースを有する２つのルータであり、インターフェースは、あるルータと、当該ルータに接続されたネットワークのうちの１つとの間の接続である。さらに、アジャセンシーは、ルーティング情報を交換してネットワークトポロジを抽象化する目的で選択された隣接ルータ間に形成される関係である。１つ以上のルータのアジャセンシーは、インターフェース経由で確立できる。アジャセンシーは、「Ｈｅｌｌｏ」プロトコルを使用してＯＳＰＦで確立され、維持される。「Ｈｅｌｌｏ」プロトコルは、全てのネットワーク要素インターフェースからＨｅｌｌｏパケットを定期的に送信することによって、ネイバー間の通信が確実に双方向となるようにする。双方向通信は、ルータ自体がネイバーのＨｅｌｌｏパケットにリスト化されていることを示す。
【００１４】
図２は、単一のネットワークデバイス（この場合、ルータ）が、トラフィックシフトにより（トラフィックをルーティングする目的上）ネットワークから取り外される例を示す。この例では、２１０に示すデータセンタＡは、２１２で示す複数のルータを含む。対象となる特定のルータはルータ２１４であり、ルータ２１４はネットワークから取り外されることを示すために破線で示される。データセンタＢは２２０で示され、リンク２２６を介してルータ２１４に結合されるルータ２２２を含む複数のルータをさらに含む。リンクは、物理的ケーブル（例えば、光ファイバ）及び通信チャネルを確立するのに必要な任意のサポートソフトウェアを含むことができる。この場合、ルータ２１４の取り外しとは、リンク２２６をサポートするネットワークインターフェースを含む、ルータ２１４内の全てのインターフェースをネットワークから取り外すことである。トラフィックシフトサービス２３０は、ルータ２１４をネットワークから取り外すように求めるアプリケーションプログラミングインターフェース（ＡＰＩ）要求２４０を受信する。この例では、一度ルータ２１４が取り外されると、ネットワークトラフィックは、データセンタ２１０、２２０を共に結合する２５０で示す他のリンク上でなおも自由に流れることができる。ただし、一度ルータ２１４が取り外されると、リンク２５０がネットワークトラフィックを処理するのに十分な帯域幅を有するかどうかを判定するためのチェックを行うことができる。
【００１５】
取り外しでは、ＡＰＩ要求２４０内のルータの識別子（例えば、アドレス）を使用して、ルータ２１４を取り外されるルータとして識別することができる。次いで、ルータ２１４は、ホストサーバコンピュータ２３０等による、ネットワークトポロジ情報についての問い合わせを受けることができ、ホストサーバコンピュータ２３０はトラフィックシフトを実行することができる。ルータ２１４は、インターフェースがオープンになり、ルータ２２２に連結されるように示されている。ルータ２２２がルータ２１４に結合されていることを示すネットワークトポロジ情報を確実に有するよう、この情報をクロスチェックすることができる。全てのルータが同様のコストパラメータを有し、同数のインターフェースを有するなど、既に上述した通り、他の事前チェックを実行することができる。
【００１６】
事前チェックに合格すると、ホストサーバコンピュータ２３０は、コストパラメータ（例えば、最大許容コストパラメータ）またはポリシーパラメータなどの新しいルーティング構成情報をルータ２１４に書き込むことができる。他のルータは次いでルータ２１４の使用を中止し、ルータ２１４はネットワークから安全に取り外すことができる。
【００１７】
図３は、２つのデータセンタ３１０、３１２間などの、２つのエンドポイントにトラフィックシフトを適用する例を示す。各データセンタには、１つ以上のルータのセットを含むことができる。例えば、ルータの第１のセットは３２０で示され、一方、ルータの第２のセットは３３０で示され、リンク３３２は２つのルータを共に連結する。リンク３３２は、専用ケーブルまたは光ファイバを含むことができ、トラフィックがこれらのリンクからシフトされることを示す点線で示されている。ルータ３２０は、データセンタ３１０を他のデータセンタに結合するリンク３３４を確立するために使用される他のインターフェースと共に示されている。２つのエンドポイントが識別されるトラフィックシフトサービス３５０に対してＡＰＩ要求３４０を行うことができる。識別情報は、番号、都市または任意の他の所望の識別情報とすることができる。発見段階の前に、トラフィックシフトサービス３５０はエンドポイントを使用してルータ識別サービス３６０にＡＰＩ要求を行うことができ、ルータ識別サービス３６０はエンドポイントでルータのリストを送信する。代替的には、ルータのリストは、顧客からリストを直接的に受信するなど、他の方法でトラフィックシフトサービスに渡すことができる。リストには、サービスのアドレスまたは他の識別子を含めることができる。トラフィックシフトサービス３５０は、既に記載した通り、データセンタ３１０、３２０と通信してリスト内のルータのルータトポロジまたは構成情報を取得することができる。発見段階の間、トラフィックシフトサービス３５０は、リンク３３２を確立するために使用されるルータ３２０上の特定のインターフェースを識別することができる。追加的には、発見段階の間、トラフィックシフトサービス３５０は、ネイバー情報及びネットワークインターフェースをチェックして、両方がエンドポイント間で確実に一致するようにする。例えば、エンドポイント３１０のルータ３７０は、ルータ３７２に結合されていると識別されたネットワークインターフェースを有する必要がある。同様に、ルータ３７２は、ルータ３７０に結合されていると識別されたネットワークインターフェースを有する必要がある。整合性のためのネットワークトポロジ情報のこのようなクロスチェックは、シフトが発生する前にトラフィックが安全にシフトされることを確実にするのに役立つ。このような事前チェック（図１に述べる事前チェックのいずれかを含む）が完了すると、ルーティング構成情報（例えば、コストパラメータ、ポリシー情報等）を並列処理でルータ３２０に書き込み、これによって、ルータ３２０にほぼ同時に書き込むことで、トラフィックシフトサービス３５０によってトラフィックシフトを発生することができる。ルーティング構成情報は、ネイバールータが代替的経路の選択を望むよう、変更する必要がある。例えば、コストパラメータは、ネイバールータが代替経路を選択するために十分に高くする必要がある。ルーティング構成情報がデータセンタＡ内のルータに書き込まれると、トラフィックシフトサービス３５０は、ルーティング構成情報をデータセンタＢ内のルータに並列的に書き込み、これによって、ルータにほぼ同時に書き込まれる。次いで、トラフィックが確実にシフトされるよう、トラフィックシフトサービス３５０によって事後チェックを行うことができる。ルータ３２０などのルータは、リンク３３２をサポートするインターフェースのみを取り外すことができ、一方、リンク３３４をサポートするインターフェースなどの他のインターフェースは動作可能なままである。
【００１８】
図４は、ルータアーキテクチャのさらなる詳細を示す。ルータ４００は、コントローラカード４１０などのコントローラ、ルータバックプレーン４２０及びインターフェースカード４３０などの１つ以上のインターフェースを含む。ＣＰＵ４４０は、コントローラカード４１０上に配置され、通常、ルータテーブル保守、経路計算及び到達可能性伝搬などの機能を行う。インターフェースカード４３０は、受信及び送信パケットの転送を行うためのアダプタを含む。ルータバックプレーン４２０は、コントローラカードとインターフェースカードとの間でパケットを転送するように機能する。ルータ４００の基本的な機能は、ルート処理及びパケット転送を含むことがある。ルーティングテーブル４５０は、ルータがネットワーク等内のルータ関係を記述するネットワークのトポロジのビューを作成できるようにする。例えば、ルータ４００は、４６０、４６２に示すような他のルータ（多くの他のルータが一般的には含まれているが、簡潔性の目的上、図示していない）のネットワークに結合される。
【００１９】
パケット転送は、一般的に、パケットを処理する前にパケットが適切に形成されていることをルータがチェックするＩＰパケット検証を含む。ルータは、次いで、テーブルルックアップを行い、パケットを送信する出力ポートと、パケットを送信する次の宛先を決定することができる。ルータはさらに、非常に古いパケットの循環を防ぐために、有効期間パラメータを調整することができる。最終的に、ルータはＩＰヘッダーチェックサムを行うことができる。
【００２０】
ルータテーブル４５０内のルータテーブルルックアップは、通常、パケットのＩＰ宛先アドレスをキーとして使用してＣＰＵ４４０によって行われる。ルックアップは、パケットのネクストホップのインターフェース及びＩＰアドレスを提供する最適なルーティングテーブルエントリを返す。ネクストホップアドレスは、ハッシュテーブルとして編成することができる、フロントエンドルーティングテーブル（図示せず）にキャッシュすることができる。
【００２１】
コントローラカード４１０はさらに、ルータ構成及びネットワークトポロジ４７０のためのストレージ（例えば、メモリ、ハードドライブ等）を含むことができる。ルータ構成は、ルーティングテーブル４５０とは無関係であり、ルータネットワークを通る最適なルートを識別するわけではない。ゆえに、ルータ構成はルーティングトポロジ情報とは無関係である。代わりに、ルータ構成は、インターフェース設定またはルータの他の特徴もしくはプロパティ（環境パラメータとも呼ばれる）に関連していることがある。構成設定の例としては、速度（例えば、１０メガビット／秒、１００メガビット／秒、自動モード等）、最大伝送単位（ＭＴＵ）（最大パケットサイズ）、伝送モード（例えば、全二重、半二重等）、カプセル化タイプ、インターフェースタイプ、ロード間隔（インターフェースの平均負荷を計算するために使用される時間の長さ）、リダイレクトメッセージ設定（パケットを強制的に転送する場合）、ネイバーの設定、アジャセンシー、ルーティングプロトコルの構成等を含む。対象となる特定の構成はコストパラメータ４７２である。コストパラメータは、例えば、ルータ４００の容量を示すネイバールータとその後共有されるＯＳＰＦコストとすることができる。別の構成は、４７３に示すなどのポリシー情報とすることができる。ポリシー情報は、ネイバーデバイスがトラフィックをルーティングする方法に影響を及ぼすルーティングベースのポリシー情報など、１つ以上のパラメータを含むことができる。ポリシーパラメータの例は、外部ＢＧＰピアまたはピアグループに関連することがある。このようなＢＧＰベースのパラメータを変更すると、ルーティング決定に影響を与えることがある。
【００２２】
ストレージ４７０に格納されたルータトポロジ情報は４７４に示されており、別個に受信することができ、ルータ４００がその一部であるルータネットワーク環境に関する情報を含むことができる。ネットワークトポロジ情報は、同じエリア内の他のルータの識別子、セグメント（アジャセンシー）によって現在結合されているルータ、接続されたエリアを取り纏める境界ルータ、ルータインターフェース情報等を含むことができる。ネットワークトポロジ情報は、ＯＳＰＦプロトコルなどの一部のプロトコルではリンクステートデータベース（ＬＳＤＢ）とすることができる。実施形態例では、ネットワークトポロジ情報４７４はさらに、ネイバールータの特徴及びネットワークプロトコル情報を含んでよい。ネイバールータの特徴は、ハードウェアの特徴、ルータの種類、送信または受信通信に使用されるポート及びその他などの、ルータ４００に通信可能に結合された１つ以上のルータに関する情報を提供してよい。ネットワークプロトコル情報は、ルータ４００及び／またはルータ４００に通信可能に結合された任意の他のルータ（複数可）によって使用されるネットワーク通信プロトコル（またはレベル２、レベル３等などのネットワークトラフィックの種類）を示してよい。
【００２３】
前に記載した通り、トラフィックシフトサービス４８０は、トポロジ情報４７４及びストレージ４７０に格納されたいずれかの構成情報を読み出すことができる。サービス４８０はさらに、コストパラメータ４７２またはポリシー情報４７３を変更することができ、これによって、ルータ４６０、４６２などの他のルータは他の経路を通じてトラフィックを転送する。
【００２４】
図５は、ルータのネットワークを使用可能な環境５００を例示する。この例では、環境５００は、全体が５２０で示されるルータによって共に結合されたデータセンタ５１０を含む、複数のデータセンタを含む。異なるレベルのルータを使用することができる。例えば、コアルータ５３０は、サービスプロバイダ環境内の他のデータセンタにある他のコアルータに結合することができる。ルータ５３０は、受信したパケット内のアドレス情報を読み出し、パケットの宛先を決定する。ルータが別のデータセンタにホストサーバコンピュータが含まれていると判断した場合、パケットはそのデータセンタに転送される。パケットの宛先がデータセンタ５１０内のホストである場合、パケットはパケットのパブリックＩＰアドレスをプライベートＩＰアドレスに変換するネットワークアドレストランスレータ（ＮＡＴ）（図示せず）に渡される。ＮＡＴはさらに、プライベートアドレスを、データセンタ５１０の外部に送信されるパブリックアドレスに変換する。追加のアグリゲーションルータ５４０は、パケットをホストサーバコンピュータ５５０の１つ以上のラックにルーティングするためにＮＡＴに結合することができる。各ラック５５０は、複数のホストサーバコンピュータに結合されたトップオブラック（ＴＯＲ）スイッチ５６０を含むことができる。１つのコアルータ５３０及び２つのアグリゲーションルータ５４０が示されているが、実際のデータセンタには、さらに多くのルータが存在することがあり、本明細書に記載する通り、ルータをエリア内でグループ化することができる。トラフィックシフトサービス５７０をデータセンタ５１０に結合して、データセンタ内のルータまたはスイッチのいずれかと通信することができる。ゆえに、ルータまたはスイッチのいずれかを他のデータセンタに結合することができ、トラフィックシフトサービス５７０を使用してトラフィックをシフトすることができる。
【００２５】
図６は、少なくとも２つのエンドポイントが提供されるネットワークデバイスでトラフィックをシフトする方法のフローチャートである。処理ブロック６１０では、第１及び第２のエンドポイントの識別情報が受信される。エンドポイントは、データセンタまたは個別のネットワークデバイスとすることができる。しかしながら、２つのエンドポイントを有することで、各エンドポイントに１つのネットワークデバイスを備えた、少なくとも２つのネットワークデバイスが存在する。この要求は、トラフィックシフトサービスへのＡＰＩ要求とすることができる。処理ブロック６２０では、第１及び第２のエンドポイントに関連する対象ルータ（または他のネットワークデバイス）のリストを取得することができる。リストは、そのようなリストを維持するサービスプロバイダのサービスによって提供することができる。代替的には、トラフィックシフトサービスに対する元の要求をリストに提供することもできる。第１及び第２エンドポイントのルータのアドレス情報を取得するためにトラフィックシフトサービスによって使用可能な複数の技法があり、そのような技法のいずれかを使用することができる。
【００２６】
処理ブロック６３０では、対象ルータ上で発見段階が開始される。発見段階は、識別されたルータに構成情報及びネットワークトポロジ情報について問い合わせる対象シフトサービスを含むことがある。情報の例は、コストパラメータ、ポリシーパラメータ、使用中のプロトコル、ネイバー情報、インターフェース情報等を含むことができる。例えば、インターフェース情報を使用して、ネットワークトラフィックを送信する目的上、エンドポイントを共に接続するリンクを決定することができる。ゆえに、発見段階の間、対象シフトサービスはルータを問い合わせ、格納された状態及びデータ情報をルータから取得することができる。処理ブロック６４０では、発見段階に基づいて、対象となるシフトサービスは、リストを縮小できるよう、対象となるルータのリストの一部をフィルタリングすることができる。例えば、所定のチェックに合格しない対象ルータのいずれかを、トラフィックシフトが生じるルータのセットから取り外すことができる。処理ブロック６５０では、発見情報を使用して事前チェックを行うことができる。事前チェックの例は、エンドポイント間のネットワークスパンが取り外し不可能であるためにブラックリストにあるかどうかをチェックすることを含むことがある。ネットワークスパンは、ネットワークデバイス上のインターフェース間の少なくとも１つの専用経路（例えば、光ファイバーケーブル）である。スパンは、データセンタ間またはデータセンタ内とすることができる。１つの例では、両方のエンドポイントを格納されたリストに対してチェックすることができ、エンドポイントがリストのスパンと一致する場合、エラー状態を開始することができる。他の事前チェックはネットワーク容量チェックを含み、対象シフトサービスは、ネットワークがネットワークスパンを伴うことなく現在の帯域幅を維持できるかどうかをチェックする。さらに、ネットワークインターフェースベースの情報をチェックすることができる。例えば、対象シフトサービスは、ネイバーネットワークインターフェースが確実に一致している（競合していない）ようにするためにネイバーネットワークインターフェースをクロスチェックできる。さらに、対象となるシフトサービスは、それらのエンド間のスパンに対して、多数のインターフェースが第１及び第２のエンド上のそれぞれで等しいかどうかをチェックすることができる。追加チェックは、コストパラメータが等しいかどうかの判定など、現在の構成パラメータに基づくことができる。
【００２７】
事前チェックの後、トラフィックのシフトが発生するルータの最終リストを取得する。処理ブロック６６０では、トラフィックシフトが発生する。６７０に示す通り、並列的な書き込みを使用して、ほぼ同時に、各ネットワークデバイスにコスト構成情報を書き込むことができる。代替的には、書き込みは、連続的、または一部のデバイスでは並列的に、一部のデバイスでは連続的にする組み合わせなどの他の所望の順序で行うことができる。デバイスの並列的な書き込みは、全体のネットワークスパンが同様の期間に確実に減速するようにする。処理ブロック６８０では、トラフィックを実際に減速していることを確実にするために、トラフィックシフトサービスがネットワークデバイスに問い合わせることができる事後チェックを行う。トラフィック量を所定レベルと比較することができ、トラフィック量が依然として変わらない場合、エラーメッセージを送信することができる。別様には、ネットワークデバイスはネットワークから安全に取り外すことができる。
【００２８】
図７は、トラフィックシフトのための別の実施形態によるフローチャートである。処理ブロック７１０では、ネットワークから取り外されることになるネットワークデバイスについて識別情報を受信することができる。上述した通り、ネットワークデバイスは、ルータ、スイッチ、ブリッジ、ハブ等とすることができる。識別情報は、ＧＵＩＤなどのアドレスまたは識別子とすることができる。識別情報は、１つ以上のサーバコンピュータ上で実行することができるトラフィックシフトサービスで受信することができる。処理ブロック７２０では、識別されたネットワークデバイスが構成情報及びネットワークトポロジ情報について問い合わせを受ける発見段階が行われる。構成情報及びネットワークトポロジ情報は、通常、各ネットワークデバイス上に格納された情報である。ただし、構成及びネットワークトポロジ情報は、他のサービスを問い合わせることからも判断することができる。処理ブロック７３０では、構成情報及びネットワークトポロジ情報が一致するかどうかの判定が行われる。ゆえに、ネイバーデバイスが、取り外されているネットワークデバイス上で取得された情報と同じ（または競合しない）情報を有するかどうかのチェックが行われる。１つの例では、コストパラメータは全てのデバイスにわたって同じにならなければならず、コストが同じでない場合、エラー状態が存在する。別の例では、１つのデバイスがあるデバイスをネイバーとして識別するが当該ネイバーデバイスは他方を識別しないのとは対照的に、各デバイスが対応するデバイスをネイバーとして挙げるかどうかを調べるために、ネットワークトポロジ情報がクロスチェックされる。処理ブロック７４０では、ネットワークから装置を取り外すのに十分なネットワーク容量があるかどうかの判定を行うことができる。このような判定は、ネットワークデバイスのネイバーに対する容量チェックを含むことができる。処理ブロック７５０では、ネットワークトラフィックがネットワークデバイスからシフトされる。このようなシフトは、デバイス内の各インターフェース上のコストパラメータを増加させることによって発生する。ルーティング決定に影響を及ぼすポリシー情報のいずれかを変更するなど、ネットワークトラフィックをシフトさせるために他の技法を使用することができる。ネットワークトラフィックのシフトとは、ネットワークデバイスをネットワークから物理的に取り外すことができるよう、ネットワークデバイス全体（全てのインターフェース）に対して行うことができる。
【００２９】
図８は、ネットワークトラフィックをシフトさせる別の実施形態による方法のフローチャートを示す。処理ブロック８１０では、トラフィックがシフトされているネットワークデバイスに対して識別情報が受信される。識別情報は、ＧＵＩＤまたはアドレスなどの様々な形態で作成することができる。処理ブロック８２０では、１つ以上の事前チェックを行うことができる。このような事前チェックは、ネットワークデバイス自体から取得された情報に基づいて行うことができるか、またはネットワークデバイスに格納された情報とは無関係に取得された情報に基づいて行うことができる。結果的に、事前チェックには発見段階の発生が必要ない。事前チェックは、一般的に、ネットワークデバイスをネットワークから安全に確実に取り外すことができるように選択される。１つの例では、事前チェックは、ネットワークトラフィックがネットワーク上の他のネットワークデバイスを通じてルーティングできること及び一度ネットワークデバイスが取り外されると、このようなネットワークデバイスがネットワークトラフィックの増加を処理するのに十分な容量を有することを判定することを含むことができる。他の事前チェックには、ネットワークデバイスが、取り外す必要のないデバイスのブラックリストにあるかどうかのチェックを含むことがある。さらに、発見段階を行う場合、コストパラメータなどの構成パラメータをネイバーデバイスに対してチェックして、デバイスにわたって確実に一致しているようにすることができる。事前チェック段階中にエラーが発生すると、エラー状態を生成することができ、ネットワークトラフィックのシフトを終了することができる。処理ブロック８３０では、ネットワークデバイスを構成することができ、これによって、ルーティング構成パラメータが変更され、ネットワークデバイスへのパケットのルーティングが望ましくない状態になることがある。１つの例では、コストパラメータが変更され、コストパラメータがネイバーデバイスに伝搬され、その結果、トラフィックが高コストでネットワークデバイスからシフトされる。他の例では、ポリシー情報を変更し、ネイバーデバイスによって、ネットワークデバイスへのルーティングがあまり望ましくない状態になることがある。ポリシー情報の例は、ウェイトパラメータ、ローカルプリファレンスパラメータ、ＡＳ経路パラメータ等を含むことができる。ルーティング構成情報の変更は、インターフェースごとに行うことができ、全てのインターフェースを同じ方法で変更してネットワークデバイス上のトラフィックの量を減らすことができる。トラフィックが閾値を下回るほど低下したことを確実にするのに加え、事後チェックを行うことができる。
【００３０】
図９は、記載した革新が実装され得る、好適なコンピューティング環境９００の一般例を図示する。技術革新が多様な汎用または専用コンピューティングシステムに実装されてよいため、コンピューティング環境９００は、使用または機能の範囲に関して何ら限定を示唆するものではない。例えば、コンピューティング環境９００は、様々なコンピューティングデバイスのいずれかとすることができ、トラフィックシフトサービスとして使用することができる。
【００３１】
図９を参照すると、コンピューティング環境９００は、１つ以上の処理装置９１０、９１５及びメモリ９２０、９２５を含む。図９では、この基本構成９３０は点線内に含まれている。処理装置９１０、９１５は、コンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）内のプロセッサまたは他の任意の種類のプロセッサとすることができる。マルチ処理システムでは、複数の処理装置が処理能力を高めるためにコンピュータ実行可能命令を実行する。例えば、図９は、中央処理装置９１０ならびにグラフィック処理装置またはコプロセッシング装置９１５を示す。有形メモリ９２０、９２５は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等）または処理装置（複数可）によってアクセス可能な２つの何らかの組み合わせを含んでよい。メモリ９２０、９２５は、処理装置（複数可）による実行に適したコンピュータ実行可能命令の形態で、本明細書に記載の１つ以上の革新を実装するソフトウェア９８０を格納する。
【００３２】
コンピューティングシステムは追加の特性を有してよい。例えば、コンピューティング環境９００は、ストレージ９４０、１つ以上の入力装置９５０、１つ以上の出力装置９６０及び１つ以上の通信接続９７０を含む。バス、コントローラまたはネットワークなどの相互接続機構（図示せず）は、コンピューティング環境９００の構成要素を相互接続する。通常、オペレーティングシステムソフトウェア（図示せず）は、コンピューティング環境９００内で実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境９００の構成要素の動作を調整する。
【００３３】
有形ストレージ９４０は、取り外し可能または取り外し不能であってよく、磁気ディスク、磁気テープもしくはカセット、ＣＤ−ＲＯＭ、ＤＶＤまたは情報を非一時的に格納するために使用することができ、コンピューティング環境９００内でアクセスすることができる他の媒体であってよい。ストレージ９４０は、本明細書に記載する１つ以上の革新を実装するソフトウェア９８０のための命令を格納する。
【００３４】
入力デバイス（複数可）９５０は、キーボード、マウス、ペンまたはトラックボールなどのタッチ入力デバイス、音声入力デバイス、走査デバイスまたはコンピューティング環境９００に入力を提供する別のデバイスであってよい。出力デバイス（複数可）９６０は、ディスプレイ、プリンタ、スピーカ、ＣＤライタまたはコンピューティング環境９００からの出力を提供する別のデバイスであってよい。
【００３５】
通信接続（複数可）９７０は、通信媒体を介して別のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、音声もしくは映像入力もしくは出力または変調データ信号内の他のデータなどの情報を伝達する。変調されたデータ信号は、信号内の情報を符号化するようにその特徴の１つ以上が設定または変更された信号である。限定ではなく一例として、通信媒体は、電気、光学、ＲＦまたは他の搬送波を使用することができる。
【００３６】
本開示の実施形態は、以下の条項を鑑みて説明できる。
【００３７】
１．ネットワーク上でトラフィックをネットワークデバイスからシフトする方法であって、
前記ネットワークデバイスの識別情報を受信することと、
前記ネットワークデバイスが構成情報及びネットワークトポロジ情報について問い合わせを受ける、発見段階を行うことと、
前記ネットワークトポロジ情報及び前記構成情報が前記ネットワークデバイスとネイバーネットワークデバイスとの間で一致しているかどうかを判定することと、
前記ネットワークが、前記ネットワークデバイスを使用することなくトラフィックをルーティングするのに十分な容量を有するかどうかを判定することと、
前記ネットワークデバイスに格納されたルーティング構成情報を変更することによって、前記ネットワークデバイスからネットワークトラフィックをシフトすることと、
一定期間が経過した後、前記ネットワークデバイス上の前記ネットワークトラフィックが所定の閾値を下回って減少したことをチェックすることと、
を備える、前記方法。
【００３８】
２．前記ネットワークトポロジ情報は、前記問い合わされたネットワークデバイスに接続されているネイバーネットワークデバイスの識別を含む、条項１に記載の方法。
【００３９】
３．前記ネットワークトポロジ情報が一致しているかどうかを判定することは、前記ネイバーネットワークデバイス上のネットワークトポロジ情報が前記問い合わされたネットワークデバイス上の前記ネットワークトポロジ情報と競合していないことをチェックすることを含む、条項２に記載の方法。
【００４０】
４．前記ルーティング構成情報の前記変更は、前記ネットワークデバイス上の各インターフェースに関連するコストパラメータを変更すること、または前記ネットワークデバイス上の外部ボーダゲートウェイプロトコル（ＢＧＰ）ピアまたはピアグループに関連するルーティングポリシー情報を変更すること含む、先行条項のいずれかに記載の方法。
【００４１】
５．前記ネットワークが十分な容量を有するかどうか前記判定することは、ネットワークトラフィックの現在の容量を判定することと、代替的なネットワークデバイス及び前記ネットワーク内の関連リンクが前記ネットワークトラフィックの現在の容量を処理するのに十分な帯域幅を有するかどうかを判定することとを含む、先行条項のいずれかに記載の方法。
【００４２】
６．実行時に、コンピュータシステムに、
ネットワークトラフィックがシフトされることになるネットワークデバイスの識別情報を受信することであって、前記ネットワークデバイスはネットワーク内にある、前記受信することと、
前記ネットワークデバイスを前記ネットワークから取り外すことができるかどうかの判定を行う事前チェックを行うことと、
トラフィックを前記ネットワークデバイスからシフトできるように、前記ネットワークデバイスに格納されたルーティング構成情報を変更することによって、前記ネットワークデバイスを構成することと、
を行わせる命令を含む、コンピュータ可読記憶媒体。
【００４３】
７．前記事前チェックを前記行うことは、
前記ネットワークデバイスのネットワークトポロジ情報を決定することと、
前記ネットワークトポロジ情報が前記ネットワークデバイス及びネイバーネットワークデバイスにわたって一致していることを判定することと、
を備える、条項６によるコンピュータ可読記憶媒体。
【００４４】
８．前記ネットワーク情報が一致していることの前記判定は、前記ネットワークデバイスが前記ネイバーネットワークデバイスを識別し、前記ネイバーネットワークデバイスが前記ネットワークデバイスを識別することをチェックすることを含む、条項７によるコンピュータ可読記憶媒体。
【００４５】
９．前記事前チェックを前記行うことは、
一度前記ネットワークトラフィックが前記ネットワークデバイスからシフトされると、ネットワーク容量が十分であると判定すること
を備える、条項６または７によるコンピュータ可読記憶媒体。
【００４６】
１０．前記事前チェックを前記行うことは、
ネイバーネットワークデバイスに接続するために使用され、ルーティングプロトコルに含まれている前記ネットワークデバイス上のインターフェースを決定すること
を備える、条項６〜９のいずれかによるコンピュータ可読記憶媒体。
【００４７】
１１．前記ルーティング構成情報を前記変更することは、ルーティングポリシーを変更すること、または前記ネットワークデバイス上のコストパラメータを増加することを含む、条項６〜１０のいずれかによるコンピュータ可読記憶媒体。
【００４８】
１２．前記命令は、実行時に、前記コンピュータシステムにさらに、
前記構成後及び所定の期間の後、前記ネットワークデバイス上のネットワークトラフィックが閾値レベルを下回って低下したかどうかをチェックさせる、
条項６〜１１のいずれかによるコンピュータ可読記憶媒体。
【００４９】
１３．前記コンピュータシステムにさらに、
現在のコスト設定について前記ネットワークデバイスを問い合わせ、ネイバーデバイスのコスト設定が前記現在のコスト設定と等しいかどうかを判定させる命令をさらに含む、条項６〜１２のいずれかによるコンピュータ可読記憶媒体。
【００５０】
１４．前記識別情報を受信することは前記ネットワークデバイスのアドレスを受信することを含む、条項６〜１３のいずれかによるコンピュータ可読記憶媒体。
【００５１】
１５．実行時に、前記コンピュータシステムに、
構成情報が前記ネットワークデバイスから取得される発見段階を行わせる命令をさらに含む、条項６〜１４のいずれかによるコンピュータ可読記憶媒体。
【００５２】
１６．前記ルーティング構成情報を前記変更することは、前記ネットワークデバイス上の外部ボーダゲートウェイプロトコル（ＢＧＰ）ピアまたはピアグループに関連するルーティングポリシー情報を変更することを含む、条項６〜１５のいずれかによるコンピュータ可読記憶媒体。
【００５３】
１７．前記命令は、実行時に、前記コンピュータシステムにさらに、
前記構成後及び所定の期間の後、前記ルーティング構成情報が更新されたことを確実にするために、プロトコル状態情報をチェックさせる、
条項６〜１６のいずれかによるコンピュータ可読記憶媒体。
【００５４】
１８．システムであって、
データセンタ内の第１のネットワークデバイスと、
ネットワークデバイスのセットであって、前記第１のネットワークデバイス及び前記ネットワークデバイスのセットは、その間にネットワーク内でネットワーク接続を確立するための通信経路を有する、前記ネットワークデバイスのセットと、
サーバコンピュータであって、
第１のネイバー情報について前記第１のネットワークデバイスを問い合わせることと、
第２のネイバー情報について前記ネットワークデバイスのセットを問い合わせることと、
前記第１のネイバー情報及び第２のネイバー情報が一致していることをチェックすることと、
ネットワークトラフィックを前記第１のネットワークデバイスからシフトできるよう、ルーティング構成情報を前記第１のネットワークデバイスに書き込むことと
を行うように動作可能な前記サーバコンピュータと
を備える、前記システム。
【００５５】
１９．前記ルーティング構成情報はポリシーまたはコスト情報を含む、条項１８に記載のシステム。
【００５６】
２０．前記サーバコンピュータはさらに、
前記第１のネットワークデバイスが前記ネットワークから取り外された場合に、ネットワーク容量がネットワークトラフィックを維持するのに十分かどうかを判定するように動作可能である、条項１８または１９に記載のシステム。
【００５７】
２１．前記サーバコンピュータはさらに、前記第１のネットワークデバイス及び前記ネットワークデバイスのセットの現在のコストパラメータを問い合わせ、前記コストパラメータが前記第１のネットワークデバイスと前記ネットワークデバイスのセットとの間で確実に一致するように動作可能である、条項１８〜２０のいずれかに記載のシステム。
【００５８】
２２．前記第１のネットワークデバイスはルータであり、前記サーバコンピュータはさらに、
前記ルーティング構成情報の前記書き込み後及び所定の期間の後、前記ネットワークトラフィックが閾値レベルを下回って確実に低下するように前記ネットワークデバイス上のネットワークトラフィックをチェックすることを行うように動作可能である、条項１８〜２１のいずれかに記載のシステム。
【００５９】
２３．前記ネットワークデバイスのセットは前記データセンタまたは別のデータセンタ内にある、条項１８〜２２のいずれかに記載のシステム。
【００６０】
開示された方法のいくつかの動作は、特に好適な提示のための順序で記載されるが、以下に記載される特定の文言が特定の順序を必要としない限り、この方式の記載が再編成を包含することを理解するべきである。例えば、順次記載された動作は、いくつかの場合において、再編成されるか、または同時に実行されてよい。さらに、簡単にするために、添付の図面は、他の方法と併せて開示された方法を使用可能である様々な方式を示さない場合がある。
【００６１】
開示された方法のいずれかは、１つ以上のコンピュータ可読記憶媒体（例えば、１つ以上の光学媒体ディスク、揮発性メモリ構成要素（ＤＲＡＭもしくはＳＲＡＭなど）または不揮発性メモリ構成要素（フラッシュメモリもしくはハードドライブなど））上に格納され、コンピュータ（例えば、スマートフォンまたはコンピューティングハードウェアを含む他の携帯機器を含む、任意の市販のコンピュータ）上で実行されるコンピュータ実行可能命令として実装されることができる。コンピュータ可読記憶媒体という用語は、信号及び搬送波などの通信接続を含まない。開示された技法を実装するためのコンピュータ実行可能命令のいずれかだけでなく、開示された実施形態の実施中に作成され使用される任意のデータも、１つ以上のコンピュータ可読記憶媒体上に格納されることが可能である。コンピュータ実行可能命令は、例えば、ウェブブラウザまたは他のソフトウェアアプリケーション（リモートコンピューティングアプリケーションなど）を介してアクセスまたはダウンロードされる専用のソフトウェアアプリケーションまたはソフトウェアアプリケーションの部分であることが可能である。このようなソフトウェアは、例えば、１つ以上のネットワークコンピュータを使用して、単一のローカルコンピュータ（例えば、任意の適切な市販のコンピュータ）上で、またはネットワーク環境内で（例えば、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、クライアントサーバネットワーク（クラウドコンピューティングネットワークなど）、または他のこのようなネットワークを介して）実装されることが可能である。
【００６２】
明確にするために、ソフトウェアベースの実装の特定の選択された態様のみを記載する。当該技術分野において周知である他の詳細を省略する。例えば、開示された技術が任意の特定のコンピュータ言語またはプログラムに限定されないことを理解するべきである。例えば、開示された技術は、Ｃ＋＋、Ｊａｖａ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ、Ａｄｏｂｅ  Ｆｌａｓｈまたは任意の他の適切なプログラミング言語で書き込まれたソフトウェアにより実装されることが可能である。同様に、開示された技術は、任意の特定のコンピュータまたはハードウェアの種類に限定されない。適切なコンピュータ及びハードウェアの特定の詳細は、周知であり本開示で詳細に記載される必要がない。
【００６３】
ソフトウェアの代わりに、少なくとも部分的に、１つ以上のハードウェア論理コンポーネントが本明細書に記載した任意の機能を実行可能であることを理解すべきである。例えば、限定しないが、使用可能な例示的な種類のハードウェア論理構成要素は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム用途向け集積回路（ＡＳＩＣ）、プログラム用途向け標準品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）等を含む。
【００６４】
さらに、ソフトウェアベースの実施形態（例えば、コンピュータに開示された方法のいずれかを行わせるコンピュータ実行可能命令を備える）のいずれかは、適切な通信手段を通じて、アップロード、ダウンロードまたは遠隔でアクセスされることが可能である。このように適切な通信手段は、例えば、インターネット、ワールドワイドウェブ、イントラネット、ソフトウェアアプリケーション、ケーブル（光ファイバケーブルを含む）、磁気通信、電磁通信（ＲＦ、マイクロ波及び赤外線通信を含む）、電子通信または他のこのような通信手段を含む。
【００６５】
さらに、共に「連結される」として記載される構成要素は、１つ以上の仲介する構成要素がその間に挿入されるときなどに、直接的に接続されるか、または間接的に接続される構成要素を含む。
【００６６】
開示された方法、装置及びシステムは、決して限定するものとして解釈されるべきではない。代わりに、本開示は、単独でならびに互いに関して様々な組み合わせ及び副次的な組み合わせで、様々な開示された実施形態の全ての新規で非自明な特性及び態様に対して行われる。開示された方法、装置及びシステムは、任意の特定の態様または特性またはそれらの組み合わせに限定されず、開示された実施形態は、任意の１つ以上の特定の利点が存在する必要がなく、さらに問題を解決する必要もない。
【００６７】
開示された本発明の原理を適用し得る多くの可能な実施形態の観点から、例示された実施形態が本発明の好適な例のみであること、及び本発明の範囲を限定するものとして解釈すべきではないことを認識するべきである。むしろ、本発明の範囲は、以下の特許請求の範囲により定義される。したがって、発明者らは、発明者らの発明として、これらの特許請求の範囲内に該当する全てのものを主張する。
【図１】
2019503611.tif 000003
【図２】
2019503611.tif 000004
【図３】
2019503611.tif 000005
【図４】
2019503611.tif 000006
【図５】
2019503611.tif 000007
【図６】
2019503611.tif 000008
【図７】
2019503611.tif 000009
【図８】
2019503611.tif 000010
【図９】
2019503611.tif 000011
【国際調査報告】
2019503611.tif 000012
2019503611.tif 000013