(57)【要約】【課題】パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。【解決手段】リンクのヘルスチェック方法および装置を開示し、当方法は、キープアライブプログラムにより生成された制御情報を受信して保存するステップと、前記制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信するステップと、前記チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、前記チェック待ちサーバから返送された前記応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断するステップとを含む。【選択図】図１
2017501657.tif 000002
【特許請求の範囲】
【請求項１】
キープアライブプログラムにより生成された、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含む制御情報を受信して保存するステップと、
前記制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信するステップと、
前記チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、前記チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断するステップと、
を含むことを特徴とするリンクのヘルスチェック方法。
【請求項２】
前記モード情報は、ダイレクトルーティングモード、または、トンネルＴＵＮモードを含むことを特徴とする請求項１に記載のリンクのヘルスチェック方法。
【請求項３】
前記送信元ＩＰアドレスおよび送信元ポートは前記キープアライブプログラムが第一所定関数を呼び出すことによって設定され、前記宛先ＩＰアドレスおよび宛先ポートは前記キープアライブプログラムが第二所定関数を呼び出すことによって設定されたことを特徴とする請求項１に記載のリンクのヘルスチェック方法。
【請求項４】
前記の前記制御情報によって受信したメッセージに対しマッチングすることは、
前記制御情報に含まれる送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、および宛先ポートが、受信した前記メッセージの中の送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートと完全に一致するか否かによって、マッチングに成功するか否かを判断することを含むことを特徴とする請求項１に記載のリンクのヘルスチェック方法。
【請求項５】
前記マッチングに成功したメッセージを処理することは、
前記モード情報がＤＲモードであると判断された場合、前記メッセージの宛先ＭＡＣアドレスを前記チェック待ちサーバのＭＡＣアドレスに変更し、
前記モード情報がＴＵＮモードであると判断された場合、前記メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加することを含むことを特徴とする請求項２に記載のリンクのヘルスチェック方法。
【請求項６】
キープアライブプログラムにより生成された、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含む制御情報を受信して保存する受信モジュールと、
前記制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信する処理モジュールと、
前記チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、前記チェック待ちサーバから返送された前記応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する判断モジュールとを含むことを特徴とするリンクのヘルスチェック装置。
【請求項７】
前記モード情報は、ダイレクトルーティングＤＲモード、または、トンネルＴＵＮモードを含むことを特徴とする請求項６に記載のリンクのヘルスチェック装置。
【請求項８】
前記送信元ＩＰアドレスおよび送信元ポートは前記キープアライブプログラムが第一所定関数を呼び出すことによって設定され、前記宛先ＩＰアドレスおよび宛先ポートは前記キープアライブプログラムが第二所定関数を呼び出すことによって設定されたことを特徴とする請求項６に記載のリンクのヘルスチェック装置。
【請求項９】
前記処理モジュールは、
制御情報に含まれる送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、および宛先ポートが、受信した前記メッセージの中の送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートと完全に一致するか否かによって、マッチングに成功するか否かを判断するように構成されていることを特徴とする請求項６に記載のリンクのヘルスチェック装置。
【請求項１０】
前記処理モジュールは、
前記モード情報がＤＲモードであると判断された場合、前記メッセージの宛先ＭＡＣアドレスを前記チェック待ちサーバのＭＡＣアドレスに変更し、
モード情報がＴＵＮモードであると判断された場合、前記メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加するように構成されていることを特徴とする請求項７に記載のリンクのヘルスチェック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドから２０１４年１０月３１日に出願され、名称が「リンクのヘルスチェック方法および装置」であり、中国出願番号が「２０１４１０６０２７５０．６」である中国発明特許出願の優先権の利益を主張する。
【０００２】
本発明は、コンピュータネットワーク技術に関し、特にリンクのヘルスチェック方法および装置に関する。
【背景技術】
【０００３】
ＬＶＳは、Linux Virtual Serverの略語で、すなわち、Ｌｉｎｕｘ（オープン送信元オペレーティングシステム）仮想サーバであり、仮想サーバクラスターシステムである。ＬＶＳは、主にロードバランサとバックエンドのサーバとを含む。その中で、ロードバランサ（load balancer）は、クラスター全体のフロントエンドコンピュータで実行するためのバックエンドのサーバにクライアントからの要求を送信する。バックエンドのサーバは、実際には、クライアントからの要求を実行するサーバである。
【０００４】
現在、ロードバランサは主にKeepalived（キープアライブプログラム）によってバックエンドのサーバのヘルスチェックを行う。
【０００５】
しかし、Keepalivedがバックエンドのサーバのヘルスチェックを行うとき、直接、ロードバランサのイントラネットＩＰアドレスを通して、ヘルスチェックパケットをバックエンドのサーバへ送信するので、クライアントおよびバックエンドのサーバが正常であるか否かを判断できない。これによって、大量のバケットの損失を招いたり、誤ってバックエンドのサーバを削除したりする可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の第一目的は、少なくともある程度、上記技術問題を解決するために、リンクのヘルスチェック方法を提供することにある。当該方法は、ユーザがＬＶＳにアクセスする流れと一致し、これによって、パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。
【０００７】
本発明の第二目的は、リンクのヘルスチェック装置を提供することにある。
【課題を解決するための手段】
【０００８】
前記目的を達成するために、本発明の第一側面の実施例によれば、キープアライブプログラムにより生成された、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含む制御情報を受信して保存するステップと、前記制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信するステップと、前記チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、前記チェック待ちサーバから返送された前記応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断するステップと、を含むリンクのヘルスチェック方法を提供する。
【０００９】
本発明の実施例のリンクのヘルスチェック方法によれば、キープアライブプログラムにより生成された制御情報を受信して保存し、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致し、これによって、パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。
【００１０】
前記目的宛先を達成するために、本発明の第二側面の実施例によれば、キープアライブプログラムにより生成された、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含む制御情報を受信して保存する受信モジュールと、前記制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信する処理モジュールと、前記チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、前記チェック待ちサーバから返送された前記応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する判断モジュールとを含むリンクのヘルスチェック装置を提供する。
【００１１】
本発明の実施例のリンクのヘルスチェック装置によれば、キープアライブプログラムにより生成された制御情報を受信して保存し、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致し、これによって、パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。
【００１２】
本発明の付加的内容および利点は、その一部が下記の説明で述べられ、他の部分は下記の説明を通して明らかになり、あるいは、本発明の実現で理解される。
【図面の簡単な説明】
【００１３】
本発明および／または付加的な態様および利点は、下記の図面を参照しながら実施例を説明することで明らかになり、また、理解し易くなる。
【図１】本発明の一の実施例によるリンクのヘルスチェック方法のフローチャートである。
【図２】本発明の一の実施例によるメッセージの構造を示す第一のブロック図である。
【図３】本発明の一の実施例によるメッセージの構造を示す第二のブロック図である。
【図４】本発明の一の具体的な実施例によるリンクのヘルスチェック方法のフローチャートである。
【図５】本発明の別の具体的な実施例によるリンクのヘルスチェック方法のフローチャートである。
【図６】本発明の一の実施例によるリンクのヘルスチェック装置の構造を示すブロック図であるである。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施例を詳細に説明する。前記実施例の実例が図面に示されるが、一貫して同一または類似する符号は、相互に同一または類似の部品、或いは、相互に同一または類似の機能を有する部品を表す。以下に、図面を参照しながら説明される実施例は例示的なものであり、本発明を解釈するためだけに用いられるものであって、本発明を限定するように理解されてはならない。
【００１５】
次に、図面を参照しながら、本発明の実施例のリンクのヘルスチェック方法および装置を説明する。
【００１６】
図１は本発明の一の実施例によるリンクのヘルスチェック方法のフローチャートである。本実施例は、ロードバランサのシステムカーネル側から説明される。
【００１７】
図１に示すように、当該リンクのヘルスチェック方法は、ステップＳ１０１、ステップＳ１０２およびステップＳ１０３を含む。
【００１８】
ステップＳ１０１において、キープアライブプログラムにより生成された制御情報を受信して保存する。
【００１９】
本発明の実施例では、システムカーネルは、keepalivedのようなキープアライブプログラムにより生成された制御情報を受信して保存することができる。そのうち、制御情報は、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含むことができる。モード情報は、ＤＲ（ダイレクトルーティング）モード、または、ＴＵＮ（トンネル）モードとすることができる。
【００２０】
具体的に、キープアライブプログラムは、ｂｉｎｄ（バインド関数）のような第一所定関数を呼び出して、送信元ＩＰアドレスと送信元ポートとを設定することができる。たとえば、送信元ＩＰアドレスをローカルＩＰアドレスとするように設定し、送信元ポートを０とするように設定する。そして、宛先ＩＰアドレスをロードバランサの仮想ＩＰアドレスとするように設定するとともに、第二所定関数を呼び出して、宛先ポートを設定する。たとえば、connectを呼び出して、宛先ＩＰアドレスをロードバランサの仮想ＩＰアドレスとするように設定し、宛先ポートをＶＰＯＲＴとするように設定する。
【００２１】
制御情報を生成した後、キープアライブプログラムはgetsockname（ソケットの名前を取得する）関数を呼び出した後、setsockopt（ソケットオプションを設定する）を呼び出してシステムカーネルに制御情報を送信する。その中で、システムカーネルはＬｉｎｕｘシステムカーネルであってもよい。システムカーネルは、制御情報を受信すると、制御情報を保存する。
【００２２】
ステップＳ１０２において、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信する。
【００２３】
本発明の実施例において、システムカーネルは、制御情報によって受信したメッセージに対しマッチングする。
【００２４】
具体的に、システムカーネルは、制御情報に含まれる送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートが、受信したメッセージの中の送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートと完全に一致するか否かによって、マッチングに成功するか否かを判断する。完全に一致するなら、マッチングに成功したと判断する。
【００２５】
その後、システムカーネルは、マッチングに成功したメッセージを処理する。
【００２６】
具体的に、モード情報がＤＲモードであると判断された場合、メッセージの宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更する。図２に示すように、メッセージの構造は、データの前に宛先ＩＰアドレスを追加し、さらに、宛先ＩＰアドレスの前に宛先ＭＡＣアドレスを追加することによって構成されるものである。本発明の実施例では、モード情報がＤＲモードである場合、当該メッセージの前の宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更することができる。
【００２７】
モード情報がＴＵＮモードであると判断された場合、メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加する。図３に示すように、メッセージの構造は、データの前に宛先ＩＰアドレスを追加し、さらに、宛先ＩＰアドレスの前に宛先ＭＡＣアドレスを追加することによって構成されるものである。本発明の実施例では、モード情報がＴＵＮモードである場合、当該メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加することができる。
【００２８】
マッチングに成功したメッセージを処理した後、チェック待ちサーバに処理後のメッセージを送信することができる。
【００２９】
ステップＳ１０３において、チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する。
【００３０】
その中で、リンクが健全でないと判断することには、次の二種類の状況がある。一方の種類の状況は、リンクが物理的に繋がっていない。他方の種類の状況は、リンクが物理的に繋がっていても、健全応答パケットを取得できない。
【００３１】
本発明の実施例では、システムカーネルは、チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断する。システムカーネルは、チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する。
【００３２】
本発明の実施例のリンクのヘルスチェック方法によれば、キープアライブプログラムにより生成された制御情報を受信して保存し、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致し、これによって、パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。
【００３３】
図４は本発明の一の具体的な実施例のリンクのヘルスチェック方法のフローチャートである。本実施例はＤＲモードを現在の作動モードとして説明する。
【００３４】
まず、ＬＶＳがＤＲモードにある場合、ユーザがＬＶＳにアクセスする流れを説明する。
【００３５】
ＬＶＳがＤＲモードにある場合、ユーザからの要求を処理するステップは以下の通りである。
【００３６】
１、クライアントがロードバランサ（ＬＩＮＵＸシステムカーネル）の仮想ＩＰアドレスに要求パケットを送信する。
【００３７】
２、ロードバランサは受信した要求パケットを解析し、要求パケットの宛先ＭＡＣアドレスをあるサーバのＭＡＣアドレスに変更し、サーバに要求パケットを送信する。
【００３８】
３、サーバのｌｏ（ローカルループインターフェース）をロードバランサの仮想ＩＰアドレスにバインディングする。サーバが要求パケットを受信し、処理し、応答パケットを生成し、別のルータを経由して、直接にクライアントに応答パケットを返送する。
【００３９】
本実施例のリンクのヘルスチェック方法の流れは、ユーザがＬＶＳにアクセスする流れと一致しているので、リンクが健全であるかを正確にチェックできる。
【００４０】
具体的に、図４に示すように、当該リンクのヘルスチェック方法の流れは、ステップＳ４０１、ステップＳ４０２およびステップＳ４０３を含む。
【００４１】
ステップＳ４０１において、keepalivedにより生成された制御情報を受信して保存する。
【００４２】
具体的に、Keepalivedのｂｉｎｄ（バインド関数）システムコールは、ソケットの送信元ＩＰアドレスを、たとえば１０．７６．１．１とし、送信元ポートを０として、バインディングのために用いることができ、そして、getsockname（ソケットの名前を取得する）関数を呼び出して、制御情報を生成するために、ソケットにバインディングするポート番号を取得する。その中で、制御情報は、送信元ＩＰアドレス、送信元ポート、ＶＩＰアドレス（ロードバランサの仮想ＩＰアドレス）、ＶＰＯＲＴ（ロードバランサの仮想ＩＰポート）、チェック待ちサーバＩＰアドレスおよびモード情報などの情報を含む。その後、ロードバランサ（ＬＩＮＵＸシステムカーネル）は、Keepalivedにより生成された制御情報を受信して保存する。
【００４３】
ステップＳ４０２において、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージの宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更し、チェック待ちサーバに処理したメッセージを送信する。
【００４４】
具体的には、netfilter（ネットワークフィルタリンクフレームワーク）を利用して、LOCAL_OUT（ローカル出口）でｈｏｏｋ（フック関数）を呼び出してメッセージを検出する。当該メッセージをヘルスチェックするためのメッセージであると判断すれば、メッセージの宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更し、チェック待ちサーバに処理したメッセージを送信する。
【００４５】
ステップＳ４０３において、チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する。
【００４６】
具体的に、チェック待ちサーバから返送された応答メッセージを受信した場合、netfilterを利用して、PRE_ROUTING（プレルーティング）でｈｏｏｋ（フック関数）を呼び出して応答メッセージを検出する。当該応答メッセージが対応するチェック待ちサーバから返送されたメッセージであると判断すれば、対応するリンクが健全であると判断する。
【００４７】
本発明の実施例のリンクのヘルスチェック方法によれば、Keepalivedにより生成された制御情報を受信して保存し、制御情報によって受信したメッセージに対してマッチングし、マッチングに成功したメッセージの宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更し、チェック待ちサーバに処理したメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致する。したがって、クライアントがチェック待ちサーバに正常にアクセスできないが、イントラネットＩＰでチェック待ちサーバが健全であると検出した時に、パケットが損失するという問題を解決できる。また、クライアントがチェック待ちサーバに正常にアクセスできるが、イントラネットＩＰでチェック待ちサーバが健全でないと検出した時に、誤って健全なサーバを削除するという状況を避けることができる。
【００４８】
図５は本発明の別の具体的な実施例のリンクのヘルスチェック方法のフローチャートである。本実施例はＴＵＮモードを現在の作動モードとして説明する。
【００４９】
まず、ＬＶＳがＴＵＮモードにある場合、ユーザがＬＶＳにアクセスする流れを説明する。
【００５０】
ＬＶＳがＴＵＮモードにある場合、ユーザからの要求を処理するステップは以下の通りである。
１、クライアントがロードバランサ（ＬＩＮＵＸシステムカーネル）の仮想ＩＰアドレスに要求パケットを送信する。
【００５１】
２、ロードバランサは要求パケットを受信し、トンネリングプロトコルにより要求パケットをカプセル化し、サーバに要求パケットを送信する。
【００５２】
３、サーバが要求パケットを受信し、処理し、応答パケットを生成し、直接、クライアントに応答パケットを返送する。
【００５３】
本実施例のリンクのヘルスチェック方法の流れは、ユーザがＬＶＳにアクセスする流れと一致しているので、リンクが健全であるかを正確にチェックできる。
【００５４】
具体的に、図５に示すように、当該リンクのヘルスチェック方法の流れは、ステップＳ５０１、ステップＳ５０２およびステップＳ５０３を含む。
【００５５】
ステップＳ５０１において、Keepalivedにより生成された制御情報を受信して保存する。
【００５６】
具体的に、Keepalivedのｂｉｎｄ（バインド関数）システムコールは、ソケットの送信元ＩＰアドレスを、たとえば１０．７６．１．１とし、送信元ポートを０として、バインディングのために用いることができ、そして、getsockname（ソケットの名前を取得する）関数を呼び出して、制御情報を生成するために、ソケットにバインディングするポート番号を取得する。その中で、制御情報は、送信元ＩＰアドレス、送信元ポート、ＶＩＰアドレス（ロードバランサの仮想ＩＰアドレス）、ＶＰＯＲＴ（ロードバランサの仮想ＩＰポート）、チェック待ちサーバＩＰアドレスおよびモード情報などの情報を含む。その後、ロードバランサ（ＬＩＮＵＸシステムカーネル）は、Keepalivedにより生成された制御情報を受信して保存する。
【００５７】
ステップＳ５０２において、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加して、チェック待ちサーバに処理したメッセージを送信する。
【００５８】
具体的には、netfilter（ネットワークフィルタリンクフレームワーク）を利用して、LOCAL_OUT（ローカル出口）でｈｏｏｋ（フック関数）を呼び出してメッセージを検出する。当該メッセージをヘルスチェックするためのメッセージであると判断すれば、メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加して、チェック待ちサーバに処理したメッセージを送信する。
【００５９】
ステップＳ５０３において、チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する。
【００６０】
具体的に、チェック待ちサーバから返送された応答メッセージを受信した場合、netfilterを利用して、PRE_ROUTINGでｈｏｏｋ（フック関数）を呼び出して応答メッセージを検出する。当該応答メッセージが対応するチェック待ちサーバから返送されたメッセージであると判断すれば、対応するリンクが健全であると判断する。
【００６１】
本発明の実施例のリンクのヘルスチェック方法によれば、keepalivedにより生成された制御情報を受信して保存し、制御情報によって受信したメッセージに対してマッチングし、マッチングに成功したメッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加して、チェック待ちサーバに処理したメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致する。したがって、クライアントがチェック待ちサーバに正常にアクセスできないが、イントラネットＩＰでチェック待ちサーバが健全であると検出した時に、パケットが損失するという問題を解決できる。また、クライアントがチェック待ちサーバに正常にアクセスできるが、イントラネットＩＰでチェック待ちサーバが健全でないと検出した時に、誤って健全なサーバを削除するという状況を避けることができる。
【００６２】
前記実施例を実現するために、本発明は更にリンクのヘルスチェック装置を提出する。
【００６３】
図６は本発明の一の実施例のリンクのヘルスチェック装置の構造を示すブロック図であるである。
【００６４】
図６に示すように、リンクのヘルスチェック装置は、受信モジュール１１０、処理モジュール１２０および判断モジュール１３０を含む。
【００６５】
その中で、受信モジュール１１０は、キープアライブプログラムにより生成された制御情報を受信して保存する。
【００６６】
本発明の実施例では、受信モジュール１１０は、keepalivedのようなキープアライブプログラムにより生成された制御情報を受信して保存することができる。そのうち、制御情報は、送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレス、宛先ポート、チェック待ちサーバＩＰアドレスおよびモード情報を含むことができる。モード情報は、ＤＲ（ダイレクトルーティング）モード、または、ＴＵＮ（トンネル）モードとすることができる。
【００６７】
具体的に、キープアライブプログラムは、ｂｉｎｄ（バインド関数）のような第一所定関数を呼び出して、送信元ＩＰアドレスと送信元ポートとを設定することができる。たとえば、送信元ＩＰアドレスをローカルＩＰアドレスとするように設定し、送信元ポートを０とするように設定する。そして、宛先ＩＰアドレスをロードバランサの仮想ＩＰアドレスとするように設定するとともに、第二所定関数を呼び出して、宛先ポートを設定する。たとえば、connectを呼び出して、宛先ＩＰアドレスをロードバランサの仮想ＩＰアドレスとするように設定し、宛先ポートをＶＰＯＲＴとするように設定する。
【００６８】
制御情報を生成した後、キープアライブプログラムはgetsockname（ソケットの名前を取得する）関数を呼び出して、setsockopt（ソケットオプションを設定する）を呼び出してシステムカーネルの受信モジュール１１０に制御情報を送信する。その中で、システムカーネルはＬｉｎｕｘシステムカーネルであってもよい。受信モジュール１１０は制御情報を受信すると、制御情報を保存する。
【００６９】
処理モジュール１２０は、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信する。
【００７０】
本発明の実施例において、処理モジュール１２０は、制御情報によって受信したメッセージに対しマッチングする。
【００７１】
具体的に、処理モジュール１２０は、制御情報に含まれる送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートが、受信したメッセージの中の送信元ＩＰアドレス、送信元ポート、宛先ＩＰアドレスおよび宛先ポートと完全に一致するか否かによって、マッチングに成功するか否かを判断する。完全に一致するなら、マッチングに成功したと判断する。
【００７２】
その後、処理モジュール１２０は、マッチングに成功したメッセージを処理する。
【００７３】
具体的に、モード情報がＤＲモードであると判断された場合、処理モジュール１２０は、メッセージの宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更する。図２に示すように、メッセージの構造は、データの前に宛先ＩＰアドレスを追加し、さらに、宛先ＩＰアドレスの前に宛先ＭＡＣアドレスを追加することによって構成されるものである。本発明の実施例では、モード情報がＤＲモードである場合、当該メッセージの前の宛先ＭＡＣアドレスをチェック待ちサーバのＭＡＣアドレスに変更することができる。
【００７４】
モード情報がＴＵＮモードであると判断された場合、処理モジュール１２０は、メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加することができる。図３に示すように、メッセージの構造は、データの前に宛先ＩＰアドレスを追加し、さらに、宛先ＩＰアドレスの前に宛先ＭＡＣアドレスを追加することによって構成されるものである。本発明の実施例では、モード情報がＴＵＮモードである場合、当該メッセージの宛先ＩＰアドレスの前にトンネルＴＵＮＮＥＬヘッダを追加することができる。
【００７５】
マッチングに成功したメッセージを処理した後、処理モジュール１２０は、チェック待ちサーバに処理後のメッセージを送信することができる。
【００７６】
判断モジュール１３０は、チェック待ちサーバから返送された応答メッセージを受信した場合、対応するリンクが健全であると判断し、チェック待ちサーバから返送された応答メッセージを受信しなかった場合、対応するリンクが健全ではないと判断する。
【００７７】
その中っで、リンクが健全でないと判断することには、次の二種類の状況がある。一方の種類の状況は、リンクが物理的に繋がっていない。他方の種類の状況は、リンクが物理的に繋がっていても、健全応答パケットを取得できない。
【００７８】
本発明の実施例では、システムカーネルがチェック待ちサーバから返送された応答メッセージを受信した場合、判断モジュール１３０は対応するリンクが健全であると判断することができる。システムカーネルがチェック待ちサーバから返送された応答メッセージを受信しなかった場合、判断モジュール１３０は対応するリンクが健全ではないと判断する。
【００７９】
本発明の実施例のリンクのヘルスチェック装置によれば、キープアライブプログラムにより生成された制御情報を受信し、保存し、制御情報によって受信したメッセージに対しマッチングし、マッチングに成功したメッセージを処理して、チェック待ちサーバに処理後のメッセージを送信し、チェック待ちサーバに対応するリンクが健全であるか否かを検出する。当該方法は、ユーザがＬＶＳにアクセスする流れと一致し、これによって、パケットの損失を招いたり、誤ってサーバを削除したりする問題を解決し、ヘルスチェックの正確率を向上させる。
【００８０】
本明細書において、「一実施形態」、「いくつかの実施形態」、「例示」、「具体的な例示」或いは「いくつかの例示」などの用語を参照した説明とは、当該実施形態或いは例示に結合して説明された具体的特徴、構成、材料或いは特徴が、本発明の少なくとも一の実施形態或いは例示に含まれることをいう。本明細書において、上記用語に対する例示的な表現は、必ずしも同じ実施形態或いは例示を示すことではない。また、説明された具体的特徴、構成、材料或いは特徴は、いずれか一つ或いは複数の実施形態または例示において適切に結合することができる。また、矛盾しない限りに、当業者は、本明細書の異なる実施例または例示、および、異なる実施例または例示の特徴を組み合わせることができる。
【００８１】
また、用語「第一」、「第二」は単に目的を説明するためのみに用いられ、相対的な重要性に明示的にも暗示的にも関連づけられまたは示された技術特徴の数量を、暗示的に使用されるものではない。そのため、「第一」、「第二」を含む特徴を限定することは少なくとも一の当該特徴を明示的にまたは暗示的に含むことができる。本発明において、別途、明確に限定した場合を除き、用語「複数」は少なくとも二つ、たとえば、二つ、三つなどである。
【００８２】
フローチャートにおいて、または、ここで他の方式で説明されたいかなる過程または方法も、一つまたは特定の論理機能または過程を実現するための実行可能な命令のコードのモジュール、セグメントまたは一部である。本発明の好ましい実施形態は、他の形態も含み、例示されたまたは議論された順序（関与された機能とほぼ同じ方式または逆の順序を含む）によらず実行できることを当業者であれば理解すべきである。
【００８３】
フローチャート内で表され、または、その他の方式で記述された論理および／またはステップは、例えば、論理機能を実現するための命令実行可能な順序リストであると考えてよく、具体的には、いかなるコンピュータ読取可能媒体中でも実現することができ、それによって指令実行システム、装置、若しくは設備（例えばコンピュータに基づくシステム、プロセッサを含むシステムまたは他の指令実行システム、装置または設備から指令を取得して指令を実行することができるシステム等）に使用され、または、これらの指令実行システム、装置、若しくは設備を結合して使用される。本明細書について言えば、「コンピュータ読取可能媒体」は、プログラムを含み、保存し、通信し、伝播し、または、伝送し、指令実行システム、装置若しくは設備またはこれらの指令実行システム、装置若しくは設備に使用されるいかなる装置であってもよい。コンピュータ読取可能媒体のさらに具体的な例示（非網羅的リスト）には、１つ以上の配線を有する電気接続部（電子装置）、ポータブル型コンピュータディスク（磁気装置）、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＲＡＭまたはフラッシュメモリ）、光ファイバ、および、コンパクト光ディスク読み出し専用メモリ（ＣＤＲＯＭ）が含まれる。また、コンピュータ読取可能媒体は、その上に前述のプログラムを印刷した紙、または、その他適当な媒質でさえあってよい。なぜなら、例えば、紙またはその他の媒質に対して光学スキャンを行い、続いて編集、解釈、または、必要ならその他適当な方式で処理を行って、電子方式によって前記プログラムを取得し、その後、それをコンピュータメモリ中に保存することができるからである。
【００８４】
本発明の各部分は、ハードウェア、ソフトウェア、ファームウェア、または、それらの組み合わせで実現することができる。上記実施形態において、複数のステップまたは方法は、メモリに格納され且つ適切な命令実行システムにより実行されるソフトウェアまたはファームウェアで実現することができる。例えば、ハードウェアで実現する場合、他の実施形態と同様に、当該技術分野で公知の以下の技術におけるいずれか１つまたはそれらの組み合わせで実現することができる。データ信号に論理機能を実現するための論理ゲート回路を有するディスクリート論理回路、適切な組み合わせ論理ゲート回路を有する専用集積回路、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＰＦＧＡ）などである。
【００８５】
上述の実施形態を実現する方法に係る全部または部分のステップは、プログラムによって関連するハードウェアに命令を実行して完成でき、前記プログラムがコンピュータの読み取り可能な記憶媒体に記憶され、プログラムを実行するとき、実施形態のステップの一つまたはその組合せを含むことを当業者は理解すべきである。
【００８６】
また、本発明の実施形態に係る各機能ユニットは、一の処理モジュールに集成されてもよいし、各ユニット各自の物理的存在であってもよいし、ソフトウェアによるモジュールを利用してもよい。前記統合されたモジュールはハードウェアを利用してもできるし、ソフトウェアを利用してもできる。前記統合されたモジュールはソフトウェアを利用して独立するプロダクトとして販売または利用されるとき、コンピュータの読み取り可能な記憶媒体に記憶されてもよい。
【００８７】
前記記憶メディアは、ディスク、または、ＣＤなどである。本発明の実施形態を示して説明したが、上述実施例は例示的なものであり、それを限定するものではないと理解すべきである。当業者は、本発明の原理および主旨から逸脱しない限り、これらの実施形態に対して複種の変化、補正、切り替えおよび変形を行うことができる。
【図１】
2017501657.tif 000003
【図２】
2017501657.tif 000004
【図３】
2017501657.tif 000005
【図４】
2017501657.tif 000006
【図５】
2017501657.tif 000007
【図６】
2017501657.tif 000008
【国際調査報告】
2017501657.tif 000009
2017501657.tif 000010
2017501657.tif 000011
2017501657.tif 000012