インタネットワーク装置
【課題】複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行する。
【解決手段】インタネットワーク装置は、第1のネットワークからパケットを受信する受信部と、他のインタネットワーク装置との間における装置間パケット転送を行う装置間パケット転送インターフェースと、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように装置間パケット転送を制御する装置間パケット転送制御部と、パケットの送信元アドレスと送信先アドレスとの少なくとも一方についてローカルアドレスとグローバルアドレスとを相互に変換するアドレス変換部と、アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える。
【解決手段】インタネットワーク装置は、第1のネットワークからパケットを受信する受信部と、他のインタネットワーク装置との間における装置間パケット転送を行う装置間パケット転送インターフェースと、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように装置間パケット転送を制御する装置間パケット転送制御部と、パケットの送信元アドレスと送信先アドレスとの少なくとも一方についてローカルアドレスとグローバルアドレスとを相互に変換するアドレス変換部と、アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するインタネットワーク装置に関する。
【背景技術】
【0002】
ローカルアドレスが用いられるローカルネットワークと、グローバルアドレスが用いられ複数のネットワークを接続するグローバルネットワーク(以下、代表例として「インターネット」と呼ぶ)と、の間における通信は、ローカルネットワークとインターネットとの境界に配置されたルーターにおいてローカルアドレスとグローバルアドレスとの間のアドレス変換が行われることにより実現される。このようなアドレス変換は、「Network Address Translation」と呼ばれる。また、限られたグローバルアドレスの有効利用のために、ローカルアドレスおよびグローバルアドレスの他にTCP/UDPの通信ポート番号も利用した変換(「アドレス・ポート変換」、「Network Address and Port Translation」と呼ばれる)も一般に利用されている(例えば特許文献1参照)。本明細書において、「アドレス変換(以下、「NAT」とも呼ぶ)」は、「アドレス・ポート変換」を意味するものとする。従来、アドレス変換は、小規模な家庭内・企業内ローカルネットワークとインターネットとを接続するルーター等に装用されてきた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−150566号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、IPv4におけるグローバルアドレスの不足などに起因して、例えばユーザー数の多いインターネットサービスプロバイダ(以下、「ISP」とも呼ぶ)でも、自網内のルーターにローカルアドレスを割り当ててユーザーを収容したいとのニーズが高まっている。この場合、ISPとインターネットとの接続点(キャリアのエッジ)においてもNAT機能が求められる。この位置でのNATは、企業ユーザーや個人ユーザーがISPと接続するために使用するNATとは役割や求められる性能が大きく異なり、「Large Scale NAT(略してLSN)」または「Carrier Gragd NAT(略してCGN)」と呼ばれる。このLSN機能を有するルーターは、いわゆるキャリア系の性能および信頼性を有することが求められる。以下、LSN機能を有するルーターを「インタネットワーク装置」とも呼ぶ。
【0005】
LSNは、従来のNATと比べて高い信頼性を求められる場合が多い。そのため、冗長化された2つのインタネットワーク装置を同時に稼動させる構成(「Double ACT構成」とも呼ばれる)によってLSNが実行される場合がある。インタネットワーク装置のDouble ACT構成によりLSNが実行される場合、1つのパケット(オリジナルパケット)が複数に分割されて生成されたパケットであるフラグメントパケットに対する処理が正しく実行できない恐れがあるという問題があった。すなわち、例えばインタネットワーク装置の前段の通信装置で無作為に負荷分散が行われると、同一のオリジナルパケットから生成された複数のフラグメントパケットの集合(以下、「同一起源フラグメントパケット群」とも呼ぶ)が、同一のインタネットワーク装置に集約されない可能性がある。同一起源フラグメントパケット群が同一のインタネットワーク装置に集約されなかった場合、インタネットワーク装置において、同一起源フラグメントパケット群に含まれる各フラグメントパケットに対して同一のアドレス変換を行うことが困難となる。そのため、フラグメントパケットの送信先である端末は、受信した各フラグメントパケットが同一起源フラグメントパケット群であることを認識できず、オリジナルパケットの再構築を正常に実行できない可能性がある。また、各インタネットワーク装置の負荷に依存して、フラグメントパケットが入力されてから出力されるまでのレイテンシに差異が生じる場合があるため、インタネットワーク装置の後段装置に対して、シーケンス番号通りにフラグメントパケットが転送されない可能性がある。
【0006】
なお、このような課題は、2つのインタネットワーク装置に限らず、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に共通の課題であった。
【0007】
本発明は、上記の課題を解決するためになされたものであり、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0009】
[適用例1]インタネットワーク装置であって、
第1のネットワークからパケットを受信する受信部と、
他の前記インタネットワーク装置との間におけるパケットの転送である装置間パケット転送を行う装置間パケット転送インターフェースと、
1つのオリジナルパケットが複数に分割されて生成されたパケットであるフラグメントパケットに関し、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一の前記インタネットワーク装置に集約されるように、前記装置間パケット転送を制御する装置間パケット転送制御部と、
パケットの送信元アドレスと送信先アドレスとの少なくとも一方について、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するアドレス変換部と、
アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える、インタネットワーク装置。
【0010】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように、他のインタネットワーク装置との間で受信されたパケットの転送が行われるため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0011】
[適用例2]適用例1に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットが、パケットに含まれる情報の内、同一のオリジナルパケットから生成されたすべてのフラグメントパケットが同じ値を有する第1の情報についての条件に該当するか否かに基づき、受信されたパケットを他の前記インタネットワーク装置に転送するか否かを判定する、インタネットワーク装置。
【0012】
このインタネットワーク装置では、元々パケットに含まれる情報を用いて、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるような装置間パケット転送を実現することができる。
【0013】
[適用例3]適用例2に記載のインタネットワーク装置であって、
前記第1の情報は、送信元アドレスと送信先アドレスとの少なくとも一方である、インタネットワーク装置。
【0014】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットは同一の送信元アドレスおよび送信先アドレスを有するため、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるような装置間パケット転送を実現することができる。
【0015】
[適用例4]適用例2または適用例3に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、前記インタネットワーク装置と前記他のインタネットワーク装置との負荷に基づき、前記条件を設定する、インタネットワーク装置。
【0016】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されることを担保しつつ、他のインタネットワーク装置との間での負荷の調整を実現することができる。
【0017】
[適用例5]適用例1ないし適用例4のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、送信元アドレスおよび通信ポート番号の組み合わせと、送信先アドレスおよび通信ポート番号の組み合わせと、の少なくとも一方について、前記ローカルアドレスと前記グローバルアドレスとを相互に変換する、インタネットワーク装置。
【0018】
このインタネットワーク装置では、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス・ポート変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0019】
[適用例6]適用例1ないし適用例5のいずれかに記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットの中からフラグメントパケットを検出し、検出されたフラグメントパケットと同一のオリジナルパケットから生成されたフラグメントパケットのすべてが前記インタネットワーク装置に集約されたか否かを判定し、
前記アドレス変換部は、集約されたと判定された後に、フラグメントパケットに対するアドレス変換を行う、インタネットワーク装置。
【0020】
このインタネットワーク装置では、同一のオリジナルパケットから生成されたフラグメントパケットのすべてがインタネットワーク装置に集約された後にアドレス変換を行うことができ、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0021】
[適用例7]適用例1ないし適用例6のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、前記第1のネットワーク側のアドレスおよび通信ポートの組み合わせと前記第2のネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報を保持し、前記アドレス・ポート変換情報を他の前記インタネットワーク装置と同期し、
前記装置間パケット転送制御部は、前記アドレス・ポート変換情報の同期が行われている場合にパケットの装置間転送を行う、インタネットワーク装置。
【0022】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように、他のインタネットワーク装置との間で受信されたパケットの転送が行われるため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0023】
[適用例8]適用例7に記載のインタネットワーク装置であって、
前記受信部または前記送信部は、前記アドレス・ポート変換変換情報の同期が行われている場合にリンクアップする、インタネットワーク装置。
【0024】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に受信部をリンクアップするため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0025】
[適用例9]請求項7に記載のインタネットワーク装置であって、さらに、
パケットルーティングを制御する経路制御部を備え、
前記経路制御部は、前記アドレス・ポート変換変換情報の同期が行われている場合に経路情報の広告を行う、インタネットワーク装置。
【0026】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に経路情報の広告を行うため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0027】
なお、本発明は、種々の態様で実現することが可能であり、例えば、インタネットワーク装置、アドレス変換方法、複数のインタネットワーク装置を備えるネットワークシステム、これらの装置、方法、システムの機能を実現するための集積回路、コンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の態様で実現することができる。
【発明の効果】
【0028】
本発明によれば、複数のインタネットワーク装置を稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施例におけるネットワーク10の構成を概略的に示す説明図である。
【図2】インタネットワーク装置100の構成を概略的に示す説明図である。
【図3】アウトバウンドパケット転送処理の流れを示すフローチャートである。
【図4】アウトバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。
【図5】装置間転送アウトバウンドパケット転送処理の流れを示すフローチャートである。
【図6】インバウンドパケット転送処理の流れを示すフローチャートである。
【図7】インバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。
【図8】装置間転送インバウンドパケット転送処理の流れを示すフローチャートである。
【図9】インタネットワーク装置の起動処理(装置間パケットの廃棄防止)の流れを示すフローチャートである。
【図10】実施例2におけるアウトバウンドパケット転送処理の流れを示すフローチャートである。
【図11】インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止)の流れを示すフローチャートである。
【図12】インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止)の流れを示すフローチャートである。
【図13】アドレス・ポート変換情報の転送を要求するための制御パケット400を概略的に示す説明図である。
【図14】アドレス・ポート変換情報を転送するための制御パケット500を概略的に示す説明図である。
【図15】NAT可能を通知するための制御パケット600を概略的に示す説明図である。
【発明を実施するための形態】
【0030】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.システムおよび装置の構成:
A−2.アウトバウンドパケット転送処理:
A−3.装置間転送アウトバウンドパケット転送処理:
A−4.インバウンドパケット転送処理:
A−5.装置間転送インバウンドパケット転送処理:
B.変形例:
C.実施例2:
C−1.インタネットワーク装置の起動処理(装置間パケットの廃棄防止):
C−2.インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止):
C−3.インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止):
A.実施例:
A−1.システムおよび装置の構成:
図1は、本発明の実施例におけるネットワーク10の構成を概略的に示す説明図である。ネットワーク10は、3つのISP(インターネットサービスプロバイダ)200を含んでいる。各ISP200は、NAT機能を有するホームルーター210を介して個人ユーザー220を収容すると共に、企業網(企業内ネットワーク)240およびNAT機能を有する企業ルーター230を介して企業ユーザー250を収容している。
【0031】
ISP−A(200A)は、グローバルアドレスを有するISPであり、キャリアエッジルーター310と直接接続されることにより、インターネット300と通信可能となっている。なお、インターネット300には、クライアントである個人ユーザー220や企業ユーザー250からアクセス可能な位置に、HTTPサーバー320が設けられている。
【0032】
ISP−B(200B)およびISP−C(200C)は、グローバルアドレスを有しないISPであり、LSN(Large Scale NAT)機能を持つインタネットワーク装置100を介してキャリアエッジルーター310と接続されることにより、インターネット300と通信可能となっている。本実施例では、同一の機能および構成を有する2つのインタネットワーク装置100(インタネットワーク装置A(100A)およびインタネットワーク装置B(100B))が同時に稼動される冗長構成(Double ACT構成)が採用されている。すなわち、ISP−B(200B)およびISP−C(200C)のそれぞれは、2つのインタネットワーク装置100に接続され、いずれのインタネットワーク装置100を介してもキャリアエッジルーター310と接続可能となっている。また、2つのインタネットワーク装置100は、アドレス変換に必要な情報(セッション情報)を互いに同期させている。ISP−B(200B)およびISP−C(200C)のそれぞれは、2つのインタネットワーク装置100と接続されるルーター(不図示)を有している。これらのルーターにおいて、ISP200(ローカルネットワーク)からインターネット300方向の通信(以下、「アウトバウンド通信」とも呼ぶ)のパケットが2つのインタネットワーク装置100のいずれかに振り分けられる。同様に、キャリアエッジルーター310において、インターネット300からISP200方向の通信(以下、「インバウンド通信」とも呼ぶ)のパケットが2つのインタネットワーク装置100のいずれかに振り分けられる。これにより、2つのインタネットワーク装置100における負荷分散が実現されている。2つのインタネットワーク装置100の内の一方が故障した場合には、すべてのパケットを他方のインタネットワーク装置100に振り分けることにより、アドレス変換を継続して実行可能である。なお、インタネットワーク装置100の機能は、キャリアエッジルーター310の機能の一部であると考えることができる。
【0033】
図2は、インタネットワーク装置100の構成を概略的に示す説明図である。図2には、2つのインタネットワーク装置100(インタネットワーク装置A(100A)およびインタネットワーク装置B(100B))の構成を示している。2つのインタネットワーク装置100の構成は同一であるため、以下の説明では、2つのインタネットワーク装置100およびその構成要素について互いに区別する必要のないときには、名前および符号に互いを区別する識別子(「A」および「B」)を付すことを省略する場合がある。
【0034】
インタネットワーク装置100は、アドレス変換(アドレス・ポート変換)を行うことにより、ローカルネットワークLNETとグローバルネットワークGNETとの間で通信を行う装置である。インタネットワーク装置100は、ローカルネットワークLNETと接続するためのインサイド側パケットインターフェース(パケットI/F(I))101と、グローバルネットワークGNETと接続するためのアウトサイド側パケットインターフェース(パケットI/F(O))103と、パケットルーティングを制御する経路制御部102と、アウトバウンド通信のパケット(以下、「アウトバウンドパケットOBP」と呼ぶ)のアドレス変換を行うインサイド用アドレス変換部(アドレス変換部(I))104と、インバウンド通信のパケット(以下、「インバウンドパケットIBP」と呼ぶ)のアドレス変換を行うアウトサイド用アドレス変換部(アドレス変換部(O))105と、他のインタネットワーク装置100にアウトバウンドパケットOBPを転送するためのインサイド用装置間パケット転送インターフェース(装置間パケット転送I/F(I))106と、他のインタネットワーク装置100にインバウンドパケットIBPを転送するためのアウトサイド用装置間パケット転送インターフェース(装置間パケット転送I/F(O))107と、を備えている。
【0035】
インサイド側パケットインターフェース101は、経路制御部102とローカルネットワークLNETに配置された負荷分散を行うルーター(不図示)とに接続され、当該ルーターから送信されたアウトバウンドパケットOBPを受信して経路制御部102に転送すると共に、経路制御部102から転送されたインバウンドパケットIBPを受信して当該ルーターに転送する。アウトサイド側パケットインターフェース103は、経路制御部102とキャリアエッジルーター310(図1)とに接続され、キャリアエッジルーター310から送信されたインバウンドパケットIBPを受信して経路制御部102に転送すると共に、経路制御部102から転送されたアウトバウンドパケットOBPを受信してキャリアエッジルーター310に転送する。インサイド側パケットインターフェース101およびアウトサイド側パケットインターフェース103は、本発明における送信部および受信部として機能する。
【0036】
経路制御部102は、インタネットワーク装置100の各構成要素と接続されている。経路制御部102は、各インターフェースを介して受信されたパケットの転送処理や、受信されたパケットがフラグメントパケットか否かを判定する処理を行う。経路制御部102によるパケット転送処理の詳細は、後述する。
【0037】
インサイド用冗長装置間パケット転送インターフェース106は、他のインタネットワーク装置100と直接接続するためのインターフェースである。すなわち、Double ACT構成での運用時において、インサイド用冗長装置間パケット転送インターフェース106は、他のインタネットワーク装置100のインサイド用冗長装置間パケット転送インターフェース106と専用回線112を介して接続される。インサイド用冗長装置間パケット転送インターフェース106は、自装置内の経路制御部102から転送されたアウトバウンドパケットOBPを受信して他のインタネットワーク装置100のインサイド用冗長装置間パケット転送インターフェース106に送信すると共に、他のインタネットワーク装置100から転送されたアウトバウンドパケットOBP(「装置間転送アウトバウンドパケットTOBP」とも呼ぶ)を受信して自装置内の経路制御部102に転送する。なお、本実施例では、インサイド側パケットインターフェース101により受信されたアウトバウンドパケットOBPのすべてが装置間転送アウトバウンドパケットTOBPとして他のインタネットワーク装置100に転送される場合にも対応できるように、インサイド用冗長装置間パケット転送インターフェース106の通信帯域(回線速度)は、インサイド側パケットインターフェース101の通信帯域(回線速度)と同一としている。
【0038】
アウトサイド用冗長装置間パケット転送インターフェース107は、他のインタネットワーク装置100と直接接続するためのインターフェースである。すなわち、Double ACT構成での運用時において、アウトサイド用冗長装置間パケット転送インターフェース107は、他のインタネットワーク装置100のアウトサイド用冗長装置間パケット転送インターフェース107と専用回線114を介して接続される。アウトサイド用冗長装置間パケット転送インターフェース107は、自装置内の経路制御部102から転送されたインバウンドパケットIBPを受信して他のインタネットワーク装置100のアウトサイド用冗長装置間パケット転送インターフェース107に送信すると共に、他のインタネットワーク装置100から転送されたインバウンドパケットIBP(「装置間転送インバウンドパケットTIBP」とも呼ぶ)を受信して自装置内の経路制御部102に転送する。なお、本実施例では、アウトサイド側パケットインターフェース103により受信されたインバウンドパケットIBPのすべてが装置間転送インバウンドパケットTIBPとして他のインタネットワーク装置100に転送される場合にも対応できるように、アウトサイド用冗長装置間パケット転送インターフェース107の通信帯域(回線速度)は、アウトサイド側パケットインターフェース103の通信帯域(回線速度)と同一としている。
【0039】
なお、インサイド用冗長装置間パケット転送インターフェース106およびアウトサイド用冗長装置間パケット転送インターフェース107は、本発明における装置間パケット転送インターフェースとして機能する。また、経路制御部102は、本発明における装置間パケット転送制御部として機能する。
【0040】
インサイド用アドレス変換部104は、アドレス・ポート変換変換情報(セッション情報)を保持し、アドレス・ポート変換情報に基づき、経路制御部102から転送されたアウトバウンドパケットOBPの送信元アドレスと通信ポート番号との変換(アドレス変換)を行い、アドレス変換後のアウトバウンドパケットOBPを再度経路制御部102に転送する。
【0041】
アウトサイド用アドレス変換部105は、アドレス・ポート変換情報(セッション情報)を保持し、アドレス・ポート変換情報に基づき、経路制御部102から転送されたインバウンドパケットIBPの送信先アドレスと通信ポート番号との変換(アドレス変換)を行い、アドレス変換後のインバウンドパケットIBPを再度経路制御部102に転送する。
【0042】
なお、インサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、回線126を介して互いに接続されると共に、回線122、124を介して、他のインタネットワーク装置100のインサイド用アドレス変換部104およびアウトサイド用アドレス変換部105と接続されている。各インタネットワーク装置100のインサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、当該回線を介してアドレス・ポート変換変換情報の同期を行う。なお、アドレス・ポート変換情報は、ローカルアドレスとグローバルアドレスとの対応関係を示すアドレス変換規則表と、グローバルアドレス内の通信ポートの使用/未使用の状況を示す空きポート管理表と、実際に通信を行っている状態にあるローカルネットワーク側のアドレスおよび通信ポートの組み合わせとグローバルネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換表と、を含んでいる。インサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、本発明におけるアドレス変換部として機能する。
【0043】
A−2.アウトバウンドパケット転送処理:
図3は、アウトバウンドパケット転送処理の流れを示すフローチャートである。また、図4は、アウトバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。アウトバウンドパケット転送処理は、ローカルネットワークLNETからアウトバウンドパケットOBPを受信したインタネットワーク装置100が受信パケットをグローバルネットワークGNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Aにより受信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0044】
ステップS110(図3)では、インタネットワーク装置100(100A)のインサイド側パケットインターフェース101が、ローカルネットワークLNETからアウトバウンドパケットOBPを受信する。インサイド側パケットインターフェース101は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS120)。
【0045】
ステップS130(図3)では、経路制御部102が、受信されたアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれに該当するかを判定する。ここで、第1の条件および第2の条件は、任意のアウトバウンドパケットOBPが第1の条件と第2の条件とのいずれか一方に該当するように設定される。また、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定される。なお、本明細書において、同一起源フラグメントパケット群は、同一のオリジナルパケットから生成された複数のフラグメントパケットの集合を意味する。また、一方のインタネットワーク装置100における第1の条件および第2の条件は、他方のインタネットワーク装置100における第1の条件および第2の条件とは逆になるように設定される。本実施例では、インタネットワーク装置100Aにおいて、第1の条件は「送信元アドレスが偶数であること」と設定され、第2の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定される。一方、インタネットワーク装置100Bにおいては、インタネットワーク装置100Aにおける第1の条件と第2の条件との関係とは逆の関係となるように、第1の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定され、第2の条件は「送信元アドレスが偶数であること」と設定される。第1の条件および第2の条件がこのように設定されれば、任意のアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれか一方のみに該当することとなる。また、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信元アドレスを有しているため、同一の条件に該当することとなる。
【0046】
インタネットワーク装置100Aの経路制御部102は、ステップS130(図3)において、アウトバウンドパケットOBPの送信元アドレスが偶数であるか(すなわち第1の条件に該当するか)、奇数であるか(すなわち第2の条件に該当するか)を判定する。アウトバウンドパケットOBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS130:NO)、経路制御部102が、インサイド用冗長装置間パケット転送インターフェース106を介して、アウトバウンドパケットOBPを他のインタネットワーク装置100(100B)に転送する(ステップS140)(図4の経路P2参照)。なお、他のインタネットワーク装置100から転送されたアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信したインタネットワーク装置100における処理(装置間転送アウトバウンドパケット転送処理)については後述する。
【0047】
一方、アウトバウンドパケットOBPは第1の条件に該当すると判定された場合には(ステップS130:YES)、経路制御部102が、アウトバウンドパケットOBPがフラグメントパケットであるか否かを判定する(ステップS160)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS160:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS190)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS200)。
【0048】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS160:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS170)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0049】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS180)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS190)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS200)。
【0050】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS210)(図4の経路P1参照)。
【0051】
なお、アウトバウンドパケットOBPがインタネットワーク装置100Bにより受信された場合のアウトバウンドパケット転送処理も、上記と同様に実行される。この場合には、ステップS130(図3)において、アウトバウンドパケットOBPの送信元アドレスが奇数であるか(すなわち第1の条件に該当するか)、偶数であるか(すなわち第2の条件に該当するか)が判定され、判定結果に従い、他のインタネットワーク装置100へのアウトバウンドパケットOBPの転送処理(ステップS140)や、自装置内での処理(ステップS160〜S210)が実行される。
【0052】
A−3.装置間転送アウトバウンドパケット転送処理:
図5は、装置間転送アウトバウンドパケット転送処理の流れを示すフローチャートである。装置間転送アウトバウンドパケット転送処理は、他のインタネットワーク装置100からアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信したインタネットワーク装置100が受信パケットをグローバルネットワークGNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、インタネットワーク装置100Aから転送された装置間転送アウトバウンドパケットTOBPがインタネットワーク装置100Bにより受信された場合の装置間転送アウトバウンドパケット転送処理について説明する(図4の経路P2参照)。インタネットワーク装置100Bから転送された装置間転送アウトバウンドパケットTOBPがインタネットワーク装置100Aにより受信された場合の装置間転送アウトバウンドパケット転送処理の内容も同様である。
【0053】
ステップS310(図5)では、インタネットワーク装置100(100B)のインサイド用冗長装置間パケット転送インターフェース106が、他のインタネットワーク装置100(100A)からアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信する。インサイド用冗長装置間パケット転送インターフェース106は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS320)。
【0054】
ステップS330(図5)では、経路制御部102が、アウトバウンドパケットOBPはフラグメントパケットであるか否かを判定する(ステップS330)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS330:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS360)(図4の経路P2参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS370)。
【0055】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS330:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS340)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0056】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS350)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS360)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS370)。
【0057】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS380)(図4の経路P2参照)。
【0058】
A−4.インバウンドパケット転送処理:
図6は、インバウンドパケット転送処理の流れを示すフローチャートである。また、図7は、インバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。インバウンドパケット転送処理は、グローバルネットワークGNETからインバウンドパケットIBPを受信したインタネットワーク装置100が受信パケットをローカルネットワークLNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、グローバルネットワークGNETから送信されたインバウンドパケットIBPがインタネットワーク装置100Aにより受信された場合のインバウンドパケット転送処理について説明する(図7参照)。
【0059】
ステップS410(図6)では、インタネットワーク装置100(100A)のアウトサイド側パケットインターフェース103が、グローバルネットワークGNETからインバウンドパケットIBPを受信する。アウトサイド側パケットインターフェース103は、受信したインバウンドパケットIBPを経路制御部102に転送する(ステップS420)。
【0060】
ステップS430(図6)では、経路制御部102が、受信されたインバウンドパケットIBPは第1の条件と第2の条件とのいずれに該当するかを判定する。ここで、第1の条件および第2の条件は、任意のインバウンドパケットIBPが第1の条件と第2の条件とのいずれか一方に該当するように設定される。また、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定される。また、一方のインタネットワーク装置100における第1の条件および第2の条件は、他方のインタネットワーク装置100における第1の条件および第2の条件とは逆になるように設定される。本実施例では、インタネットワーク装置100Aにおいて、第1の条件は「送信元アドレスが偶数であること」と設定され、第2の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定される。一方、インタネットワーク装置100Bにおいては、インタネットワーク装置100Aにおける第1の条件と第2の条件との関係とは逆の関係となるように、第1の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定され、第2の条件は「送信元アドレスが偶数であること」と設定される。第1の条件および第2の条件がこのように設定されれば、任意のインバウンドパケットIBPは第1の条件と第2の条件とのいずれか一方のみに該当することとなる。また、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信元アドレスを有しているため、同一の条件に該当することとなる。
【0061】
インタネットワーク装置100Aの経路制御部102は、ステップS430(図6)において、インバウンドパケットIBPの送信元アドレスが偶数であるか(すなわち第1の条件に該当するか)、奇数であるか(すなわち第2の条件に該当するか)を判定する。インバウンドパケットIBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS430:NO)、経路制御部102が、アウトサイド用冗長装置間パケット転送インターフェース107を介して、インバウンドパケットIBPを他のインタネットワーク装置100(100B)に転送する(ステップS440)(図7の経路P2参照)。なお、他のインタネットワーク装置100から転送されたインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信したインタネットワーク装置100における処理(装置間転送インバウンドパケット転送処理)については後述する。
【0062】
一方、インバウンドパケットIBPは第1の条件に該当すると判定された場合には(ステップS430:YES)、経路制御部102が、インバウンドパケットIBPがフラグメントパケットであるか否かを判定する(ステップS460)。インバウンドパケットIBPはフラグメントパケットではないと判定された場合には(ステップS460:NO)、経路制御部102が、インバウンドパケットIBPをアウトサイド用アドレス変換部105に転送する(ステップS490)(図7の経路P1参照)。インバウンドパケットIBPをアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS500)。
【0063】
一方、インバウンドパケットIBPはフラグメントパケットであると判定された場合には(ステップS460:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS470)。経路制御部102は、アウトサイド側パケットインターフェース103を介してグローバルネットワークGNETから転送されるパケットや、アウトサイド用冗長装置間パケット転送インターフェース107を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0064】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS480)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(インバウンドパケットIBP)をアウトサイド用アドレス変換部105に転送する(ステップS490)(図7の経路P1参照)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS500)。
【0065】
アウトサイド用アドレス変換部105は、アドレス変換後のインバウンドパケットIBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、インサイド側パケットインターフェース101を介して、インバウンドパケットIBPをローカルネットワークLNETに転送する(ステップS510)(図7の経路P1参照)。
【0066】
なお、インバウンドパケットIBPがインタネットワーク装置100Bにより受信された場合のインバウンドパケット転送処理も、上記と同様に実行される。この場合には、ステップS430(図6)において、インバウンドパケットIBPの送信元アドレスが奇数であるか(すなわち第1の条件に該当するか)、偶数であるか(すなわち第2の条件に該当するか)が判定され、判定結果に従い、他のインタネットワーク装置100へのインバウンドパケットIBPの転送処理(ステップS440)や、自装置内での処理(ステップS460〜S510)が実行される。
【0067】
A−5.装置間転送インバウンドパケット転送処理:
図8は、装置間転送インバウンドパケット転送処理の流れを示すフローチャートである。装置間転送インバウンドパケット転送処理は、他のインタネットワーク装置100からインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信したインタネットワーク装置100が受信パケットをローカルネットワークLNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、インタネットワーク装置100Aから転送された装置間転送インバウンドパケットTIBPがインタネットワーク装置100Bにより受信された場合の装置間転送インバウンドパケット転送処理について説明する(図7の経路P2参照)。インタネットワーク装置100Bから転送された装置間転送インバウンドパケットTIBPがインタネットワーク装置100Aにより受信された場合の装置間転送インバウンドパケット転送処理の内容も同様である。
【0068】
ステップS610(図8)では、インタネットワーク装置100(100B)のアウトサイド用冗長装置間パケット転送インターフェース107が、他のインタネットワーク装置100(100A)からインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信する。アウトサイド用冗長装置間パケット転送インターフェース107は、受信したインバウンドパケットIBPを経路制御部102に転送する(ステップS620)。
【0069】
ステップS630(図8)では、経路制御部102が、インバウンドパケットIBPはフラグメントパケットであるか否かを判定する(ステップS630)。インバウンドパケットIBPはフラグメントパケットではないと判定された場合には(ステップS630:NO)、経路制御部102が、インバウンドパケットIBPをアウトサイド用アドレス変換部105に転送する(ステップS660)(図7の経路P2参照)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS670)。
【0070】
一方、インバウンドパケットIBPはフラグメントパケットであると判定された場合には(ステップS630:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS640)。経路制御部102は、アウトサイド側パケットインターフェース103を介してグローバルネットワークGNETから転送されるパケットや、アウトサイド用冗長装置間パケット転送インターフェース107を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0071】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS650)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(インバウンドパケットIBP)をアウトサイド用アドレス変換部105に転送する(ステップS660)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS670)。
【0072】
アウトサイド用アドレス変換部105は、アドレス変換後のインバウンドパケットIBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、インサイド側パケットインターフェース101を介して、インバウンドパケットIBPをローカルネットワークLNETに転送する(ステップS680)(図7の経路P2参照)。
【0073】
以上説明したように、本実施例では、インタネットワーク装置100は、ローカルネットワークLNETもしくはグローバルネットワークGNETからパケットを受信すると、第1の条件および第2の条件のいずれに該当するかの判定(図3のステップS130および図6のステップS430)を通じて、受信パケットを、自インタネットワーク装置100と他のインタネットワーク装置100とのいずれかに振り分ける。ここで、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定されるため、同一起源フラグメントパケット群は同一のインタネットワーク装置100に集約されることとなる。一般に、同一起源フラグメントパケット群の内の最初のフラグメントパケットは、データ部に通信ポート番号を特定する情報を有しているが、2番目以降のフラグメントパケットは通信ポート番号を特定する情報を有していない。本実施例では、同一起源フラグメントパケット群が同一のインタネットワーク装置100に集約されるため、フラグメントパケットに対しても、通信ポート番号を含むアドレス変換(アドレス・ポート変換)を実現することができる。そのため、本実施例では、同一起源フラグメントパケット群に含まれる各フラグメントパケットに対して同一のアドレス変換を行うことができ、フラグメントパケットの送信先である端末は、受信したフラグメントパケットに基づきオリジナルパケットの再構築を正常に実行することができる。従って、本実施例では、複数のインタネットワーク装置100を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対するアドレス変換を正しく実行することができる。
【0074】
また、本実施例では、受信パケットがフラグメントパケットである場合には、同一起源フラグメントパケット群を構成するすべてのフラグメントパケットの受信の完了が待たれ、受信完了の後、全フラグメントパケットがシーケンス番号順に並び替えられ、シーケンス番号順にフラグメントパケットの転送が行われる。そのため、本実施例では、インタネットワーク装置100の後段装置に対して、シーケンス番号通りにフラグメントパケットを転送することができる。
【0075】
なお、本実施例では、第1の条件および第2の条件として、送信元アドレスという元々パケットに含まれる情報を用いた条件を採用しているため、パケットにパケットの集約のための情報を付加することなく、同一起源フラグメントパケット群を同一のインタネットワーク装置100に集約することができる。
【0076】
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0077】
B1.変形例1:
上記実施例では、第1の条件および第2の条件の組み合わせとして、「送信元アドレスが偶数であること」および「送信元アドレスが奇数であること」という条件の組み合わせが採用されているが、他の組み合わせを採用することも可能である。例えば、第1の条件および第2の条件の組み合わせとして、「送信元アドレスの下1桁が0〜4のいずれかであること」および「送信元アドレスの下1桁が5〜9のいずれかであること」という条件の組み合わせが採用されてもよい。また、「送信元アドレスの下1桁が0,1のいずれかであること」および「送信元アドレスの下1桁が2〜9のいずれかであること」という条件の組み合わせが採用されてもよい。各インタネットワーク装置100の負荷を監視して、各インタネットワーク装置100が分担する負荷が所望の値に調整されるように(例えばそれぞれの負荷が均等になるように)、条件の組み合わせが設定されることが好ましい。また、条件の組み合わせは、定期的にまたは随時、更新設定されるとしてもよい。
【0078】
また、第1の条件および第2の条件の組み合わせとして、「送信先アドレスが偶数であること」および「送信先アドレスが奇数であること」という条件の組み合わせが採用されてもよい。同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信先アドレスを有しているため、このような条件の組み合わせが採用されても同一の条件に該当することとなる。その他にも、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが共通して有する情報であれば、第1の条件および第2の条件の組み合わせに用いることができる。なお、上記実施例のように、送信元アドレスを第1の条件および第2の条件の組み合わせに用いると、フラグメントパケットに限らず、同一の端末から送信されたパケットはすべて同一のインタネットワーク装置100に集約されることとなるため、パケットの管理上好ましい。
【0079】
B2.変形例2:
上記実施例では、同一の機能および構成を有する2つのインタネットワーク装置100が同時に稼動される冗長構成(Double ACT構成)を例に用いて説明したが、本発明は、N個(Nは3以上の整数)のインタネットワーク装置100が同時に稼動される冗長構成にも適用可能である。この場合には、上記実施例と同様に、第1の条件から第Nの条件までのN個の条件が、任意のパケットがN個の条件のいずれか1つに該当するように、かつ、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように、設定される。いずれか1つのインタネットワーク装置100により受信されたパケットは、N個の条件のいずれに該当するかの判定結果に基づき、N個のインタネットワーク装置100のいずれかに振り分けられる。このようにすれば、N個のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0080】
B3.変形例3:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0081】
C.実施例2:
LSNにおいて、実際に通信を行っている状態にあるローカルネットワーク側のアドレスおよび通信ポートの組み合わせとグローバルネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報(セッション情報)は、それぞれのインタネットワーク装置100で最初に受信したオリジナルパケットのIPアドレスとポート番号に応じて動的または静的に決定される。複数のインタネットワーク装置100を同時に稼動させ装置間でパケットを転送して対向のインタネットワーク装置でアドレス変換を行う構成においては、オリジナルパケットをどのインタネットワーク装置で受信してもそれぞれのインタネットワーク装置が同じセッション情報に基づいてアドレス変換をする必要があるため、複数のインタネットワーク装置100は、セッション情報を互いに同期させることで同じセッション情報を保持している。また、例えば停止状態の一方のインタネットワーク装置100を新たに起動した場合には、動作状態の他方のインタネットワーク装置100が既に保持しているセッション情報を新たに起動した一方のインタネットワーク装置100に転送することで、双方のインタネットワーク装置100で同じセッション情報を保持することが必要になる。
【0082】
このような状況において、例えば一方のインタネットワーク装置100を起動したとき、双方のインタネットワーク装置100でセッション情報の同期をする前に装置間でパケットを転送してしまった場合、一方のインタネットワーク装置100はセッション情報を保持していないためアドレス変換できずにパケットを廃棄することになる。
【0083】
したがって、本実施例では、複数のインタネットワーク装置100を同時に稼動させ装置間でパケットを転送してアドレス変換する構成において、インタネットワーク装置100を新たに起動する場合に、新たに起動したインタネットワーク装置100においてパケットの廃棄を防止し、セッション情報に基づいて正しくアドレス変換を行えるようにすることを考慮した本発明の実施形態について説明する。
【0084】
C−1.インタネットワーク装置の起動処理(装置間パケットの廃棄防止):
図9は、インタネットワーク装置100の起動処理の流れを示すフローチャートである。また、図10は、アウトバウンドパケット転送処理の流れを示すフローチャートである。なお、以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Aにより受信されて装置間パケット転送されてインタネットワーク装置100BからグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4の経路P2参照)。
【0085】
ステップS910(図9)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0086】
ステップS920(図9)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0087】
図13は、アドレス・ポート変換情報の転送を要求するための制御パケット400を概略的に示す説明図である。制御パケット400は、MACヘッダ410とアドレス・ポート変換情報の転送を要求するためのコマンド420を含んでいる。
【0088】
ステップS930(図9)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するために自身が保持するアドレスポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0089】
図14は、アドレス・ポート変換情報を転送するための制御パケット500を概略的に示す説明図である。制御パケット500は、MACヘッダ510、アドレス・ポート変換情報を転送するためのコマンド520、保持しているアドレス・ポート変換情報個数530、アドレス・ポート変換情報540を含んでいる。
【0090】
ステップS940(図9)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、他のインタネットワーク装置100Aの経路制御部102Aへ回線122を介してNAT可能を通知するための制御パケット600を送信する。
【0091】
図15は、NAT可能を通知するための制御パケット600を概略的に示す説明図である。制御パケット600は、MACヘッダ610、NAT可能を通知するためのコマンド620を含んでいる。
【0092】
制御パケット600によりNAT可能を通知することにより、インタネットワーク装置100Bがアドレス・ポート変換情報の同期が完了してアドレス変換の処理可能であることを他のインタネットワーク装置100Aに通知することができる。
【0093】
次に図10を用いて他のインタネットワーク装置100Aにおけるアウトバウンドパケット転送処理の流れを説明する。図10のフローチャートは、実質的に図3のフローチャートのステップS130とステップS140の間ににステップS1040が追加されたものと同じであるため、図3と共通する部分については一部その説明を省略する。
【0094】
ステップS1010(図10)では、インタネットワーク装置100(100A)のインサイド側パケットインターフェース101が、ローカルネットワークLNETからアウトバウンドパケットOBPを受信する。インサイド側パケットインターフェース101は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS1020)。
【0095】
ステップS1030(図10)では、経路制御部102が、受信されたアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれに該当するかを判定する。アウトバウンドパケットOBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS1030:NO)、インタネットワーク装置100Aの経路制御部102は、ステップS1040において、インタネットワーク装置100Bのアドレス変換部(I)104BがNAT可能か否かを判定する。NAT可能であると判断された場合には(ステップS1040:YES)、経路制御部102が、インサイド用装置間パケット転送インターフェース106を介して、アウトバウンドパケットOBPを他のインタネットワーク装置100Bに転送する(ステップS1050)(図4の経路P2参照)。
【0096】
一方、アウトバウンドパケットOBPは第1の条件に該当すると判定された場合(ステップS1030:YES)、もしくは、アドレス・ポート変換情報の転送が完了しておらずNAT不可能と判断された場合(ステップS1040:NO)には、経路制御部102が、アウトバウンドパケットOBPがフラグメントパケットであるか否かを判定する(ステップS1060)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS1060:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS1090)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS1100)。
【0097】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS1060:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS1070)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0098】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS1080)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS1090)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS1100)。
【0099】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS1110)(図4の経路P1参照)。
【0100】
本実施形態によれば、インタネットワーク装置100Aは、インタネットワーク装置100Bのアドレス変換部(I)104BがNAT可能な場合に装置間パケット転送を行うため、インタネットワーク装置100B側でアドレス変換ができずにパケットが廃棄されることを防ぐことができる。
【0101】
また、本実施形態ではアウトバウンドパケット転送処理について説明したが、インバウンドパケット転送処理においても、図6のフローチャートのステップS430とステップS440の間に、図10のステップS1040に相当するステップを追加すれば同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【0102】
C−2.インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止):
図11は、インタネットワーク装置の起動処理の流れを示すフローチャートである。なお、以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Bにより受信されてグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0103】
ステップS1210(図11)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0104】
ステップS1220(図11)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0105】
ステップS1230(図11)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するために自身が保持するアドレス・ポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0106】
ステップS1240(図11)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、自身の経路制御部102BへNAT可能を通知する。
【0107】
ステップS1250(図11)では、NAT可能通知を受けたインタネットワーク装置100Bの経路制御部102BがパケットI/F(I)101Bのリンクをアップする。
【0108】
インタネットワーク装置100BのパケットI/F(I)101Bのリンクがアップの状態では、インタネットワークローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Bから受信される。
【0109】
一方、インタネットワーク装置100BのパケットI/F(I)101Bのリンクがダウンの状態では、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Aから受信される。
【0110】
本実施形態によれば、新たに起動したインタネットワーク装置100Bは、アドレス変換部(I)104BがNAT可能な場合にパケットI/F(I)101Bをリンクアップするため、パケットI/F(I)101Bから受信したパケットについてアドレス変換ができずにパケットが廃棄されるということを防ぐことができる。
【0111】
また、本実施形態ではアウトバウンドパケット転送処理についてのみ説明したが、インバウンドパケット転送処理においても、図11のフローチャートにしたがってアドレス変換部(O)105がアドレス・ポート変換情報の同期を行った後にパケットI/F(O)をリンクアップすることにより同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【0112】
C−3.インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止):
図12は、インタネットワーク装置の起動処理の流れを示すフローチャートである。以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Bにより受信されてグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0113】
ステップS1310(図12)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0114】
ステップS1320(図12)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0115】
ステップS1330(図12)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するため、自身が保持するアドレス・ポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0116】
ステップS1340(図12)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、自身の経路制御部102BへNAT可能を通知する。
【0117】
ステップS1350(図12)では、NAT可能通知を受けたインタネットワーク装置100Bの経路制御部102BがパケットI/F(I)101Bを介して送信先アドレス宛の経路をローカルネットワークLNETへ広告する。
【0118】
インタネットワーク装置100Bの経路制御部102Bから経路が広告された状態では、インタネットワークローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Bから受信される。
【0119】
一方、インタネットワーク装置100Bの経路制御部102Bから経路が広告されていない状態では、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Aから受信される。
【0120】
本実施形態によれば、新たに起動したインタネットワーク装置100Bは、アドレス変換部(I)104BがNAT可能な場合に経路制御部がパケットI/F(I)101Bを介して経路をローカルネットワークLNETへ広告するため、パケットI/F(I)101Bから受信したパケットについてアドレス変換ができずにパケットが廃棄されるということを防ぐことができる。
【0121】
また、本実施形態ではアウトバウンドパケット転送処理についてのみ説明したが、インバウンドパケット転送処理においても、図12のフローチャートにしたがってアドレス変換部(O)105がアドレス・ポート変換情報の同期を行った後に経路制御部がパケットI/F(O)を介して経路をグローバルネットワークGNETへ広告することにより同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【符号の説明】
【0122】
10・・・ネットワーク
100・・・インタネットワーク装置
101・・・インサイド側パケットインターフェース
102・・・経路制御部
103・・・アウトサイド側パケットインターフェース
104・・・インサイド用アドレス変換部
105・・・アウトサイド用アドレス変換部
106・・・インサイド用冗長装置間パケット転送インターフェース
107・・・アウトサイド用冗長装置間パケット転送インターフェース
112・・・回線
114・・・回線
122・・・回線
124・・・回線
126・・・回線
200・・・ISP
210・・・ホームルーター
220・・・個人ユーザー
230・・・企業ルーター
250・・・企業ユーザー
300・・・インターネット
310・・・キャリアエッジルーター
【技術分野】
【0001】
本発明は、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するインタネットワーク装置に関する。
【背景技術】
【0002】
ローカルアドレスが用いられるローカルネットワークと、グローバルアドレスが用いられ複数のネットワークを接続するグローバルネットワーク(以下、代表例として「インターネット」と呼ぶ)と、の間における通信は、ローカルネットワークとインターネットとの境界に配置されたルーターにおいてローカルアドレスとグローバルアドレスとの間のアドレス変換が行われることにより実現される。このようなアドレス変換は、「Network Address Translation」と呼ばれる。また、限られたグローバルアドレスの有効利用のために、ローカルアドレスおよびグローバルアドレスの他にTCP/UDPの通信ポート番号も利用した変換(「アドレス・ポート変換」、「Network Address and Port Translation」と呼ばれる)も一般に利用されている(例えば特許文献1参照)。本明細書において、「アドレス変換(以下、「NAT」とも呼ぶ)」は、「アドレス・ポート変換」を意味するものとする。従来、アドレス変換は、小規模な家庭内・企業内ローカルネットワークとインターネットとを接続するルーター等に装用されてきた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−150566号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、IPv4におけるグローバルアドレスの不足などに起因して、例えばユーザー数の多いインターネットサービスプロバイダ(以下、「ISP」とも呼ぶ)でも、自網内のルーターにローカルアドレスを割り当ててユーザーを収容したいとのニーズが高まっている。この場合、ISPとインターネットとの接続点(キャリアのエッジ)においてもNAT機能が求められる。この位置でのNATは、企業ユーザーや個人ユーザーがISPと接続するために使用するNATとは役割や求められる性能が大きく異なり、「Large Scale NAT(略してLSN)」または「Carrier Gragd NAT(略してCGN)」と呼ばれる。このLSN機能を有するルーターは、いわゆるキャリア系の性能および信頼性を有することが求められる。以下、LSN機能を有するルーターを「インタネットワーク装置」とも呼ぶ。
【0005】
LSNは、従来のNATと比べて高い信頼性を求められる場合が多い。そのため、冗長化された2つのインタネットワーク装置を同時に稼動させる構成(「Double ACT構成」とも呼ばれる)によってLSNが実行される場合がある。インタネットワーク装置のDouble ACT構成によりLSNが実行される場合、1つのパケット(オリジナルパケット)が複数に分割されて生成されたパケットであるフラグメントパケットに対する処理が正しく実行できない恐れがあるという問題があった。すなわち、例えばインタネットワーク装置の前段の通信装置で無作為に負荷分散が行われると、同一のオリジナルパケットから生成された複数のフラグメントパケットの集合(以下、「同一起源フラグメントパケット群」とも呼ぶ)が、同一のインタネットワーク装置に集約されない可能性がある。同一起源フラグメントパケット群が同一のインタネットワーク装置に集約されなかった場合、インタネットワーク装置において、同一起源フラグメントパケット群に含まれる各フラグメントパケットに対して同一のアドレス変換を行うことが困難となる。そのため、フラグメントパケットの送信先である端末は、受信した各フラグメントパケットが同一起源フラグメントパケット群であることを認識できず、オリジナルパケットの再構築を正常に実行できない可能性がある。また、各インタネットワーク装置の負荷に依存して、フラグメントパケットが入力されてから出力されるまでのレイテンシに差異が生じる場合があるため、インタネットワーク装置の後段装置に対して、シーケンス番号通りにフラグメントパケットが転送されない可能性がある。
【0006】
なお、このような課題は、2つのインタネットワーク装置に限らず、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に共通の課題であった。
【0007】
本発明は、上記の課題を解決するためになされたものであり、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題の少なくとも一部を解決するために、本発明は、以下の形態または適用例として実現することが可能である。
【0009】
[適用例1]インタネットワーク装置であって、
第1のネットワークからパケットを受信する受信部と、
他の前記インタネットワーク装置との間におけるパケットの転送である装置間パケット転送を行う装置間パケット転送インターフェースと、
1つのオリジナルパケットが複数に分割されて生成されたパケットであるフラグメントパケットに関し、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一の前記インタネットワーク装置に集約されるように、前記装置間パケット転送を制御する装置間パケット転送制御部と、
パケットの送信元アドレスと送信先アドレスとの少なくとも一方について、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するアドレス変換部と、
アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える、インタネットワーク装置。
【0010】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように、他のインタネットワーク装置との間で受信されたパケットの転送が行われるため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0011】
[適用例2]適用例1に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットが、パケットに含まれる情報の内、同一のオリジナルパケットから生成されたすべてのフラグメントパケットが同じ値を有する第1の情報についての条件に該当するか否かに基づき、受信されたパケットを他の前記インタネットワーク装置に転送するか否かを判定する、インタネットワーク装置。
【0012】
このインタネットワーク装置では、元々パケットに含まれる情報を用いて、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるような装置間パケット転送を実現することができる。
【0013】
[適用例3]適用例2に記載のインタネットワーク装置であって、
前記第1の情報は、送信元アドレスと送信先アドレスとの少なくとも一方である、インタネットワーク装置。
【0014】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットは同一の送信元アドレスおよび送信先アドレスを有するため、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるような装置間パケット転送を実現することができる。
【0015】
[適用例4]適用例2または適用例3に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、前記インタネットワーク装置と前記他のインタネットワーク装置との負荷に基づき、前記条件を設定する、インタネットワーク装置。
【0016】
このインタネットワーク装置では、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されることを担保しつつ、他のインタネットワーク装置との間での負荷の調整を実現することができる。
【0017】
[適用例5]適用例1ないし適用例4のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、送信元アドレスおよび通信ポート番号の組み合わせと、送信先アドレスおよび通信ポート番号の組み合わせと、の少なくとも一方について、前記ローカルアドレスと前記グローバルアドレスとを相互に変換する、インタネットワーク装置。
【0018】
このインタネットワーク装置では、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス・ポート変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0019】
[適用例6]適用例1ないし適用例5のいずれかに記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットの中からフラグメントパケットを検出し、検出されたフラグメントパケットと同一のオリジナルパケットから生成されたフラグメントパケットのすべてが前記インタネットワーク装置に集約されたか否かを判定し、
前記アドレス変換部は、集約されたと判定された後に、フラグメントパケットに対するアドレス変換を行う、インタネットワーク装置。
【0020】
このインタネットワーク装置では、同一のオリジナルパケットから生成されたフラグメントパケットのすべてがインタネットワーク装置に集約された後にアドレス変換を行うことができ、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0021】
[適用例7]適用例1ないし適用例6のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、前記第1のネットワーク側のアドレスおよび通信ポートの組み合わせと前記第2のネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報を保持し、前記アドレス・ポート変換情報を他の前記インタネットワーク装置と同期し、
前記装置間パケット転送制御部は、前記アドレス・ポート変換情報の同期が行われている場合にパケットの装置間転送を行う、インタネットワーク装置。
【0022】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に同一のオリジナルパケットから生成された複数のフラグメントパケットが同一のインタネットワーク装置に集約されるように、他のインタネットワーク装置との間で受信されたパケットの転送が行われるため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0023】
[適用例8]適用例7に記載のインタネットワーク装置であって、
前記受信部または前記送信部は、前記アドレス・ポート変換変換情報の同期が行われている場合にリンクアップする、インタネットワーク装置。
【0024】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に受信部をリンクアップするため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0025】
[適用例9]請求項7に記載のインタネットワーク装置であって、さらに、
パケットルーティングを制御する経路制御部を備え、
前記経路制御部は、前記アドレス・ポート変換変換情報の同期が行われている場合に経路情報の広告を行う、インタネットワーク装置。
【0026】
このインタネットワーク装置では、インタネットワーク装置を起動したときアドレス・ポート変換変換情報を複数のインタネットワーク装置で同期した後に経路情報の広告を行うため、複数のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、パケットを廃棄することなくフラグメントパケットに対する処理を正しく実行することができる。
【0027】
なお、本発明は、種々の態様で実現することが可能であり、例えば、インタネットワーク装置、アドレス変換方法、複数のインタネットワーク装置を備えるネットワークシステム、これらの装置、方法、システムの機能を実現するための集積回路、コンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の態様で実現することができる。
【発明の効果】
【0028】
本発明によれば、複数のインタネットワーク装置を稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施例におけるネットワーク10の構成を概略的に示す説明図である。
【図2】インタネットワーク装置100の構成を概略的に示す説明図である。
【図3】アウトバウンドパケット転送処理の流れを示すフローチャートである。
【図4】アウトバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。
【図5】装置間転送アウトバウンドパケット転送処理の流れを示すフローチャートである。
【図6】インバウンドパケット転送処理の流れを示すフローチャートである。
【図7】インバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。
【図8】装置間転送インバウンドパケット転送処理の流れを示すフローチャートである。
【図9】インタネットワーク装置の起動処理(装置間パケットの廃棄防止)の流れを示すフローチャートである。
【図10】実施例2におけるアウトバウンドパケット転送処理の流れを示すフローチャートである。
【図11】インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止)の流れを示すフローチャートである。
【図12】インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止)の流れを示すフローチャートである。
【図13】アドレス・ポート変換情報の転送を要求するための制御パケット400を概略的に示す説明図である。
【図14】アドレス・ポート変換情報を転送するための制御パケット500を概略的に示す説明図である。
【図15】NAT可能を通知するための制御パケット600を概略的に示す説明図である。
【発明を実施するための形態】
【0030】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.システムおよび装置の構成:
A−2.アウトバウンドパケット転送処理:
A−3.装置間転送アウトバウンドパケット転送処理:
A−4.インバウンドパケット転送処理:
A−5.装置間転送インバウンドパケット転送処理:
B.変形例:
C.実施例2:
C−1.インタネットワーク装置の起動処理(装置間パケットの廃棄防止):
C−2.インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止):
C−3.インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止):
A.実施例:
A−1.システムおよび装置の構成:
図1は、本発明の実施例におけるネットワーク10の構成を概略的に示す説明図である。ネットワーク10は、3つのISP(インターネットサービスプロバイダ)200を含んでいる。各ISP200は、NAT機能を有するホームルーター210を介して個人ユーザー220を収容すると共に、企業網(企業内ネットワーク)240およびNAT機能を有する企業ルーター230を介して企業ユーザー250を収容している。
【0031】
ISP−A(200A)は、グローバルアドレスを有するISPであり、キャリアエッジルーター310と直接接続されることにより、インターネット300と通信可能となっている。なお、インターネット300には、クライアントである個人ユーザー220や企業ユーザー250からアクセス可能な位置に、HTTPサーバー320が設けられている。
【0032】
ISP−B(200B)およびISP−C(200C)は、グローバルアドレスを有しないISPであり、LSN(Large Scale NAT)機能を持つインタネットワーク装置100を介してキャリアエッジルーター310と接続されることにより、インターネット300と通信可能となっている。本実施例では、同一の機能および構成を有する2つのインタネットワーク装置100(インタネットワーク装置A(100A)およびインタネットワーク装置B(100B))が同時に稼動される冗長構成(Double ACT構成)が採用されている。すなわち、ISP−B(200B)およびISP−C(200C)のそれぞれは、2つのインタネットワーク装置100に接続され、いずれのインタネットワーク装置100を介してもキャリアエッジルーター310と接続可能となっている。また、2つのインタネットワーク装置100は、アドレス変換に必要な情報(セッション情報)を互いに同期させている。ISP−B(200B)およびISP−C(200C)のそれぞれは、2つのインタネットワーク装置100と接続されるルーター(不図示)を有している。これらのルーターにおいて、ISP200(ローカルネットワーク)からインターネット300方向の通信(以下、「アウトバウンド通信」とも呼ぶ)のパケットが2つのインタネットワーク装置100のいずれかに振り分けられる。同様に、キャリアエッジルーター310において、インターネット300からISP200方向の通信(以下、「インバウンド通信」とも呼ぶ)のパケットが2つのインタネットワーク装置100のいずれかに振り分けられる。これにより、2つのインタネットワーク装置100における負荷分散が実現されている。2つのインタネットワーク装置100の内の一方が故障した場合には、すべてのパケットを他方のインタネットワーク装置100に振り分けることにより、アドレス変換を継続して実行可能である。なお、インタネットワーク装置100の機能は、キャリアエッジルーター310の機能の一部であると考えることができる。
【0033】
図2は、インタネットワーク装置100の構成を概略的に示す説明図である。図2には、2つのインタネットワーク装置100(インタネットワーク装置A(100A)およびインタネットワーク装置B(100B))の構成を示している。2つのインタネットワーク装置100の構成は同一であるため、以下の説明では、2つのインタネットワーク装置100およびその構成要素について互いに区別する必要のないときには、名前および符号に互いを区別する識別子(「A」および「B」)を付すことを省略する場合がある。
【0034】
インタネットワーク装置100は、アドレス変換(アドレス・ポート変換)を行うことにより、ローカルネットワークLNETとグローバルネットワークGNETとの間で通信を行う装置である。インタネットワーク装置100は、ローカルネットワークLNETと接続するためのインサイド側パケットインターフェース(パケットI/F(I))101と、グローバルネットワークGNETと接続するためのアウトサイド側パケットインターフェース(パケットI/F(O))103と、パケットルーティングを制御する経路制御部102と、アウトバウンド通信のパケット(以下、「アウトバウンドパケットOBP」と呼ぶ)のアドレス変換を行うインサイド用アドレス変換部(アドレス変換部(I))104と、インバウンド通信のパケット(以下、「インバウンドパケットIBP」と呼ぶ)のアドレス変換を行うアウトサイド用アドレス変換部(アドレス変換部(O))105と、他のインタネットワーク装置100にアウトバウンドパケットOBPを転送するためのインサイド用装置間パケット転送インターフェース(装置間パケット転送I/F(I))106と、他のインタネットワーク装置100にインバウンドパケットIBPを転送するためのアウトサイド用装置間パケット転送インターフェース(装置間パケット転送I/F(O))107と、を備えている。
【0035】
インサイド側パケットインターフェース101は、経路制御部102とローカルネットワークLNETに配置された負荷分散を行うルーター(不図示)とに接続され、当該ルーターから送信されたアウトバウンドパケットOBPを受信して経路制御部102に転送すると共に、経路制御部102から転送されたインバウンドパケットIBPを受信して当該ルーターに転送する。アウトサイド側パケットインターフェース103は、経路制御部102とキャリアエッジルーター310(図1)とに接続され、キャリアエッジルーター310から送信されたインバウンドパケットIBPを受信して経路制御部102に転送すると共に、経路制御部102から転送されたアウトバウンドパケットOBPを受信してキャリアエッジルーター310に転送する。インサイド側パケットインターフェース101およびアウトサイド側パケットインターフェース103は、本発明における送信部および受信部として機能する。
【0036】
経路制御部102は、インタネットワーク装置100の各構成要素と接続されている。経路制御部102は、各インターフェースを介して受信されたパケットの転送処理や、受信されたパケットがフラグメントパケットか否かを判定する処理を行う。経路制御部102によるパケット転送処理の詳細は、後述する。
【0037】
インサイド用冗長装置間パケット転送インターフェース106は、他のインタネットワーク装置100と直接接続するためのインターフェースである。すなわち、Double ACT構成での運用時において、インサイド用冗長装置間パケット転送インターフェース106は、他のインタネットワーク装置100のインサイド用冗長装置間パケット転送インターフェース106と専用回線112を介して接続される。インサイド用冗長装置間パケット転送インターフェース106は、自装置内の経路制御部102から転送されたアウトバウンドパケットOBPを受信して他のインタネットワーク装置100のインサイド用冗長装置間パケット転送インターフェース106に送信すると共に、他のインタネットワーク装置100から転送されたアウトバウンドパケットOBP(「装置間転送アウトバウンドパケットTOBP」とも呼ぶ)を受信して自装置内の経路制御部102に転送する。なお、本実施例では、インサイド側パケットインターフェース101により受信されたアウトバウンドパケットOBPのすべてが装置間転送アウトバウンドパケットTOBPとして他のインタネットワーク装置100に転送される場合にも対応できるように、インサイド用冗長装置間パケット転送インターフェース106の通信帯域(回線速度)は、インサイド側パケットインターフェース101の通信帯域(回線速度)と同一としている。
【0038】
アウトサイド用冗長装置間パケット転送インターフェース107は、他のインタネットワーク装置100と直接接続するためのインターフェースである。すなわち、Double ACT構成での運用時において、アウトサイド用冗長装置間パケット転送インターフェース107は、他のインタネットワーク装置100のアウトサイド用冗長装置間パケット転送インターフェース107と専用回線114を介して接続される。アウトサイド用冗長装置間パケット転送インターフェース107は、自装置内の経路制御部102から転送されたインバウンドパケットIBPを受信して他のインタネットワーク装置100のアウトサイド用冗長装置間パケット転送インターフェース107に送信すると共に、他のインタネットワーク装置100から転送されたインバウンドパケットIBP(「装置間転送インバウンドパケットTIBP」とも呼ぶ)を受信して自装置内の経路制御部102に転送する。なお、本実施例では、アウトサイド側パケットインターフェース103により受信されたインバウンドパケットIBPのすべてが装置間転送インバウンドパケットTIBPとして他のインタネットワーク装置100に転送される場合にも対応できるように、アウトサイド用冗長装置間パケット転送インターフェース107の通信帯域(回線速度)は、アウトサイド側パケットインターフェース103の通信帯域(回線速度)と同一としている。
【0039】
なお、インサイド用冗長装置間パケット転送インターフェース106およびアウトサイド用冗長装置間パケット転送インターフェース107は、本発明における装置間パケット転送インターフェースとして機能する。また、経路制御部102は、本発明における装置間パケット転送制御部として機能する。
【0040】
インサイド用アドレス変換部104は、アドレス・ポート変換変換情報(セッション情報)を保持し、アドレス・ポート変換情報に基づき、経路制御部102から転送されたアウトバウンドパケットOBPの送信元アドレスと通信ポート番号との変換(アドレス変換)を行い、アドレス変換後のアウトバウンドパケットOBPを再度経路制御部102に転送する。
【0041】
アウトサイド用アドレス変換部105は、アドレス・ポート変換情報(セッション情報)を保持し、アドレス・ポート変換情報に基づき、経路制御部102から転送されたインバウンドパケットIBPの送信先アドレスと通信ポート番号との変換(アドレス変換)を行い、アドレス変換後のインバウンドパケットIBPを再度経路制御部102に転送する。
【0042】
なお、インサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、回線126を介して互いに接続されると共に、回線122、124を介して、他のインタネットワーク装置100のインサイド用アドレス変換部104およびアウトサイド用アドレス変換部105と接続されている。各インタネットワーク装置100のインサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、当該回線を介してアドレス・ポート変換変換情報の同期を行う。なお、アドレス・ポート変換情報は、ローカルアドレスとグローバルアドレスとの対応関係を示すアドレス変換規則表と、グローバルアドレス内の通信ポートの使用/未使用の状況を示す空きポート管理表と、実際に通信を行っている状態にあるローカルネットワーク側のアドレスおよび通信ポートの組み合わせとグローバルネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換表と、を含んでいる。インサイド用アドレス変換部104およびアウトサイド用アドレス変換部105は、本発明におけるアドレス変換部として機能する。
【0043】
A−2.アウトバウンドパケット転送処理:
図3は、アウトバウンドパケット転送処理の流れを示すフローチャートである。また、図4は、アウトバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。アウトバウンドパケット転送処理は、ローカルネットワークLNETからアウトバウンドパケットOBPを受信したインタネットワーク装置100が受信パケットをグローバルネットワークGNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Aにより受信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0044】
ステップS110(図3)では、インタネットワーク装置100(100A)のインサイド側パケットインターフェース101が、ローカルネットワークLNETからアウトバウンドパケットOBPを受信する。インサイド側パケットインターフェース101は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS120)。
【0045】
ステップS130(図3)では、経路制御部102が、受信されたアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれに該当するかを判定する。ここで、第1の条件および第2の条件は、任意のアウトバウンドパケットOBPが第1の条件と第2の条件とのいずれか一方に該当するように設定される。また、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定される。なお、本明細書において、同一起源フラグメントパケット群は、同一のオリジナルパケットから生成された複数のフラグメントパケットの集合を意味する。また、一方のインタネットワーク装置100における第1の条件および第2の条件は、他方のインタネットワーク装置100における第1の条件および第2の条件とは逆になるように設定される。本実施例では、インタネットワーク装置100Aにおいて、第1の条件は「送信元アドレスが偶数であること」と設定され、第2の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定される。一方、インタネットワーク装置100Bにおいては、インタネットワーク装置100Aにおける第1の条件と第2の条件との関係とは逆の関係となるように、第1の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定され、第2の条件は「送信元アドレスが偶数であること」と設定される。第1の条件および第2の条件がこのように設定されれば、任意のアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれか一方のみに該当することとなる。また、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信元アドレスを有しているため、同一の条件に該当することとなる。
【0046】
インタネットワーク装置100Aの経路制御部102は、ステップS130(図3)において、アウトバウンドパケットOBPの送信元アドレスが偶数であるか(すなわち第1の条件に該当するか)、奇数であるか(すなわち第2の条件に該当するか)を判定する。アウトバウンドパケットOBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS130:NO)、経路制御部102が、インサイド用冗長装置間パケット転送インターフェース106を介して、アウトバウンドパケットOBPを他のインタネットワーク装置100(100B)に転送する(ステップS140)(図4の経路P2参照)。なお、他のインタネットワーク装置100から転送されたアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信したインタネットワーク装置100における処理(装置間転送アウトバウンドパケット転送処理)については後述する。
【0047】
一方、アウトバウンドパケットOBPは第1の条件に該当すると判定された場合には(ステップS130:YES)、経路制御部102が、アウトバウンドパケットOBPがフラグメントパケットであるか否かを判定する(ステップS160)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS160:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS190)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS200)。
【0048】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS160:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS170)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0049】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS180)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS190)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS200)。
【0050】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS210)(図4の経路P1参照)。
【0051】
なお、アウトバウンドパケットOBPがインタネットワーク装置100Bにより受信された場合のアウトバウンドパケット転送処理も、上記と同様に実行される。この場合には、ステップS130(図3)において、アウトバウンドパケットOBPの送信元アドレスが奇数であるか(すなわち第1の条件に該当するか)、偶数であるか(すなわち第2の条件に該当するか)が判定され、判定結果に従い、他のインタネットワーク装置100へのアウトバウンドパケットOBPの転送処理(ステップS140)や、自装置内での処理(ステップS160〜S210)が実行される。
【0052】
A−3.装置間転送アウトバウンドパケット転送処理:
図5は、装置間転送アウトバウンドパケット転送処理の流れを示すフローチャートである。装置間転送アウトバウンドパケット転送処理は、他のインタネットワーク装置100からアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信したインタネットワーク装置100が受信パケットをグローバルネットワークGNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、インタネットワーク装置100Aから転送された装置間転送アウトバウンドパケットTOBPがインタネットワーク装置100Bにより受信された場合の装置間転送アウトバウンドパケット転送処理について説明する(図4の経路P2参照)。インタネットワーク装置100Bから転送された装置間転送アウトバウンドパケットTOBPがインタネットワーク装置100Aにより受信された場合の装置間転送アウトバウンドパケット転送処理の内容も同様である。
【0053】
ステップS310(図5)では、インタネットワーク装置100(100B)のインサイド用冗長装置間パケット転送インターフェース106が、他のインタネットワーク装置100(100A)からアウトバウンドパケットOBP(装置間転送アウトバウンドパケットTOBP)を受信する。インサイド用冗長装置間パケット転送インターフェース106は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS320)。
【0054】
ステップS330(図5)では、経路制御部102が、アウトバウンドパケットOBPはフラグメントパケットであるか否かを判定する(ステップS330)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS330:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS360)(図4の経路P2参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS370)。
【0055】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS330:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS340)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0056】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS350)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS360)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS370)。
【0057】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS380)(図4の経路P2参照)。
【0058】
A−4.インバウンドパケット転送処理:
図6は、インバウンドパケット転送処理の流れを示すフローチャートである。また、図7は、インバウンドパケット転送処理におけるパケットの転送経路を示す説明図である。インバウンドパケット転送処理は、グローバルネットワークGNETからインバウンドパケットIBPを受信したインタネットワーク装置100が受信パケットをローカルネットワークLNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、グローバルネットワークGNETから送信されたインバウンドパケットIBPがインタネットワーク装置100Aにより受信された場合のインバウンドパケット転送処理について説明する(図7参照)。
【0059】
ステップS410(図6)では、インタネットワーク装置100(100A)のアウトサイド側パケットインターフェース103が、グローバルネットワークGNETからインバウンドパケットIBPを受信する。アウトサイド側パケットインターフェース103は、受信したインバウンドパケットIBPを経路制御部102に転送する(ステップS420)。
【0060】
ステップS430(図6)では、経路制御部102が、受信されたインバウンドパケットIBPは第1の条件と第2の条件とのいずれに該当するかを判定する。ここで、第1の条件および第2の条件は、任意のインバウンドパケットIBPが第1の条件と第2の条件とのいずれか一方に該当するように設定される。また、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定される。また、一方のインタネットワーク装置100における第1の条件および第2の条件は、他方のインタネットワーク装置100における第1の条件および第2の条件とは逆になるように設定される。本実施例では、インタネットワーク装置100Aにおいて、第1の条件は「送信元アドレスが偶数であること」と設定され、第2の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定される。一方、インタネットワーク装置100Bにおいては、インタネットワーク装置100Aにおける第1の条件と第2の条件との関係とは逆の関係となるように、第1の条件は「送信元アドレスが偶数ではない(奇数である)こと」と設定され、第2の条件は「送信元アドレスが偶数であること」と設定される。第1の条件および第2の条件がこのように設定されれば、任意のインバウンドパケットIBPは第1の条件と第2の条件とのいずれか一方のみに該当することとなる。また、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信元アドレスを有しているため、同一の条件に該当することとなる。
【0061】
インタネットワーク装置100Aの経路制御部102は、ステップS430(図6)において、インバウンドパケットIBPの送信元アドレスが偶数であるか(すなわち第1の条件に該当するか)、奇数であるか(すなわち第2の条件に該当するか)を判定する。インバウンドパケットIBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS430:NO)、経路制御部102が、アウトサイド用冗長装置間パケット転送インターフェース107を介して、インバウンドパケットIBPを他のインタネットワーク装置100(100B)に転送する(ステップS440)(図7の経路P2参照)。なお、他のインタネットワーク装置100から転送されたインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信したインタネットワーク装置100における処理(装置間転送インバウンドパケット転送処理)については後述する。
【0062】
一方、インバウンドパケットIBPは第1の条件に該当すると判定された場合には(ステップS430:YES)、経路制御部102が、インバウンドパケットIBPがフラグメントパケットであるか否かを判定する(ステップS460)。インバウンドパケットIBPはフラグメントパケットではないと判定された場合には(ステップS460:NO)、経路制御部102が、インバウンドパケットIBPをアウトサイド用アドレス変換部105に転送する(ステップS490)(図7の経路P1参照)。インバウンドパケットIBPをアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS500)。
【0063】
一方、インバウンドパケットIBPはフラグメントパケットであると判定された場合には(ステップS460:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS470)。経路制御部102は、アウトサイド側パケットインターフェース103を介してグローバルネットワークGNETから転送されるパケットや、アウトサイド用冗長装置間パケット転送インターフェース107を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0064】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS480)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(インバウンドパケットIBP)をアウトサイド用アドレス変換部105に転送する(ステップS490)(図7の経路P1参照)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS500)。
【0065】
アウトサイド用アドレス変換部105は、アドレス変換後のインバウンドパケットIBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、インサイド側パケットインターフェース101を介して、インバウンドパケットIBPをローカルネットワークLNETに転送する(ステップS510)(図7の経路P1参照)。
【0066】
なお、インバウンドパケットIBPがインタネットワーク装置100Bにより受信された場合のインバウンドパケット転送処理も、上記と同様に実行される。この場合には、ステップS430(図6)において、インバウンドパケットIBPの送信元アドレスが奇数であるか(すなわち第1の条件に該当するか)、偶数であるか(すなわち第2の条件に該当するか)が判定され、判定結果に従い、他のインタネットワーク装置100へのインバウンドパケットIBPの転送処理(ステップS440)や、自装置内での処理(ステップS460〜S510)が実行される。
【0067】
A−5.装置間転送インバウンドパケット転送処理:
図8は、装置間転送インバウンドパケット転送処理の流れを示すフローチャートである。装置間転送インバウンドパケット転送処理は、他のインタネットワーク装置100からインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信したインタネットワーク装置100が受信パケットをローカルネットワークLNETに転送する処理である。なお、以下の説明では、2つのインタネットワーク装置100が同時に稼動されるDouble ACTの冗長構成において、インタネットワーク装置100Aから転送された装置間転送インバウンドパケットTIBPがインタネットワーク装置100Bにより受信された場合の装置間転送インバウンドパケット転送処理について説明する(図7の経路P2参照)。インタネットワーク装置100Bから転送された装置間転送インバウンドパケットTIBPがインタネットワーク装置100Aにより受信された場合の装置間転送インバウンドパケット転送処理の内容も同様である。
【0068】
ステップS610(図8)では、インタネットワーク装置100(100B)のアウトサイド用冗長装置間パケット転送インターフェース107が、他のインタネットワーク装置100(100A)からインバウンドパケットIBP(装置間転送インバウンドパケットTIBP)を受信する。アウトサイド用冗長装置間パケット転送インターフェース107は、受信したインバウンドパケットIBPを経路制御部102に転送する(ステップS620)。
【0069】
ステップS630(図8)では、経路制御部102が、インバウンドパケットIBPはフラグメントパケットであるか否かを判定する(ステップS630)。インバウンドパケットIBPはフラグメントパケットではないと判定された場合には(ステップS630:NO)、経路制御部102が、インバウンドパケットIBPをアウトサイド用アドレス変換部105に転送する(ステップS660)(図7の経路P2参照)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS670)。
【0070】
一方、インバウンドパケットIBPはフラグメントパケットであると判定された場合には(ステップS630:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS640)。経路制御部102は、アウトサイド側パケットインターフェース103を介してグローバルネットワークGNETから転送されるパケットや、アウトサイド用冗長装置間パケット転送インターフェース107を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0071】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS650)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(インバウンドパケットIBP)をアウトサイド用アドレス変換部105に転送する(ステップS660)。インバウンドパケットIBPを受信したアウトサイド用アドレス変換部105は、アドレス・ポート変換情報を参照して、アドレス変換(送信先アドレスおよび通信ポート番号の変換)を実行する(ステップS670)。
【0072】
アウトサイド用アドレス変換部105は、アドレス変換後のインバウンドパケットIBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、インサイド側パケットインターフェース101を介して、インバウンドパケットIBPをローカルネットワークLNETに転送する(ステップS680)(図7の経路P2参照)。
【0073】
以上説明したように、本実施例では、インタネットワーク装置100は、ローカルネットワークLNETもしくはグローバルネットワークGNETからパケットを受信すると、第1の条件および第2の条件のいずれに該当するかの判定(図3のステップS130および図6のステップS430)を通じて、受信パケットを、自インタネットワーク装置100と他のインタネットワーク装置100とのいずれかに振り分ける。ここで、第1の条件および第2の条件は、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように設定されるため、同一起源フラグメントパケット群は同一のインタネットワーク装置100に集約されることとなる。一般に、同一起源フラグメントパケット群の内の最初のフラグメントパケットは、データ部に通信ポート番号を特定する情報を有しているが、2番目以降のフラグメントパケットは通信ポート番号を特定する情報を有していない。本実施例では、同一起源フラグメントパケット群が同一のインタネットワーク装置100に集約されるため、フラグメントパケットに対しても、通信ポート番号を含むアドレス変換(アドレス・ポート変換)を実現することができる。そのため、本実施例では、同一起源フラグメントパケット群に含まれる各フラグメントパケットに対して同一のアドレス変換を行うことができ、フラグメントパケットの送信先である端末は、受信したフラグメントパケットに基づきオリジナルパケットの再構築を正常に実行することができる。従って、本実施例では、複数のインタネットワーク装置100を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対するアドレス変換を正しく実行することができる。
【0074】
また、本実施例では、受信パケットがフラグメントパケットである場合には、同一起源フラグメントパケット群を構成するすべてのフラグメントパケットの受信の完了が待たれ、受信完了の後、全フラグメントパケットがシーケンス番号順に並び替えられ、シーケンス番号順にフラグメントパケットの転送が行われる。そのため、本実施例では、インタネットワーク装置100の後段装置に対して、シーケンス番号通りにフラグメントパケットを転送することができる。
【0075】
なお、本実施例では、第1の条件および第2の条件として、送信元アドレスという元々パケットに含まれる情報を用いた条件を採用しているため、パケットにパケットの集約のための情報を付加することなく、同一起源フラグメントパケット群を同一のインタネットワーク装置100に集約することができる。
【0076】
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0077】
B1.変形例1:
上記実施例では、第1の条件および第2の条件の組み合わせとして、「送信元アドレスが偶数であること」および「送信元アドレスが奇数であること」という条件の組み合わせが採用されているが、他の組み合わせを採用することも可能である。例えば、第1の条件および第2の条件の組み合わせとして、「送信元アドレスの下1桁が0〜4のいずれかであること」および「送信元アドレスの下1桁が5〜9のいずれかであること」という条件の組み合わせが採用されてもよい。また、「送信元アドレスの下1桁が0,1のいずれかであること」および「送信元アドレスの下1桁が2〜9のいずれかであること」という条件の組み合わせが採用されてもよい。各インタネットワーク装置100の負荷を監視して、各インタネットワーク装置100が分担する負荷が所望の値に調整されるように(例えばそれぞれの負荷が均等になるように)、条件の組み合わせが設定されることが好ましい。また、条件の組み合わせは、定期的にまたは随時、更新設定されるとしてもよい。
【0078】
また、第1の条件および第2の条件の組み合わせとして、「送信先アドレスが偶数であること」および「送信先アドレスが奇数であること」という条件の組み合わせが採用されてもよい。同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットは、共通の送信先アドレスを有しているため、このような条件の組み合わせが採用されても同一の条件に該当することとなる。その他にも、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが共通して有する情報であれば、第1の条件および第2の条件の組み合わせに用いることができる。なお、上記実施例のように、送信元アドレスを第1の条件および第2の条件の組み合わせに用いると、フラグメントパケットに限らず、同一の端末から送信されたパケットはすべて同一のインタネットワーク装置100に集約されることとなるため、パケットの管理上好ましい。
【0079】
B2.変形例2:
上記実施例では、同一の機能および構成を有する2つのインタネットワーク装置100が同時に稼動される冗長構成(Double ACT構成)を例に用いて説明したが、本発明は、N個(Nは3以上の整数)のインタネットワーク装置100が同時に稼動される冗長構成にも適用可能である。この場合には、上記実施例と同様に、第1の条件から第Nの条件までのN個の条件が、任意のパケットがN個の条件のいずれか1つに該当するように、かつ、同一起源フラグメントパケット群に含まれるすべてのフラグメントパケットが同一の条件に該当するように、設定される。いずれか1つのインタネットワーク装置100により受信されたパケットは、N個の条件のいずれに該当するかの判定結果に基づき、N個のインタネットワーク装置100のいずれかに振り分けられる。このようにすれば、N個のインタネットワーク装置を同時に稼動させる構成においてアドレス変換を実行する場合に、フラグメントパケットに対する処理を正しく実行することができる。
【0080】
B3.変形例3:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【0081】
C.実施例2:
LSNにおいて、実際に通信を行っている状態にあるローカルネットワーク側のアドレスおよび通信ポートの組み合わせとグローバルネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報(セッション情報)は、それぞれのインタネットワーク装置100で最初に受信したオリジナルパケットのIPアドレスとポート番号に応じて動的または静的に決定される。複数のインタネットワーク装置100を同時に稼動させ装置間でパケットを転送して対向のインタネットワーク装置でアドレス変換を行う構成においては、オリジナルパケットをどのインタネットワーク装置で受信してもそれぞれのインタネットワーク装置が同じセッション情報に基づいてアドレス変換をする必要があるため、複数のインタネットワーク装置100は、セッション情報を互いに同期させることで同じセッション情報を保持している。また、例えば停止状態の一方のインタネットワーク装置100を新たに起動した場合には、動作状態の他方のインタネットワーク装置100が既に保持しているセッション情報を新たに起動した一方のインタネットワーク装置100に転送することで、双方のインタネットワーク装置100で同じセッション情報を保持することが必要になる。
【0082】
このような状況において、例えば一方のインタネットワーク装置100を起動したとき、双方のインタネットワーク装置100でセッション情報の同期をする前に装置間でパケットを転送してしまった場合、一方のインタネットワーク装置100はセッション情報を保持していないためアドレス変換できずにパケットを廃棄することになる。
【0083】
したがって、本実施例では、複数のインタネットワーク装置100を同時に稼動させ装置間でパケットを転送してアドレス変換する構成において、インタネットワーク装置100を新たに起動する場合に、新たに起動したインタネットワーク装置100においてパケットの廃棄を防止し、セッション情報に基づいて正しくアドレス変換を行えるようにすることを考慮した本発明の実施形態について説明する。
【0084】
C−1.インタネットワーク装置の起動処理(装置間パケットの廃棄防止):
図9は、インタネットワーク装置100の起動処理の流れを示すフローチャートである。また、図10は、アウトバウンドパケット転送処理の流れを示すフローチャートである。なお、以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Aにより受信されて装置間パケット転送されてインタネットワーク装置100BからグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4の経路P2参照)。
【0085】
ステップS910(図9)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0086】
ステップS920(図9)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0087】
図13は、アドレス・ポート変換情報の転送を要求するための制御パケット400を概略的に示す説明図である。制御パケット400は、MACヘッダ410とアドレス・ポート変換情報の転送を要求するためのコマンド420を含んでいる。
【0088】
ステップS930(図9)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するために自身が保持するアドレスポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0089】
図14は、アドレス・ポート変換情報を転送するための制御パケット500を概略的に示す説明図である。制御パケット500は、MACヘッダ510、アドレス・ポート変換情報を転送するためのコマンド520、保持しているアドレス・ポート変換情報個数530、アドレス・ポート変換情報540を含んでいる。
【0090】
ステップS940(図9)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、他のインタネットワーク装置100Aの経路制御部102Aへ回線122を介してNAT可能を通知するための制御パケット600を送信する。
【0091】
図15は、NAT可能を通知するための制御パケット600を概略的に示す説明図である。制御パケット600は、MACヘッダ610、NAT可能を通知するためのコマンド620を含んでいる。
【0092】
制御パケット600によりNAT可能を通知することにより、インタネットワーク装置100Bがアドレス・ポート変換情報の同期が完了してアドレス変換の処理可能であることを他のインタネットワーク装置100Aに通知することができる。
【0093】
次に図10を用いて他のインタネットワーク装置100Aにおけるアウトバウンドパケット転送処理の流れを説明する。図10のフローチャートは、実質的に図3のフローチャートのステップS130とステップS140の間ににステップS1040が追加されたものと同じであるため、図3と共通する部分については一部その説明を省略する。
【0094】
ステップS1010(図10)では、インタネットワーク装置100(100A)のインサイド側パケットインターフェース101が、ローカルネットワークLNETからアウトバウンドパケットOBPを受信する。インサイド側パケットインターフェース101は、受信したアウトバウンドパケットOBPを経路制御部102に転送する(ステップS1020)。
【0095】
ステップS1030(図10)では、経路制御部102が、受信されたアウトバウンドパケットOBPは第1の条件と第2の条件とのいずれに該当するかを判定する。アウトバウンドパケットOBPは第1の条件に該当せず第2の条件に該当すると判定された場合には(ステップS1030:NO)、インタネットワーク装置100Aの経路制御部102は、ステップS1040において、インタネットワーク装置100Bのアドレス変換部(I)104BがNAT可能か否かを判定する。NAT可能であると判断された場合には(ステップS1040:YES)、経路制御部102が、インサイド用装置間パケット転送インターフェース106を介して、アウトバウンドパケットOBPを他のインタネットワーク装置100Bに転送する(ステップS1050)(図4の経路P2参照)。
【0096】
一方、アウトバウンドパケットOBPは第1の条件に該当すると判定された場合(ステップS1030:YES)、もしくは、アドレス・ポート変換情報の転送が完了しておらずNAT不可能と判断された場合(ステップS1040:NO)には、経路制御部102が、アウトバウンドパケットOBPがフラグメントパケットであるか否かを判定する(ステップS1060)。アウトバウンドパケットOBPはフラグメントパケットではないと判定された場合には(ステップS1060:NO)、経路制御部102が、アウトバウンドパケットOBPをインサイド用アドレス変換部104に転送する(ステップS1090)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS1100)。
【0097】
一方、アウトバウンドパケットOBPはフラグメントパケットであると判定された場合には(ステップS1060:YES)、経路制御部102は、受信したフラグメントパケットが属する同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了するのを待つ(ステップS1070)。経路制御部102は、インサイド側パケットインターフェース101を介してローカルネットワークLNETから転送されるパケットや、インサイド用冗長装置間パケット転送インターフェース106を介して他のインタネットワーク装置100から転送されるパケットを監視し、同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了したか否かの判定を行う。
【0098】
同一起源フラグメントパケット群を構成するすべてのパケットの受信が完了すると、経路制御部102は、受信した全フラグメントパケットをシーケンス番号順に並び替える(ステップS1080)。その後、経路制御部102は、シーケンス番号順にフラグメントパケット(アウトバウンドパケットOBP)をインサイド用アドレス変換部104に転送する(ステップS1090)(図4の経路P1参照)。アウトバウンドパケットOBPを受信したインサイド用アドレス変換部104は、アドレス・ポート変換情報を参照して、アドレス変換(送信元アドレスおよび通信ポート番号の変換)を実行する(ステップS1100)。
【0099】
インサイド用アドレス変換部104は、アドレス変換後のアウトバウンドパケットOBPを経路制御部102に転送し、経路制御部102は、送信先アドレスに従ってルーティングを行い、アウトサイド側パケットインターフェース103を介して、アウトバウンドパケットOBPをグローバルネットワークGNETに転送する(ステップS1110)(図4の経路P1参照)。
【0100】
本実施形態によれば、インタネットワーク装置100Aは、インタネットワーク装置100Bのアドレス変換部(I)104BがNAT可能な場合に装置間パケット転送を行うため、インタネットワーク装置100B側でアドレス変換ができずにパケットが廃棄されることを防ぐことができる。
【0101】
また、本実施形態ではアウトバウンドパケット転送処理について説明したが、インバウンドパケット転送処理においても、図6のフローチャートのステップS430とステップS440の間に、図10のステップS1040に相当するステップを追加すれば同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【0102】
C−2.インタネットワーク装置の起動処理(リンクダウンによるネットワークからのパケットの廃棄防止):
図11は、インタネットワーク装置の起動処理の流れを示すフローチャートである。なお、以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Bにより受信されてグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0103】
ステップS1210(図11)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0104】
ステップS1220(図11)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0105】
ステップS1230(図11)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するために自身が保持するアドレス・ポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0106】
ステップS1240(図11)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、自身の経路制御部102BへNAT可能を通知する。
【0107】
ステップS1250(図11)では、NAT可能通知を受けたインタネットワーク装置100Bの経路制御部102BがパケットI/F(I)101Bのリンクをアップする。
【0108】
インタネットワーク装置100BのパケットI/F(I)101Bのリンクがアップの状態では、インタネットワークローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Bから受信される。
【0109】
一方、インタネットワーク装置100BのパケットI/F(I)101Bのリンクがダウンの状態では、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Aから受信される。
【0110】
本実施形態によれば、新たに起動したインタネットワーク装置100Bは、アドレス変換部(I)104BがNAT可能な場合にパケットI/F(I)101Bをリンクアップするため、パケットI/F(I)101Bから受信したパケットについてアドレス変換ができずにパケットが廃棄されるということを防ぐことができる。
【0111】
また、本実施形態ではアウトバウンドパケット転送処理についてのみ説明したが、インバウンドパケット転送処理においても、図11のフローチャートにしたがってアドレス変換部(O)105がアドレス・ポート変換情報の同期を行った後にパケットI/F(O)をリンクアップすることにより同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【0112】
C−3.インタネットワーク装置の起動処理(経路広告によるネットワークからのパケットの廃棄防止):
図12は、インタネットワーク装置の起動処理の流れを示すフローチャートである。以下の説明では、インタネットワーク装置100Aが既に稼動している状態でインタネットワーク装置100Bが新たに起動するときの冗長構成において、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPがインタネットワーク装置100Bにより受信されてグローバルネットワークGNETに送信された場合のアウトバウンドパケット転送処理について説明する(図4参照)。
【0113】
ステップS1310(図12)では、インタネットワーク装置100Bのアドレス変換部(I)104Bの機能を起動させる。
【0114】
ステップS1320(図12)では、起動したインタネットワーク装置100Bのアドレス変換部(I)104Bが他のインタネットワーク装置100Aのアドレス変換部(I)104Aへ回線122を介してアドレス・ポート変換情報の転送を要求するための制御パケット400を送信する。
【0115】
ステップS1330(図12)では、制御パケット400を受信した他のインタネットワーク装置100Aのアドレス変換部(I)104Aがインタネットワーク装置100Bのアドレス変換部(I)104Bへ回線122を介してアドレス・ポート変換情報を転送するため、自身が保持するアドレス・ポート変換情報を格納した制御パケット500をアドレス変換部(I)104Bへ送信する。
【0116】
ステップS1340(図12)では、インタネットワーク装置100Bのアドレス変換部(I)104Bが、受信した制御パケット500に含まれるアドレス・ポート変換情報を保持した後、自身の経路制御部102BへNAT可能を通知する。
【0117】
ステップS1350(図12)では、NAT可能通知を受けたインタネットワーク装置100Bの経路制御部102BがパケットI/F(I)101Bを介して送信先アドレス宛の経路をローカルネットワークLNETへ広告する。
【0118】
インタネットワーク装置100Bの経路制御部102Bから経路が広告された状態では、インタネットワークローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Bから受信される。
【0119】
一方、インタネットワーク装置100Bの経路制御部102Bから経路が広告されていない状態では、ローカルネットワークLNETから送信されたアウトバウンドパケットOBPは、ローカルネットワークLNET内の経路制御によりインタネットワーク装置100Aから受信される。
【0120】
本実施形態によれば、新たに起動したインタネットワーク装置100Bは、アドレス変換部(I)104BがNAT可能な場合に経路制御部がパケットI/F(I)101Bを介して経路をローカルネットワークLNETへ広告するため、パケットI/F(I)101Bから受信したパケットについてアドレス変換ができずにパケットが廃棄されるということを防ぐことができる。
【0121】
また、本実施形態ではアウトバウンドパケット転送処理についてのみ説明したが、インバウンドパケット転送処理においても、図12のフローチャートにしたがってアドレス変換部(O)105がアドレス・ポート変換情報の同期を行った後に経路制御部がパケットI/F(O)を介して経路をグローバルネットワークGNETへ広告することにより同様にインバウンドパケットIBPの廃棄を防ぐことができる。
【符号の説明】
【0122】
10・・・ネットワーク
100・・・インタネットワーク装置
101・・・インサイド側パケットインターフェース
102・・・経路制御部
103・・・アウトサイド側パケットインターフェース
104・・・インサイド用アドレス変換部
105・・・アウトサイド用アドレス変換部
106・・・インサイド用冗長装置間パケット転送インターフェース
107・・・アウトサイド用冗長装置間パケット転送インターフェース
112・・・回線
114・・・回線
122・・・回線
124・・・回線
126・・・回線
200・・・ISP
210・・・ホームルーター
220・・・個人ユーザー
230・・・企業ルーター
250・・・企業ユーザー
300・・・インターネット
310・・・キャリアエッジルーター
【特許請求の範囲】
【請求項1】
インタネットワーク装置であって、
第1のネットワークからパケットを受信する受信部と、
他の前記インタネットワーク装置との間におけるパケットの転送である装置間パケット転送を行う装置間パケット転送インターフェースと、
1つのオリジナルパケットが複数に分割されて生成されたパケットであるフラグメントパケットに関し、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一の前記インタネットワーク装置に集約されるように、前記装置間パケット転送を制御する装置間パケット転送制御部と、
パケットの送信元アドレスと送信先アドレスとの少なくとも一方について、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するアドレス変換部と、
アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える、インタネットワーク装置。
【請求項2】
請求項1に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットが、パケットに含まれる情報の内、同一のオリジナルパケットから生成されたすべてのフラグメントパケットが同じ値を有する第1の情報についての条件に該当するか否かに基づき、受信されたパケットを他の前記インタネットワーク装置に転送するか否かを判定する、インタネットワーク装置。
【請求項3】
請求項2に記載のインタネットワーク装置であって、
前記第1の情報は、送信元アドレスと送信先アドレスとの少なくとも一方である、インタネットワーク装置。
【請求項4】
請求項2または請求項3に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、前記インタネットワーク装置と前記他のインタネットワーク装置との負荷に基づき、前記条件を設定する、インタネットワーク装置。
【請求項5】
請求項1ないし請求項4のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、送信元アドレスおよび通信ポート番号の組み合わせと、送信先アドレスおよび通信ポート番号の組み合わせと、の少なくとも一方について、前記ローカルアドレスと前記グローバルアドレスとを相互に変換する、インタネットワーク装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットの中からフラグメントパケットを検出し、検出されたフラグメントパケットと同一のオリジナルパケットから生成されたフラグメントパケットのすべてが前記インタネットワーク装置に集約されたか否かを判定し、
前記アドレス変換部は、集約されたと判定された後に、フラグメントパケットに対するアドレス変換を行う、インタネットワーク装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、前記第1のネットワーク側のアドレスおよび通信ポートの組み合わせと前記第2のネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報を保持し、前記アドレス・ポート変換情報を他の前記インタネットワーク装置と同期し、
前記装置間パケット転送制御部は、前記アドレス・ポート変換情報の同期が行われている場合にパケットの装置間転送を行う、インタネットワーク装置。
【請求項8】
請求項7に記載のインタネットワーク装置であって、
前記受信部または前記送信部は、前記アドレス・ポート変換情報の同期が行われている場合にリンクアップする、インタネットワーク装置。
【請求項9】
請求項7に記載のインタネットワーク装置であって、さらに、
パケットルーティングを制御する経路制御部を備え、
前記経路制御部は、前記アドレス・ポート変換情報の同期が行われている場合に経路情報の広告を行う、インタネットワーク装置。
【請求項1】
インタネットワーク装置であって、
第1のネットワークからパケットを受信する受信部と、
他の前記インタネットワーク装置との間におけるパケットの転送である装置間パケット転送を行う装置間パケット転送インターフェースと、
1つのオリジナルパケットが複数に分割されて生成されたパケットであるフラグメントパケットに関し、同一のオリジナルパケットから生成された複数のフラグメントパケットが同一の前記インタネットワーク装置に集約されるように、前記装置間パケット転送を制御する装置間パケット転送制御部と、
パケットの送信元アドレスと送信先アドレスとの少なくとも一方について、特定のネットワーク内で用いられるローカルアドレスと複数のネットワーク間にわたって用いられるグローバルアドレスとを相互に変換するアドレス変換部と、
アドレス変換後のパケットを第2のネットワークへ送信する送信部と、を備える、インタネットワーク装置。
【請求項2】
請求項1に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットが、パケットに含まれる情報の内、同一のオリジナルパケットから生成されたすべてのフラグメントパケットが同じ値を有する第1の情報についての条件に該当するか否かに基づき、受信されたパケットを他の前記インタネットワーク装置に転送するか否かを判定する、インタネットワーク装置。
【請求項3】
請求項2に記載のインタネットワーク装置であって、
前記第1の情報は、送信元アドレスと送信先アドレスとの少なくとも一方である、インタネットワーク装置。
【請求項4】
請求項2または請求項3に記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、前記インタネットワーク装置と前記他のインタネットワーク装置との負荷に基づき、前記条件を設定する、インタネットワーク装置。
【請求項5】
請求項1ないし請求項4のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、送信元アドレスおよび通信ポート番号の組み合わせと、送信先アドレスおよび通信ポート番号の組み合わせと、の少なくとも一方について、前記ローカルアドレスと前記グローバルアドレスとを相互に変換する、インタネットワーク装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載のインタネットワーク装置であって、
前記装置間パケット転送制御部は、受信されたパケットの中からフラグメントパケットを検出し、検出されたフラグメントパケットと同一のオリジナルパケットから生成されたフラグメントパケットのすべてが前記インタネットワーク装置に集約されたか否かを判定し、
前記アドレス変換部は、集約されたと判定された後に、フラグメントパケットに対するアドレス変換を行う、インタネットワーク装置。
【請求項7】
請求項1ないし請求項6のいずれかに記載のインタネットワーク装置であって、
前記アドレス変換部は、前記第1のネットワーク側のアドレスおよび通信ポートの組み合わせと前記第2のネットワーク側のアドレスおよび通信ポートの組み合わせとの対応関係を示すアドレス・ポート変換情報を保持し、前記アドレス・ポート変換情報を他の前記インタネットワーク装置と同期し、
前記装置間パケット転送制御部は、前記アドレス・ポート変換情報の同期が行われている場合にパケットの装置間転送を行う、インタネットワーク装置。
【請求項8】
請求項7に記載のインタネットワーク装置であって、
前記受信部または前記送信部は、前記アドレス・ポート変換情報の同期が行われている場合にリンクアップする、インタネットワーク装置。
【請求項9】
請求項7に記載のインタネットワーク装置であって、さらに、
パケットルーティングを制御する経路制御部を備え、
前記経路制御部は、前記アドレス・ポート変換情報の同期が行われている場合に経路情報の広告を行う、インタネットワーク装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−24180(P2011−24180A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−219903(P2009−219903)
【出願日】平成21年9月25日(2009.9.25)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願日】平成21年9月25日(2009.9.25)
【出願人】(504411166)アラクサラネットワークス株式会社 (315)
【Fターム(参考)】
[ Back to top ]