図1は、実施形態にかかる通信方法の例を説明する図である。実施形態にかかる通信方法が用いられるシステムでは、複数のネットワークがコアネットワークに接続されている。以下の説明では、コアネットワークに接続されているネットワークのことを、コアネットワークとの区別を容易にするために「ユーザネットワーク」と記載する。図1の例では、ネットワークAとネットワークBはユーザネットワークであり、コアネットワークに接続されているものとする。ネットワークAには端末10xと中継装置20xが含まれており、ネットワークBには端末10yと中継装置20yが含まれているものとする。また、中継装置20xは、コアネットワークとネットワークAを接続しており、中継装置20yは、コアネットワークとネットワークBを接続している。以下、端末10yがブロードキャストフレームを送信した場合を例として、通信方法を手順(P1)〜(P5)に分けて説明する。
(P1)端末10yは、ブロードキャストフレームを送信する。このとき、端末10yは、ブロードキャストフレームの送信元MACアドレスを、端末10y自身のMACアドレスに設定する。以下、端末10yのMACアドレスはYであるものとする。なお、図1では、送信元MACアドレスをSAとして示している。
(P2)中継装置20は、コアネットワーク側に送信するフレームにおいて、その中継装置20が属するユーザネットワーク中の装置のMACアドレスを、ネットワーク識別子と、その装置を識別する装置識別子との組合せに置き換える。ここで、ネットワーク識別子は、各ネットワークを識別でき、さらに、各ネットワークに含まれる装置のMACアドレスとして通知するアドレスに含めることができる識別子である。各中継装置20は、その中継装置20が属するネットワークのネットワーク識別子を予め保持している。以下、ネットワークBに割り当てられたネットワーク識別子はβであるものとする。
中継装置20yは、端末10yからブロードキャストフレームを受信すると、端末10yを識別する装置識別子を決定する。以下、中継装置20yが、端末10yの装置識別子をmに決定したものとする。すると、中継装置20yは、ネットワークBに属する端末10yのMACアドレスを、ネットワーク識別子βと、端末10yを識別する端末識別子mとの組合せである〈β,m〉に置き換える。中継装置20yは、端末10y宛てのフレームを受信する場合に備えて、〈β,m〉を端末10yのMACアドレスであるYに対応付けて記憶しておく。
(P3)さらに、中継装置20yは、コアネットワーク側に送信するフレームをカプセル化するためにMACヘッダを付加する。以下の説明では、カプセル化のために付加されるMACヘッダを「アウターヘッダ」と記載するものとする。一方、カプセル化後のフレームにおいては、アウターヘッダを付加する前から含まれているMACヘッダのことを「インナーヘッダ」と記載する。アウターヘッダでは、中継装置20yは、中継装置20yのMACアドレスの代わりに、ネットワークBと中継装置20yを識別する装置識別子の組合せを使用する。図1の説明では、いずれの中継装置20も、装置識別子として「s」を用いるものとする。従って、図1に示すように、中継装置20yは、〈β,s〉を送信元MACアドレスとしたアウターヘッダを付加する。なお、アウターヘッダでも、宛先アドレスは、ブロードキャストアドレスに設定される。中継装置20yは、カプセル化後のフレームをコアネットワーク側に送信する。
(P4)コアネットワーク側からフレームを受信した場合、中継装置20は、アウターヘッダ中で送信元MACアドレスとして通知されたネットワーク識別子と装置識別子の組合せを、そのフレームの受信ポートに対応付けて、アドレス学習テーブルに記録する。例えば、中継装置20xは、中継装置20yから送信されたフレームを、2番のポートから受信したとする。すると、中継装置20xは、中継装置20yのMACアドレスとして通知された〈β,s〉を、2番ポートと対応付けてアドレス学習テーブルに記憶する。また、インナーヘッダ中のMACアドレスについては、中継装置20xはアドレス学習テーブルに格納しない。インナーヘッダ中のMACアドレスを学習する代わりに、中継装置20xは、宛先MACアドレスにβが含まれているフレームをカプセル化するときのアウターヘッダでの宛先MACアドレスを、〈β,s〉に設定する。
(P5)中継装置20xは、コアネットワーク側から受信したフレームをデカプセル化して、ネットワークA中の端末10にブロードキャストする。このため、端末10xは、端末10yのMACアドレスを〈β,m〉として記憶する。以後の処理では、端末10xは、端末10y宛てのフレームでは、宛先MACアドレスを〈β,m〉とする。また、中継装置20xは、宛先MACアドレスが〈β,m〉に設定されたフレームのカプセル化を行うときに、アウターヘッダの宛先MACアドレスを〈β,s〉に設定する。従って、カプセル化されたフレームは中継装置20yに送信され、中継装置20yでデカプセル化される。このとき、中継装置20yは、手順(P2)で記憶した情報に基づいて、デカプセル化後のフレームの宛先MACアドレスを〈β,m〉からYに変換し、変換後のフレームを端末10yに送信する。
以上の例では、説明を簡単にするために、ブロードキャストフレームが送信された場合を例として使用したが、送信されるフレームがブロードキャストフレーム以外のフレームであっても、同様に処理が行われる。
すなわち、実施形態にかかる方法では、ユーザネットワークに含まれるいずれの装置についても、他のユーザネットワーク中の装置やコアネットワーク中の装置に対しては、ネットワーク識別子と装置識別子の組合せがMACアドレスとして通知される。さらに、各中継装置20は、コアネットワークを介して受信したフレームについて、ネットワーク識別子ごとに、アウターヘッダ中の送信元MACアドレスを、受信ポートに対応付けて記憶する。このとき、中継装置20は、インナーヘッダ中の送信元MACアドレスは記憶しない。このため、中継装置20は、アドレス学習テーブルに記憶するアドレスを、中継装置20自身が含まれているユーザネットワーク中の装置のMACアドレスと、他のユーザネットワークをコアネットワークと接続する中継装置20のMACアドレスに限定できる。
中継装置20が他のユーザネットワーク中の装置宛てのフレームを転送するためにカプセル化を行う場合は、カプセル化の対象となるフレームの宛先MACアドレスはネットワーク識別子と装置識別子の組合せで表わされている。そこで、中継装置20は、アドレス学習テーブルに記録されているアドレスから、宛先MACアドレス中のネットワーク識別子を含むアドレスを選択し、アウターヘッダの宛先MACアドレスとする。また、出力ポートもアドレス学習テーブルを用いて決定できる。従って、中継装置20は、全てのユーザネットワーク中の装置のMACアドレスを保持していなくても、フレームをカプセル化することができる。
<装置構成>
図2は、中継装置20の構成の例を示す図である。中継装置20は、受信部21、送信部22、制御部30、記憶部40を保持する。制御部30は、割り当て部31、カプセル化部32、デカプセル化部33、更新部34、および、中継処理部35を有する。記憶部40は、ポートテーブル41、変換テーブル42、アドレス学習テーブル43を保持する。
ポートテーブル41には、中継装置20に備えられているポートの識別番号に対応付けて、そのポートがコアネットワークとユーザネットワークのいずれとの通信に使用されているかが記録されている。変換テーブル42は、中継装置20が属するユーザネットワーク中の装置に割り当てられた装置識別子とネットワークの識別子の組み合わせを、その装置のMACアドレスと対応付けている。以下の説明では、ユーザネットワークの識別子と装置識別子の組み合わせのことを、「ネットワークMACアドレス」(NW−MACアドレス)と記載する。アドレス学習テーブル43は、中継装置20のポートのうちのコアネットワークとの通信に使用されるポートごとに、そのポートから出力するフレームの宛先アドレスとなり得るネットワークMACアドレスを記憶する。さらに、アドレス学習テーブル43は、ユーザネットワーク中の装置との通信に使用されているポートについても、ポート番号に対応付けて、そのポートから送信されるフレームの宛先MACアドレスも記録する。ポートテーブル41、変換テーブル42、アドレス学習テーブル43の具体例は後で示す。
受信部21は、中継装置20が属するユーザネットワーク中の他の装置や、コアネットワーク中の装置から、フレームを受信する。受信部21は、フレームの受信ポートの番号と共に、受信したフレームを割り当て部31に出力する。送信部22は、中継装置20が属するユーザネットワーク中の他の装置にカプセル化されていないフレームを送信し、コアネットワーク中の装置には、カプセル化後のフレームを送信する。なお、送信部22には、送信対象のフレームと共に、出力先のポート番号が通知されるものとする。送信部22は、入力されたフレームを、通知されたポート番号のポートから送信する。
割り当て部31は、受信部21から通知されたポート番号をキーとしてポートテーブル41を検索することにより、ユーザネットワークとコアネットワークのいずれからフレームを受信したかを判定する。割り当て部31は、受信ポートがコアネットワーク側との通信に使用されているポートである場合、受信フレームを更新部34に出力する。
一方、受信ポートがユーザネットワーク側との通信に使用されているポートである場合、割り当て部31は、送信元の端末10にネットワークMACアドレスが割り当てられているかを、変換テーブル42を参照することにより判定する。ネットワークMACアドレスが割り当てられていない場合、割り当て部31は、フレームの送信元の装置に、その装置を識別する装置識別子を割り当てることにより、ネットワークMACアドレスを割り当てる。割り当て部31は、割り当てたネットワークMACアドレスを、その装置のMACアドレスに対応付けて変換テーブル42に記録する。その後、割り当て部31は、ユーザネットワーク中の装置に接続されているポートの番号に対応付けて入力されたフレームを中継処理部35に出力する。
中継処理部35は、入力されたフレームの宛先MACアドレスがネットワークMACアドレスである場合、コアネットワーク経由で中継されるフレームであると判定して、そのフレームをカプセル化部32に出力する。一方、入力されたフレームの宛先MACアドレスがネットワークMACアドレスではない場合、中継処理部35は、ユーザネットワーク内での中継処理を行う。このとき、中継処理部35は、適宜、アドレス学習テーブル43を用いて、出力先のポートを決定し、出力先のポートの情報と共に、フレームを送信部22に出力する。
カプセル化部32は、中継処理部35から入力されたフレームの送信元アドレスを、送信元の装置に対応付けられたネットワークMACアドレスに変換する。このとき、カプセル化部32は、適宜、変換テーブル42を使用する。さらに、カプセル化部32は、処理対象のフレームの宛先に指定されているネットワークMACアドレス中のネットワーク識別子に応じて、アウターヘッダの宛先MACアドレスを決定する。アウターヘッダの宛先MACアドレスの決定方法の詳細については、後述する。さらに、カプセル化部32は、アドレス学習テーブル43において、アウターヘッダの宛先MACアドレスに対応付けられたポート番号を、出力ポートの番号として指定した上で、カプセル化後のフレームを送信部22に出力する。
更新部34は、入力されたフレームのアウターヘッダ中の送信元MACアドレスの情報が、通知された受信ポートの番号に対応付けてアドレス学習テーブル43に記録されているかを判定する。送信元MACアドレスがアドレス学習テーブル43に記録されていない場合、更新部34は、送信元MACアドレスを受信ポートの番号に対応付けて、アドレス学習テーブル43に記録する。更新部34は、アウターヘッダの宛先MACアドレスが、中継装置20自身のネットワークMACアドレスに一致するかを判定する。アウターヘッダの宛先MACアドレスが、中継装置20自身のネットワークMACアドレスに一致せず、かつ、ブロードキャストフレームでもない場合、更新部34は、適宜、中継処理部35にフレームの転送処理を要求する。一方、アウターヘッダの宛先MACアドレスが、中継装置20自身のネットワークMACアドレスである場合、更新部34は、そのフレームをデカプセル化部33に出力する。
デカプセル化部33は、更新部34から入力されたフレームをデカプセル化する。さらに、デカプセル化部33は、デカプセル化後のフレームの宛先MACアドレスをキーとして、変換テーブル42を検索することにより、宛先の端末10のMACアドレスを取得する。デカプセル化部33は、デカプセル化後のフレームの宛先MACアドレスを、取得したMACアドレスに置換する。さらに、デカプセル化部33は、取得したMACアドレスを用いてアドレス学習テーブル43を検索することにより、デカプセル化後のフレームの出力ポートを特定する。デカプセル化部33は、特定したポートの番号と共に、デカプセル化後のフレームを送信部22に出力する。
図3は、中継装置20のハードウェア構成の例を示す図である。中継装置20は、例えば、システム中のコアネットワークとユーザネットワークを接続するエッジスイッチとして実現されうる。中継装置20は、プロセッサ101、メモリ102、ネットワーク接続装置103、バス104を備える。プロセッサ101は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。中継装置20において、プロセッサ101は、制御部30として動作する。このとき、プロセッサ101は、メモリ102に格納されたプログラムを実行することにより制御部30を実現できる。メモリ102は、記憶部40として動作する。メモリ102は、Read Only Memory(ROM)とRandom Access Memory(RAM)を含む。ROMは、プロセッサ101で実行されるプログラムや、プログラムの実行に用いられるデータなどを格納する。RAMは、プロセッサ101がROMに格納されたプログラムを実行する際に、適宜、ワーキングメモリとして使用される。ネットワーク接続装置103は、受信部21と送信部22として動作する。バス104は、プロセッサ101、メモリ102、ネットワーク接続装置103の間を、相互にデータの入出力が可能になるように接続する。
<フレーム構成例とアドレス中の情報例>
図4は、フレームのフォーマットの例を示す図である。図4のF1は、カプセル化される前のフレームの例を示す。F1に示すフォーマットのフレームは、ユーザネットワーク中で送受信される。フレームは、MACヘッダ、データ、Frame Check Sequence(FCS)を含む。MACヘッダには、宛先MACアドレス(DAMAC)、送信元MACアドレス(SAMAC)、イーサタイプが含まれる。イーサタイプフィールドの値は、イーサネットフレームに含まれているデータのプロトコルやカプセル化の有無を識別するために使用される。
図4のF2は、カプセル化後のフレームのフォーマットを示す。カプセル化後のフレームは、コアネットワークで送受信されるフレームである。カプセル化後のフレームには、アウターヘッダ、インナーヘッダ、データ、カプセル化されたフレーム中のFCS、カプセル化により付加されたFCSが含まれる。カプセル化後のフレームでは、インナーヘッダとアウターヘッダのいずれも、ネットワークMACアドレスによって、送信元や宛先が表わされる。すなわち、アウターヘッダには、宛先のユーザネットワークの中継装置20のネットワークMACアドレス(DA NW−MAC)、送信元のユーザネットワークの中継装置20のネットワークMACアドレス(SA NW−MAC)、イーサタイプが含まれる。インナーヘッダには、宛先の装置に割り当てられたネットワークMACアドレス(DAMAC(NW−MAC))、送信元の装置に割り当てられたネットワークMACアドレス(SAMAC(NW−MAC))、イーサタイプが含まれる。
図4のF3は、ネットワークMACアドレスのフォーマットの例を示す。ネットワークMACアドレスは、48ビットで表わされるものとする。ネットワークMACアドレスの第1オクテットから第3オクテットは、ネットワークMACアドレスであることを特定するときに使用可能なビット列である。なお、第1オクテット中の第2ビットは、ユニバーサルアドレスとローカルアドレスのいずれであるかを示すために使用されるU/Lビット(Universal/Local bit)である。また、第1オクテット中の第1ビットは、ユニキャストアドレスとマルチキャストアドレスのいずれであるかを示すために使用されるI/Gビット(Individual/Group bit)である。第4〜第6オクテットは、ネットワーク識別子と装置識別子の表記に使用される。以下の説明では、第4オクテットと第5オクテットがネットワーク識別子の表記に使用され、第6オクテットは装置識別子の表記に使用されるものとする。なお、装置識別子は、1つのユーザネットワーク中での装置の識別に使用できるように割り振られるので、異なるユーザネットワークで同じ値が使用されても良い。例えば、いずれのユーザネットワークでも、中継装置20に割り当てられる装置識別子は同じ値に設定できる。
<第1の実施形態>
第1の実施形態では、いずれのユーザネットワークでも、中継装置20に割り当てられる装置識別子が0である場合を例とする。すなわち、第1の実施形態では、いずれの中継装置20でも、ネットワークMACアドレスの第6オクテットの値は0となる。
図5は、通信システムの例を示す図である。なお、図5は通信システムの一例に過ぎない。すなわち、通信システムに含まれるユーザネットワークや中継装置20の数、コアネットワーク中のコアスイッチ50の数、各ユーザネットワーク中の端末10の数などは、実装に応じて、任意に変更され得る。
図5の例では、コアネットワークには、コアスイッチ50(50a、50b)と複数の中継装置20(20a〜20c)が含まれている。中継装置20aはネットワークNE2とコアネットワークを接続しており、中継装置20bはネットワークNE1とコアネットワークを接続しているものとする。また、中継装置20cもコアネットワークとユーザネットワーク(図示せず)を接続している。ネットワークNE2には、端末10a〜10cと中継装置20aが含まれており、ネットワークNE1には端末10dと中継装置20bが含まれているものとする。以下の説明では、ネットワークNE1のネットワーク識別子は「0:0:0:1:1」であり、ネットワークNE2のネットワーク識別子は「0:0:0:2:2」であるものとする。以下の説明では、中継装置20aのMACアドレスは0:A:B:C:D:Eであり、中継装置20bのMACアドレスは0:A:A:A:A:0であるものとする。さらに、端末10bのMACアドレスはX:X:X:X:X:Xであり、端末10dのMACアドレスは0:A:A:A:A:Aであるものとする。
さらに、図5においては、中継装置20のポート番号を、文字列「PN」に続く数字で示している。例えば、中継装置20aの3番ポートはPN3と表わされており、中継装置20aがコアネットワークとの間でフレームを送受信するときに使用される。前述のとおり、各中継装置20は、各ポートの接続先がコアネットワークとユーザネットワークのいずれであるかを特定するためのポートテーブル41を保持している。
図6は、ポートテーブルの例を示す。中継装置20aでは、ポートPN0〜PN2はネットワークNE2中の端末10と中継装置20aの間の通信に使用され、ポートPN3はコアネットワークと中継装置20aの間の通信に使用されている。このため、中継装置20aは図6に示すポートテーブル41aを保持している。同様に、中継装置20bでは、ポートPN0、PN2がコアネットワークとの通信に使用され、ポートPN1がネットワークNE1中の端末10dと中継装置20bの間の通信に使用されている。従って、中継装置20bは図6に示すポートテーブル41bを保持している。
以下、図5のシステムにおいて、端末10dが端末10bと通信する際に行われる処理の例を、Address Resolution Protocol(ARP)要求の送信、ARP要求の処理、ARP応答の送信、ARP応答の処理、データフレームの送受信に分けて説明する。以下の例では、端末10dが通信を開始しようとした時点において、端末10a〜10cは、端末10dに割り当てられたIPアドレスとMACアドレスを保持していないものとする。さらに、端末10dも端末10bに割り当てられたMACアドレスを保持していないものとする。また、以下の説明では、いずれの装置による動作であるかを分り易くするために、符号の後に、その中継装置20の符号の末尾のアルファベットを付すものとする。例えば、割り当て部31aは、中継装置20aに備えられている割り当て部31であり、中継処理部35bは、中継装置20bに備えられた中継処理部35である。
(1)ARP要求の送信
ユーザネットワーク中の端末10は、通信先のIPアドレスを取得すると、通信先の端末10に割り当てられたMACアドレスを取得するために、通信システム中の全ての装置に宛てて、ARP要求フレームを送信する。図7のF11に、端末10dが「IP1」というIPアドレスが割り当てられた装置と通信するために送信するARP要求フレーム(フレームF11)に含まれている情報要素の例を示す。F11に示すように、端末10dが送信するARP要求は、MACヘッダとARPデータを含む。端末10dは、端末10dに設定されているMACアドレスである0:A:A:A:A:Aを、送信元MACアドレスに設定する。宛先MACアドレスは、ブロードキャストアドレス(FF:FF:FF:FF:FF:FF)に設定される。
ARPデータには、ARP要求であることを示す情報と、送信元MACアドレス、送信元IPアドレス、宛先IPアドレスが含まれる。なお、以下の説明では、端末10dに割り当てられたIPアドレスは「IPα」であるものとする。端末10dは、フレームF11をブロードキャストする。フレーム11がブロードキャストされる様子を、図8に示す。
中継装置20bの受信部21bは、フレームF11を受信する。受信部21bは、フレームF11の受信ポートがPN1であることと、受信したフレームF11を割り当て部31bに出力する。
割り当て部31bは、受信ポートがPN1であることを特定すると、PN1をキーとしてポートテーブル41b(図6)を検索する。割り当て部31bは、検索の結果、フレームF11をユーザネットワークから取得したと判定する。そこで、割り当て部31bは、フレームF11の送信元の端末10dに対して、ネットワークMACアドレスが割り当てられているかを判定するために、変換テーブル42bを参照する。
図9は、変換テーブル42の例を示す。変換テーブル42には、ネットワークMACアドレスごとに、そのアドレスが割り当てられた装置に設定されているMACアドレスが対応付けられている。ここで、中継装置20bは、フレームF11を受信したときは、変換テーブル42b−1を保持しているものとする。変換テーブル42b−1には、中継装置20b自身のMACアドレス0:A:A:A:A:0に対応付けて、中継装置20bが使用するネットワークMACアドレス0:0:0:1:1:0が記録されているが、変換テーブル42b−1に端末10dのMACアドレスは登録されていない。
そこで、割り当て部31bは、端末10dに装置識別子を割り当てる。変換テーブル42b−1には、ネットワーク識別子と、中継装置20bにフレームを送信してきた装置に割り当て可能な装置識別子の組合せが、ネットワークMACアドレスの候補として記録されている。そこで、割り当て部31bは、変換テーブル42b−1に記録されているネットワークMACアドレスのうちで、いずれの装置のMACアドレスにも対応付けられていないアドレスを、端末10dに割り当てる。なお、端末10dの装置識別子は、端末10dに割り当てられたネットワークMACアドレスの第6オクテットの値である。以下、割り当て部31bは、端末10dに0:0:0:1:1:1をネットワークMACアドレスとして割り当てたものとする。この場合、端末10dの装置識別子は1である。この処理により、割り当て部31bは、変換テーブル42b−1を変換テーブル42b−2に示すように更新する。割り当て部31bは、端末10dへのネットワークMACアドレスの割り当てが終わると、フレームF11を受信ポート番号と共に、中継処理部35bに出力する。
中継処理部35bは、入力されたフレームF11の宛先MACアドレスを用いて、カプセル化を行うかを判定する。フレームF11は、ブロードキャストフレームであるので、中継処理部35bは、フレームF11の転送先は、ネットワークNE1とコアネットワークの両方であると判定する。そこで、中継処理部35bは、フレームF11をカプセル化部32bに出力する。さらに、中継処理部35bは、フレームF11の受信ポート以外でネットワークNE1中の他の装置との通信に使用されているポートがあるかを判定する。ここでは、中継装置20bがネットワークNE1中の装置との通信に使用しているポートはPN2だけであるので、中継処理部35bは中継処理を行わない。ただし、中継装置20bが複数のポートをネットワークNE1の装置との通信に使用している場合、それらのポートのうちで、フレームF11の受信ポート以外から、フレームF11を送信するための処理を行う。
カプセル化部32bは、中継処理部35bから入力されたフレームF11の送信元アドレスを、端末10dに割り当てられたネットワークMACアドレスに変換する。このとき、カプセル化部32bは、変換テーブル42b−2(図9)を使用するので、送信元を0:0:0:1:1:1に変換する。
さらに、カプセル化部32bは、中継処理部35bから入力されたフレームF11の宛先に指定されているアドレスが、ブロードキャストアドレスであるかと、ネットワークMACアドレスであるかとを判定する。ここでは、宛先MACアドレスはネットワークMACアドレスではなく、ブロードキャストアドレスであるので、カプセル化部32bは、アウターヘッダの宛先MACアドレスも、ブロードキャストアドレスに設定する。また、カプセル化部32bは、アウターヘッダの送信元MACアドレスを、中継装置20bのネットワークMACアドレス(0:0:0:1:1:0)に設定する。従って、カプセル化部32bは、フレームF11のカプセル化を行うことにより、図7のF12に示す情報要素を含むフレーム(フレームF12)を生成する。カプセル化部32は、カプセル化後のフレームを、コアネットワーク側の通信に使用されているポートPN0とPN2から送信することを、送信部22bに要求する。
送信部22bは、フレームF12を、ポートPN0とPN2から送信する。このため、図8に示すように、フレームF12がコアスイッチ50aとコアスイッチ50bに向けて送信される。
(2)ARP要求の処理
コアスイッチ50a、50bは、フレームF12を受信すると、フレームF12のアウターヘッダを用いて、アドレス学習テーブルを更新する。このため、コアスイッチ50a、50bは、中継装置20bのネットワークMACアドレスと、フレームF12の受信ポート番号を対応付けて学習する。さらに、コアスイッチ50a、50bのいずれも、フレームF12を受信ポート以外のポートから送信する。
図10は、中継装置20aが保持するアドレス学習テーブルの例を示す図である。以下の説明では、中継装置20aは、フレームF12を受信する前、アドレス学習テーブル43a−1を保持しているとする。
中継装置20aの受信部21aは、ポートPN3を介して、コアスイッチ50aからフレームF12を受信する。受信部21aは、フレームF12を受信したポートのポート番号と共に、フレームF12を割り当て部31aに出力する。
割り当て部31aは、受信部21aから通知されたポート番号PN3をキーとして、ポートテーブル41a(図6)を検索することにより、フレームF12をコアネットワークから受信したと判定する。そこで、割り当て部31aは、フレームF12を更新部34に出力する。
更新部34aは、フレームF12のアウターヘッダ中の送信元MACアドレスが受信ポートの番号に対応付けてアドレス学習テーブル43a−1に記録されているかを、判定する。ここでは、フレームF12のアウターヘッダ中の送信元MACアドレスの情報は、アドレス学習テーブル43a−1に記録されていない。そこで、更新部34aは、アウターヘッダ中の送信元MACアドレス(0:0:0:1:1:0)を、受信ポートPN3に対応付けて、アドレス学習テーブル43aに記録する。このため、アドレス学習テーブル43a−1は、アドレス学習テーブル43−2(図10)に示すように更新される。フレームF12のアウターヘッダの宛先MACアドレスがブロードキャストアドレスであるので、更新部34aは、フレームF12中の情報がネットワークNE2中の装置に中継されると判定する。そこで、更新部34aは、フレームF12をデカプセル化部33aに出力する。
さらに、更新部34aは、フレームF12がブロードキャストフレームであることから、フレームF12の受信ポート以外でコアネットワーク中の他の装置との通信に使用されているポートがあるかを判定する。ここでは、中継装置20aがコアネットワーク中の装置との通信に使用しているポートはPN3だけであるので、更新部34aはコアネットワーク側へのブロードキャストを行うための処理を行わない。ただし、中継装置20aが複数のポートをコアネットワークの装置との通信に使用している場合、更新部34aは、それらのポートのうちで、フレームF12の受信ポート以外から、フレームF12を送信するための処理を、中継処理部35aに要求する。
デカプセル化部33aは、更新部34aから入力されたフレームF12のアウターフレームを削除することにより、フレームF12をデカプセル化する。デカプセル化部33aは、デカプセル化後のフレームの宛先MACアドレスがブロードキャストアドレスであるため、宛先MACアドレスの変更は行わない。このため、デカプセル化部33aは、フレームF12のデカプセル化により、フレームF13を生成する。フレームF13に含まれる情報要素の例を図7に示す。デカプセル化部33aは、フレームF13の出力ポートとしてPN0〜PN2を指定して、フレームF13を送信部22aに出力する。送信部22aは、入力されたフレームを指定されたポートから送信するため、図8に示すように、フレームF13が端末10a〜10cに送信される。
端末10a〜10cは、フレームF13を受信すると、フレームF13の送信元に割り当てられたIPアドレス(IPα)と、フレームF13の送信元MACアドレス(0:0:0:1:1:1)を対応付けてARPテーブルに記録する。図11に、端末10a〜10cが保持するARPテーブルの例を示す。図7〜図11を参照しながら説明したように、第1の実施形態にかかる通信方法では、中継装置20は、ARP要求フレームを送信する際に、中継装置20自身と同じユーザネットワークに属する端末10のネットワークMACアドレスを通信先に通知できる。
端末10a〜10cは、フレームF13の宛先IPアドレスが、自装置に割り当てられたIPアドレスであるかを判定する。端末10aと端末10cは、フレームF13の宛先IPアドレスが割り当てられていないので、フレームF13を廃棄して処理を終了する。
(3)ARP応答の送信
端末10bは、フレームF13の宛先IPアドレスが、自装置に割り当てられたIPアドレスであると判定する。そこで、端末10bは、端末10bに割り当てられたMACアドレスを、フレームF13の送信元に通知するために、ARP応答フレームを生成する。図12のF21に、端末10bが端末10dにMACアドレスを通知するために送信するARP応答フレーム(フレームF21)に含まれる情報要素の例を示す。図12のF21に示すように、端末10bが送信するARP応答では、端末10bは、端末10bに設定されているMACアドレスであるX:X:X:X:X:Xを、送信元MACアドレスに設定する。端末10bは、宛先MACアドレスを、フレームF13の送信元MACアドレスに設定する。このため、フレームF21の宛先MACアドレスには、端末10dのネットワークMACアドレス(0:0:0:1:1:1)が設定される。端末10bはフレームF13の受信ポートからフレームF21を送信するので、フレームF21は、中継装置20aに送信される。フレームF21が送信される様子を図13に示す。
中継装置20aの受信部21aは、受信したフレームF21を、フレームF21の受信ポートがPN1であることを表わす情報とともに割り当て部31aに出力する。割り当て部31aは、PN1をキーとしてポートテーブル41a(図6)を検索し、フレームF21をユーザネットワークNE2中の装置から取得したと判定する。割り当て部31aは、フレームF21の送信元の端末10bに対して、ネットワークMACアドレスを割り当てる。ネットワークアドレスの割り当て方法は、ARP要求の送信のときに中継装置20b中で割り当て部31bが行う処理と同様である。割り当て部31aは、端末10bにネットワークMACアドレスとして、0:0:0:2:2:1を割り当てたとする。この場合の変換テーブル42aの例を図14に示す。割り当て部31aは、端末10bへのネットワークMACアドレスの割り当てが終わると、フレームF21を中継処理部35aに出力する。
中継処理部35aは、入力されたフレームF21の宛先MACアドレスを用いて、カプセル化を行うかを判定する。フレームF21の宛先MACアドレスは、端末10dのネットワークMACアドレス(0:0:0:1:1:1)であるため、第1〜第3オクテットの値が、ネットワークMACアドレスであることを示す値である。そこで、中継処理部35aは、フレームF21をカプセル化の対象としてカプセル化部32aに出力する。
カプセル化部32aは、中継処理部35aから入力されたフレームF21の送信元MACアドレスを、端末10bに割り当てられたネットワークMACアドレスに変換する。このとき、カプセル化部32aは、変換テーブル42a(図14)を使用するので、送信元MACアドレスを0:0:0:2:2:1に変換する。
さらに、カプセル化部32aは、フレームF21の宛先に指定されているアドレスがネットワークMACアドレスであるかを判定する。フレームF21では、宛先MACアドレスはネットワークMACアドレスである。そこで、カプセル化部32aは、フレームF21の宛先に指定されているネットワークMACアドレスの装置識別子をマスクして得られたビット列に、装置識別子が0であることを示すビット列を続けたアドレスを、アウターヘッダの宛先アドレスとする。すなわち、カプセル化部32aは、フレームF21の宛先MACアドレスのうちの装置識別子を0に変換することにより、カプセル化後のフレームの宛先MACアドレスを計算する。フレームF21の宛先MACアドレスは0:0:0:1:1:1であるので、カプセル化後のフレームの宛先は、0:0:0:1:1:0に設定される。さらに、カプセル化部32aは、アウターヘッダの送信元MACアドレスを、中継装置20aのネットワークMACアドレス(0:0:0:2:2:0)に設定する。これらの処理により、図12のフレームF21から、フレームF22が生成される。フレームF22に含まれる情報要素の例を図12のF22に示す。
次に、カプセル化部32aは、フレームF22のアウターヘッダ中の宛先アドレスをキーとして、アドレス学習テーブル43a−2(図10)を検索することにより、フレームF22の送信ポートを決定する。アドレス学習テーブル43a−2中で、MACアドレス0:0:0:1:1:0に宛てたフレームの出力ポートはPN3に指定されている。そこで、カプセル化部32aは、出力ポートをPN3に指定した上で、フレームF22を送信部22aに出力する。
送信部22aは、フレームF22を、ポートPN3から送信する。このため、図13に示すように、コアスイッチ50aはフレームF22を受信する。コアスイッチ50aは、ARP要求フレームを受信した際に、フレームF22の宛先に転送するフレームの出力ポートを学習している。このため、フレームF22は、中継装置20bに送信される。なお、コアスイッチ50aは、フレームF22を転送する際に、中継装置20aのネットワークMACアドレスと、フレームF22の受信ポート番号を対応付けて学習する。
(4)ARP応答の処理
図15は、中継装置20bが保持するアドレス学習テーブル43bの例を示す図である。以下の説明では、中継装置20bは、フレームF22を受信する前、アドレス学習テーブル43b−1を保持しているとする。
中継装置20bの受信部21bは、ポートPN2を介して、コアスイッチ50aからフレームF22を受信する。受信部21bは、フレームF22の受信ポートの番号と共に、フレームF22を割り当て部31bに出力する。割り当て部31bは、通知されたポート番号PN2をポートテーブル41b(図6)から検索することにより、フレームF22をコアネットワークから受信したと判定し、フレームF22を更新部34bに出力する。
更新部34bは、フレームF22のアウターヘッダ中の送信元MACアドレスを、受信ポートの番号に対応付けることにより、アドレス学習テーブル43b−1をアドレス学習テーブル43b−2(図15)に更新する。更新部34bは、フレームF22のアウターヘッダの宛先MACアドレスに、ネットワークNE1のネットワーク識別子(0:0:0:1:1)が含まれているので、フレームF22がネットワークNE1中の装置宛のフレームであると判定する。そこで、更新部34bは、フレームF22をデカプセル化部33bに出力する。
デカプセル化部33bは、フレームF22をデカプセル化する。さらに、デカプセル化部33bは、デカプセル化後のフレームの宛先MACアドレスをキーとして、変換テーブル42b−2(図9)を検索することにより、宛先MACアドレスとなっているネットワークMACアドレスに対応付けられたアドレスを取得する。フレームF22の宛先MACアドレスは0:0:0:1:1:1であるので、対応付けられたMACアドレスは0:A:A:A:A:Aである。そこで、デカプセル化部33bは、ARP応答中のMACヘッダとARP情報のいずれについても、宛先MACアドレスを、0:0:0:1:1:1から0:A:A:A:A:Aに変更することにより、フレームF23を生成する。図12のF23に、フレームF23に含まれる情報要素の例を示す。
さらに、デカプセル化部33bは、宛先のアドレスとして取得したMACアドレス(0:A:A:A:A:A)を用いてアドレス学習テーブル43b−2(図15)を検索することにより、デカプセル化後のフレームの出力ポートを特定する。アドレス学習テーブル43b−2では、宛先の装置のMACアドレス(0:A:A:A:A:A)は、PN1に対応付けられている。そこで、デカプセル化部33bは、フレームF23の出力ポートをPN1に決定する。デカプセル化部33bは、特定したポートの番号PN1と共に、フレームF23を送信部22bに出力する。送信部22bは、入力されたフレームを指定されたポートから送信するため、図13に示すように、フレームF23が端末10dに送信される。
端末10dは、フレームF23を受信すると、端末10dが送信したARP要求フレーム(フレームF11)に対する応答フレームを受信したと判定する。そこで、端末10dは、フレームF23を受信すると、フレームF23の送信元に割り当てられたIPアドレス(IP1)と、フレームF23の送信元MACアドレス(0:0:0:2:2:1)を対応付けてARPテーブルに記録する。図16に、端末10dが保持するARPテーブルの例を示す。このため、以後の処理では、端末10dは、端末10b宛てのフレームの宛先MACアドレスを、端末10bのネットワークMACアドレスである0:0:0:2:2:1に設定する。さらに、端末10dは、フレームF23の受信ポートを、端末10b宛てのフレームの送信ポートとして学習する。
(5)データフレームの送受信
次に、端末10dは、ARP応答フレーム(フレームF23)から得られたアドレスを用いて、端末10bにデータフレーム(フレームF31)を送信する。フレームF31に含まれる情報要素の例を図17のF31に示す。端末10dは、フレームF31を、フレームF23の受信ポートから送信する。フレームF31が送信される様子を図18に示す。
中継装置20bの受信部21bは、フレームF31を受信すると、フレームF31の受信ポートがPN1であることと、フレームF31を割り当て部31bに出力する。割り当て部31bは、受信ポートPN1をキーとしてポートテーブル41b(図6)を検索し、フレームF31をネットワークNE1から取得したと判定する。割り当て部31bは、フレームF31の送信元の端末10dにネットワークMACアドレスが割り当てられているので、フレームF31をカプセル化部32bに出力する。
カプセル化部32bは、フレームF31の送信元アドレスを、変換テーブル42b−2(図9)を用いて、端末10dに割り当てられたネットワークMACアドレス(0:0:0:1:1:1)に変換する。さらに、カプセル化部32bは、フレームF31の宛先に指定されているアドレスがネットワークMACアドレスであるかを判定する。フレームF31の宛先に指定されているアドレスはネットワークMACアドレスであるので、カプセル化部32bは、アウターヘッダの宛先アドレスを計算する。すなわち、カプセル化部32bは、宛先アドレス中の装置識別子をマスクして得られたビット列に、装置識別子が0であることを示すビット列を続けたアドレスを求める。ここでは、宛先に指定されているネットワークMACアドレスが0:0:0:2:2:1であるため、アウターヘッダの宛先MACアドレスは0:0:0:2:2:0に設定される。さらに、カプセル化部32bは、アウターヘッダの送信元MACアドレスを、中継装置20bのネットワークMACアドレス(0:0:0:1:1:0)に設定する。これらの処理により、フレームF31から、フレームF32が生成される。フレームF32に含まれる情報要素の例を、図17のF32に示す。
さらに、カプセル化部32aは、アウターヘッダの宛先MACアドレスをキーとして、アドレス学習テーブル43b−2(図15)を検索することにより、フレームF32の出力ポートをPN2に決定する。カプセル化部32bは、出力ポートをPN2に指定した上で、フレームF32を送信部22bに出力する。
送信部22bは、フレームF32を、ポートPN2から送信する。このため、図18に示すように、フレームF32はコアスイッチ50aに送信される。コアスイッチ50aは、ARP応答フレームを受信した際に、フレームF32の宛先に転送するフレームの出力ポートを学習している。このため、コアスイッチ50aは、フレームF32を中継装置20aに転送する。
中継装置20aの受信部21aは、ポートPN3を介して、コアスイッチ50aからフレームF32を受信する。フレームF32はコアネットワークに接続されたポートPN3から受信したフレームであるため、更新部34aに出力される。更新部34aは、フレームF32を用いて、適宜、アドレス学習テーブル43aの更新処理を行うと、フレームF32をデカプセル化部33aに出力する。デカプセル化部33aでの処理は、ARP応答の処理の説明で、フレームF22がデカプセル化部33bでデカプセル化される場合を例として述べた処理と同様である。このため、フレームF32から、図17のF33に示す情報要素を含むフレームF33が生成される。フレームF33は、ポートPN2から送信されるため、端末10bは、フレームF33を受信する。
以上の例では、端末10dから端末10bにフレームを送信する場合を例として述べたが、他の端末10間でフレームの送受信が行われる場合も、同様の処理が行われる。
図19Aと図19Bは、中継装置20の処理の例を説明するフローチャートである。図19A〜図19Bは、中継装置20がユーザネットワーク中の端末10からフレームを受信した場合の処理の例を示す。
受信部21は、端末10側のポートからフレームを受信する(ステップS1)。受信部21は、受信フレームを割り当て部31に出力する。割り当て部31は、受信フレームから宛先MACアドレスを抽出し、宛先MACアドレスがブロードキャストアドレスであるかを判定する(ステップS2、S3)。宛先がブロードキャストアドレスではない場合、割り当て部31は、宛先がネットワークMACアドレスであるかを判定する(ステップS3でNo、ステップS4)。宛先がネットワークMACアドレスである場合、割り当て部31は、フレームをカプセル化部32に出力する(ステップS4でYes)。
カプセル化部32は、フレームのMACヘッダをアウターヘッダとしてコピーし、アウターヘッダの宛先MACアドレスを抽出する(ステップS5、S6)。カプセル化部32は、アウターヘッダの宛先MACアドレス中の装置識別子を、中継装置20の装置識別子に変更する(ステップS7)。さらに、カプセル化部32は、送信元MACアドレスを抽出する(ステップS10)。カプセル化部32は、送信元MACアドレスで変換テーブル42を検索することにより、変換テーブル42に送信元MACアドレスが登録されているかを判定する(ステップS11、S12)。変換テーブル42に送信元MACアドレスが登録されていない場合、割り当て部31は、送信元の端末10にネットワークMACアドレスを割り当て、MACアドレスに対応付けて変換テーブル42に登録する(ステップS12で「登録無し」、ステップS13)。変換テーブル42への登録後、カプセル化部32は、変換テーブル42から、送信元MACアドレスに対応付けられたネットワークMACアドレスを抽出する(ステップS14)。カプセル化部32は、インナーヘッダの送信元MACアドレスを、抽出したネットワークMACアドレスに設定する(ステップS15)。さらに、カプセル化部32は、インナーヘッダの送信元MACアドレスを、抽出したネットワークMACアドレスに設定した後で、装置識別子を中継装置20の装置識別子に変更する(ステップS16)。カプセル化部32は、アウターヘッダ中の宛先MACアドレスを用いてアドレス学習テーブル43を検索することにより送信ポートを決定し、送信部22に通知する。送信部22は、通知されたポートからフレームを送信する(ステップS17)。
ステップS3において、ブロードキャストフレームであると判定された場合、割り当て部31は、コアネットワーク側への転送処理が行われるかを判定する(ステップS8)。コアネットワーク側への転送処理が行われる場合、割り当て部31は、カプセル化部32に、コアネットワーク側への転送を依頼する(ステップS8でYes)。カプセル化部32は、フレームのMACヘッダをアウターヘッダとしてコピーする(ステップS9)。以後、ステップS10以降の処理が行われる。
一方、転送ポートがユーザネットワークに接続されたポートである場合、割り当て部31は、中継処理部35に中継処理を要求する(ステップS8でNo)。中継処理部35は、MACヘッダ中の宛先MACアドレスを用いてアドレス学習テーブル43を検索することにより送信ポートを決定し、送信部22に通知する。送信部22は、通知されたポートからフレームを送信する(ステップS17)。
さらに、ステップS4において、宛先はネットワークMACアドレスではないと判定された場合、同じユーザネットワーク内でのフレームの転送処理が行われる(ステップS17)。
図20Aと図20Bは、中継装置20の処理の例を説明するフローチャートである。図20A〜図20Bは、中継装置20がコアネットワーク中のコアスイッチ50からフレームを受信した場合の処理の例を示す。なお、以下の例では、更新部34が、アウターヘッダ中のタイプの値を用いて、ネットワークMACアドレスを用いた通信が行われているかを判定する場合の処理を説明する。
受信部21は、コアスイッチ50側のポートからフレームを受信する(ステップS21)。受信部21は、受信フレームを割り当て部31に出力する。割り当て部31は、入力されたフレームがコアネットワークからの受信フレームであるので、受信フレームを更新部34に出力する。更新部34は、受信フレームのアウターヘッダから送信元MACアドレスを抽出し、アドレス学習テーブル43を更新する(ステップS22)。更新部34は、フレームをデカプセル化部33に出力する。デカプセル化部33は、アウターヘッダ中のタイプフィールドの値がネットワークMACアドレスを用いた通信を表わす値であるかを判定する(ステップS23、S24)。タイプフィールドの値がネットワークMACアドレスを用いた通信を表わす値ではない場合、デカプセル化部33は、デカプセル化後、アドレス学習テーブル43を用いて転送処理を行う(ステップS24でNo、ステップS25)。
一方、タイプフィールドの値がネットワークMACアドレスを用いた通信を表わす値である場合、デカプセル化部33は、アウターヘッダ中の送信元MACアドレスがブロードキャストアドレスかを判定する(ステップS26、S27)。送信元MACアドレスがブロードキャストアドレスである場合、デカプセル化部33は、デカプセル化し、アドレス学習テーブル43を用いて出力ポートを特定する(ステップS27でYes、ステップS28、S29)。その後、デカプセル化されたフレームが出力ポートから送信される。
送信元MACアドレスがブロードキャストアドレスではない場合、デカプセル化部33は、アウターヘッダ中の宛先MACアドレスを抽出する(ステップS27でNo、ステップS30)。デカプセル化部33は、抽出したアドレスに、自装置が含まれているネットワークのネットワーク識別子が含まれているかを判定する(ステップS31)。抽出したアドレスに、自装置が含まれているネットワークのネットワーク識別子が含まれていない場合、デカプセル化部33は、フレームを中継処理部35に出力する(ステップS31でNo)。中継処理部35は、入力されたフレームを、アドレス学習テーブル43を用いて転送する(ステップS32)。
一方、抽出したアドレスに、自装置が含まれているネットワークのネットワーク識別子が含まれている場合、デカプセル化部33は、フレームをデカプセル化する(ステップS31でYes、ステップS33)。デカプセル化部33は、インナーヘッダの宛先MACアドレスを抽出する(ステップS34)。デカプセル化部33は、抽出したアドレス中の装置識別子を用いて変換テーブル42を検索し、インナーヘッダの宛先アドレスを、ヒットしたエントリのMACアドレスに設定する(ステップS35)。デカプセル化部33は、アドレス学習テーブル43を用いて、デカプセル化後のフレームの出力ポートを特定し、送信部22に送信処理を要求する(ステップS36)。
このように、第1の実施形態にかかる方法では、いずれの中継装置20も、他のユーザネットワーク中の装置に対して、中継装置20自身と同じユーザネットワーク中の装置のMACアドレスとして、ネットワークMACアドレスを通知する。ネットワークMACアドレス中のネットワーク識別子は、ユーザネットワークごとに決まり、中継装置20の装置識別子は、いずれのユーザネットワークでも共通である。従って、中継装置20は、他のユーザネットワーク宛のフレームをカプセル化する際に、アウターヘッダの宛先MACアドレスを、インナーヘッダの宛先MACアドレスの装置識別子のマスキングと、中継装置20用の装置識別子の付加により、計算できる。このため、中継装置20が記憶するアドレスを、中継装置20自身が含まれているユーザネットワーク中の装置のMACアドレスと、他のユーザネットワークをコアネットワークと接続する中継装置20のネットワークMACアドレスに限定できる。さらに、中継装置20において、MACによるフィルタリング制御が行われる場合においても、データの設定は、ユーザネットワークごとに設定することが可能になる。従って、中継装置20がカプセル化に使用されるアドレスを記憶することに起因して、中継装置20にかかる負荷を軽減できる。
<第2の実施形態>
第2の実施形態では、ユーザネットワーク間で、中継装置20の装置番号が同じ値に設定されていない場合の例を説明する。
以下、図5に示す中継装置20cに接続されている端末10f(図示せず)が、端末10bと通信を行う場合に行われる処理を例として説明する。ここで、中継装置20cが属するネットワークのネットワーク識別子は0:0:0:3:3であり、中継装置20cが使用する装置識別子が1であるとする。すなわち、中継装置20cは、中継装置20cが属するユーザネットワーク中の装置以外の装置には、中継装置20cのMACアドレスを0:0:0:3:3:1に置き換えて通信処理を行う。
第2の実施形態でも、ARP要求の送信とARP要求の処理は第1の実施形態と同様に行われる。以下、中継装置20cが端末10fの装置識別子を2としたとする。すると、中継装置20cが送信するARP要求フレームのインナーヘッダの送信元MACアドレスは0:0:0:3:3:2に設定される。一方、ARP要求フレームのアウターヘッダの送信元MACアドレスは、中継装置20cのネットワークMACアドレス(0:0:0:3:3:1)となる。
図21は、第2の実施形態で使用されるアドレス学習テーブルの例を示す図である。図21は、中継装置20aがアドレス学習テーブル43a−2を保持している状態で端末10fからのARP要求を受信した場合に生成されるアドレス学習テーブル43a−3を示している。第2の実施形態でもARP要求フレームを受信したときの更新部34aの処理は第1の実施形態と同様であるので、中継装置20cのネットワークMACアドレスが図21に示すようにアドレス学習テーブル43に登録される。また、端末10bは、端末10fのMACアドレスを0:0:0:3:3:2として記憶する。
次に、端末10bがARP応答フレームを生成する。ここで、ARP応答フレームの宛先MACアドレスは、0:0:0:3:3:2に設定されている。端末10bで生成されたARP応答フレームは、中継装置20aに送信される。中継装置20aの割り当て部31a、中継処理部35aの処理は、第1の実施形態と同様である。
カプセル化部32aは、中継処理部35aから入力されたフレームの宛先に指定されているネットワークMACアドレスから、ネットワーク識別子(0:0:0:3:3)を抽出する。カプセル化部32aは、抽出したネットワーク識別子をキーとして、アドレス学習テーブル43a−3中のアドレスのうち、最長一致するアドレスを検索する。この処理により、カプセル化部32aは、アドレス学習テーブル43a−3より、0:0:0:3:3:1を抽出する。カプセル化部32aは、抽出したアドレスを、アウターヘッダの宛先MACアドレスに設定する。さらに、カプセル化部32は、抽出したアドレスに対応付けられているポートPN3を、ARP応答フレームの送信ポートとする。なお、カプセル化部32aは、第1の実施形態と同様の手順を用いて、ARP応答中のインナーヘッダとARPデータ中の送信元MACアドレスも、ネットワークMACアドレスに変換する。
ARP応答フレームの処理については、第1の実施形態と同様である。データフレームの送受信の際も、送信側のユーザネットワーク中の中継装置20でのカプセル化は、第2の実施形態で中継装置20aを例として説明した手順と同様の手順で行われる。
ユーザネットワークが異なるユーザに管理されている場合などでは、中継装置20に同じ装置識別子を割り当てることが困難な場合があり得る。このような場合は、第2の実施形態を適用することにより、第1の実施形態と同様に、各中継装置20が記憶するMACアドレスを、その中継装置20が属するユーザネットワーク中の装置のアドレスと、他の中継装置20のアドレスに限定できる。また、カプセル化部32がフレームのカプセル化の際にアドレス学習テーブル43を検索するため、装置識別子が中継装置20の間で異なっていても、問題なくカプセル化ができる。
<第3の実施形態>
図22は、第3の実施形態で使用されるアドレス学習テーブル43の例を示す図である。第3の実施形態で使用されるアドレス学習テーブル43は、ポートごとに、そのポートから送信可能な宛先のMACアドレスと、宛先MACアドレスに含まれるネットワーク識別子を含む。
第3の実施形態では、ARP要求フレームを受信した中継装置20の更新部34がARP要求フレームのアウターヘッダの情報をアドレス学習テーブル43に記録する際に、アウターヘッダの送信元MACアドレスからネットワーク識別子を抽出する。更新部34は、抽出した識別子をネットワーク識別子の欄に記録する。例えば、図7、図8を用いて説明したように、端末10dが送信したARP要求フレームが中継装置20bにおいてカプセル化され、カプセル化後のARP要求フレームを中継装置20aが受信したとする。すると、中継装置20aの更新部34aは、受信フレームのアウターヘッダ中の送信元MACアドレス(0:0:0:1:1:0)から、ネットワーク識別子(0:0:0:1:1)を抽出する。更新部34aは、アウターヘッダの送信元MACアドレスとともに、ネットワーク識別子をポートに対応付けて記録するので、中継装置20aのアドレス学習テーブル43aは、図22に示すように更新される。なお、ARP要求フレームについてのその他の処理や、ARP要求の送信処理は、第1の実施形態と同様である。
次に、図22に示すアドレス学習テーブル43が保持されている場合に行われるカプセル化の処理の例について述べる。カプセル化部32は、中継処理部35から入力されたフレームの宛先MACアドレスから、ネットワーク識別子を抽出する。例えば、端末10bから端末10dに宛てて送信されたARP応答フレームのカプセル化が行われる場合、カプセル化前のARP応答フレームの宛先MACアドレスは、0:0:0:1:1:1である。そこで、カプセル化部32aは、宛先MACアドレスの第1〜第5オクテットの0:0:0:1:1をネットワーク識別子として抽出する。カプセル化部32aは、抽出したネットワーク識別子をキーとして、アドレス学習テーブル43a(図22)を検索することにより、宛先のネットワーク識別子に対応付けられたエントリを取得する。カプセル化部32aは、取得したエントリ中の宛先を、アウターヘッダの宛先MACアドレスに設定するので、アウターヘッダの宛先MACアドレスを0:0:0:1:1:0に設定できる。さらに、カプセル化部32aは、第1の実施形態と同様の処理により、送信元MACアドレスを設定し、出力ポートを選択する。
ここではARP応答フレームが送信される場合を例として、カプセル化についての処理を説明したが、データフレームの送信の際も、同様の手順によりカプセル化される。
第3の実施形態では、ネットワーク識別子をアドレス学習テーブル43に加えることにより、第2の実施形態と同様に、中継装置20の装置識別子がユーザネットワークによって異なる場合でも、中継装置20が記憶するアドレス数を制限できる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明で述べたテーブルやフレーム中の情報要素は一例であり、実装に応じて、情報要素が変更される場合がある。例えば、変換テーブル42には、中継装置20が属するユーザネットワーク中の装置のうち、割り当て部31によりネットワークMACアドレスが割り当てられた装置についての情報を格納してもよい。この場合、変換テーブル42には、中継装置20自身のネットワークMACアドレスは登録されない。
さらに、ネットワーク識別子と装置識別子のビット長は、実装に応じて変更されても良い。例えば、ユーザネットワーク中の装置の数が多い場合、装置識別子を8ビットよりも長くしても良い。この場合、ネットワーク識別子のビット長は、装置識別子とネットワーク識別子の合計が24ビットになるように調整されるものとする。また、ネットワーク識別子と装置識別子の順序は、実装に応じて変更できる。すなわち、ネットワークMACアドレスであることを示すベンダー識別子の直後に、装置識別子が続き、次にネットワーク識別子が続くように、ネットワークMACアドレスのフォーマットが変形されても良い。
第1の実施形態において、中継装置20に割り当てられる装置識別子が全てのユーザネットワークで、0に設定される場合を例として説明したが、中継装置20に設定される装置識別子は0以外の値であっても良い。例えば、第1の実施形態の変形例では、中継装置20の装置識別子の値がいずれのユーザネットワークであっても予め決められた値に設定される。このため、各中継装置20は、カプセル化を行う際に、インナーヘッダ中の宛先MACアドレスから取得したネットワーク識別子に、中継装置20の装置識別子を付加することにより、アウターヘッダの宛先アドレスを設定する。