【文献】
山本 高大 Kodai YAMAMOTO,NTNI−GWにおける他社網障害検知方法に関する一考察,電子情報通信学会2017年総合大会講演論文集 通信2 PROCEEDINGS OF THE 2017 IEICE GENERAL CONFERENCE,日本,2017年03月07日,152
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を参照して説明する。
【0016】
図1は、本発明の実施形態に係る通信システムの全体を示すシステム構成図である。図示する通信システムは、異なる通信事業者間でIP相互接続が行われるシステムである。
【0017】
本実施形態の通信システムでは、自社である通信事業者Aの自社網と、他社である通信事業者Bの他者網とが、複数のPOI(Point Of Interface:相互接続点)9を介して接続されている。自社網および他社網は、IP網である。また、他者網にはユーザ端末8が接続されている。
【0018】
図示する自社網は、自社NNI-GW1と、自社SIPサーバ2と、DNSサーバ3とを含む。自社NNI-GW1は、他社網とのPOI境界に設置されるゲートウェイである。自社NNI-GW1は、自社網と他社網とを相互に接続するために、データ形式、通信方式などを変換する。また、本実施形態の自社NNI-GW1は、他社網の障害を検知する。自社SIPサーバ2は、発信および着信などの呼処理(呼制御)を行う。
【0019】
DNS(Domain Name System)サーバ3は、他社網に配置された他社NNI-GW5の名前解決を行う。ここでは、DNSサーバは、自社NNI-GW1からの要求に応じて、他社網に配置された全ての他社NNI-GW5のリストを自社NNI-GW1に送信する。
図1では、他社網には3つの他社NNI-GW5が配置されているため、リストには3つの他社NNI-GW5に関する情報が設定されている。
【0020】
図示する他者網は、2つのPOI9を介して自社網(自社NNI-GW1)と接続され、複数の他社NNI-GW5と、複数の他社SIPサーバ6A、6Bと、他社HGW(Home GateWay)7とを備える。現在のIP相互接続仕様の標準化(通信事業者の調整)において、複数のPOI9を介して2つの網を相互に接続すること、および、1つのPOI9に複数の他社NNI-GW5を接続することが検討されている。ここでは、第1のPOI9には、2つの他社NNI-GW5が接続され、第2のPOI9には、1つの他社NNI-GW5が接続されている。
【0021】
他社NNI-GW5は、自社網とのPOI境界に設置されるゲートウェイである。他社NNI-GW5は、2つの網を相互に接続するために、データ形式、通信方式などを変換する。他社SIPサーバ6は、発信および着信などの呼処理を行う。なお、他社NNI-GW5および他社SIPサーバ6は、他社網のコア網装置である。
【0022】
他社HGW7は、ユーザ端末8を他社網に接続するためのユーザ側装置である。他社HGW7にはユーザ端末8が接続される。ユーザ端末8は、電話機能を有する端末であって、例えばSIP端末などを用いることができる。なお、
図1では、1つの他社HGW7および1つのユーザ端末8を記載しているが、他社網は複数の他社HGW7を備え、他社網には複数のユーザ端末8が接続されているものとする。
【0023】
図示する他社網は、一例として、左から順に他社NNI-GW5、2つの他社SIPサーバ6、および他社HGW7の4階層の網であるが、これに限定されるものではない。
【0024】
また、
図1に示す通信システムでは、NNI-GW1、5は、SIPサーバ2、6とは独立した装置であるが、SIPサーバ2、6がNNI-GW1、5の機能を備えることとしてもよい。
【0025】
図2は、本実施形態の自社NNI-GW1(障害検知装置)の構成を示す機能ブロック図である。図示する自社NNI-GW1は、階層検出部11と、障害検知部12と、障害箇所特定部13と、判定部14と、相互接続部15と、記憶部16とを備える。
【0026】
階層検出部11は、最大転送数を含むOPTIONSリクエストを他社網に送信することで、他社網の階層の深さを示す階層数を検出する。具体的には、階層検出部11は、リクエストの最大転送数を、0から1ずつ増加させて他社網に送信し、他社網から成功応答を受信したときの最大転送数に1加算した値を、他社網の階層の深さを示す階層数と特定する。
【0027】
障害検知部12は、INVITEリクエストを他社網に送信する際にタイマを起動し、INVITEリクエストに対する18xレスポンス(暫定レスポンス)を受信することなく、タイマがタイムアウトになった場合、他社網の障害を検知する。また、障害検知部12は、他社NNI-GW5から500エラーレスポンス(Server Internal Error)を受信した場合、他社網の障害を検知する。
【0028】
障害箇所特定部13は、他社網の障害を検知した場合、他社網にOPTIONSリクエストを送信することで、他社網の障害箇所の階層を特定する。
【0029】
判定部14は、障害箇所の階層が他社網の階層数より小さい階層の場合、他社網の網コア装置(他社NNI-GW5、他社SIPサーバ6)に起因する障害と判定し、障害箇所の階層が他社網の階層数と等しい場合、ユーザ側装置(他社HGW7)またはユーザ端末8に起因する障害であると判定する。また、判定部14は、他社網の網コア装置に起因する障害と判別した場合、他社網の現用の他社NNI-GW5とは別の他社NNI-GW5にOPTIONSリクエストを送信し、別の他社NNI-GW5を介した経路での他社網の疎通確認後に、別の他社NNI-GW5の経路へ切り替える。
【0030】
相互接続部15は、他社網とデータを送受信するために、データ形式、通信方式などを変換する。記憶部16には、階層検出部11が検出した他社網の階層数などが記憶される。
【0031】
上記説明した自社NNI-GW1には、例えば、CPU(Central Processing Unit、プロセッサ)と、メモリと、ストレージ(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置と、入力装置と、出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた自社NNI-GW1用のプログラムを実行することにより、自社NNI-GW1の各機能が実現される。また、自社NNI-GW1用のプログラムは、HDD、SSD、USBメモリ、CD-ROM、DVD-ROM、MOなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0032】
次に、本実施形態の通信システムにおける動作を説明する。
【0033】
図3は、平常時における通信システムの動作を示すシーケンス図である。平常時において、自社NNI-GW1は、OPTIONSリクエストを他社網に送信することで、他社網の階層の深さを示す階層数を検出する。
【0034】
具体的には、自社NNI-GW1の階層検出部11は、サンプリング的にOPTIONSリクエストを他社網に送信する。その際、階層検出部11は、OPTIONSリクエストの最大転送数を示すMax-Forwardヘッダ(以下、「MF」という。)の値を、0から1ずつ増加(インクリメント)させながら送信する。なお、OPTIONSリクエストの宛先(Request-URI)は、他社網の電話番号体系の任意の電話番号とする。
【0035】
図示する例では、階層検出部11は、MF値に0を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信する(S11)。
図1に示すように、他社網に複数の他社NNI-GW5が存在する場合、階層検出部11は、任意のPOIの任意の他社NNI-GW5にOPTIONSリクエストを送信する。
【0036】
OPTIONSリクエストを受信した他社NNI-GW5は、MF値を1減算しようとするが、受信したOPTIONSリクエストのMF値は0であるため、483エラーレスポンス(エラー応答)を自社NNI-GW1に送信する(S12)。483エラーは、最大ホップ数を超えた場合に送信される。
【0037】
そして、階層検出部11は、MF値に1を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信する(S13)。他社NNI-GW5は、OPTIONSリクエストのMF値を1減算し、MF値0のOPTIONSリクエストを次の転送先の他社SIPサーバ6Aに送信する(S14)。他社SIPサーバ6Aは、受信したOPTIONSリクエストのMF値は0であるため、483エラーレスポンスを、他社NNI-GW5を介して自社NNI-GW1に送信する(S15)。
【0038】
そして、階層検出部11は、MF値に2を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信する(S16)。他社NNI-GW5は、OPTIONSリクエストのMF値を1減算し、MF値1のOPTIONSリクエストを次の転送先の他社SIPサーバ6Aに送信する(S17)。他社SIPサーバ6Aは、OPTIONSリクエストのMF値を1減算し、MF値0のOPTIONSリクエストを次の転送先の他社SIPサーバ6Bに送信する(S18)。他社SIPサーバ6Bは、受信したOPTIONSリクエストのMF値は0であるため、483エラーレスポンスを、他社NNI-GW5等を介して自社NNI-GW1に送信する(S19)。
【0039】
そして、階層検出部11は、MF値に3を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信する(S20)。他社NNI-GW5は、OPTIONSリクエストのMF値を1減算し、MF値2のOPTIONSリクエストを次の転送先の他社SIPサーバ6Aに送信する(S21)。他社SIPサーバ6Aは、OPTIONSリクエストのMF値を1減算し、MF値を1のOPTIONSリクエストを次の転送先の他社SIPサーバ6Bに送信する(S22)。他社SIPサーバ6Bは、OPTIONSリクエストのMF値を1減算し、MF値0のOPTIONSリクエストを次の転送先の他社HGW7に送信する(S23)。他社HGW7は、受信したOPTIONSリクエストが自分の宛先であるため、200 OKレスポンス(成功応答)を、他社NNI-GW5等を介して自社NNI-GW1に送信する(S24)。
【0040】
自社NNI-GW1の階層検出部11は、200 OKレスポンスを受信したときのOPTIONSリクエストのMF値に1加算した値が、他社網の階層の深さを示す階層数であると検出(学習)する(S25)。そして、階層検出部11は、検出した階層数を記憶部16に記憶する。
図3に示す例では、階層の浅い順に、他社NNI-GW5は1階層目、他社SIPサーバ6Aが2階層目、他社SIPサーバ6Bが3階層目、他社HGW7が4階層目となる。
【0041】
なお、複数の通信事業者の他社網とIP相互接続を行う場合、自社NNI-GW1は、通信事業者毎に、
図3に示す動作により他社網の階層の深さを検出し、階層数を記憶部16に記憶する。
【0042】
また、本実施形態では、OPTIONSリクエストを用いて他社網の階層の深さを検出するが、これに限定されるものでなく、MFを含むメッセージであればOPTIONSリクエスト以外のメッセージであってもよい。
【0043】
図4は、障害時における通信システムの動作を示すシーケンス図である。ここでは、自社SIPサーバ2が送信したINVITEリクエスト(セッション確立要求)がエラーとなる場合を例に説明する。
【0044】
自社SIPサーバ2は、INVITEリクエストを自社NNI-GW1に送信する(S31)。自社NNI-GW1の相互接続部15は、受信したINVITEリクエストを他社網の他社NNI-GW5に送信するとともに(S32)、100 tryingレスポンス(試行中応答)を自社SIPサーバ2に送信する(S33)。
【0045】
また、自社NNI-GW1の故障検知部は、S32でINVITEリクエストを他社NNI-GW5に送信すると同時に、18x受信タイマを起動し、タイムアウトを監視する。18x受信タイマは、18xレスポンス(例えば180 Ringing、181 Call is being forwardedなど)の受信を監視するためのタイマである。なお、18x受信タイマのタイマ値は、他社網の障害検知を迅速に行うために比較的短い値とする。
【0046】
他社NNI-GW5は、INVITEリクエストを次の階層の他社SIPサーバ6Aに送信するとともに(S34)、100 tryingレスポンスを自社NNI-GW1に送信する(S35)。そして、他社SIPサーバ6Aは、INVITEリクエストを次の階層の他社SIPサーバ6Bに送信するとともに(S36)、100 tryingレスポンスを他社NNI-GW5に送信する(S37)。
【0047】
ここで、他社SIPサーバ6Bに障害が発生している場合、他社SIPサーバ6Bは、INVITEリクエストを受信することができず、あるいは、INVITEリクエストを受信しても当該リクエストを処理することができない。これにより、自社NNI-GW1は、正常時においては他社HGW7から送信される18xレスポンスを、S32で起動した18x受信タイマが満了する前に受信することができない。すなわち、18xレスポンスを受信する前に、S34で起動した18x受信タイマがタイムアウトとなる。これにより、障害検知部12は、他社網で障害が発生したことを検知する(S38)。
【0048】
あるいは、他社SIPサーバ6Bに障害が発生している場合、隣接する他社SIPサーバ6Aは、他社SIPサーバ6Bの障害を検知して、503エラーレスポンス(Service Unavailable)を隣接する他社NNI-GW5に送信する(S41)。他社NNI-GW5は、503エラーレスポンスを受信すると、500エラーレスポンス(Server Internal Error)にインタワークして、隣接する自社NNI-GW1に送信する(S42)。これにより、自社NNI-GW1の障害検知部12は、他社網で障害が発生したと検知する(S43)。
【0049】
本実施形態では、自社NNI-GW1の障害検知部12は、S38の18x受信タイマのタイムアウト、または、S43の500エラーレスポンスの受信により、他社網での障害を検知する。
【0050】
障害検知部12が他社網の障害を検知すると、自社NNI-GW1の障害箇所特定部13は、他社網の障害箇所を特定する。具体的には、障害箇所特定部13は、
図3で説明したように、OPTIONSリクエストに含まれる最大転送数を示すMF値を、0から1ずつ増加させながら送信して、SIPトレースルートを実施し、障害箇所を特定する。また、障害箇所特定部13は、OPTIONSリクエストの宛先(Request-URI)に、INVITEリクエスト(S31、S32等)で指定された電話番号を設定する。
【0051】
正常な他社網の各装置は、MF値が0になると483エラーレスポンスを送信する。そこで、障害箇所特定部13は、OPTIONSリクエストを送信すると同時に483受信タイマを起動し、当該タイマのタイムアウトを監視する。障害箇所特定部13は、483受信タイマが満了する前に483エラーレスポンスを受信することができない場合、すなわち、483エラーレスポンスを受信する前に483受信タイマがタイムアウトとなった場合、他社網の故障箇所が自分より何番目の階層か(何ホップ先か)を特定する。
【0052】
図示する例では、障害箇所特定部13は、MF値に0を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信するとともに、483受信タイマを起動する(S51)。他社NNI-GW5は、受信したOPTIONSリクエストのMF値は0であるため、483エラーレスポンスを自社NNI-GW1に送信する(S52)。
【0053】
そして、階層検出部11は、MF値に1を設定したOPTIONSリクエストを、他社NNI-GW5に送信するとともに、483受信タイマを起動する(S53)。他社NNI-GW5は、OPTIONSリクエストのMF値を1減算し、MF値0のOPTIONSリクエストを他社SIPサーバ6Aに送信する(S54)。他社SIPサーバ6Aは、受信したOPTIONSリクエストのMF値は0であるため、483エラーレスポンスを自社NNI-GW1に送信する(S55)。
【0054】
そして、階層検出部11は、MF値に2を設定したOPTIONSリクエストを、他社網の他社NNI-GW5に送信するとともに、483受信タイマを起動する(S56)。他社NNI-GW5は、OPTIONSリクエストのMF値を1減算し、MF値1のOPTIONSリクエストを他社SIPサーバ6Aに送信する(S57)。他社SIPサーバ6Aは、OPTIONSリクエストのMF値を1減算し、MF値0のOPTIONSリクエストを他社SIPサーバ6Bに送信する(S58)。
【0055】
ここで、他社SIPサーバ6Bで障害が発生しているため、他社SIPサーバ6Bは、MF値0のOPTIONSリクエストに対する483エラーレスポンスを送信することができない。これにより、障害箇所特定部13は、483エラーレスポンスをS56で起動した483受信タイマが満了する前に受信することができず、483受信タイマがタイムアウトとなる。
【0056】
これにより、障害箇所特定部13は、他社網における故障箇所を特定する。すなわち、障害箇所特定部13は、483受信タイマがタイムアウトとなったときのOPTIONSリクエストのMF値に1加算した値の階層(ホップ先)が、障害が発生した箇所であると特定する(S59)。
【0057】
図4に示す例では、障害箇所特定部13は、483受信タイマがタイムアウトとなったときのOPTIONSリクエストのMF値2に1加算した3階層目(他社SIPサーバ6B)が、障害箇所であると特定する。
【0058】
そして、自社NNI-GW1の判定部14は、他社網の網コア装置に起因する障害であるのか、あるいは、ユーザ側装置またはユーザ端末8に起因する障害であるのか判定する。
【0059】
具体的には、判定部14は、障害箇所特定部13が特定した障害箇所の階層が、階層検出部11が検出した他社網の階層数より小さい階層(浅い階層、自社NNI-GW1に近い階層)の場合は、他社網の網コア装置(他社NNI-GW5、他社SIPサーバ6A、6B)に起因する障害と判定する。
【0060】
一方、判定部14は、特定した障害箇所の階層が他社網の階層数と等しい場合、ユーザ側装置(他社HGW7)またはユーザ端末8に起因する障害であると判定する(S59)。ユーザ側装置またはユーザ端末8に起因する障害と判定した場合、判定部14は、障害の影響が限定的であり、また、現用の他社NNI-GW5とは別の他社NNI-GW5に切り替えても当該障害を回避することは難しいと判断する。このため、判定部14は、障害回避に関する処理は行わない。
【0061】
他社網の網コア装置の障害と判定した場合、判定部14は、障害の影響が大きく、現用の他社NNI-GW5を他の他社NNI-GW5に切り替えた場合、障害を回避できる可能性があると判断する。そのため、判定部14は、障害箇所が特定された他社SIPサーバ6Bの経路に繋がる現用の他社NNI-GW5とは別の他社NNI-GWを経由したSIP信号の到達可能性を検査する。すなわち、別の他社NNI-GW5の経路での疎通確認に応じて、他社網の切替先の他社NNI-GW5(経路)を洗い出す。
【0062】
具体的には、判定部14は、DNSサーバ3にアクセスし、他社網の全ての他社NNI-GW5に関する情報(例えば、URIなどのアドレス、識別情報など)が設定されたNNI-GWリストを取得する。そして、判定部14は、障害が検知された経路(系)である、現用の他社NNI-GW5以外の他の他社NNI-GWにOPTIONSリクエストを送信する。このとき、判定部14は、
図3と同様に、OPTIONSリクエストに含まれる最大転送数を示すMF値を、0から1ずつ増加させながら、他の他社NNI-GWにOPTIONSリクエストを送信する。また、判定部14は、OPTIONSリクエストの宛先(Request-URI)に、INVITEリクエスト(S31、S32等)で指定された電話番号を設定する。なお、他の他社NNI-GW5には、
図1に示すように、同じPOIの他の他社NNI-GW5と、異なるPOIの他の他社NNI-GW5とが含まれる。
【0063】
そして、判定部14は、いずれかの他の他社NNI-GW5の経路でOPTIONSリクエストに対する200 OKレスポンスを受信すると、他社NNI-GW5の切替で障害が回避できるケースであると判定し、当該他の他社NNI-GW5への経路切替を実施する。なお、経路切替には、同じPOIの他の他社NNI-GW5への経路切替と、異なるPOIの他の他社NNI-GW5への経路切替とがある。
【0064】
これにより、本実施形態では、他社網の網コア装置の障害と判定した場合に、切替先の経路を洗い出し、障害を回避することができる。また、本実施形態では、経路を切り替え前に、事前に、経路を切り替えることで障害が回避できるかを、OPTIONSリクエストを送信して疎通確認することで検証する。これにより、障害が回避できる場合にのみ、経路を切り替え、経路を切り替えても効果がない(障害が回避できない)場合に、経路を切り替えてしまう無駄な処理を回避することができる。
【0065】
以上説明した本実施形態では、最大転送数を含むリクエストを前記他社網に送信することで、前記他社網の階層の深さを示す階層数を検出し、前記他社網の障害を検知した場合、前記他社網に前記リクエストを送信することで、前記他社網の障害箇所の階層を特定し、前記障害箇所の階層が前記他社網の階層数より小さい階層の場合、前記他社網の網コア装置の障害と判定する。
【0066】
これにより、本実施形態では、他社網で障害が発生した場合、障害の影響範囲を大きいもので、障害を回避できる可能性があるケースか、あるいは、ユーザ端末障害などの障害の影響が限定的なもので、障害を回避できる可能性がないケースかを把握(区別)することができる。
【0067】
また、本願発明は、INVITEリクエストを他社網に送信する際に18x受信タイマを起動し、INVITEリクエストに対する暫定レスポンスを受信することなく、18x受信タイマがタイムアウトになった場合、他社網の障害を検知する。これにより、本実施形態では、18x受信タイマのタイマ値を短くすることで、他社網で発生した障害を迅速に検知することができる。
【0068】
従来、他社網の障害を検知するには、他社NNI-GW5とのTCPコネクションが切断されるか、INVITEタイムアウト(SIP Timer B:32秒)を待つしかない。しかしながら、他社NNI-GW5とTCPコネクションを張らない場合は、障害を検知することができない。また、隣接する他社NNI-GW5の先の装置で障害が発生している場合であっても、隣接する他社NNI-GW5からはINVITEリクエストに対する100tryingレスポンスが返答されるため、障害を検知することができない。また、隣接する他社NNI-GW5の先の装置での障害を検知するには、INVITEタイム満了(SIP Timer C:180秒)が考えらえるが、この場合、他社網での障害の検知が長時間化してしまい、その間に多数の呼損が生じる。
【0069】
これに対し、本実施形態では、NVITEリクエストを他社網に送信する際に、18x受信タイマを起動することで、他社網における障害検知が長期間化することを回避することができる。なお、18x受信タイマのタイマ値は、迅速な障害検知ができるように比較的、短い時間を設定する。
【0070】
また、本実施形態では、自社NNI-GW1の実装のみで実現できるため、他社網の装置の実装状況に依存せず、能動的に他社網の障害の原因を検知することができる。また、自社NNI-GW1内の実装であるため、開発が容易で、かつ、オペレータが介在することなく、他の他社NNI-GW5に切り替えることで障害を回避することができる。
【0071】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。