(57)【要約】【課題】負荷分散を実現するための方法、装置、およびネットワークシステムを提供する。【解決手段】コントローラは、meshネットワークにおける第1のスイッチの各ポートのポート属性を取得し、第1のスイッチの各ポートのポート属性に従って、第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスを決定し、第1のスイッチのすべてのユーザ側ポートが第1の仮想ルーティング・転送インスタンスに対応し、コントローラは、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成し、転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含み、コントローラは、転送テーブルを第1のスイッチに送信する。【選択図】図６
2018191290.tif 000002
【特許請求の範囲】
【請求項１】
負荷分散を実現するための方法であって、前記方法はコントローラとメッシュネットワークとを含むシステムに適用され、前記メッシュネットワークは複数のスイッチを含み、前記方法は前記コントローラによって実行され、
第1のスイッチの各ポートのポート属性を取得するステップであって、前記第1のスイッチは前記メッシュネットワーク内のいずれかのスイッチであり、前記ポート属性は、前記ポートがユーザ側ポートまたはネットワーク側ポートであることを示すために使用される、ステップと、
前記第1のスイッチの各ポートのポート属性に従って、前記第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスを決定するステップであって、ユーザ側ポートおよびネットワーク側ポートが異なる仮想ルーティング・転送インスタンスに対応し、前記第1のスイッチのすべてのユーザ側ポートが第1の仮想ルーティング・転送インスタンスに対応する、ステップと、
前記メッシュネットワークのトポロジおよび前記第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、前記第1のスイッチの転送テーブルを生成するステップであって、前記転送テーブルの第1の転送エントリは、前記第1の仮想ルーティング・転送インスタンス、前記第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含む、ステップと、
前記転送テーブルを前記第1のスイッチに送信するステップであって、前記転送テーブルは、前記第1のスイッチが、負荷分散アルゴリズムおよび前記第1の転送エントリに従って、前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から、前記第1の宛先ネットワークセグメントに対応するパケットのターゲット転送経路を選択することを可能にするために使用される、ステップと
を含む、方法。
【請求項２】
第1のスイッチの各ポートのポート属性を取得する前記ステップは、
前記第1のスイッチに通知メッセージを送信するステップであって、前記通知メッセージは、前記第1のスイッチに、前記第1のスイッチのすべてのポートから探索メッセージを送信するように命令するために使用され、前記探索メッセージは、前記探索メッセージを受信するデバイスに、前記コントローラに報告メッセージを送信するように命令するために使用される、ステップと、
前記第1のスイッチの各ポートに接続されたデバイスが報告メッセージを送信するかどうかに基づいて前記第1のスイッチの各ポートのポート属性を判定するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記第1のスイッチの各ポートに接続されたデバイスが報告メッセージを送信するかどうかに基づいて前記第1のスイッチの各ポートのポート属性を判定する前記ステップは、
前記報告メッセージを受信するステップであって、前記報告メッセージは、前記報告メッセージを送信するデバイスの種類と、前記第1のスイッチが前記デバイスに前記探索メッセージを送信するためのポートの識別子とを含む、ステップと、
前記報告メッセージを送信するデバイスの種類を判定するステップと、前記報告メッセージを送信するデバイスが別のスイッチである場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをネットワーク側ポートと判定するステップ、または前記報告メッセージを送信するデバイスがサーバである場合、前記第1のスイッチが前記サーバに前記探索メッセージを送信するためのポートをユーザ側ポートと判定するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記第1のスイッチに前記通知メッセージを送信した後で、前記第1のスイッチ上の、指定された期間内に報告されないポートをユーザ側ポートと判定するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
前記メッシュネットワークは、レベル2・メッシュネットワークであり、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをネットワーク側ポートと判定する前記ステップは、
前記第1のスイッチと前記別のスイッチとが同じスイッチグループに属する場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをグループ内ポートと判定するステップ、および
前記第1のスイッチと前記別のスイッチとが異なるスイッチグループに属する場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをグループ間ポートと判定するステップ
の一方を含む、請求項4に記載の方法。
【請求項６】
前記第1のスイッチのすべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、前記第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含み、
前記第1のスイッチのすべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応し、前記第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む、
請求項5に記載の方法。
【請求項７】
前記メッシュネットワークのトポロジおよび前記第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、前記第1のスイッチの転送テーブルを生成する前記ステップは、
前記複数のスイッチの各々について構成されたネットワークセグメントを取得して複数のネットワークセグメントを取得し、前記複数のネットワークセグメントにおける送信元ネットワークセグメントおよび宛先ネットワークセグメントを決定するステップであって、前記送信元ネットワークセグメントは前記複数のネットワークセグメントのうちのいずれか1つであり、前記宛先ネットワークセグメントは、前記送信元ネットワークセグメントを除く前記複数のネットワークセグメントのうちのいずれか1つである、ステップと、
前記メッシュネットワークのトポロジに従って、前記送信元ネットワークセグメントから前記宛先ネットワークセグメントまでのN個の転送経路を決定し、前記N個の転送経路内のi番目の転送経路上の宛先スイッチ以外のスイッチごとに前記i番目の転送経路に対応するルートエントリを生成するステップであって、各ルートエントリは、仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、次のホップ、および出口ポートを含み、iは、N以下の自然数である、ステップと、
前記第1のスイッチのすべてのルートエントリに従って、各仮想ルーティング・転送インスタンス内の前記第1のスイッチの各宛先ネットワークセグメントに対応する転送経路を決定して、前記第1のスイッチの転送テーブルを生成するステップと
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
コントローラとメッシュネットワークとを含むシステムに適用される、負荷分散を実現するための方法であって、前記メッシュネットワークは複数のスイッチを含み、前記方法は第1のスイッチによって実行され、前記第1のスイッチは前記複数のスイッチのうちのいずれか1つであり、前記第1のスイッチは複数のポートを含み、前記複数のポートはネットワーク側ポートおよびユーザ側ポートを含み、ユーザ側ポートおよびネットワーク側ポートは異なる仮想ルーティング・転送インスタンスに対応し、前記方法は、
前記コントローラによって送信された転送テーブルを受信するステップであって、前記転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、前記第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含み、前記第1の仮想ルーティング・転送インスタンスは、前記第1のスイッチのすべてのユーザ側ポートに対応する仮想ルーティング・転送インスタンスである、ステップと、
パケットを受信するステップと、
前記パケットを受信するポートがユーザ側ポートであり、前記パケットが前記第1の宛先ネットワークセグメントに対応するパケットであるとき、負荷分散アルゴリズムおよび前記第1の転送エントリに従って、前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から前記パケットのターゲット転送経路を選択し、前記ターゲット転送経路を使用して前記パケットを転送するステップと
を含む、方法。
【請求項９】
前記コントローラによって送信された転送テーブルを受信する前記ステップの前に、前記方法は、
前記コントローラによって送信された通知メッセージを受信するステップと、
前記通知メッセージに従って前記第1のスイッチのすべてのポートに探索メッセージを送信するステップであって、前記探索メッセージは、前記探索メッセージを受信するデバイスに、前記コントローラに報告メッセージを送信するように命令するために使用される、ステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記方法は、
第2のスイッチによって送信された第2の探索メッセージを受信するステップであって、前記第2の探索メッセージは、前記第2のスイッチの識別子および前記第2のスイッチが前記第1のスイッチに前記第2の探索メッセージを送信するためのポートの識別子を含む、ステップと、
前記第2の探索メッセージに従って前記コントローラに第2の報告メッセージを送信するステップであって、前記第2の報告メッセージは、前記第2のスイッチが前記第1のスイッチに前記第2の探索メッセージを送信するためのポートのポート属性を前記コントローラが判定するように、前記第2のスイッチが前記第1のスイッチに前記第2の探索メッセージを送信するためのポートの識別子を含む、ステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記ネットワーク側ポートは、グループ内ポートおよびグループ間ポートを含み、
前記第1のスイッチのすべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、前記第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含み、
前記第1のスイッチのすべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応し、前記第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む、
請求項8から9のいずれか一項に記載の方法。
【請求項１２】
コントローラであって、前記コントローラは、前記コントローラとメッシュネットワークとを含むシステムに適用され、前記メッシュネットワークは複数のスイッチを含み、前記コントローラは、
第1のスイッチの各ポートのポート属性を取得するように構成された取得ユニットであって、前記第1のスイッチは前記メッシュネットワーク内のいずれかのスイッチであり、前記ポート属性は、前記ポートがユーザ側ポートまたはネットワーク側ポートであることを示すために使用される、取得ユニットと、
前記第1のスイッチの各ポートのポート属性に従って、前記第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスを決定するように構成された判定ユニットであって、ユーザ側ポートおよびネットワーク側ポートが異なる仮想ルーティング・転送インスタンスに対応し、前記第1のスイッチのすべてのユーザ側ポートが第1の仮想ルーティング・転送インスタンスに対応する、判定ユニットと、
前記メッシュネットワークのトポロジおよび前記第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、前記第1のスイッチの転送テーブルを生成するように構成された生成ユニットであって、前記転送テーブルの第1の転送エントリは、前記第1の仮想ルーティング・転送インスタンス、前記第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含む、生成ユニットと、
前記転送テーブルを前記第1のスイッチに送信するように構成された送信ユニットであって、前記転送テーブルは、前記第1のスイッチが、負荷分散アルゴリズムおよび前記第1の転送エントリに従って、前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から、前記第1の宛先ネットワークセグメントに対応するパケットのターゲット転送経路を選択することを可能にするために使用される、送信ユニットと
を含む、コントローラ。
【請求項１３】
前記取得ユニットは、具体的には、
前記第1のスイッチに通知メッセージを送信し、前記通知メッセージは、前記第1のスイッチに、前記第1のスイッチのすべてのポートから探索メッセージを送信するように命令するために使用され、前記探索メッセージは、前記探索メッセージを受信するデバイスに、前記コントローラに報告メッセージを送信するように命令するために使用され、
前記第1のスイッチの各ポートに接続されたデバイスが報告メッセージを送信するかどうかに基づいて前記第1のスイッチの各ポートのポート属性を判定する
ように構成された、請求項12に記載のコントローラ。
【請求項１４】
前記第1のスイッチの各ポートに接続されたデバイスが報告メッセージを送信するかどうかに基づいて前記第1のスイッチの各ポートのポート属性を判定するとき、前記取得ユニットは、
前記報告メッセージを受信するように構成され、前記報告メッセージは前記報告メッセージを送信するデバイスの種類と、前記第1のスイッチが前記デバイスに前記探索メッセージを送信するためのポートの識別子とを含み、
前記取得ユニットは、前記デバイスの種類を判定し、前記デバイスが別のスイッチである場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをネットワーク側ポートと判定し、または前記デバイスがサーバである場合、前記第1のスイッチが前記サーバに前記探索メッセージを送信するためのポートをユーザ側ポートと判定するように構成された、請求項13に記載のコントローラ。
【請求項１５】
前記取得ユニットは、
前記第1のスイッチに前記通知メッセージを送信した後、前記第1のスイッチ上の、指定された期間内に報告されないポートをユーザ側ポートと判定する
ようにさらに構成された、請求項14に記載のコントローラ。
【請求項１６】
前記メッシュネットワークは、レベル2・メッシュネットワークであり、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをネットワーク側ポートと判定するとき、前記取得ユニットは、
前記第1のスイッチと前記別のスイッチとが同じスイッチグループに属する場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをグループ内ポートと判定し、または前記第1のスイッチと前記別のスイッチとが異なるスイッチグループに属する場合、前記第1のスイッチが前記別のスイッチに前記探索メッセージを送信するためのポートをグループ間ポートと判定する
ように構成された、請求項15に記載のコントローラ。
【請求項１７】
前記第1のスイッチのすべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、前記第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含み、
前記第1のスイッチのすべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応し、前記第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む、
請求項16に記載のコントローラ。
【請求項１８】
前記生成ユニットは、
前記複数のスイッチの各々について構成されたネットワークセグメントを取得して複数のネットワークセグメントを取得し、前記複数のネットワークセグメントにおける送信元ネットワークセグメントおよび宛先ネットワークセグメントを決定するように構成され、前記送信元ネットワークセグメントは前記複数のネットワークセグメントのうちのいずれか1つであり、前記宛先ネットワークセグメントは、前記送信元ネットワークセグメントを除く前記複数のネットワークセグメントのうちのいずれか1つであり、
前記生成ユニットは、前記メッシュネットワークのトポロジに従って、前記送信元ネットワークセグメントから前記宛先ネットワークセグメントまでのN個の転送経路を決定し、前記N個の転送経路内のi番目の転送経路上の宛先スイッチ以外のスイッチごとに前記i番目の転送経路に対応するルートエントリを生成するように構成され、各ルートエントリは、仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、次のホップ、および出口ポートを含み、iはN以下の自然数であり、
前記生成ユニットは、前記第1のスイッチのすべてのルートエントリに従って、各仮想ルーティング・転送インスタンス内の前記第1のスイッチの各宛先ネットワークセグメントに対応する転送経路を決定して、前記第1のスイッチの転送テーブルを生成するように構成された、請求項12から17のいずれか一項に記載のコントローラ。
【請求項１９】
コントローラとメッシュネットワークとを含むシステムに適用される、スイッチであって、前記メッシュネットワークは複数のスイッチを含み、前記スイッチは前記複数のスイッチのうちのいずれか1つであり、前記スイッチは複数のポートを含み、前記複数のポートはネットワーク側ポートおよびユーザ側ポートを含み、ユーザ側ポートおよびネットワーク側ポートは異なる仮想ルーティング・転送インスタンスに対応し、前記スイッチは、
前記コントローラによって送信された転送テーブルを受信するように構成された第1の受信ユニットであって、前記転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、前記第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含み、前記第1の仮想ルーティング・転送インスタンスは、前記スイッチのすべてのユーザ側ポートに対応する仮想ルーティング・転送インスタンスである、第1の受信ユニットと、
パケットを受信するように構成された、第2の受信ユニットと、
前記パケットを受信するポートがユーザ側ポートであり、前記パケットが前記第1の宛先ネットワークセグメントに対応するパケットであるとき、負荷分散アルゴリズムおよび前記第1の転送エントリに従って、前記第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から前記パケットのターゲット転送経路を選択し、前記ターゲット転送経路を使用して前記パケットを転送するように構成された、転送ユニットと
を含む、スイッチ。
【請求項２０】
前記第1の受信ユニットは、前記コントローラによって送信された通知メッセージを受信するようにさらに構成され、
前記スイッチは、前記通知メッセージに従って前記スイッチのすべてのポートに探索メッセージを送信するように構成された、第1の送信ユニットであって、前記探索メッセージは、前記探索メッセージを受信するデバイスに、前記コントローラに報告メッセージを送信するように命令するために使用される、第1の送信ユニットをさらに含む
請求項19に記載のスイッチ。
【請求項２１】
別のスイッチによって送信された第2の探索メッセージを受信するように構成された第3の受信ユニットであって、前記第2の探索メッセージは、前記別のスイッチの識別子および前記別のスイッチが前記スイッチに前記第2の探索メッセージを送信するためのポートの識別子を含む、第3の受信ユニットと、
前記第2の探索メッセージに従って前記コントローラに第2の報告メッセージを送信するように構成された第2の送信ユニットであって、前記第2の報告メッセージは、前記別のスイッチが前記スイッチに前記第2の探索メッセージを送信するためのポートのポート属性を前記コントローラが判定するように、前記別のスイッチが前記スイッチに前記第2の探索メッセージを送信するためのポートの識別子を含む、第2の送信ユニットと
をさらに含む、請求項20に記載のスイッチ。
【請求項２２】
前記ネットワーク側ポートは、グループ内ポートおよびグループ間ポートを含み、
前記スイッチのすべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、前記第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含み、
前記スイッチのすべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応し、前記第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、前記第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および前記宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む、
請求項19から21のいずれか一項に記載のスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、ネットワーク通信技術、詳細には、負荷分散を実現するための方法、装置、およびネットワークシステムに関する。
【背景技術】
【０００２】
クラウドコンピューティング時代には、ネットワーク・データ・トラフィック・モデルが大きく変化する。データトラフィックの16％は電気通信事業者ネットワーク上で搬送され、データトラフィックの14％は企業ネットワーク上で搬送され、データトラフィックの残りの70％はすべてデータ・センタ・ネットワークで流れる。データ・センタ・ネットワークのデータトラフィックと帯域幅の指数関数的な増加は、従来のネットワークの人々の想像力を大きく広げた。高い帯域幅と高いスケーラビリティが、データ・センタ・ネットワークの顧客の第一の要件になっている。データ・センタ・ネットワーク構築のボトルネックが明白になってきている。
【０００３】
前述の課題を克服するために、先行技術は、メッシュ（mesh）ネットワークと呼ばれるスケーラブルなデータ・センタ・ネットワークを提供する。meshネットワークは、すべてのスイッチが相互に接続された完全接続ネットワークである。またmeshネットワークは、レベル1・meshネットワーク、レベル2・meshネットワーク、またはマルチレベル・meshネットワークであり得る。レベル1・meshネットワーク内のあるスイッチとレベル1・meshネットワーク内の任意の他のスイッチとの間には、少なくとも1つの直接経路（すなわち、中間スイッチなしの経路）が存在する。図1は、レベル1・meshネットワークの構造の概略図である。レベル1・meshネットワークは複数のスイッチを含む（図1は合計8個のスイッチS1〜S8を表わす）。各スイッチは任意の他のスイッチと相互接続されている。複数のレベル1・meshネットワークが相互接続されてレベル2・meshネットワークが得られる。図2は、4×4レベル2・meshネットワークである。4×4レベル2・meshネットワークは、4個のレベル1・meshネットワークによって形成されたレベル2・meshネットワークである。レベル2・meshネットワークを形成する各レベル1・meshネットワークは、（黒点で表現された）4個のスイッチを含む。図2は一例として使用されているにすぎない。実際には、レベル2・meshネットワークに含まれる複数のレベル1・meshネットワークは、同数の、または異なる数のスイッチを有し得る。レベル2・meshネットワークのシナリオでは、任意のレベル1・meshネットワークについて、レベル1・meshネットワーク内のスイッチはレベル1・meshネットワークのグループ内デバイスと呼ばれることが可能であり、別のレベル1・meshネットワークに属するスイッチはレベル1・meshネットワークのグループ間デバイスと呼ばれる。
【０００４】
meshネットワークでは、実際、あるスイッチと別のスイッチとの間に複数の経路がある。図1のレベル1・meshネットワークが例として使用される。S1とS5との間の経路は、任意選択で、S1→S5、S1→S2→S5、S1→S3→S5、S1→S2→S3→S5などを含む。経路は、異なるホップ数と異なるオーバヘッドとを有し、したがって、不等コスト経路と呼ばれる。通常、meshネットワーク内の第1のスイッチから第2のスイッチへのパケットは、第1のスイッチと第2のスイッチとの間の最短経路を通してのみ転送される。結果として、第1のスイッチと第2のスイッチとの間の最短経路は比較的高い負荷を有し、第1のスイッチと第2のスイッチとの間の他の経路が十分に利用されることが可能でない。複数の不等コスト経路間で負荷分散を実現するために、最短経路優先規則制限が除去される必要がある。この場合、meshネットワーク内のすべてのスイッチが完全に接続され、先行技術の転送テーブルの各エントリは、宛先ネットワークセグメントと、次のホップと、ポートのみを含むので、meshネットワークでパケットを受信するスイッチは、転送テーブルに従ってパケットの転送経路をランダムに選択する。パケットは、パケットの生存時間（英語：time to live、TTL）が0になり、パケットが廃棄されるまで、パケットの送信元スイッチ（すなわち、パケットを送信するサーバに接続されたスイッチ）によって絶えず転送され得る。最短経路優先規則制限を除去するだけでは、meshネットワークにおいて負荷分散を実現することができないことを理解できる。
【発明の概要】
【課題を解決するための手段】
【０００５】
この出願の実施形態は、負荷分散を実現するための方法、装置、およびネットワークシステムを提供し、それによってmeshネットワークにおける負荷分散を改善する。
【０００６】
この出願の第1の態様は、負荷分散を実現するための方法を提供する。この方法は、コントローラとmeshネットワークとを含むシステムに適用される。meshネットワークは複数のスイッチを含む。この方法はコントローラによって実行される。コントローラは第1のスイッチの各ポートのポート属性を取得し、第1のスイッチはmeshネットワーク内のいずれかのスイッチであり、ポート属性は、ポートがユーザ側ポートまたはネットワーク側ポートであることを示すために使用される。コントローラは、第1のスイッチの各ポートのポート属性に従って、第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスを決定する。ユーザ側ポートとネットワーク側ポートは異なる仮想ルーティング・転送インスタンスに対応し、第1のスイッチのすべてのユーザ側ポートは、第1の仮想ルーティング・転送インスタンスに対応する。コントローラは、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成する。転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含む。コントローラは、転送テーブルを第1のスイッチに送信する。転送テーブルは、第1のスイッチが、負荷分散アルゴリズムおよび第1の転送エントリに従って、第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から、第1の宛先ネットワークセグメントに対応するパケットのターゲット転送経路を選択することを可能にするために使用される。
【０００７】
この出願のスイッチのポートは、スイッチを別のデバイスに接続するためのサービスポートを指す。スイッチをいずれのデバイスにも接続しないサービスポートは考慮されない。meshネットワークは多数の不等コスト経路を含む。したがって、meshネットワークにおいて負荷分散を実現するために、最短経路優先規則制限が除去される必要がある。最短経路優先規則制限を除去することは、第1のスイッチによって、転送テーブルを生成するプロセスにおいて最短経路優先規則に従って、送信元ネットワークセグメントと宛先ネットワークセグメントの対に対して、最短経路の代わりに、複数の不等コスト経路が選択されることを示す。
【０００８】
第1の態様では、コントローラは、第1のスイッチの各ポートのポート属性を取得し、第1のスイッチのすべてのユーザ側ポートが第1の仮想ルーティング・転送インスタンスに対応することを可能にし、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成する。転送テーブルの各エントリは仮想ルーティング・転送インスタンスを含む。転送エントリは仮想ルーティング・転送インスタンスを含み、ユーザ側ポートとネットワーク側ポートは異なる仮想ルーティング・転送インスタンスに対応するので、パケットを受信した後、第1のスイッチは、パケットを受信するポートのポート属性に従って転送テーブルを探査する。これは、ユーザ側ポートから受信されたパケットがユーザ側ポートに送り返されることを回避することができ、パケットが正しく転送されることができることを保証することができる。加えて、第1の仮想ルーティング・転送インスタンスに関連した転送エントリ内の宛先ネットワークセグメントは、少なくとも2つの転送経路に対応する。したがって、サーバによって送信されたパケットを受信した後、第1のスイッチは、負荷分散アルゴリズムに従って少なくとも2つの転送経路の中から1つの転送経路を選択し、少なくとも2つの転送経路間で負荷分散を実現し得る。
【０００９】
第1の態様の第1の実施態様では、第1のスイッチの各ポートのポート属性を取得するとき、コントローラは、第1のスイッチに通知メッセージを送信する。通知メッセージは、第1のスイッチに、第1のスイッチのすべてのポートから探索メッセージを送信するように命令するために使用され、探索メッセージは、探索メッセージを受信するデバイスに、コントローラに報告メッセージを送信するように命令するために使用される。コントローラは、第1のスイッチに接続されたデバイスが報告メッセージを送信するかどうかに基づいて第1のスイッチの各ポートのポート属性を判定する。
【００１０】
第1の態様の第1の実施態様を参照して、第1の態様の第2の実施態様において、第1のスイッチの各ポートに接続されたデバイスが報告メッセージを送信するかどうかに基づいて第1のスイッチの各ポートのポート属性を判定するとき、コントローラは、報告メッセージを受信する。報告メッセージは、報告メッセージを送信するデバイスの種類と、第1のスイッチがデバイスに探索メッセージを送信するためのポートの識別子とを含む。コントローラは、デバイスの種類を判定し、デバイスが別のスイッチである場合、第1のスイッチが別のスイッチに探索メッセージを送信するためのポートをネットワーク側ポートと判定し、またはデバイスがサーバである場合、第1のスイッチがサーバに探索メッセージを送信するためのポートをユーザ側ポートと判定する。
【００１１】
第1の態様の第2の実施態様を参照して、第1の態様の第3の実施態様において、第1のスイッチに通知メッセージを送信した後、コントローラは、第1のスイッチ上の、指定された期間内に報告されないポートをユーザ側ポートと判定する。
【００１２】
第1の態様の第3の実施態様を参照して、第1の態様の第4の実施態様において、meshネットワークは、レベル2・meshネットワークであり、第1のスイッチが別のスイッチに探索メッセージを送信するためのポートをネットワーク側ポートと判定するとき、コントローラは、第1のスイッチと別のスイッチとが同じスイッチグループに属する場合、第1のスイッチが別のスイッチに探索メッセージを送信するためのポートをグループ内ポートと判定し、第1のスイッチと別のスイッチとが異なるスイッチグループに属する場合、第1のスイッチが別のスイッチに探索メッセージを送信するためのポートをグループ間ポートと判定する。
【００１３】
第1から第4の実施態様は、コントローラが、meshネットワークに接続されたスイッチの各ポートのポート属性を適時に知ることを可能にする。
【００１４】
第1の態様の第4の実施態様を参照して、第1の態様の第5の実施態様において、第1のスイッチのすべてのグループ内ポートは、第2の仮想ルーティング・転送インスタンスに対応する。第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。第1のスイッチのすべてのグループ間ポートは、第3の仮想ルーティング・転送インスタンスに対応する。第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。
【００１５】
第5の実施態様によれば、スイッチのポートは（レベル2・meshネットワークのシナリオでは）、ユーザ側ポート、グループ内ポート、およびグループ間ポートの3種類に区分される。すべてのユーザ側ポートは第1の仮想ルーティング・転送インスタンスに対応し、すべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、すべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応する。コントローラは、第1の仮想ルーティング・転送インスタンス、第2の仮想ルーティング・転送インスタンス、および第3の仮想ルーティング・転送インスタンスに基づいて第1のスイッチの転送テーブルを生成し、転送テーブルを生成するための送信元ポートとして第1のスイッチの各ポートを使用する必要がない。これは、パケットがパケットを受信するポートに転送されることを防ぎ、転送テーブルのエントリを減らし、したがって、第1のスイッチの記憶リソースを節約することができる。
【００１６】
第1の態様および第1の態様の第1から第5の実施態様のいずれか1つを参照して、第1の態様の第6の実施態様において、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成するとき、コントローラは、複数のスイッチの各々について構成されたネットワークセグメントを取得して複数のネットワークセグメントを取得し、複数のネットワークセグメントにおける送信元ネットワークセグメントおよび宛先ネットワークセグメントを決定する。送信元ネットワークセグメントは、複数のネットワークセグメントのうちのいずれか1つであり、宛先ネットワークセグメントは、送信元ネットワークセグメントを除く複数のネットワークセグメントのうちのいずれか1つである。コントローラは、meshネットワークのトポロジに従って、送信元ネットワークセグメントから宛先ネットワークセグメントまでのN個の転送経路を決定し、N個の転送経路内のi番目の転送経路上の宛先スイッチ以外のスイッチごとにi番目の転送経路に対応するルートエントリを生成し、iはN以下の自然数である。各ルートエントリは、仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、次のホップ、および出口ポートを含む。コントローラは、第1のスイッチのすべてのルートエントリに従って、各仮想ルーティング・転送インスタンス内の第1のスイッチの各宛先ネットワークセグメントに対応する転送経路を決定して、第1のスイッチの転送テーブルを生成する。
【００１７】
第6の実施態様によれば、コントローラは、スイッチごとの転送テーブルを動的に生成し得る。これは、手動の転送テーブル構成誤りを回避し、処理効率を改善することができる。
【００１８】
この出願の第2の態様は、負荷分散を実現するための別の方法を提供する。この方法は、コントローラとmeshネットワークとを含むシステムに適用される。meshネットワークは複数のスイッチを含む。この方法は第1のスイッチによって実行される。第1のスイッチは、複数のスイッチのうちのいずれか1つであり、第1のスイッチは複数のポートを含み、複数のポートは、ネットワーク側ポートおよびユーザ側ポートを含む。第1のスイッチは、コントローラによって送信された転送テーブルを受信する。転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含む。第1の仮想ルーティング・転送インスタンスは、第1のスイッチのすべてのユーザ側ポートに対応する仮想ルーティング・転送インスタンスである。第1のスイッチはパケットを受信する。パケットを受信するポートがユーザ側ポートであり、パケットが第1の宛先ネットワークセグメントに対応するパケットであるとき、第1のスイッチは、負荷分散アルゴリズムおよび第1の転送エントリに従って、第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中からパケットのターゲット転送経路を選択し、ターゲット転送経路を使用してパケットを転送する。
【００１９】
この出願の第2の態様の方法によれば、第1のスイッチは、コントローラから、第1のスイッチのために生成された転送テーブルを受信する。従来の転送テーブルとは異なり、転送テーブルの各エントリは、宛先ネットワークセグメント、次のホップ、および出口ポートを含むだけでなく、仮想ルーティング・転送インスタンスも含む。仮想ルーティング・転送インスタンスは、パケットを受信するポートのポート属性を示すために使用される。仮想ルーティング・転送インスタンスが、ユーザ側ポートを示す第1の仮想ルーティング・転送インスタンスであるとき、転送エントリは少なくとも2つの転送経路を含む。ユーザ側ポートからパケットを受信するとき、第1のスイッチは、ユーザ側ポートに対応する第1の仮想ルーティング・転送インスタンスを検証し、第1の仮想ルーティング・転送インスタンスおよびパケットに対応する宛先ネットワークセグメント（すなわち、パケットの宛先IPアドレスが属するネットワークセグメント）に従って転送テーブルを探査し、負荷分散アルゴリズムに従って、見つかった少なくとも2つの転送経路の中から、転送経路を選択してパケットを送信する。転送テーブルを生成するとき、コントローラは、パケットを受信するポートにパケットを送り返すことを回避するために、異なる仮想ルーティング・転送インスタンスを使用して転送エントリを分離する。したがって、この方法は、meshネットワークにおける負荷分散を実現することができる。
【００２０】
第2の態様を参照して、第2の態様の第1の実施態様において、コントローラによって送信された転送テーブルを受信する前に、第1のスイッチは、コントローラによって送信された通知メッセージをさらに受信し、通知メッセージに従って第1のスイッチのすべてのポートから探索メッセージを送信する。探索メッセージは、探索メッセージを受信するデバイスに、コントローラに報告メッセージを送信するように命令するために使用される。
【００２１】
第2の態様の第1の実施態様を参照して、第2の態様の第2の実施態様において、第1のスイッチは、第2のスイッチによって送信された第2の探索メッセージをさらに受信する。第2の探索メッセージは、第2のスイッチの識別子および第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートの識別子を含む。第1のスイッチは、第2の探索メッセージに従ってコントローラに第2の報告メッセージを送信する。第2の報告メッセージは、第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートのポート属性をコントローラが判定するように、第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートの識別子を含む。
【００２２】
第2の態様の第1の実施態様および第2の実施態様は、コントローラが、meshネットワークに接続されたスイッチの各ポートのポート属性を適時に取得し、スイッチの転送テーブルを生成することを可能にする。
【００２３】
第2の態様および第2の態様の第1の実施態様または第2の実施態様のいずれかを参照して、第2の態様の第3の実施態様において、ネットワーク側ポートは、グループ内ポートおよびグループ間ポートを含む。第1のスイッチのすべてのグループ内ポートは、第2の仮想ルーティング・転送インスタンスに対応する。第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。第1のスイッチのすべてのグループ間ポートは、第3の仮想ルーティング・転送インスタンスに対応する。第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。
【００２４】
第3の実施態様によれば、スイッチのポートは（レベル2・meshネットワークのシナリオでは）、ユーザ側ポート、グループ内ポート、およびグループ間ポートの3種類に区分される。すべてのユーザ側ポートは第1の仮想ルーティング・転送インスタンスに対応し、すべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、すべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応する。コントローラは、第1の仮想ルーティング・転送インスタンス、第2の仮想ルーティング・転送インスタンス、および第3の仮想ルーティング・転送インスタンスに基づいて第1のスイッチの転送テーブルを生成し、転送テーブルを生成するための送信元ポートとして第1のスイッチの各ポートを使用する必要がない。これは、パケットがパケットを受信するポートに転送されることを防ぎ、転送テーブルのエントリを減らし、したがって、第1のスイッチの記憶リソースを節約することができる。
【００２５】
この出願の第3の態様はコントローラを提供する。このコントローラは複数の機能ユニットを含み、複数の機能ユニットは、相互に協働して、第1の態様の方法および第1の態様の実施態様を完了する。
【００２６】
この出願の第4の態様はスイッチを提供する。このスイッチは複数の機能ユニットを含み、複数の機能ユニットは、相互に協働して、第2の態様の方法および第2の態様の実施態様を完了する。
【００２７】
この出願の第5の態様はネットワークシステムを提供する。このネットワークシステムは、コントローラと、meshネットワークとを含む。meshネットワークは複数のスイッチを含み、複数のスイッチの各々は複数のポートを含み、複数のポートは、ユーザ側ポートおよびネットワーク側ポートを含む。コントローラは第3の態様によるコントローラであり、複数のスイッチのうちのいずれか1つは第4の態様によるスイッチである。
【００２８】
この出願の第6の態様は記憶媒体を提供する。この記憶媒体はプログラムを格納し、プログラムがコンピューティングデバイスによって実行されるとき、コンピューティングデバイスは、第1の態様または第1の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法を実行する。記憶媒体は、それだけに限らないが、リード・オンリ・メモリ、ランダム・アクセス・メモリ、フラッシュメモリ、HDD、またはSSDを含む。
【００２９】
この出願の第7の態様は、コンピュータプログラム製品を提供する。このコンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がコントローラによって実行されるとき、コントローラは、第1の態様または第1の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法を実行する。コンピュータプログラム製品は、ソフトウェア・インストール・パッケージであり得る。第1の態様または第1の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法が使用される必要があるとき、コンピュータプログラム製品がダウンロードされ、コントローラ上で実行され得る。
【００３０】
この出願の第8の態様は記憶媒体を提供する。この記憶媒体は、プログラムを格納し、プログラムがコンピューティングデバイスによって実行されるとき、コンピューティングデバイスは、第2の態様または第2の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法を実行する。記憶媒体は、それだけに限らないが、リード・オンリ・メモリ、ランダム・アクセス・メモリ、フラッシュメモリ、HDD、またはSSDを含む。
【００３１】
この出願の第9の態様は、コンピュータプログラム製品を提供する。このコンピュータプログラム製品はプログラム命令を含む。コンピュータプログラム製品がスイッチによって実行されるとき、スイッチは、第2の態様または第2の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法を実行する。コンピュータプログラム製品は、ソフトウェア・インストール・パッケージであり得る。第2の態様または第2の態様のいずれか1つの実施態様で提供される負荷分散を実現するための方法が使用される必要があるとき、コンピュータプログラム製品がダウンロードされ、スイッチ上で実行され得る。
【００３２】
この出願の第3の態様から第9の態様の解決策の有益な効果については、第1の態様および第2の態様の方法を参照されたい。
【００３３】
この出願の実施形態におけるまたは先行技術における技術解決策をより明確に説明するために、以下は、実施形態または先行技術を説明するために要求される添付図面を簡単に説明する。
【図面の簡単な説明】
【００３４】
【図１】先行技術のレベル1・meshネットワークの構造の概略図である。
【図２】先行技術のレベル2・meshネットワークの構造の概略図である。
【図３】この出願の一実施形態によるネットワークシステムの構造の概略図である。
【図４】図3に表わされたネットワークシステムの具体的な実施態様である。
【図５】図3に表わされたネットワークシステムの別の具体的な実施態様である。
【図６】この出願の一実施形態による転送テーブルを生成するための方法の概略的流れ図である。
【図７】図6に表わされたステップS610の具体的な実施態様の流れ図である。
【図８】この出願の一実施形態による転送テーブルを取得するための方法の概略的流れ図である。
【図９ａ】図4に表わされたシナリオにおいてコントローラによって生成されたすべてのルートエントリを表わす。
【図９ｂ】図9aに従ってスイッチS1、S2、およびS3についてコントローラによって別々に生成された転送テーブルを表わす。
【図９ｃ】図9aに従ってスイッチS1、S2、およびS3についてコントローラによって別々に生成された転送テーブルを表わす。
【図９ｄ】図9aに従ってスイッチS1、S2、およびS3についてコントローラによって別々に生成された転送テーブルを表わす。
【図１０ａ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｂ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｃ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｄ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｅ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｆ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１０ｇ】図5に表わされたシナリオにおいてスイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラによって別々に生成された転送エントリを表わす。
【図１１】この出願の一実施形態によるコントローラの構造の概略図である。
【図１２】この出願の一実施形態による別のコントローラの構造の概略図である。
【図１３】この出願の一実施形態によるスイッチの構造の概略図である。
【図１４】この出願の一実施形態による別のスイッチの構造の概略図である。
【発明を実施するための形態】
【００３５】
以下は、添付図面を参照してこの出願の実施形態の技術的解決策を説明する。
【００３６】
この出願のすべての実施形態およびそれらの具体的な実施態様において、「第1の」、「第2の」、「第3の」などの用語は、同じ種類の異なる対象の間で区別するように意図され、具体的な順番または順序を限定しない。この出願のすべての実施形態およびそれらの具体的な実施態様においては、meshネットワーク内のあるスイッチを別のスイッチに接続するポートはネットワーク側ポートと呼ばれ、スイッチをサーバに接続するポートはユーザ側ポートと呼ばれる。ネットワーク側ポートは、グループ内ポートまたはグループ間ポートであり得る。同じスイッチグループ内の別のスイッチに接続するポートをグループ内ポートは呼ばれる。異なるスイッチグループ内の別のポートに接続するポートはグループ間ポートと呼ばれる。
【００３７】
図3は、この出願の一実施形態によるネットワークシステム300の構造の概略図である。このネットワークシステムは、コントローラ310と、meshネットワーク320とを含む。meshネットワーク320はスイッチS1〜Snを含み、S1〜Snはn個のスイッチがあることを示し、nは3以上である。図3は、4個のスイッチS1、S2、Si、およびSnを表わす。コントローラ310は、複数のスイッチS1〜Snの各々に通信可能に接続されている。複数のスイッチS1〜Snの各々は、少なくとも1つのサーバに通信可能に接続されている。例えば、S1はサーバAに接続されており、S2はサーバBに接続されており、SiはサーバCおよびDに接続されており、SnはサーバEおよびFに接続されている。
【００３８】
各スイッチは、制御ポート（管理ポートとも呼ばれる）を通してコントローラ310に接続されており、異なるサービスポートを通して異なるスイッチまたはサーバに接続されている。この出願は、制御ポートに対する特別な操作を含まず、サービスポートのみに関連した処理を含む。簡潔さのために、この出願は、「サービスポート」を示すために「ポート」を使用する。すなわち、この出願および特許請求の範囲の両方で言及される「ポート」は、スイッチのサービスポートである。さらに、スイッチのポートがいずれのデバイスにも接続されていないとき、そのポートに基づく操作は無意味である。したがって、以下のこの出願の実施形態および特許請求の範囲の両方で言及される「ポート」は、別のデバイスに接続されたポートである。
【００３９】
一実施態様では、meshネットワーク320はレベル1・meshネットワークである。図4は、meshネットワーク320が、3個のスイッチS1、S2、およびS3を含むレベル1・meshネットワーク3201である例を表わす。実際のネットワーキングの間、レベル1・meshネットワーク3201は、3個より多くのスイッチを含み得る。
【００４０】
別の実施態様では、meshネットワーク320は、2個以上のレベル1・meshネットワークを含むレベル2・meshネットワークである。各レベル1・meshネットワークは、少なくとも3個のスイッチを含む。図5は、meshネットワーク320が3個のレベル1・meshネットワークを含むレベル2・meshネットワーク3202である例を表わす。meshネットワーク3202内の各スイッチは番号Sijが割り振られており、iは、スイッチが属するスイッチグループであり、jは、スイッチが属するスイッチグループ内のスイッチの番号である。例えば、S12は、スイッチグループ1内の第2のスイッチである。図5の各レベル1・meshネットワークは3個のスイッチを含み、各レベル1・meshネットワーク内の3個のスイッチは1つのスイッチグループを形成する。各スイッチグループ内のスイッチ間の接続は太い実線で示されている。具体的には、スイッチS11、S12、およびS13は第1のスイッチグループを形成しており、スイッチS21、S22、およびS23は第2のスイッチグループを形成しており、スイッチS31、S32、およびS33は第3のスイッチグループを形成している。各スイッチグループ内のスイッチは別のスイッチグループ内の対応するスイッチに接続されている。あるスイッチが別のスイッチに対応していることは、それら2個のスイッチがそれぞれのスイッチグループにおいて同じ番号を有することを示し、またはそれら2個のスイッチのために対応関係が事前構成される。例えば、図5では、スイッチS11はスイッチS21とS31に接続され、スイッチS12はスイッチS22とS32に接続され、スイッチS13はスイッチS23とS33に接続されて、レベル2・meshネットワーク3202を形成する。各スイッチは、1つまたは複数のサーバに接続され得る。実際のネットワーキングの間、レベル2・meshネットワーク3202は、2つまたは3つより多くのスイッチグループを含み得る。各スイッチグループは、2個または3個より多くのスイッチを含み得る。図5に表わされたネットワークは一例にすぎない。実際の展開の間、meshネットワークが複数のスイッチグループを含み、複数のスイッチグループにおける第1のスイッチグループが第2のスイッチグループより多くのスイッチを含むとき、第1のスイッチグループ内の少なくとも1個のスイッチには第2のスイッチグループ内に対応するスイッチを有さない。第1のスイッチグループ内のスイッチAは第2のスイッチグループ内に対応するスイッチを有さないと仮定する。スイッチAは、第1のスイッチグループ内の、第2のスイッチグループ内に対応するスイッチを有する別のスイッチを使用して第2のスイッチグループ内のスイッチと通信する。
【００４１】
図4または図5に表わされたmeshネットワーク内の各スイッチは、サーバまたは別のスイッチと通信するために使用される複数のポートを含む。加えて、この出願では各スイッチの各ポートに番号が割り振られている。
【００４２】
meshネットワーク320が図4のレベル1・meshネットワーク3201である場合、スイッチのポート番号はSX.Yであり、Sはスイッチを示し、Xはスイッチの番号を示し、Yはスイッチのポートの番号である。一実施態様では、サーバに接続されたポート（すなわち、ユーザ側ポート）の番号は、0（1つのサーバだけに接続されている）に設定され、または0から開始する番号（複数のサーバに接続されている）に設定され、別のスイッチに接続されたポート（すなわち、ネットワーク側ポート）の番号は、別のスイッチの番号に設定される。図4に表わされたように、スイッチS1は、ポートS1.00を通してサーバA1と通信し、ポートS1.01を通してサーバA2と通信し、ポートS1.2を通してスイッチS2と通信し、ポートS1.3を通してスイッチS3と通信する。スイッチS2は、ポートS2.0を通してサーバBと通信し、ポートS2.1を通してスイッチS1と通信し、ポートS2.3を通してスイッチS3と通信する。スイッチS3は、ポートS3.0を通してサーバCと通信し、ポートS3.1を通してスイッチS1と通信し、ポートS3.2を通してスイッチS2と通信する。
【００４３】
meshネットワーク320が図5のレベル2・meshネットワーク3202である場合、スイッチのポート番号はSij.XYであり、Sはスイッチを示し、ijはスイッチの番号を示し、XYはスイッチのポートの番号である。一実施態様では、サーバに接続されたポートの番号は、0（1つのサーバだけに接続されている）に設定され、または0から開始する番号（複数のサーバに接続されている）に設定され、別のスイッチに接続されたポートの番号は、2個のスイッチ間の対応関係を表現するために、別のスイッチの番号に設定される。例えば、図5では各ポートを表現するために小さい黒点が使用されている。多数のポートがあるので、図5は、第1のスイッチグループ内のスイッチS11、S12、およびS13のポートの番号だけを表わす。スイッチS11をスイッチS12に接続するためのポートには番号S11.12が付されており、スイッチS13をスイッチS23に接続するためのポートには番号S13.23が付されており、他のポートにも同様に番号が付されている。図5では、各スイッチはグループ内ポートとグループ間ポートの両方を有する。例えば、スイッチS11のポートS11.12はグループ内ポートであり、ポートS11.21はグループ間ポートであり、ポートS11.0はユーザ側ポートである。
【００４４】
前述の付番方式は、この出願のこの実施形態の説明のためにのみ提供され、この技術分野の当業者は、スイッチおよびスイッチのポートの別の付番方式を設計し得る。例えば、スイッチのすべてのポートが順次に付番される。これは、この出願のこの実施形態では限定されない。
【００４５】
図3から図5のいずれか1つのネットワークシステムに基づき、この出願の一実施形態は、図6に表わされた負荷分散を実現するための方法を提供する。
【００４６】
S610．コントローラは、meshネットワークにおける第1のスイッチの各ポートのポート属性を取得する。
【００４７】
第1のスイッチはmeshネットワーク内のいずれかのスイッチであり、ポート属性は、ポートがユーザ側ポートまたはネットワーク側ポートであることを示すために使用される。
【００４８】
S620．コントローラは、第1のスイッチの各ポートのポート属性に従って、第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスを決定し、第1のスイッチのすべてのユーザ側ポートは第1の仮想ルーティング・転送インスタンスに対応する。
【００４９】
この出願では、特定のスイッチについて、同じポート属性を有するそのスイッチのすべてのポートは同じ仮想ルーティング・転送インスタンスに対応する。
【００５０】
S630．コントローラは、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成し、転送テーブルの各転送エントリは仮想ルーティング・転送インスタンスを含み、転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含む。
【００５１】
S640．コントローラは、転送テーブルを第1のスイッチに送信する。
【００５２】
転送テーブルは、第1のスイッチが、負荷分散アルゴリズムおよび第1の転送エントリに従って、第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中から、第1の宛先ネットワークセグメントに対応するパケットのターゲット転送経路を選択することを可能にするために使用される。宛先ネットワークセグメントに対応するパケットは、その宛先IPアドレスが宛先ネットワークセグメントに属するパケットである。
【００５３】
S610の一実施態様では、ポート属性は、ポートがユーザ側ポートまたはネットワーク側ポートであることを示すために使用される。別の実施態様では、ネットワーク側ポートは、グループ内ポートまたはグループ間ポートである。
【００５４】
第1のスイッチは、meshネットワーク内のいずれかのスイッチである。
【００５５】
一実施態様では、S610は、具体的には、図7に表わされたステップS6102およびS6104を含み得る。
【００５６】
S6102．コントローラは、第1のスイッチに通知メッセージを送信し、通知メッセージは、第1のスイッチに、第1のスイッチのすべてのポートから探索メッセージを送信するように命令するために使用される。
【００５７】
コントローラが第1のスイッチに通知メッセージを送信することは、具体的には、第1のスイッチとコントローラが接続を確立していることを検出したとき、または第1のスイッチとコントローラが接続を確立したことを検出した後、コントローラが第1のスイッチに通知メッセージを送信することであり得る。
【００５８】
上述したように、すべてのポートは、第1のスイッチのすべてのサービスポートであり、第1のスイッチがコントローラに接続するための管理ポートを含まない。探索メッセージは、探索メッセージを受信するデバイスに、コントローラに報告メッセージを送信するように命令するために使用される。第1のスイッチのサービスポートに通信可能に接続されたデバイスが探索メッセージを受信する。探索メッセージを受信するスイッチはコントローラに報告メッセージを送信する。探索メッセージを受信するサーバはコントローラに報告メッセージを送信しても、しなくてもよい。各報告メッセージは、報告メッセージの送信者が第1のスイッチと通信するためのサービスポートのポート番号を含む。具体的には、探索メッセージは、第1のスイッチの識別子および第1のスイッチが探索メッセージを送信するためのポートの識別子を含む。第1のスイッチの識別子は、第1のスイッチの番号または名前であり得る。第1のスイッチが探索メッセージを送信するためのポートの識別子は、ポートの番号または名前であり得る。
【００５９】
図4が例として使用される。コントローラ310は、第1のスイッチ、例えば、スイッチS1に通知メッセージを送信する。通知メッセージを受信した後、スイッチS1は、スイッチS1のすべてのサービスポートS1.00、S1.01、S1.2、S1.3から探索メッセージD1を送信する。サービスポートS1.00に送信された探索メッセージD1は、スイッチS1の識別子S1と、探索メッセージD1を送信するポート00の識別子とを含む。スイッチS1のポート00に通信可能に接続されたデバイスがサーバA1である場合、サーバA1は、探索メッセージD1を受信し、次いでコントローラ310に報告メッセージR1を送信する。報告メッセージR1は、スイッチS1の識別子S1と、探索メッセージD1を送信するポートの識別子00とを含む。スイッチS1のポートS1.2に通信可能に接続されたサーバA2は、探索メッセージD2を受信する。探索メッセージD2は、スイッチS1の識別子S1と、探索メッセージD2を送信するポートの識別子2とを含む。サーバA2は、探索メッセージD2を受信し、次いでコントローラ310に報告メッセージR2を送信する。報告メッセージR2は、スイッチS1の識別子S1と、スイッチS1が探索メッセージD2を送信するためのポートの識別子2とを含む。探索メッセージは、リンク層探索プロトコル（英語：Link Layer Discovery Protocol、LLDP）メッセージであり得る。LLDPメッセージは、異なるタイプ−長さ−値（type-length-value、TLV）を使用して、スイッチの識別子と、スイッチが探索メッセージを送信するためのポートの識別子とを搬送し得る。
【００６０】
第1のスイッチデバイスが第2のスイッチに接続されている場合、第2のスイッチは、探索メッセージを受信し、次いでコントローラ310に報告メッセージを送信する。報告メッセージは、コントローラ310に、第1のスイッチが第2のスイッチに探索メッセージを送信するためのポートを通知するために使用される。第2のスイッチは、meshネットワーク320内の第1のスイッチ以外のいずれかのスイッチである。第2のスイッチは、通常、報告メッセージをコントローラ310に直接送信する。第1のスイッチデバイスがサーバに接続されている場合、サーバは、探索メッセージを受信し、次いで、コントローラ310に報告メッセージを送信しても、しなくてもよい。サーバがコントローラ310に報告メッセージを送信する場合、報告メッセージは、コントローラ310に、第1のスイッチがサーバに探索メッセージを送信するためのポートを通知するために使用される。サーバは、第1のスイッチを通してコントローラ310に報告メッセージを送信してもよく、コントローラ310に報告メッセージを直接送信してもよい。
【００６１】
S6104．コントローラは、第1のスイッチに接続されたデバイスが報告メッセージを送信するかどうかに基づいて第1のスイッチの各ポートのポート属性を判定する。
【００６２】
一実施態様では、コントローラ310は、第1のスイッチに接続されたデバイスによって送信された報告メッセージを受信する。報告メッセージは、第1のスイッチが探索メッセージをデバイスに送信するためのポートの識別子と、第1のスイッチの識別子と、デバイスの識別子とを含む。
【００６３】
実際の応用の間、コントローラ310は、第1のスイッチに接続された複数のデバイスによって別々に送信された複数の報告メッセージを受信し得る。説明の容易さのために、以下は、1つの報告メッセージの処理手順を例として使用して、この出願の具体的な実施態様を説明する。他の報告メッセージも類似の方式で処理される。
【００６４】
コントローラ310は、報告メッセージ内のデバイスの識別子に従ってデバイスの種類を判定する。デバイスの種類はスイッチまたはサーバであり得る。
【００６５】
デバイスが別のスイッチである場合、コントローラ310は、第1のスイッチが別のスイッチに探索メッセージを送信するためのポートをネットワーク側ポートと判定する。デバイスがサーバである場合、コントローラ310は、第1のスイッチがサーバに探索メッセージを送信するためのポートをユーザ側ポートと判定する。さらに、サーバがコントローラ310に報告メッセージを送信しないシナリオでは、コントローラ310は、第1のスイッチの事前に取得したすべてのポートおよびコントローラ310によって受信された報告メッセージに従って、第1のスイッチの、報告されないポートをさらに決定し、報告されないポートをユーザ側ポートと判定する。報告されないポートは、いずれの報告メッセージにも含まれていないポートである。具体的には、コントローラ310は、タイマを設定し、コントローラ310が第1のスイッチに通知メッセージを送信した後でタイマを始動させ、第1のスイッチの、指定された期間後に依然として報告されないポートをユーザ側ポートと判定し得る。
【００６６】
レベル2・meshネットワークのシナリオでは、ネットワーク側ポートは、グループ内ポートおよびグループ間ポートを含む。第1のスイッチと第2のスイッチとが異なるスイッチグループに属するとき、コントローラ310は、第1のスイッチを第2のスイッチに接続するためのポートをグループ間ポートと判定する。第1のスイッチと第2のスイッチとが同じスイッチグループに属するとき、コントローラ310は、第1のスイッチを第2のスイッチに接続するためのポートをグループ内ポートと判定する。一実施態様では、コントローラ310は、第1のスイッチの識別子および第2のスイッチの識別子に従って、第1のスイッチと第2のスイッチとが同じスイッチグループに属するかどうか判定する。
【００６７】
S620の一実施態様では、ポートは同じポート属性を有し、同じ仮想ルーティング・転送インスタンスに対応する。仮想ルーティング・転送（英語：virtual routing and forwarding）技術は、転送テーブルにおける複数の仮想ルーティング・転送インスタンスを可能にする。複数の仮想ルーティング・転送インスタンスは相互に独立しており、したがって、同じまたは重複する（overlapping）インターネットプロトコル（英語：Internet Protocol、IP）アドレスが、同じ転送テーブルの異なる仮想ルーティング・転送インスタンスで使用されることが可能であり、相互に競合しない。仮想ルーティング・転送インスタンスは、仮想ルーティング・転送技術を使用する転送インスタンスである。この出願では、ポートから受信されるパケットがそのポートに送り返されないことを保証するために、異なる仮想ルーティング・転送インスタンスが使用されて、異なる種類のポートに対応する転送エントリを分離する。meshネットワーク320がレベル1・meshネットワークであるシナリオでは、第1のスイッチのポートは、グループ内ポート（ネットワーク側ポート）およびユーザ側ポートを含む。コントローラ310は、すべてのユーザ側ポートがある仮想ルーティング・転送インスタンスに対応しており、すべてのグループ内ポート（ネットワーク側ポート）が別の仮想ルーティング・転送インスタンスに対応していると判定し得る。例えば、図4に表わされたmeshネットワーク3201に基づき、コントローラは、ポートS1.0およびS2.0はVRF1に対応しており、ポートS1.2、S1.3、S2.1、S2.3、S3.1およびS3.2はVRF2に対応していると判定する。
【００６８】
meshネットワーク320がレベル2・meshネットワークであるシナリオでは、第1のスイッチのポートは、グループ内ポート、グループ間ポート、およびユーザ側ポートを含む。コントローラ310は、すべてのユーザ側ポートは第1の仮想ルーティング・転送インスタンスに対応しており、すべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応しており、すべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応していると判定し得る。例えば、図5に表わされたmeshネットワーク3202に基づき、第1のスイッチグループ内のスイッチS11、S12、およびS13が例として使用される。上述のポート付番規則に基づき、コントローラは、ポートS11.0はVRF3に対応しており、グループ内ポートS11.12、S11.13、S13.11、S13.12、S12.11、およびS12.13はVRF4に対応しており、グループ間ポートS11.21、S11.31、S12.22、S12.32、S13.23、およびS13.33はVRF5に対応していると判定する。
【００６９】
ステップS630の具体的な実施態様において、転送テーブルの各エントリは、仮想ルーティング・転送インスタンス、仮想ルーティング・転送インスタンスに対応する宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。転送テーブル内の次のホップは、一般に、転送経路を示すために使用される。宛先ネットワークセグメントに対応する少なくとも1つの転送経路は、具体的には、宛先ネットワークセグメントに対応する少なくとも1つの次のホップ、および転送テーブル内の少なくとも1つの次のホップ内の各々の次のホップに対応する出口ポートである。仮想ルーティング・転送インスタンスが、第1の仮想ルーティング・転送インスタンスであるとき、転送エントリは、宛先ネットワークセグメントおよび宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含み、すなわち、第1の仮想転送インスタンスと宛先ネットワークセグメントとの間には少なくとも2つの次のホップがある。少なくとも2つの転送経路は、異なるルーティング規則に従う等コスト経路または不等コスト経路であり得る。この出願では、次のホップのデバイスの識別子が使用されて次のホップが示される。一実施形態では、転送テーブル内の次のホップは、次のホップのデバイスのIPアドレスであり得る。出口ポートは、アウトバウンドインターフェースと呼ばれてもよく、パケットが次のホップのデバイスに転送されるときにパケットを送信するポートである。
【００７０】
S630の一実施態様では、第1のスイッチが図4に表わされたmeshネットワーク3201内のスイッチであるとき、第1のスイッチのすべてのネットワーク側ポートは第2の仮想ルーティング・転送インスタンスに対応する。第2の仮想ルーティング・転送インスタンスに対応する転送エントリは、第2の仮想ルーティング・転送インスタンス、第2の仮想ルーティング・転送インスタンスに対応する宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。
【００７１】
S630の別の実施態様では、第1のスイッチが図5に表わされたmeshネットワーク3202内のスイッチであるとき、第1のスイッチのネットワーク側ポートは、グループ内ポートとグループ間ポートとにさらに分類される。すべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応し、すべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応する。第2の仮想ルーティング・転送インスタンスに対応する転送エントリは、第2の仮想ルーティング・転送インスタンス、第2の仮想ルーティング・転送インスタンスに対応する宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。第3の仮想ルーティング・転送インスタンスに対応する転送エントリは、第3の仮想ルーティング・転送インスタンス、第3の仮想ルーティング・転送インスタンスに対応する宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。
【００７２】
S630のさらに別の実施態様では、コントローラが、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従って、第1のスイッチの転送テーブルを生成することは、以下のステップを含む。
【００７３】
A．コントローラは、複数のスイッチの各々について構成されたネットワークセグメントを取得して複数のネットワークセグメントを取得する。
【００７４】
スイッチに接続されたサーバがネットワークにアクセスできるように、ネットワークセグメントがスイッチについて構成される必要がある。一般に、異なるネットワークセグメントが異なるスイッチについて構成される。ネットワークセグメントは、ネットワーク管理者またはコントローラによって構成されることが可能である。
【００７５】
この出願では、新しいスイッチがネットワークにアクセスすることを検出するとき、コントローラは、そのスイッチについて構成されたネットワークセグメントを取得する。さらに、コントローラは、新しいスイッチについて構成されたネットワークセグメントおよび取得された他のスイッチのネットワークセグメントに従って新しいスイッチの転送テーブルを生成する。図4が例として使用される。コントローラは、スイッチS1、S2、およびS3に割り振られたネットワークセグメント、segment 1、segment 2、およびsegment 3を別々に取得する。図5が例として使用される。コントローラは、スイッチS11、S12、S13、S21、S22、S23、S31、S32、およびS33に割り振られたネットワークセグメント、segment 11、segment 12、segment 13、segment 21、segment 22、segment 23、segment 31、segment 32、およびsegment 33を別々に取得する。
【００７６】
B．コントローラは、複数のネットワークセグメントにおける送信元ネットワークセグメントおよび宛先ネットワークセグメントを決定する。送信元ネットワークセグメントは、複数のネットワークセグメントのうちのいずれか1つであり、宛先ネットワークセグメントは、送信元ネットワークセグメントを除く複数のネットワークセグメントのうちのいずれか1つである。
【００７７】
コントローラは、全ネットワーク上の各スイッチの転送テーブルを計算する必要がある。したがって、コントローラは、送信元ネットワークセグメントと宛先ネットワークセグメントのすべての可能な対を組み合わせる必要がある。ネットワークがn個のスイッチを含むとき、送信元ネットワークセグメントと宛先ネットワークセグメントの組み合わせ最大数は、n×（n−1）であり得る。図4が例として使用される。決定される送信元ネットワークセグメントと宛先ネットワークセグメントの対は、｛segment 1，segment 2｝、｛segment 1，segment 3｝、｛segment 2，segment 1｝、｛segment 2，segment 3｝、｛segment 3，segment 1｝、および｛segment 3，segment 2｝を含み得る。図5に基づく送信元ネットワークセグメントと宛先ネットワークセグメントの対の最大数は、72であり得る。詳細はここで提供されない。
【００７８】
C．コントローラは、meshネットワークのトポロジに従って、送信元ネットワークセグメントから宛先ネットワークセグメントまでのN個の転送経路を決定し、N個の転送経路内のi番目の転送経路上の宛先スイッチ以外のスイッチごとにi番目の転送経路に対応するルートエントリを生成し、iはN以下の自然数である。各ルートエントリは、仮想ルーティング・転送インスタンス、仮想ルーティング・転送インスタンスに対応する宛先ネットワークセグメント、次のホップ、および出口ポートを含む。
【００７９】
宛先スイッチは、宛先サーバに直接接続されたスイッチであり、宛先サーバのIPアドレスは宛先ネットワークセグメントに属する。スイッチのルートエントリ内の仮想ルーティング・転送インスタンスは、そのルートエントリの送信元ポートに対応する仮想ルーティング・転送インスタンスである。
【００８０】
具体的には、コントローラは、meshネットワークのトポロジに従って、送信元ネットワークセグメントとターゲット・ネットワーク・セグメントとの対ごとにN個の転送経路を決定する。図4が例として使用される。segment 1とsegment 2との間には、S1→S2とS1→S3→S2の2つの転送経路があり、すなわち、N＝2である。経路S1→S2では、S2は宛先スイッチであり、コントローラは、スイッチS1のルートエントリを生成し、ルートエントリのVRFはVRF1であり、宛先ネットワークセグメントはsegment 2であり、次のホップはS2であり、出口ポートはS1.2である。簡潔さのために、ルートエントリは、｛VRF：1，宛先ネットワークセグメント：segment 2，次のホップ：S2，出口ポート：S1.2｝として記録される。経路S1→S3→S2では、コントローラは、スイッチS1のルートエントリ｛VRF：1，宛先ネットワークセグメント：segment 3，次のホップ：S3，出口ポート：S1.3｝を生成し、スイッチS3のルートエントリ｛VRF：2，宛先ネットワークセグメント：segment 2，次のホップ：S2，出口ポート：S3.2｝を生成する。コントローラは、同様のプロセスで他の送信元ネットワークセグメントとターゲット・ネットワーク・セグメントに対応する転送経路に従ってスイッチごとのルートエントリを生成する。図9aは、図4に表わされたmeshネットワークに基づいてスイッチごとにコントローラによって生成されたルートエントリを表わす。
【００８１】
D．コントローラは、第1のスイッチのすべてのルートエントリに従って、各仮想ルーティング・転送インスタンス内の第1のスイッチの各宛先ネットワークセグメントに対応する転送経路を決定して、第1のスイッチの転送テーブルを生成する。
【００８２】
具体的には、コントローラは、スイッチごとに生成されたすべてのルートエントリを決定し、次いで、仮想ルーティング・転送インスタンスおよび宛先ネットワークセグメントに従って各スイッチのすべてのルートエントリを組み合わせて、スイッチの転送テーブルを生成し得る。組み合わせることは、具体的には、まず、各仮想ルーティング・転送インスタンスに対応するすべてのルートエントリを決定し、次いで、各仮想ルーティング・転送インスタンスに対応するすべてのルートエントリ内の同じ宛先ネットワークセグメントを有するルートエントリを組み合わせることであり得る。各仮想ルーティング・転送インスタンスに対応するすべてのルートエントリ内の同じ宛先ネットワークセグメントを有するルートエントリを組み合わせることは、宛先アドレスが複数のルートエントリに対応する場合、複数のルートエントリを1つに組み合わせること、宛先アドレスが1つのルートエントリに対応する場合、そのルートエントリを保持すること、を含む。例えば、コントローラは、図9aに従ってスイッチS1、S2、およびS3のために生成されたルートエントリを別々に決定し、次いで、同じVRFに関連した各宛先ネットワークセグメントに対応するルートエントリに従って1つの転送エントリを生成して、最終的に、図9b、図9c、および図9dに表わされた3つの転送テーブルを取得し得る。図9b、図9c、および図9dに表わされた転送テーブルにおいて、VRF1に関連した各宛先ネットワークセグメントは複数の転送経路に対応しているが、VRF2に関連した各宛先ネットワークセグメントは1つの転送経路に対応している。大規模ネットワークのシナリオでは、VRF2に関連した各宛先ネットワークセグメントは、複数の転送経路に対応し得る。
【００８３】
以下は、さらに図5を例として使用して、コントローラが送信元ネットワークセグメントおよび宛先ネットワークセグメントに従って転送エントリを生成するプロセスを説明する。サーバAAのIPアドレスはIPaであり、ネットワークsegment aに属し、サーバBのIPアドレスはIPbであり、ネットワークsegment bに属すると仮定する。segment aおよびsegment bについて、コントローラは、図5のmeshネットワークのトポロジに従ってサーバAAとサーバBBとの間には以下の4つの非交差転送経路が存在すると判定し得る。
【００８４】
経路1：サーバAA→S11→S12→S22→サーバBB
【００８５】
経路2：サーバAA→S11→S21→S22→サーバBB
【００８６】
経路3：サーバAA→S11→S13→S23→S22→サーバBB
【００８７】
経路4：サーバAA→S11→S31→S32→S22→サーバBB
【００８８】
図10aから図10gは、送信元ネットワークsegment aと宛先ネットワークsegment bに従って、かつ前述のステップAからDに従って、スイッチS11、S12、S21、S13、S23、S31、およびS32についてコントローラ310によって別々に生成された転送エントリを表わす。図5に表わされたシナリオでは、ユーザ側ポート（VRF3に対応する）から受信されるパケットについて複数の転送経路があり（図10aは4つの経路が表わし、この数は、そのスイッチを含むスイッチグループに含まれるスイッチの数およびレベル2・meshネットワークに含まれるレベル1・meshネットワークの数と共に変化する）、グループ内ポート（VRF4に対応するネットワーク側ポート）またはグループ間ポート（VRF5に対応するネットワーク側ポート）から受信されるパケットについてただ1つの転送経路があることを理解できる。
【００８９】
前述の説明は、この出願の技術的解決策を説明するために、コントローラが第1のスイッチの転送テーブルを生成し、送信する例を使用している。実際の動作において、コントローラは、meshネットワークのトポロジに従ってmeshネットワーク内のスイッチごとに対応する転送テーブルを生成する必要があり、その転送テーブルを対応するスイッチに送信する。
【００９０】
前述の方式では、コントローラは、スイッチごとに転送テーブルを生成し、送信する。仮想ルーティング・転送インスタンスは、転送テーブルにおけるユーザ側ポートまたはネットワーク側ポートからのパケットを区別するために使用される。ユーザ側ポートに対応する仮想ルーティング・転送インスタンスと各宛先ネットワークセグメントとの間には少なくとも2つの転送経路がある。このようにして、スイッチが、転送テーブルに従って、宛先ネットワークセグメントに向けられたパケットを転送するとき、少なくとも2つの経路間で負荷分散が実現されることが可能である。
【００９１】
図3から図5のいずれか1つのネットワークシステムに基づき、この出願の一実施形態は、図8に表わされた負荷分散を実現するための方法をさらに提供する。この方法は、meshネットワーク320の第1のスイッチ（meshネットワーク内のいずれかのスイッチ）によって実行される。
【００９２】
S810．第1のスイッチは、コントローラによって送信された通知メッセージを受信する。
【００９３】
S820．第1のスイッチは、通知メッセージに従って第1のスイッチのすべてのポートから探索メッセージを送信する。
【００９４】
通知メッセージおよび探索メッセージの詳細については、S6102の関連する説明を参照されたい。
【００９５】
ステップS810およびステップS820は任意選択である。
【００９６】
ステップS810およびS820が要求されない場合、代替の実施態様において、第1のスイッチは、第1のスイッチの各ポートのポート属性を能動的に検出し、検出した各ポートのポート属性をコントローラに送信し得る。例えば、第1のスイッチは、第1のスイッチを別のデバイスに接続するためのポートを決定し、別のデバイスに接続された各ポートによって受信されるLLDPメッセージをモニタし、受信されたLLDPメッセージで搬送されたデバイスの識別子に従ってデバイスの種類を判定する。デバイスの種類がサーバである場合、第1のスイッチは、LLDPメッセージを受信するポートをユーザ側ポートと判定する。デバイスの種類がスイッチであり、そのデバイスと第1のスイッチが同じスイッチグループに属する場合、第1のスイッチは、LLDPメッセージを受信するポートをグループ内ポートと判定する。デバイスの種類がスイッチであり、そのデバイスと第1のスイッチが異なるスイッチグループに属する場合、第1のスイッチは、LLDPメッセージを受信するポートをグループ間ポートと判定する。さらに、第1のスイッチは、別のデバイスに接続されているが、指定された期間後にLLDPメッセージを受信しないポートをユーザ側ポートと判定する。
【００９７】
一実施態様では、第1のスイッチは、第2のスイッチによって送信された第2の探索メッセージをさらに受信し得る。第2の探索メッセージは、第2のスイッチの識別子および第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートの識別子を含む。第1のスイッチは、第2の探索メッセージに従ってコントローラに第2の報告メッセージを送信する。第2の報告メッセージは、第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートのポート属性をコントローラが判定するように、第2のスイッチが第1のスイッチに第2の探索メッセージを送信するためのポートの識別子を含む。
【００９８】
S830．第1のスイッチは、コントローラによって送信された転送テーブルを受信し、転送テーブルの第1の転送エントリは、第1の仮想ルーティング・転送インスタンス、第1の仮想ルーティング・転送インスタンスに対応する第1の宛先ネットワークセグメント、および第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路を含み、第1の仮想ルーティング・転送インスタンスは、第1のスイッチのすべてのユーザ側ポートに対応する仮想ルーティング・転送インスタンスである。第1の宛先ネットワークセグメントは、第1のスイッチについて構成されたネットワークセグメント以外のいずれかのネットワークセグメントである。
【００９９】
上述したように、転送テーブルは、meshネットワークのトポロジおよび第1のスイッチの各ポートに対応する仮想ルーティング・転送インスタンスに従ってコントローラによって生成される。転送テーブルの構造についての詳細については、前述の図9a、図9b、および図9cの説明を参照されたい。
【０１００】
S840．第1のスイッチはパケットを受信する。
【０１０１】
S850．パケットを受信するポートがユーザ側ポートであり、パケットが第1の宛先ネットワークセグメントに対応するパケットであるとき、第1のスイッチは、負荷分散アルゴリズムおよび第1の転送エントリに従って、第1の宛先ネットワークセグメントに対応する少なくとも2つの転送経路の中からパケットのターゲット転送経路を選択し、ターゲット転送経路を使用してパケットを転送する。
【０１０２】
第1の宛先ネットワークセグメントに対応するパケットは、そのIPアドレスが第1の宛先ネットワークセグメントに属するパケットである。
【０１０３】
負荷分散アルゴリズムは、コントローラによって、または第1のスイッチ上で管理者によって事前構成され得る。
【０１０４】
この出願では、第1のスイッチも、ポート属性と仮想ルーティング・転送インスタンスとの間の対応関係を取得する必要がある。具体的には、第1のスイッチは、コントローラによって送信されるポート属性と仮想ルーティング・転送インスタンスとの間の対応関係を受信し、またはネットワーク管理者によって構成されるポート属性と仮想ルーティング・転送インスタンスとの間の対応関係を受信し得る。
【０１０５】
一実施態様では、第1のスイッチは、パケットを受信し、パケットを受信するポートのポート属性を判定して、対応する仮想ルーティング・転送インスタンスを取得する。次いで第1のスイッチは、仮想ルーティング・転送インスタンスとパケットの宛先IPアドレスに従って転送テーブルを探査して、仮想ルーティング・転送インスタンスと、宛先IPアドレスが属する宛先ネットワークセグメントとに対応する転送エントリを取得し、転送エントリに従ってパケットを転送する。具体的には、パケットを受信するポートがユーザ側ポートであるとき、第1のスイッチは、負荷分散アルゴリズムに従って、第1の仮想ルーティング・転送インスタンスに対応する転送エントリと、パケットの宛先IPアドレスが属する宛先ネットワークセグメントとに関連した少なくとも2つの転送経路の中からパケットのターゲット転送経路を選択し、ターゲット転送経路を使用してパケットを転送する。
【０１０６】
この出願の実施形態によって提供される方法を使用して、スイッチがパケットを送信するときにmeshネットワークにおいて等コスト経路または不等コスト経路について負荷分散が実現されることが可能であることを理解できる。加えて、各仮想ルーティング・転送インスタンスはパケットの送信元ポートを示している。したがって、コントローラが転送テーブルを生成するとき、パケットを送信する送信元ポートが属するスイッチは転送経路の次のホップとして使用されない。これは、meshネットワーク上のループを回避する。
【０１０７】
図6および図7に表わされた負荷分散を実現するための方法を実行するために、この出願の一実施形態はコントローラ1100をさらに提供する。図11に表わされたように、コントローラ1100は、取得ユニット1110と、判定ユニット1120と、生成ユニット1130と、送信ユニット1140とを含む。取得ユニット1110は、S610およびその様々な実施態様を実行するように構成されている。判定ユニット1120は、S620およびその様々な実施態様を実行するように構成されている。生成ユニット1130は、S630およびその様々な実施態様を実行するように構成されている。送信ユニットは、S640およびその様々な実施態様を実行するように構成されている。
【０１０８】
この出願では、図11のコントローラ1100の機能ユニットの区分は一例にすぎない。この技術分野の当業者は、図6および図7に表わされた方法の説明に基づき、図11の機能ユニットを組み合わせてより大きな機能ユニットを得ることが可能であり、またはある機能ユニットを区分して複数のより小さい機能ユニットを得ることが可能である。例えば、取得ユニット1110は、コントローラ1100によって実行される必要がある動作に基づいて複数のサブユニットに区分され得る。
【０１０９】
一実施態様では、コントローラ1100の機能ユニットは、具体的には、図12に表わされたコントローラ1200上に配置されたソフトウェアモジュールであり得る。図12に表わされたように、コントローラ1200は、バス1202と、プロセッサ1204と、メモリ1208と、通信インターフェース1206とを含む。プロセッサ1204、メモリ1208、および通信インターフェース1206は、バス1202を通して相互に通信する。
【０１１０】
プロセッサ1204は中央処理装置（Central Processing Unit、CPU）であり得る。メモリ1208は、揮発性メモリ（英語：volatile memory）、例えば、ランダム・アクセス・メモリ（英語：random access memory、RAM）を含み得る。またメモリ1208は、不揮発性メモリ（英語：non-volatile memory）、例えば、リード・オンリ・メモリ（英語：read-only memory、ROM）、フラッシュメモリ、ハードディスク（英語：hard disk drive、HDD）、ソリッド・ステート・ディスク（英語：solid state drive、SSD）を含み得る。
【０１１１】
通信インターフェース1206は、別のデバイスと通信するように構成されている。通信インターフェース1206は、複数のポートを含み得る。各ポートは、コントローラ1200によって制御されるデバイスと通信するように構成され、デバイスはスイッチまたはサーバであり得る。
【０１１２】
メモリ1208は、プログラムコードを格納するように構成されている。プログラムコードは、図11に表わされた取得ユニット1110、判定ユニット1120、生成ユニット1130、および送信ユニット1140の機能を実現することができる少なくとも1つのプログラムモジュールまたはコンピュータ命令を含む。
【０１１３】
プロセッサ1204は、メモリ1208内のプログラムコードを呼び出して、図6または図7に表わされた方法を実現するように構成されている。
【０１１４】
図8に表わされた負荷分散を実現するための方法を実現するために、この出願の一実施形態は、スイッチ1300、すなわち、図8に表わされた第1のスイッチをさらに提供する。図13に表わされたように、スイッチ1300は、
S830およびその様々な実施態様を実行するように構成された、第1の受信ユニット1310と、
S840を実行するように構成された、第2の受信ユニット1330と、
S850を実行するように構成された、転送ユニット1340と
を含む。
【０１１５】
一実施態様では、第1の受信ユニット1310は、S810を実行するようにさらに構成されている。この場合、スイッチ1300は、S820を実行するように構成された第1の送信ユニット1350をさらに含む。
【０１１６】
別の実施態様では、スイッチ1300は、第3の受信ユニット1360と、第2の送信ユニット1370とをさらに含む。第3の受信ユニット1360は、別のスイッチによって送信された第2の探索メッセージを受信するように構成されている。第2の探索メッセージは、別のスイッチの識別子、および別のスイッチが上記スイッチに第2の探索メッセージを送信するためのポートの識別子を含む。第2の送信ユニット1370は、第2の探索メッセージに従ってコントローラに第2の報告メッセージを送信するように構成されている。第2の報告メッセージは、別のスイッチが上記スイッチに第2の探索メッセージを送信するためのポートの識別子を含み、それによってコントローラは、別のスイッチが上記スイッチに第2の探索メッセージを送信するためのポートのポート属性を判定する。
【０１１７】
別の実施態様では、スイッチ1300は、転送テーブルを格納するように構成された格納ユニット1320をさらに含む。これに対応して、転送ユニット1340は、格納ユニット1320に格納された転送テーブルおよび負荷分散アルゴリズムに従ってターゲット転送経路を選択するように構成されている。
【０１１８】
ネットワーク側ポートがグループ内ポートおよびグループ間ポートを含むとき、スイッチのすべてのグループ内ポートは第2の仮想ルーティング・転送インスタンスに対応する。第2の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第2の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。スイッチのすべてのグループ間ポートは第3の仮想ルーティング・転送インスタンスに対応する。第3の仮想ルーティング・転送インスタンスに対応する転送テーブル内の転送エントリは、第3の仮想ルーティング・転送インスタンス、宛先ネットワークセグメント、および宛先ネットワークセグメントに対応する少なくとも1つの転送経路を含む。
【０１１９】
前述の機能ユニットに加えて、スイッチは、複数のポートをさらに含む。複数のポートは、第1の受信ユニット1310、第2の受信ユニット1330、第1の送信ユニット1350、第3の受信ユニット1360、または第2の送信ユニット1370と協働してメッセージを送信または受信するように構成されている。
【０１２０】
この出願では、図13のスイッチ1300の機能ユニットの区分は一例にすぎない。この技術分野の当業者は、図8に表わされた方法の説明に基づき、図13の機能ユニットを組み合わせてより大きな機能ユニットを得ることが可能であり、またはある機能ユニットを区分して複数のより小さい機能ユニットを得ることが可能である。例えば、第1の受信ユニット1310と第2の送信ユニット1370が1つのコントローラ通信部に組み合わされ得る。
【０１２１】
一実施態様では、スイッチ1300の機能ユニットは、具体的には、図14に表わされたスイッチ1400上に配置されたソフトウェアモジュールであり得る。図14に表わされたように、スイッチ1400は、バス1402と、プロセッサ1404と、メモリ1408と、通信インターフェース1406とを含む。プロセッサ1404、メモリ1408、および通信インターフェース1406は、バス1402を通して相互に通信する。
【０１２２】
プロセッサ1404はCPUであり得る。メモリ1408は、揮発性メモリ、例えば、RAMを含み得る。またメモリ1408は、不揮発性メモリ、例えば、ROM、フラッシュメモリ、HDD、SSDを含み得る。
【０１２３】
通信インターフェース1406は、別のデバイスと通信するように構成されている。通信インターフェース1406は、実際の配置の間、複数のポートを含み得る。各ポートは、デバイスと通信するように構成され、デバイスはサーバまたは別のスイッチであり得る。ポートが管理ポートであるとき、デバイスはコントローラであり得る。
【０１２４】
メモリ1408は、プログラムコードを格納するように構成されている。プログラムコードは、図13に表わされたユニットの機能を実現することができる少なくとも1つのプロセスモジュールまたはコンピュータ命令を含む。
【０１２５】
プロセッサ1404は、メモリ1408内のプログラムコードを呼び出して、図8に表わされた方法を実現するように構成されている。
【０１２６】
方法の実施形態のステップのすべてまたはいくつかを、関連するハードウェアに命令するコンピュータプログラムによって実現され得ることをこの技術分野の当業者は理解し得る。プログラムはコンピュータ可読記憶媒体に格納され得る。プログラムが実行されるとき、関連するハードウェアは、前述の実施形態において説明された方法のステップを完了する。前述の記憶媒体は、ROM、RAM、磁気ディスク、光ディスクのような、プログラムコードを格納することができるあらゆる媒体を含む。これに対応して、この出願の一実施形態は、コンピュータプログラム製品をさらに提供し、このコンピュータプログラム製品は、前述の方法の実施形態における動作を実行するための命令を含む。
【０１２７】
これに対応して、この出願の一実施形態は、記憶媒体をさらに提供し、この記憶媒体は、コンピュータプログラム製品を格納するように構成されている。
【０１２８】
以上の説明は、この出願の好ましい実施態様にすぎない。この技術分野の当業者は、この出願の原理から逸脱することなくいくつかの改善または改良を行うことが可能であり、この改善または改良はこの出願の保護範囲内にあるものであることが留意されるべきである。
【符号の説明】
【０１２９】
300  ネットワークシステム
310  コントローラ
320  meshネットワーク
1100  コントローラ
1110  取得ユニット
1120  判定ユニット
1130  生成ユニット
1140  送信ユニット
1200  コントローラ
1202  バス
1204  プロセッサ
1206  通信インターフェース
1208  メモリ
1300  スイッチ
1310  第1の受信ユニット
1320  格納ユニット
1330  第2の受信ユニット
1340  転送ユニット
1350  第1の送信ユニット
1360  第3の受信ユニット
1370  第2の送信ユニット
1400  スイッチ
1402  バス
1404  プロセッサ
1406  通信インターフェース
1408  メモリ
3201  meshネットワーク
3202  レベル2・meshネットワーク
【図１】
2018191290.tif 000003
【図２】
2018191290.tif 000004
【図３】
2018191290.tif 000005
【図４】
2018191290.tif 000006
【図５】
2018191290.tif 000007
【図６】
2018191290.tif 000008
【図７】
2018191290.tif 000009
【図８】
2018191290.tif 000010
【図９ａ】
2018191290.tif 000011
【図９ｂ】
2018191290.tif 000012
【図９ｃ】
2018191290.tif 000013
【図９ｄ】
2018191290.tif 000014
【図１０ａ】
2018191290.tif 000015
【図１０ｂ】
2018191290.tif 000016
【図１０ｃ】
2018191290.tif 000017
【図１０ｄ】
2018191290.tif 000018
【図１０ｅ】
2018191290.tif 000019
【図１０ｆ】
2018191290.tif 000020
【図１０ｇ】
2018191290.tif 000021
【図１１】
2018191290.tif 000022
【図１２】
2018191290.tif 000023
【図１３】
2018191290.tif 000024
【図１４】
2018191290.tif 000025
【外国語明細書】
2018191290000001.pdf