以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の通信装置を示す図である。第1の実施の形態の通信装置10は、少なくともネットワーク2,3に接続され、ネットワーク2から受信したパケットのルーティングを行う。通信装置10は、例えば、レイヤ3(IPレイヤなど)以下またはレイヤ4(TCP(Transmission Control Protocol)レイヤやUDP(User Datagram Protocol)レイヤなど)以下のプロトコル処理を行うルータである。
ネットワーク2はLANでもよく、ネットワーク3はインターネットなどの広域ネットワークでもよい。その場合、通信装置10は、例えば、LANに属するクライアントコンピュータから広域ネットワークに属するサーバコンピュータへのアクセスを制御する。
通信装置10は、記憶部11および制御部12を有する。
記憶部11は、アクセス制御リスト11aを記憶する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、フラッシュメモリなどの不揮発性記憶装置でもよい。アクセス制御リスト11aは、パケットの条件を記載したエントリを1つ以上含む。パケットの条件は、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号など、ルーティングで参照可能な情報を用いて記載される。
ここで、アクセス制御リスト11aに含まれるあるエントリ(例えば、識別番号=0が付与された先頭エントリ)は、ネットワーク2から受信するパケットのうちネットワーク3へ転送を許可するパケットの条件を示す。少なくともこのエントリに対しては、宛先アドレスの条件(例えば、宛先IPアドレスの条件)として複数のアドレスを登録することができる。例えば、このエントリの宛先アドレスの項目には、アドレスを直接記載せずに他の行を参照すべき旨を示す文字(例えば、“dynamic”)が記載され、他の行に複数のアドレスが列挙される。他の行に記載したアドレスの先頭には、例えば、エントリではない旨を示す文字(例えば、アンダーバー)を付加しておく。
制御部12は、アクセス制御リスト11aを更新し、また、アクセス制御リスト11aを用いてパケットのルーティングを行う。制御部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサを含んでもよく、プロセッサに実行させるプログラムを記憶するメモリを含んでもよい。複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。また、制御部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)など、以下の機能の少なくとも一部を実現する専用の集積回路を含んでもよい。
制御部12は、ネットワーク2から、第1の形式のアドレス4a(例えば、完全修飾ドメイン名(FQDN:Fully Qualified Domain Name))を含むアドレス問い合わせ4を受け付ける。アドレス問い合わせ4は、例えば、ネットワーク2に属するクライアントコンピュータによって送信される。すると、制御部12は、第1の形式のアドレス4aに対応する第2の形式のアドレス5a(例えば、IPアドレス)を含むアドレス回答5を返信する。第1の形式のアドレス4aに対応する第2の形式のアドレス5aは、例えば、DNS(Domain Name System)サーバに問い合わせることで知ることができる。
上記のアドレス解決の過程において、制御部12は、第1の形式のアドレス4aが所定条件を満たすか判断する。例えば、制御部12は、第1の形式のアドレス4aが、ユーザによって予め信頼できる通信相手として指定されたドメイン名を含むか判断する。第1の形式のアドレス4aが所定条件を満たす場合、制御部12は、アクセス制御リスト11aに含まれる上記エントリの宛先アドレス条件に、第1の形式のアドレス4aに対応する第2の形式のアドレス5aを追加する。これにより、第2の形式のアドレス5aを宛先アドレスとするパケットは、上記エントリの宛先アドレスの条件を満たすこととなる。
そして、制御部12は、上記のように更新されるアクセス制御リスト11aを用いて、ネットワーク2から受信したパケットのルーティングを行う。例えば、制御部12は、受信したパケットが、上記エントリが示す複数の条件のうち宛先アドレス以外の条件(例えば、送信元アドレスの条件)を満たすか判断する。宛先アドレス以外の条件を満たすとき、制御部12は、受信したパケットの宛先アドレス(第2の形式のアドレス)が、上記エントリの宛先アドレスの条件として列挙されたアドレス(第2の形式のアドレス)の何れかと一致するか判断する。宛先アドレスの条件も満たすと、制御部12は、受信したパケットをネットワーク3へ転送することを許可する。
アクセス制御リスト11aに従ってネットワーク3への転送が許可されたパケットは、例えば、通信装置10からネットワーク3に直接出力される。一方、アクセス制御リスト11aに従ってネットワーク3への転送が許可されなかったパケットは、少なくとも通信装置10からネットワーク3には直接出力されず、例えば、ネットワーク2,3以外の他のネットワークに転送される。他のネットワークは、通信装置10に直接接続されていてもよいし、ネットワーク3上に形成したVPN(Virtual Private Network)などの仮想ネットワークを介して通信装置10に接続されていてもよい。後者の場合、通信装置10は、パケットをカプセル化するか否かをルーティングにおいて選択することになる。
このような通信装置10は、LANから広域ネットワークへのアクセスのセキュリティを向上させるために、ファイアウォールと組み合わせて使用することができる。例えば、通信装置10は、ユーザが信頼できる通信相手として指定したドメイン名に対応するIPアドレスを取得し、そのIPアドレスを宛先アドレスとするパケットはファイアウォールを迂回するようにネットワーク3に直接転送する。一方、通信装置10は、他のIPアドレスを宛先アドレスとするパケットは、ファイアウォールを経由するように転送する。
第1の実施の形態の通信装置10によれば、所定条件を満たす第1の形式のアドレス4aに対応する第2の形式のアドレス5aがアドレス解決によって取得されると、アクセス制御リスト11aに含まれるあるエントリの宛先アドレスの条件に動的に追加される。ここで、当該エントリの宛先アドレスの条件には、複数のアドレスを記載できるようにしておく。このようなアクセス制御リスト11aを用いてパケットのルーティングを行うことで、転送先の設定を動的に変更することを通信装置10において容易に実現することができる。なお、アクセス制御リスト11aは、ルーティングに加えて、パケットのフィルタリングや帯域制御にも利用することが可能である。その場合、動的に取得した第2の形式のアドレス5aを各機能に対応する設定情報にそれぞれ書き込まなくてもよく、ルーティングとフィルタリングと帯域制御を効率的に連携させることができる。
[第2の実施の形態]
図2は、第2の実施の形態の通信システムを示す図である。第2の実施の形態は、本社と支社を含む企業のイントラネットが、インターネットに接続されている例を考える。
第2の実施の形態の通信システムは、支社LAN31、本社LAN32およびインターネット33を含む。支社LAN31と本社LAN32は、それぞれインターネット33に接続されている。支社LAN31は、クライアント41,42およびルータ100を備える。本社LAN32は、クライアント43、ファイルサーバ44、ファイアウォール51およびDNSサーバ52を備える。インターネット33は、DNSサーバ53,54、Webサーバ61,62およびキャッシュサーバ63,64を備える。
クライアント41,42,43は、ユーザが使用する端末装置としてのコンピュータである。クライアント41,42,43は、Webブラウザを用いて、インターネット33のWebサーバ61,62やキャッシュサーバ63,64にアクセスできる。また、クライアント41,42は、インターネット33経由でファイルサーバ44にアクセスでき、クライアント43はファイルサーバ44にアクセスできる。ファイルサーバ44は、本社や支社の業務に使用されるファイルを保持するサーバコンピュータである。
ファイアウォール51は、支社LAN31および本社LAN32を含むイントラネットとインターネット33の間の通信を監視する通信装置である。ファイアウォール51は、例えば、アプリケーション層のプロトコル処理を行い、ウィルスや機密情報などの不正な内容を含む通信を検出する。ファイアウォール51は、プロキシサーバと呼ばれるものであってもよい。ここで、支社LAN31と本社LAN32とは、インターネット33上に形成したVPN(いわゆるインターネットVPN)で接続されている。後述するように、支社LAN31とインターネット33との間のパケットは、所定の信頼できるサービスに関するパケットを除いて、本社LAN32のファイアウォール51を経由する。
DNSサーバ52,53,54は、ホスト名とIPアドレスとの対応関係を管理するサーバコンピュータである。DNSサーバ52,53,54は、完全修飾ドメイン名(FQDNを含むDNS要求(リクエスト)を受信し、FQDNに対応するIPアドレスを含むDNS応答(レスポンス)を返信する。FQDNは、ドメイン名を含むホスト名である。DNSサーバ52,53,54は、指定されたFQDNのアドレス解決を担当していない場合、他のDNSサーバに問い合わせる。例えば、DNSサーバ52は、クライアント41からWebサーバ62のIPアドレスの問い合わせを受けたとき、DNSサーバ54に問い合わせることがある。なお、DNSサーバ53は支社LAN31の近くに位置し、DNSサーバ54は本社LAN32の近くに位置する。
Webサーバ61,62は、検索サービスやソフトウェア更新サービスなどのサービスを提供するサーバコンピュータである。Webサーバ61,62は、例えば、クライアント41,42,43からのHTTP(Hypertext Transfer Protocol)アクセスに応じて、HTML(HyperText Markup Language)文書やソフトウェアプログラムなどのファイルを送信する。キャッシュサーバ63,64は、Webサーバ61に記憶されたファイルの複製を保持するサーバコンピュータである。クライアント41,42,43からWebサーバ61へのアクセスが、キャッシュサーバ63,64に誘導されることがある。なお、キャッシュサーバ63は支社LAN31の近くに位置し、キャッシュサーバ64は本社LAN32の近くに位置する。
Webサーバ61,62およびキャッシュサーバ63,64には、互いに異なるFQDNとIPアドレスが付与される。Webサーバ61を用いてサービスを提供する事業者とキャッシュサーバ63,64を運用する事業者とは、異なっていてもよい。よって、Webサーバ61のFQDNに含まれるドメイン名とキャッシュサーバ63,64のFQDNに含まれるドメイン名とは、異なることがある。ここで、Webサーバ61に対するアクセスを、以下のような方法でキャッシュサーバ63,64に誘導することができる。
Webサーバ61を担当するDNSサーバに、Webサーバ61のFQDNの別名(CNAME)としてキャッシュサーバ63,64のドメイン名を登録しておく。Webサーバ61を担当するDNSサーバは、Webサーバ61のFQDNを含むDNS要求を受信すると、別名として自ドメインでないドメイン名が登録されているため、キャッシュサーバ63,64を担当するDNSサーバにDNS要求を転送する。キャッシュサーバ63,64を担当するDNSサーバは、DNS要求の送信元のIPアドレスを用いて送信元に物理的に近いキャッシュサーバを検索し、キャッシュサーバのIPアドレスを返信する。
クライアント41,42,43には、Webサーバ61のFQDNに対応するIPアドレスとして、各クライアントに近いキャッシュサーバのIPアドレスが通知される。クライアント41,42,43は、以降、Webサーバ61に代えて各クライアントに近いキャッシュサーバにアクセスすることになる。これにより、Webサーバ61およびキャッシュサーバ63,64の負荷を分散させることができる。
なお、このようなキャッシュサービスの一例として、Akamaiが挙げられる。このようなキャッシュサービスの説明は、次の文献にも記載されている。ホワイトペーパ「アカマイのアプリケーション高速化サービス:インターネットをビジネス対応アプリケーション・デリバリー・プラットフォームに変える」,Akamai Technologies,2009年。ホワイトペーパ「アカマイによるウェブインフラの効率性向上 オンラインチャンネル戦略」,Akamai Technologies,2009年。米国特許第6108703号明細書および第6553413号明細書。
ルータ100は、支社LAN31とインターネット33との境界に位置し、本社LAN32およびインターネット33と通信を行う。ルータ100は、各パケットに対し、IP層以下またはTCP層以下のプロトコル処理を行えばよく、アプリケーション層のプロトコル処理を行わなくてよい。また、ルータ100は、ファイアウォール機能を備えていなくてよい。ルータ100は、クライアント41,42からインターネット33へ送信されるパケットのうち、所定の信頼できるサービスに関するパケットを、ファイアウォール51を迂回して直接インターネット33に転送する。一方、ルータ100は、それ以外のパケットを、インターネットVPNを介してファイアウォール51に転送する。
本社LAN32側では、ファイアウォール51がVPNを終端してもよいし、他の通信装置がVPNを終端してもよい。本社LAN32と支社LAN31との間の通信は、ファイアウォール51を経由するようにしてもよいし、経由しないようにしてもよい。
なお、第2の実施の形態において、支社LAN31は第1の実施の形態のネットワーク2の一例であり、インターネット33は第1の実施の形態のネットワーク3の一例であり、ルータ100は第1の実施の形態の通信装置10の一例である。
図3は、ルータのハードウェア例を示すブロック図である。ルータ100は、CPU101、RAM102、メモリ103、管理インタフェース104、LANインタフェース105およびWANインタフェース106を有する。
CPU101は、プログラムに従ってパケットを処理するプロセッサである。CPU101は、メモリ103からプログラムや制御用データを読み出してRAM102に展開する。RAM102は、CPU101が使用するプログラムや制御用データの一部または全部を一時的に記憶する揮発性メモリである。メモリ103は、プログラムや制御用データを記憶する不揮発性メモリであり、例えば、フラッシュメモリである。なお、ルータ100は、RAM102やメモリ103に代えて、他の種類の記憶装置を備えていてもよい。
管理インタフェース104は、管理用の端末装置に接続できる管理ポートを備える通信インタフェースである。LANインタフェース105は、支社LAN31の他の通信装置(例えば、レイヤ2スイッチ)と接続できるLANポートを備える通信インタフェースである。WANインタフェース106は、インターネット33と接続できるWANポートを備える通信インタフェースである。VPN通信とそれ以外の通信とが、同じ物理的なWANポートを共有して利用することもできる。LANインタフェース105およびWANインタフェース106は、CPU101の制御に従ってパケットを送信する。
なお、第2の実施の形態では、ルーティングを含むIP層のプロトコル処理をソフトウェアで実行することとしたが、ハードウェアで実行してもよい。以下に説明するルータ100の機能の少なくとも一部を、ワイヤードロジックとして実装することもできる。
図4は、第2の実施の形態のルータの機能例を示すブロック図である。ルータ100は、FQDNリスト記憶部110、ACL情報記憶部120、フィルタリング部130、帯域制御部140、ルーティング部150、DNS処理部160およびIPアドレス抽出部170を有する。FQDNリスト記憶部110およびACL情報記憶部120は、例えば、RAM102またはメモリ103上に確保する記憶領域として実現される。フィルタリング部130、帯域制御部140、ルーティング部150、DNS処理部160およびIPアドレス抽出部170は、例えば、CPU101が実行するソフトウェアのモジュールとして実現される。ただし、前述のように、ソフトウェアのモジュールとして実現できる機能の一部または全部は、ワイヤードロジックとして実現することもできる。
FQDNリスト記憶部110は、FQDNリストを記憶する。FQDNリストは、FQDNを用いて信頼できるサービスを指定したホワイトリストである。FQDNリストでは、FQDNを指定するにあたってワイルドカード(*)が使用されてもよい。例えば、FQDNリストに“*.aaa.bbb”と記載されている場合、“www.aaa.bbb”はFQDNリストに登録されているFQDNと判断される。FQDNリストは、管理インタフェース104またはLANインタフェース105を通じて管理用の端末装置から入力されるコマンドに応じて、作成および更新されることになる。
ACL情報記憶部120は、アクセス制御リストと、アクセス制御リストを利用してルータ100の動作を定義した設定情報とを記憶する。設定情報には、ルーティング部150を制御するためのルーティング情報、フィルタリング部130を制御するためのフィルタリング情報、帯域制御部140を制御するための帯域制御情報が含まれる。アクセス制御リストおよび設定情報は、管理インタフェース104またはLANインタフェース105を通じて管理用の端末装置から入力されるコマンドに応じて、作成および更新が行われる。また、アクセス制御リストは、IPアドレス抽出部170によっても更新される。
フィルタリング部130は、ACL情報記憶部120に記憶されたアクセス制御リストを利用して、LANポートやWANポートなどの通信ポート毎にパケットのフィルタリングを行う。例えば、フィルタリング部130は、通信ポートで受信されたパケットのうちアクセス制御リストで定義された条件を満たさない(または、ある条件を満たす)パケットを、ルーティング部150に出力せずに破棄する(インバウンドのフィルタリング)。また、例えば、フィルタリング部130は、通信ポートから送信しようとするパケットのうちアクセス制御リストで定義された条件を満たさない(または、ある条件を満たす)パケットを、送信せずに破棄する(アウトバウンドのフィルタリング)。なお、フィルタリング部130は、1つの物理的なWANポートを共有してVPN通信とそれ以外の通信とが行われる場合、両者を論理的に異なる通信ポートを通過する通信として扱い、論理的な通信ポート毎に上記のフィルタリングを行ってもよい。
帯域制御部140は、ACL情報記憶部120に記憶されたアクセス制御リストを利用して、LANポートやWANポートなどの通信ポート毎に帯域制御を行う。例えば、帯域制御部140は、通信ポートから送信しようとするパケットを優先度の異なる複数の送信バッファに振り分けるとき、アクセス制御リストで定義された条件に基づいて各パケットの優先度を判定する。また、例えば、帯域制御部140は、送信バッファに滞留するパケットが一定量を超えたとき、アクセス制御リストで定義された条件に基づいて一部のパケットを選択し破棄する。なお、帯域制御部140は、フィルタリング部130と同様に、論理的な通信ポート毎に上記の帯域制御を行ってもよい。また、帯域制御部140は、通信ポートで受信したパケットに対して帯域制御を行うことも可能である。
ルーティング部150は、通信ポートで受信されフィルタリング部130および帯域制御部140を通過したパケットを受け取り、各パケットに含まれる宛先IPアドレスに基づいてルーティングを行う。ルーティング部150は、クライアント41,42からインターネット33へ伝送されるパケットの転送方法を判定するにあたり、ACL情報記憶部120に記憶されたアクセス制御リストを参照する。ルーティング部150は、信頼できる通信相手としてアクセス制御リストに登録されたIPアドレス宛てのパケットを、インターネット33に直接転送する。一方、ルーティング部150は、それ以外のIPアドレス宛てのパケットを、インターネットVPNを用いて本社LAN32に転送する。
なお、インターネット33からクライアント41,42へ返信されるパケットの転送経路(復路)は、原則として、クライアント41,42からインターネット33へのパケットの転送経路(往路)と同じになる。ルーティング部150は、本社LAN32に送信するパケットは、インターネットVPNのカプセル化を行い、また、本社LAN32から取得するパケットは、インターネットVPNのデカプセル化(カプセル化の解除)を行う。すなわち、ルーティング部150は、インターネットVPNを終端する。
また、ルーティング部150は、DNS要求またはDNS応答としてのDNSパケットが何れかの通信ポートで受信されると、受信されたDNSパケットをDNS処理部160に渡す。また、ルーティング部150は、DNS処理部160からDNSパケットを受け取ると、DNS処理部160からの指示に応じてDNSパケットを転送する。
DNS処理部160は、クライアント41,42とDNSサーバ52,53,54の間で、DNS要求やDNS応答を転送するDNSリレー機能を実現する。DNSリレー機能により、ルータ100は、クライアント41,42からDNSサーバとして認識される。DNS処理部160は、リクエスト受付部161、転送先判定部162、インターネット転送部163およびイントラネット転送部164を有する。
リクエスト受付部161は、クライアント41,42からDNS要求を受け付け、インターネット33または本社LAN32から取得したDNS応答を返信する。転送先判定部162は、DNS要求に含まれるFQDNがFQDNリスト記憶部110に記憶されたFQDNリストに登録されたものか、すなわち、信頼できるサービスのFQDNであるか判定する。転送先判定部162は、登録されたFQDNである場合はインターネット33に転送すると判定し、それ以外の場合は本社LAN32に転送すると判定する。
インターネット転送部163は、転送先判定部162の判定結果に従って、DNS要求をインターネット33のDNSサーバ(例えば、DNSサーバ53)に転送し、当該DNSサーバからDNS応答を取得する。また、インターネット転送部163は、DNS応答をIPアドレス抽出部170に出力する。イントラネット転送部164は、転送先判定部162の判定結果に従って、DNS要求を本社LAN32のDNSサーバ52に転送し、DNSサーバ52からDNS応答を取得する。このとき、イントラネット転送部164は、取得したDNS応答をIPアドレス抽出部170には出力しない。
IPアドレス抽出部170は、インターネット33および本社LAN32のうちインターネット33から取得したDNS応答のみ、DNS処理部160から取得する。IPアドレス抽出部170は、問い合わせへの回答であるIPアドレスをDNS応答から抽出し、抽出したIPアドレスを信頼できる通信相手のIPアドレスとして、ACL情報記憶部120に記憶されたアクセス制御リストの所定のエントリに対して書き込む。
図5は、DNSパケットのフォーマット例を示す図である。DNSパケットは、IPヘッダ、UDPヘッダ、DNSヘッダ、および、1またはそれ以上のセクションを含む本文を有する。DNS要求としてのDNSパケットの本文は、質問(Query)セクションを含む。DNS応答としてのDNSパケットの本文は、質問セクション、回答(Answer)セクション、権限(Authority)セクションおよび追加(Additional)セクションを含む。
DNSヘッダは、ID(Identification)、フラグ、質問レコード数、回答レコード数、権限レコード数および追加レコード数を含む。IDは、DNSトランザクションを識別するための16ビット(2バイト)の識別子であり、DNS要求とそれに対応するDNS応答とで同じ値が用いられる。フラグは、DNS要求かDNS応答かを区別するためのビットを含む制御用ビットの集合である。質問レコード数は、質問セクションに含まれるレコードの数を示す。回答レコード数は、回答セクションに含まれるレコードの数を示す。権限レコード数は、権限セクションに含まれるレコードの数を示す。追加レコード数は、追加セクションに含まれるレコードの数を示す。
質問セクションの各レコードは、ホスト名、タイプおよびクラスを含む。ホスト名は、問い合わせ対象のFQDNである。タイプは、回答としてどのような情報が要求されているかを示す。FQDNが示す装置のIPアドレスを問い合わせる正引き問い合わせでは、タイプ=“A”が指定される。クラスは、インターネットを示す“IN”が指定される。
回答セクションの各レコードは、ホスト名、タイプ、クラス、有効時間(TTL:Time To Live)、データ長およびアドレスを含む。ホスト名は、回答セクションのアドレスをもつ装置のFQDNである。キャッシュサーバ63,64のIPアドレスが回答される場合など、質問セクションのホスト名と回答セクションのホスト名とが一致しない場合がある。タイプおよびクラスの意味は、質問セクションと同様である。TTLは、アドレス解決の結果の有効時間であり、有効時間が経過するまではアドレス解決の結果をキャッシュしておくことが許容される。データ長は、アドレスの欄のバイト数を示す。アドレスは、問い合わせに対する回答であり、例えば、IPアドレスである。
権限セクションのレコードは、回答セクションのホスト名を管理する権限のあるDNSサーバのFQDNを含む。追加セクションのレコードは、上記以外の追加情報を含み、例えば、権限セクションに記載されたDNSサーバのIPアドレスを含む。
図6は、アクセス制御リストの例を示す図である。アクセス制御リスト121は、ACL情報記憶部120に記憶されている。アクセス制御リスト121には複数のエントリ(例えば、1000個以下のエントリ)を登録することができ、各エントリは識別番号(例えば、0〜999の範囲の番号)によって識別される。複数のエントリが登録されている場合、識別番号の小さいエントリから優先的にパケットと照合される。
各エントリには、パケットに関する条件として、次の6種類の情報のうちの1つ以上を登録することができる。(a)送信元IPアドレスと宛先IPアドレス、(b)送信元IPv6アドレスと宛先IPv6アドレスの組、(c)送信元TCPポート番号と宛先TCPポート番号の組、(d)送信元UDPポート番号と宛先UDPポート番号の組、(e)ICMP(Internet Control Message Protocol)のタイプとコード、(f)送信元MAC(Medium Access Control)アドレスと宛先MACアドレスの組。
送信元IPアドレスと宛先IPアドレスについては、原則として、1つのエントリにつき1つずつ登録できる。ただし、サブネットマスクを指定することで、1個のIPアドレスに代えて一続きのIPアドレスの範囲を指定することが可能である。同様に、送信元IPv6アドレスと宛先IPv6アドレスについては、原則として、1つのエントリにつき1つずつ登録できる。ただし、プレフィックス長を指定することで、1個のIPv6アドレスに代えて一続きのIPv6アドレスの範囲を指定することが可能である。
例えば、図6の第1番のエントリ(エントリ#1)は、送信元IPアドレスが192.168.1.0/24の範囲に属し、宛先IPアドレスが223.xxx.xxx.0/24の範囲に属し、宛先TCPポート番号が80(HTTP)または443(HTTPS(Hypertext Transfer Protocol over Secure Socket Layer))という条件を示す。また、図6の第2番のエントリ(エントリ#2)のように、全てのIPパケットを指定することも可能である。
ここで、アクセス制御リスト121のエントリは、原則としてユーザによって定義されるものであり、ルータ100によって動的に書き換えられるものではない。また、上記の通り、1つのエントリに対しては、原則として1個の宛先IPアドレスまたは一続きの宛先IPアドレスの範囲を指定する。ただし、第2の実施の形態では、アクセス制御リスト121の所定のエントリに対しては、ルータ100が動的に宛先IPアドレスを追加できるようにする。以下の説明では、「所定のエントリ」をアクセス制御リスト121の第0番のエントリ(エントリ#0)とするが、他のエントリであってもよい。また、宛先IPアドレスと同様に、宛先IPv6アドレスを動的に追加できるようにしてもよい。
宛先IPアドレスを動的に追加できるようにするエントリの記載方法の一例を、図6のエントリ#0に示している。エントリ#0の宛先IPアドレスの欄には、具体的なIPアドレスまたはIPアドレス範囲に代えて“dynamic”という文字が記載される。これは、このエントリの宛先IPアドレスの欄には具体的なIPアドレスが記載されておらず、他の行の記載を参照すべき旨を示している。そして、アクセス制御リスト121の他の行に、先頭にアンダーバーが付加された具体的な宛先IPアドレスが列挙される。先頭のアンダーバーは、通常のエントリの行ではないことを示している。離散的な複数の宛先IPアドレスがあるときは、複数の行に跨がって記載してよい。
これにより、一続きになっていない離散的な複数のIPアドレスを、エントリ#0の宛先IPアドレスとして指定することができる。また、ルータ100によって動的に宛先IPアドレスをエントリ#0に追加することができる。ユーザがアクセス制御リスト121を閲覧するとき、アンダーバーから開始する行は無視されてユーザから見えない。また、ルータ100がエントリを検索するとき、エントリ#0の宛先IPアドレスを確認する場合を除き、アンダーバーから開始する行は無視される。なお、図6に示したアクセス制御リスト121の記載方法は一例に過ぎず、通常の宛先IPアドレスの欄以外の箇所に具体的な宛先IPアドレスを列挙する方法としては、様々な方法が考えられる。
図7は、アクセス制御リストを参照する設定情報の例を示す図である。前述のように、ACL情報記憶部120には、ルーティング情報122、フィルタリング情報123および帯域制御情報124が設定情報として記憶されている。ルーティング情報122、フィルタリング情報123および帯域制御情報124は、ユーザによって定義される。
ルーティング情報122は、アクセス制御リスト121を利用してルーティングを行うための設定情報である。ルーティング情報122では、アクセス制御リスト121に記載された1またはそれ以上のエントリがグループ化されてポリシーグループが形成される。そして、ポリシーグループ毎に、そのポリシーグループに属する何れかのエントリに該当するパケットの出力先が指定される。図7の例は、エントリ#0またはエントリ#1に該当するパケットをインターネット33に直接転送することを示している。
第2の実施の形態では、エントリ#0に該当するパケットはインターネット33に直接転送されるようルーティング情報122を記載しておく。幾つかのIPアドレスが信頼できる通信相手のものであると予めわかっている場合、ユーザは、その条件を記載した他のエントリに該当するパケットもインターネット33に直接転送されるようルーティング情報122を記載しておいてもよい。また、第2の実施の形態では、インターネット33に直接転送すると判断されなかったパケットはインターネットVPNを介して本社LAN32に転送されるよう、既定の転送先をルーティング情報122に定義しておく。
フィルタリング情報123は、アクセス制御リスト121を利用してフィルタリングを行うための設定情報である。フィルタリング情報123では、通信ポートとパケット方向(インバウンドまたはアウトバウンド)との組に対して、アクセス制御リスト121のエントリとパケットの処理方法(通過または破棄)とが指定される。図7の例では、LANポートのインバウンドに対して、エントリ#0,#1に該当するパケットは通過させ、それ以外のパケットは全て破棄するという設定を行っている。
帯域制御情報124は、アクセス制御リスト121を利用して帯域制御を行うための設定情報である。帯域制御情報124では、通信ポートに対して、アクセス制御リスト121に記載されたエントリと優先度とが指定される。優先度は、例えば、最優先(express)や非優先(besteffort)を含む複数のレベルの中から選択される。これにより、通信ポートから送信しようとするパケットのうち指定されたエントリに該当するパケットが、指定された優先度に応じて優先付けされて処理される。例えば、指定されたエントリに該当するパケットが、複数の送信バッファのうち優先度に応じた送信バッファに格納され、また、優先度に応じた確率で送信されずに破棄される。図7の例では、エントリ#0に該当しインターネット33に直接転送するパケットを最優先としている。
図8は、第2の実施の形態のDNS制御の手順例を示すフローチャートである。ここでは、クライアント41がDNS要求を送信した場合を考える。
(ステップS11)リクエスト受付部161は、DNS要求を受け付ける。
(ステップS12)転送先判定部162は、DNS要求からFQDNを抽出し、抽出したFQDNとFQDNリスト記憶部110に記憶されたFQDNリストとを照合する。転送先判定部162は、抽出したFQDNがFQDNリストにマッチするか(FQDNリストに登録されているものか)判断する。マッチする場合、信頼できるサービスのFQDNであると判断し、処理をステップS13に進める。マッチしない場合、信頼できるサービスのFQDNとは言えないと判断し、処理をステップS17に進める。
(ステップS13)インターネット転送部163は、DNS要求をインターネット33のDNSサーバ(例えば、DNSサーバ53)に転送する。
(ステップS14)インターネット転送部163は、DNS要求に対応するDNS応答を、インターネット33のDNSサーバ(例えば、DNSサーバ53)から取得する。
(ステップS15)IPアドレス抽出部170は、DNS応答からIPアドレスを抽出し、抽出したIPアドレスを信頼できる通信相手のものと判断する。
(ステップS16)IPアドレス抽出部170は、ACL情報記憶部120に記憶されたアクセス制御リスト121を更新する。具体的には、IPアドレス抽出部170は、ステップS15で抽出したIPアドレスを、エントリ#0の宛先IPアドレスの条件として追加する。このIPアドレスは、先頭に所定の文字(例えば、アンダーバー)が付加されて、エントリ#0の通常の宛先IPアドレスの欄とは異なる箇所に挿入される。そして、処理をステップS19に進める。なお、利用するキャッシュサーバが変わる場合など、サービスとIPアドレスの対応関係が変化する場合を考慮して、追加してから一定時間経過したIPアドレスはエントリ#0から削除するようにしてもよい。
(ステップS17)イントラネット転送部164は、DNS要求を本社LAN32のDNSサーバ52に転送する。DNS要求としてのDNSパケットは、ルータ100と本社LAN32との間でインターネットVPN用にカプセル化されて伝送される。
(ステップS18)イントラネット転送部164は、DNS要求に対応するDNS応答を本社LAN32のDNSサーバ52から取得する。DNS応答としてのDNSパケットは、DNS要求と同様、インターネットVPN用にカプセル化されて伝送される。なお、本社LAN32から取得したDNS応答に含まれるIPアドレスは、信頼できる通信相手のIPアドレスとは言えないと判断され、アクセス制御リスト121に登録されない。
(ステップS19)リクエスト受付部161は、インターネット33または本社LAN32から取得したDNS応答を、DNS要求を送信したクライアント41に転送する。なお、インターネット33にDNS要求を転送したとき、上記のステップS15,S16の処理とステップS19の処理とは並列に実行してもよいし、逆順に実行してもよい。
図9は、第2の実施の形態のルーティングの手順例を示すフローチャートである。
(ステップS21)ルーティング部150は、支社LAN31からパケットが受信されると、ACL情報記憶部120に記憶されたアクセス制御リスト121のエントリ#0と受信されたパケットとを照合する。このとき、エントリ#0の宛先IPアドレスは“dynamic”に設定されているため、ルーティング部150は、まずエントリ#0に記載された宛先IPアドレス以外の条件をパケットが満たしているか判断する。
宛先IPアドレス以外の条件としては、例えば、送信元IPアドレス、送信元TCPポート番号、宛先TCPポート番号などが挙げられる。エントリ#0の送信元IPアドレスの条件としてアドレス範囲が指定されている場合、パケットの送信元IPアドレスが指定された範囲に属するときその条件を満たすと判断される。エントリ#0の宛先TCPポート番号の条件として複数のポート番号が列挙されている場合、パケットの宛先TCPポート番号が列挙されたポート番号の何れかと一致するときその条件を満たすと判断される。
(ステップS22)ルーティング部150は、受信されたパケットがエントリ#0の宛先IPアドレス以外の条件を満たしているか判断する。条件を満たしている場合は処理をステップS23に進め、満たしていない場合は処理をステップS25に進める。
(ステップS23)ルーティング部150は、エントリ#0の宛先IPアドレスの条件としてアクセス制御リスト121に列挙された各IPアドレスと、パケットの宛先IPアドレスとを照合する。エントリ#0の宛先IPアドレスの条件は、例えば、先頭に所定の文字(例えば、アンダーバー)が付加されたアドレスを検索することで見つけることができる。ルーティング部150は、パケットの宛先IPアドレスがアクセス制御リスト121に列挙されたIPアドレスの何れかと一致するとき、その条件を満たすと判断する。
(ステップS24)ルーティング部150は、受信されたパケットがエントリ#0の宛先IPアドレスの条件を満たしているか判断する。条件を満たしている場合は処理をステップS27に進め、満たしていない場合は処理をステップS25に進める。
(ステップS25)ルーティング部150は、エントリ#0以外に、パケットをインターネット33に直接転送する条件を記載した他のエントリがある場合、そのエントリと受信されたパケットとを照合する。なお、エントリ#0は最も識別番号が小さいエントリであるため、他のエントリよりも先にエントリ#0が参照されることになる。
(ステップS26)ルーティング部150は、受信されたパケットがステップS25で説明した他のエントリの条件を満たしているか判断する。条件を満たしている場合は処理をステップS27に進め、満たしていない場合は処理をステップS28に進める。なお、「他のエントリ」が存在しない場合は処理をステップS28に進める。
(ステップS27)ルーティング部150は、受信されたパケットの宛先が信頼できる通信相手であると判断し、そのパケットをインターネット33に直接転送する。すなわち、ルーティング部150は、本社LAN32のファイアウォール51を迂回する経路でそのパケットがインターネット33に転送されるようにルーティングを行う。
(ステップS28)ルーティング部150は、受信されたパケットの宛先が信頼できる通信相手とは言えないと判断し、そのパケットを既定(デフォルト)の経路で転送する。すなわち、ルーティング部150は、受信されたパケットをカプセル化してインターネットVPNを介して本社LAN32に転送する。そのパケットは、ファイアウォール51で破棄される場合を除き、ファイアウォール51経由でインターネット33に転送される。
このように、アクセス制御リスト121を利用してルーティングを行う場合、まずエントリ#0の宛先IPアドレス以外の条件が確認され、パケットが宛先IPアドレス以外の条件を満たすとき、別途列挙された具体的なIPアドレスが確認される。アクセス制御リスト121を利用してフィルタリングや帯域制御を行う場合も、宛先IPアドレスの条件が“dynamic”であるエントリに関してこのような2段階の確認方法を採用できる。
図10は、第2の実施の形態のDNS処理例を示す図である。ここでは、クライアント41がDNSによりアドレス解決を行うとき(DNSフェーズ)を考える。また、ルータ100のFQDNリスト111に、“*.aaa.bbb”が登録されているとする。
クライアント41が“www.aaa.bbb”を指定したDNS要求を送信すると、ルータ100は、DNS要求のFQDNがFQDNリスト111に登録されていることを確認する。すると、ルータ100は、当該FQDNを信頼できると判断し、DNS要求をインターネット33のDNSサーバ53に転送する。ルータ100は、DNSサーバ53から“65.xxx.xxx.130”を含むDNS応答を受信すると、当該IPアドレスを信頼できると判定し、アクセス制御リスト121のエントリ#0の宛先IPアドレスの条件に追加する。また、ルータ100は、DNS応答をクライアント41に転送する。
一方、クライアント41が“www.ccc.ddd”を指定したDNS要求を送信すると、ルータ100は、DNS要求のFQDNがFQDNリスト111に登録されていないことを確認する。すると、ルータ100は、当該FQDNを信頼できるとは言えないと判断し、DNS要求を本社LAN32のDNSサーバ52に転送する。DNSサーバ52は、例えば、インターネット33のDNSサーバ54に問い合わせてIPアドレスを検索する。ルータ100は、DNSサーバ52から“74.xxx.xxx.172”を含むDNS応答を受信し、DNS応答をクライアント41に転送する。このときのIPアドレスは信頼できるとは言えないと判定され、アクセス制御リスト121に登録されない。
図11は、第2の実施の形態のパケット転送例を示す図である。ここでは、クライアント41が上記のアドレス解決の後にインターネット33に対してパケットを送信するとき(パケット転送フェーズ)を考える。また、アクセス制御リスト121のエントリ#0の宛先IPアドレスの条件に“65.xxx.xxx.130”が含まれているとする。
クライアント41が“65.xxx.xxx.130”を宛先とするパケットを送信すると、ルータ100は、パケットの宛先IPアドレスがエントリ#0の宛先IPアドレスの条件に含まれることを確認し、パケットがエントリ#0に該当することを確認する。すると、ルータ100は、受信したパケットの宛先IPアドレスを信頼できると判断し、ファイアウォール51を迂回するようにインターネット33にパケットを直接転送する。パケットは、例えば、宛先であるキャッシュサーバ63に転送される。
クライアント41が“74.xxx.xxx.172”を宛先とするパケットを送信すると、ルータ100は、パケットの宛先IPアドレスがエントリ#0の宛先IPアドレスの条件に含まれていないことを確認し、パケットがエントリ#0(および他のエントリ)に該当しないことを確認する。すると、ルータ100は、受信したパケットの宛先IPアドレスを信頼できるとは言えないと判断し、パケットをインターネットVPN用にカプセル化して本社LAN32のファイアウォール51に転送する。パケットは、例えば、ファイアウォール51で検査された後に宛先であるWebサーバ62に転送される。
図12は、第2の実施の形態の通信シーケンス例を示す第1の図である。ここでは、Webサーバ61により提供されるサービスが信頼できるサービスに指定されており、クライアント41が当該サービスを利用する場合を考える。ただし、クライアント41からのアクセスは、支社LAN31に近いキャッシュサーバ63に誘導される。
クライアント41がWebサーバ61のFQDNを指定したDNS要求を送信すると、当該DNS要求は、本社LAN32を迂回して支社LAN31に近いDNSサーバ53に転送される。前述のようなキャッシュサービスの方法を用いて、DNSサーバ53は、支社LAN31に近いキャッシュサーバ63のIPアドレスを検索し、検索したIPアドレスを含むDNS応答をクライアント41に返信する。
クライアント41は、キャッシュサーバ63のIPアドレスを、DNS要求で指定したFQDNに対応するIPアドレスであると認識し、当該IPアドレスを宛先IPアドレスとして含むパケットを送信する。クライアント41が送信するこのパケットは、本社LAN32を迂回してキャッシュサーバ63に転送される。
図13は、第2の実施の形態の通信シーケンス例を示す第2の図である。ここでは、Webサーバ62により提供されるサービスが信頼できるサービスに指定されておらず、クライアント41が当該サービスを利用する場合を考える。ただし、Webサーバ62へのアクセスは、ファイアウォール51で遮断されないものとする。
クライアント41がWebサーバ62のFQDNを指定したDNS要求を送信すると、当該DNS要求は、インターネットVPNおよび本社LAN32を経由して本社LAN32に近いDNSサーバ54に転送される。DNSサーバ54は、Webサーバ62のIPアドレスを検索し、検索されたIPアドレスを含むDNS応答を、本社LAN32およびインターネットVPNを経由してクライアント41に返信する。
クライアント41は、DNS応答からWebサーバ62のIPアドレスを抽出し、抽出したIPアドレスを宛先IPアドレスとして含むパケットを送信する。クライアント41が送信するこのパケットは、インターネットVPNおよび本社LAN32のファイアウォール51を経由してWebサーバ62に転送される。
第2の実施の形態の通信システムによれば、サービスの信頼性に応じてパケットの転送経路を変えることが容易になる。ルータ100では、ドメイン名を含むホスト名を用いて信頼できるサービスを指定することができる。よって、IPアドレスのみを用いる場合と異なり、クライアント41,42からアクセスがキャッシュサーバ63,64に誘導され得る場合でも、信頼できるサービスに関するパケットか否か適切に判断できる。
また、ルータ100は、各パケットに対してアプリケーション層のプロトコル処理を行わなくてよく、IP層以下またはTCP層以下のプロトコル処理のみ行うものであってもよい。よって、ルータ100のプロトコル処理の負荷を軽減でき、また、ルータ100として高コストな通信装置を使用しなくてもよい。
また、クライアント41,42からインターネット33へのパケットのうち、信頼できるサービスのパケットはイントラネットのファイアウォール51を迂回し、それ以外のパケットがファイアウォール51を通過するように転送経路が制御される。よって、クライアント41,42からインターネット33へのパケットの全てをファイアウォール51に転送する場合と比べて、ファイアウォール51の負荷を軽減できる。
また、アクセス制御リスト121のエントリ#0の宛先IPアドレスの条件に、信頼できるサービスに関するIPアドレスが動的に追加される。ここで、エントリ#0の宛先IPアドレスの条件として、離散的な複数のIPアドレスを列挙することができる。このようなアクセス制御リスト121を用いてパケットのルーティングを行うことで、転送先の設定を動的に変更することをルータ100において容易に実現することができる。また、アクセス制御リスト121は、ルーティングに加えて、パケットのフィルタリングや帯域制御にも利用することが可能である。よって、アドレス解決を通じて動的に取得したIPアドレスを各機能に対応する設定情報に個別に書き込まなくてもよく、ルーティングとフィルタリングと帯域制御を効率的に連携させることが可能となる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。第2の実施の形態との差異を中心に説明し、第2の実施の形態と同様の事項については説明を省略する。第3の実施の形態の通信システムは、図2と同様のシステム構成として実現できる。ただし、第2の実施の形態のルータ100に代えて、以下に説明するルータ100aが用いられる。
図14は、第3の実施の形態のルータの機能例を示すブロック図である。ルータ100aは、第2の実施の形態のルータ100のDNS処理部160に代えて、DNS処理部180を有する。DNS処理部180は、リクエスト受付部181、イントラネット転送部182および質問判定部183を有する。
リクエスト受付部181は、クライアント41,42からDNS要求を受け付け、本社LAN32から取得したDNS応答を返信する。イントラネット転送部182は、リクエスト受付部181で受け付けたDNS要求を本社LAN32のDNSサーバ52に転送し、DNS要求に対するDNS応答をDNSサーバ52から取得する。
質問判定部183は、イントラネット転送部182が取得したDNS応答から、クライアント41,42が指定したFQDN(質問セクションのホスト名)を抽出する。質問判定部183は、抽出したFQDNがFQDNリスト記憶部110に記憶されたFQDNリストに登録されたものか、すなわち、信頼できるサービスのFQDNか判断する。質問判定部183は、登録されたFQDNである場合はDNS応答をIPアドレス抽出部170に出力し、それ以外の場合はDNS応答をIPアドレス抽出部170に出力しない。
なお、第3の実施の形態では、DNS要求を本社LAN32のDNSサーバ52に転送するようにしたが、他の所定のDNSサーバに転送するようにしてもよい。
図15は、第3の実施の形態のDNS制御の手順例を示すフローチャートである。ここでは、クライアント41がDNS要求を送信した場合を考える。
(ステップS31)リクエスト受付部181は、DNS要求を受け付ける。
(ステップS32)イントラネット転送部182は、DNS要求を本社LAN32のDNSサーバ52に転送する。DNS要求としてのDNSパケットは、ルータ100と本社LAN32との間で、インターネットVPN用にカプセル化されて伝送される。
(ステップS33)イントラネット転送部182は、DNS要求に対応するDNS応答を、本社LAN32のDNSサーバ52から取得する。DNS応答としてのDNSパケットは、DNS要求と同様、インターネットVPN用にカプセル化されて伝送される。
(ステップS34)質問判定部183は、DNS応答からFQDNを抽出し、抽出したFQDNとFQDNリスト記憶部110に記憶されたFQDNリストとを照合する。質問判定部183は、抽出したFQDNがFQDNリストにマッチするか(FQDNリストに登録されているものか)判断する。マッチする場合、信頼できるサービスのFQDNであると判断し、処理をステップS35に進める。マッチしない場合、信頼できるサービスのFQDNとは言えないと判断し、処理をステップS37に進める。
(ステップS35)IPアドレス抽出部170は、DNS応答からIPアドレスを抽出し、抽出したIPアドレスを信頼できる通信相手のものであると判断する。
(ステップS36)IPアドレス抽出部170は、ACL情報記憶部120に記憶されたアクセス制御リスト121を更新する。具体的には、IPアドレス抽出部170は、ステップS35で抽出したIPアドレスを、エントリ#0の宛先IPアドレスの条件として追加する。このIPアドレスは、先頭に所定の文字(例えば、アンダーバー)が付加されて、エントリ#0の通常の宛先IPアドレスの欄とは異なる箇所に挿入される。
(ステップS37)リクエスト受付部181は、DNS応答をDNS要求を送信したクライアント41に転送する。なお、上記のステップS34〜S36の処理とステップS37の処理とは、並列に実行してもよいし逆順に実行してもよい。
図16は、第3の実施の形態のDNS処理例を示す図である。ここでは、クライアント41がDNSによりアドレス解決を行うとき(DNSフェーズ)を考える。また、ルータ100aのFQDNリスト111に“*.aaa.bbb”が登録されているとする。
クライアント41が“www.aaa.bbb”を指定したDNS要求を送信すると、ルータ100aは、DNS要求を本社LAN32のDNSサーバ52に転送する。ルータ100aは、DNSサーバ52から、DNS要求で指定されたFQDNと“65.xxx.xxx.131”とを含むDNS応答を受信し、受信したDNS応答をクライアント41に転送する。このとき、ルータ100aは、DNS応答に含まれるFQDNがFQDNリスト111に登録されていることを確認し、そのFQDNを信頼できると判断する。すると、ルータ100aは、DNS応答に含まれるIPアドレスを信頼できると判定し、そのIPアドレスをアクセス制御リスト121のエントリ#0に登録する。
クライアント41が“www.ccc.ddd”を指定したDNS要求を送信すると、ルータ100aは、DNS要求を本社LAN32のDNSサーバ52に転送する。ルータ100aは、DNSサーバ52から、DNS要求で指定されたFQDNと“74.xxx.xxx.172”とを含むDNS応答を受信し、受信したDNS応答をクライアント41に転送する。このとき、ルータ100aは、DNS応答に含まれるFQDNがFQDNリスト111に登録されていないことを確認し、そのFQDNを信頼できるとは言えないと判断する。すると、ルータ100aは、DNS応答に含まれるIPアドレスを信頼できるとは言えないと判定し、IPアドレスをアクセス制御リスト121に登録しない。
なお、クライアント41が上記のアドレス解決の結果を用いてパケットを送信するとき(パケット転送フェーズ)のルーティングは、第2の実施の形態の図11と同様である。
図17は、第3の実施の形態の通信シーケンス例を示す図である。ここでは、Webサーバ61により提供されるサービスが信頼できるサービスに指定されており、クライアント41が当該サービスを利用する場合を考える。ただし、クライアント41からのアクセスは、本社LAN32に近いキャッシュサーバ64に誘導される。
クライアント41がWebサーバ61のFQDNを指定したDNS要求を送信すると、そのDNS要求は、インターネットVPNおよび本社LAN32のDNSサーバ52を経由して本社LAN32に近いDNSサーバ54に転送される。前述のようなキャッシュサービスの方法を用いて、DNSサーバ54は本社LAN32に近いキャッシュサーバ64のIPアドレスを検索し、検索されたIPアドレスを含むDNS応答をDNSサーバ52およびインターネットVPNを経由してクライアント41に返信する。
クライアント41は、キャッシュサーバ64のIPアドレスをDNS要求で指定したFQDNに対応するIPアドレスであると認識し、当該IPアドレスを宛先IPアドレスとして含むパケットを送信する。クライアント41が送信するこのパケットは、本社LAN32を迂回してキャッシュサーバ64に転送される。
第3の実施の形態の通信システムによれば、第2の実施の形態と同様、サービスの信頼性に応じてパケットの転送経路を変えることが容易になる。ルータ100aでは、ドメイン名を含むホスト名を用いて信頼できるサービスを指定することができ、信頼できるサービスに関するパケットか否かを適切に判断できる。また、ルータ100aは、ルータ100aのプロトコル処理の負荷を軽減でき、また、ルータ100aとして高コストな通信装置を使用しなくてもよい。また、信頼できるサービスのパケットがファイアウォール51を迂回するように転送経路を制御でき、ファイアウォール51の負荷を軽減できる。また、アクセス制御リスト121を利用してパケットのルーティングを行うことで、転送先の設定を動的に変更することをルータ100aにおいて容易に実現することができる。
なお、前述のように、第1の実施の形態に係るパケット処理は、通信装置10にプログラムを実行させることで実現でき、第2および第3の実施の形態に係るパケット処理は、ルータ100,100aにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、プログラムを記録した可搬記録媒体が提供される。また、プログラムをコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。通信装置10やルータ100,100aは、例えば、可搬記録媒体またはコンピュータから取得したプログラムを記憶装置(例えば、メモリ103)に格納し、当該記憶装置からプログラムを読み込んで実行する。