以下、図面を参照しながら本発明の実施形態を説明する。
図1は本発明の実施形態に係るブリッジ装置が適用されたネットワークを示す図である。同図に示すように、端末Aに対しブリッジ装置1を介して端末B〜端末Eが接続されている。ブリッジ装置1は、端末Aから端末B〜端末Eのいずれかに対して送信されたフレームを転送処理し、あるいは逆に、端末B〜端末Eのいずれかから端末Aに対して送信されたフレームを転送処理する。このようなブリッジとしての基本機能を実現するため、ブリッジ装置1はMACアドレス学習部2と、L2ブリッジフレーム転送処理部3とを有する。MACアドレス学習部2は、例えばIEEE802.1Dの仕様に基づいたMACアドレス学習を行う。L2ブリッジフレーム転送処理部3は、IEEE802.1Dの仕様に基づいたブリッジフォワーディング処理を行う。
本発明の第一乃至第四の実施形態は、ブリッジ装置1において例えば図1の端末Aに相当する送信元端末からマルチキャストフレームを受信側ネットワークインターフェースのポートにより受信し、このマルチキャストフレームをすべての送信側ネットワークインターフェースのポートに送信する、いわゆるマルチキャストを行う際の、MTU不一致の問題への対処策を講じたブリッジ装置に関する。
また、本発明の第五乃至第七の実施形態は、ブリッジ装置1において例えば図1の端末Aに相当する送信元端末から受信側ネットワークインターフェースのポートによりユニキャストフレームを受信したときに該ユニキャストフレームの転送先が未解決ならば、すべての送信側ネットワークインターフェースに対してユニキャストフレームを送信する、いわゆるフラッディング処理を行う際の、MTU不一致の問題への対処策を講じたブリッジ装置に関する。
(第一の実施形態)
図2は、本発明の第一の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、図1に示した構成要素に加え、MTU判定部40と、ICMP処理部50と、MTU保持部6と、IP送信元・宛先保持部7とを備える。
MTU判定部40は、マルチキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部41と、この受信ポート以外のすべてのポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部42と、記憶部41と記憶部42の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該マルチキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
MTU判定部40は、MACアドレス学習部2によりIEEE802.1Dの仕様に基づいたMACアドレスの学習がなされる際に、同時に、当該ネットワークに接続された機器に対応するネットワークインターフェースごとのMTUの値を取得し、MTU保持部6に記憶させる。MTUの値をいかにして取得するかについて本発明は特定の手法に限定されるものではないが、例えば、MTU判定部40がICMP処理部50内のMTU値取得部51に対してMTUの値の取得を指示する。これに応じてMTU値取得部51は例えばICMPに基づくパスMTU検出(path MTU discovery)機能によりネットワーク内の各機器のMTUの値を取得する。
L2ブリッジフレーム転送処理部3は、上述したようにIEEE802.1Dの仕様に基づいたブリッジフォワーディング処理を行うものであるが、このフォワーディング処理を実行すべきか否かは、判定部44による処理結果に応じて制御される。
ICMP処理部50はMTU値取得部51とICMPパケット送信部52とを備える。
MTU値取得部51は、上述したパスMTU検出機能を実装している。ICMPのパスMTU検出については、IPv4ではRFC1191に定義され、IPv6ではRFC1981に定義されている。パスMTU検出の概略手順としては、IPパケットにDFフラグ(フラグメント禁止フラグ)をセットし、MTUサイズを様々に変化させて該IPパケットを送信する。これに応じて返答されてくるICMP宛先不達(ICMP destination unreachable)メッセージを受信し、該メッセージにセットされているMTU値を得る。
ICMPパケット送信部52は、MTU判定部40の判定部44からの制御により、ICMPパケットをマルチキャストフレームの送信元端末に対して送信する。
IP送信元・宛先保持部7は、当該ブリッジ装置1により過去に行われたフレーム転送の際の送信元IPアドレス(レイヤー3アドレス)と宛先IPアドレスとを対応付けて記憶している。ICMPパケット送信部52は、ICMPパケットをマルチキャストフレームの送信元端末に対して送信する際に、そのIPアドレスをIP送信元・宛先保持部7から求める。
以上のように構成された本実施形態のブリッジ装置1は、マルチキャストフレームを受信して転送する際におけるMTU不一致の問題に対処するものであるが、ここで、MTUの動的な変更について説明する。図1のネットワークにおいて、レイヤー2(L2)をレイヤー3(L3)でカプセル化し、これによりレイヤー2をエミュレートする場合を考える。図3は、L2のエミュレートを行う場合のパケットフォーマットを示している。L2のエミュレートを行う場合、カプセル化のためのヘッダ分Hだけ最大ペイロードPは削減され、レイヤー2のMTUが削減されることになる。このようにエミュレートされたレイヤー2をIEEE802.1Dに基づいてブリッジする際には、ブリッジ装置1はMTUが違うことを意識しなければならない。
例えばMTU1500(マルチキャストフレームの受信ポート)とMTU1454、MTU1280、MTU1120(送信側の各ポート)の間のL2ブリッジを考える。MTU1455以上のフレームはL2ブリッジではフォワードされず破棄される。このとき、仮にMTU1455以上のフレームが破棄されたことを送信元端末に通知できたとしても、送信元端末がMTU1454のフレームを再送したのでは、依然としてMTU1280、MTU1120の各ポートへはフォワードきないことから問題である。これは、マルチキャストフレームを転送する際に固有の問題である。
そこで本実施形態のブリッジ装置1では、マルチキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部41に記憶するとともにすべての送信側ポートが有するMTUの値をそれぞれ取得して記憶部42に記憶し、これら記憶部41、42に記憶された値の両者を比較器43により比較する。判定部44は、送信側ポートのMTUの最小値が受信側ポートのMTUの値よりも小さいか否かを判定し、そうであるならば、該MTUの最小値を含んだICMPパケットを送信元端末に対して送信するようICMPパケット送信部52に対して指示する。
図4は本発明の第一の実施形態に係るブリッジ装置がマルチキャストフレームを処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットマルチキャストフレームがブリッジ装置1において受信される(ステップS101)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、MTU値取得部51は、マルチキャストフレームを受信したポートのMTUの値およびこの受信ポート以外のすべてのポートのMTUの値を取得する(ステップS102)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもマルチキャストフレームの受信の後に行う必要はなく、ステップS101とS102の実行順序を入れ替えてもよい。
次に、マルチキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部41に格納され、他の全てのポートのMTUの値が同様にMTU保持部6から読み出されて記憶部42に格納される。ここで判定部44は、マルチキャストフレームを受信したポートよりも小さいMTUを持つポートが存在するか否かを判定する(ステップS103)。記憶部41、42に記憶されたMTUの値の大小比較は比較器43により行われる。そして、マルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、マルチキャストフレームの受信ポートを除くすべてのポートに対して該マルチキャストフレームをフォワードするように、判定部44はL2ブリッジフレーム転送処理部3に対して指示する。
これに対し、ステップS103においてマルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在すると判定されたならば、ICMPパケット送信部52は、マルチキャストフレームの送信元について、そのIPアドレスをIP送信元・宛先保持部7から取得し、該マルチキャストフレームのプロトコル種別を判別する(ステップS105)。
例えばマルチキャストフレームの送信元がIPv6を用いており、IPv6のマルチキャストフレームを送信しているならば、ICMPパケット送信部52は、この送信元に対してICMPv6パケットを送信する(ステップS106)。あるいは、この送信元がIPv4を用いている場合、この送信元に対してICMPv4パケットを送信する(ステップS107)。なお、プロトコル種別に応じたこれらICMPパケットには、送信側ポートのMTUの最小値を含めることが好ましい。
ステップS106又はS107においてICMPパケットを送信した後は、当該マルチキャストフレームを破棄して今回の受信処理を終了する(ステップS108)。
ICMPパケットによる通知を受けた送信元では、ICMPパケットのレイヤー3の処理によって再送等の判定を行うことができる。再送時には、マルチキャストフレームを送信する際のMTUを通知された最小値に一致させることが可能になる。したがって、ブリッジ装置1によるマルチキャストフレームの転送処理時におけるMTUの不一致の問題に適切に対処できる。
(第二の実施形態)
図5は、本発明の第二の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、図1に示した構成要素に加え、マルチキャスト情報学習部8と、マルチキャスト情報保持部9と、MTU判定部40と、ICMP処理部50と、MTU保持部6と、IP送信元・宛先保持部7とを備える。
マルチキャスト情報学習部8は、IGMP/MLD snoop機能(参考URL<http://www.ietf.org/internet-drafts/draft-ietf-magma-snoop-10.txt>)に基づいたマルチキャスト情報の学習を行ってマルチキャスト情報保持部9に保持させる。マルチキャスト情報によれば、当該マルチキャストグループに参加している端末に向けて、マルチキャストフレームの転送を行うべきポートを特定することができる。
尚、図5において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
MTU判定部40は、マルチキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部41と、マルチキャスト情報学習部8による学習結果により特定されるマルチキャストフレームの送信対象ポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部45と、記憶部41と記憶部45の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該マルチキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
本実施形態のブリッジ装置1は、第一の実施形態と同様にマルチキャストフレームを受信して転送する際におけるMTU不一致の問題に対処するものであるが、マルチキャストフレームのマルチキャストアドレスと該マルチキャストフレームを送信すべきポートとを関連付けるマルチキャスト情報をマルチキャスト情報学習部8により学習し、該マルチキャスト情報に基づいて限定されたポートについてMTUの判定を行う点で第一の実施形態のもとは異なる。
本実施形態のブリッジ装置1では、マルチキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部41に記憶するとともにマルチキャスト情報学習部8による学習結果により特定されるマルチキャストフレームの送信対象ポートのMTUの値をそれぞれ取得して記憶部45に記憶し、これら記憶部41、45に記憶された値の両者を比較器43により比較する。判定部44は、送信側ポートのMTUの最小値が受信側ポートのMTUの値よりも小さいか否かを判定し、そうであるならば、該MTUの最小値を含んだICMPパケットを送信元端末に対して送信するようICMPパケット送信部52に対して指示する。
図6は本発明の第二の実施形態に係るブリッジ装置がマルチキャストフレームを処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットマルチキャストフレームがブリッジ装置1において受信される(ステップS201)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、マルチキャスト情報学習部8はIGMP/MLD snoop機能によりマルチキャストフレームの送信対象(転送先)ポートを絞り込む(ステップS202)。
次に、MTU値取得部51は、マルチキャストフレームを受信したポートのMTUの値および転送先ポートのMTUの値を取得する(ステップS203)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもマルチキャストフレームの受信の後に行う必要はなく、ステップS201とS203の実行順序を入れ替えてもよい。
次に、マルチキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部41に格納され、転送先ポートのMTUの値が同様にMTU保持部6から読み出されて記憶部45に格納される。ここで判定部44は、マルチキャストフレームを受信したポートよりも小さいMTUを持つポートが存在するか否かを判定する(ステップS204)。記憶部41、45に記憶されたMTUの値の大小比較は比較器43により行われる。そして、マルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、既に特定されている転送先ポートのすべてに対して該マルチキャストフレームをフォワードするように、判定部44はL2ブリッジフレーム転送処理部3に対して指示する。
これに対し、ステップS204においてマルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在すると判定されたならば、ICMPパケット送信部52は、マルチキャストフレームの送信元について、そのIPアドレスをIP送信元・宛先保持部7から取得し、該マルチキャストフレームのプロトコル種別を判別する(ステップS206)。
例えばマルチキャストフレームの送信元がIPv6を用いており、IPv6のマルチキャストフレームを送信しているならば、ICMPパケット送信部52は、この送信元に対してICMPv6パケットを送信する(ステップS207)。あるいは、この送信元がIPv4を用いている場合、この送信元に対してICMPv4パケットを送信する(ステップS208)。なお、プロトコル種別に応じたこれらICMPパケットには、転送先ポートのMTUの最小値を含めることが好ましい。
ステップS207又はS208においてICMPパケットを送信した後は、当該マルチキャストフレームを破棄して今回の受信処理を終了する(ステップS209)。
ICMPパケットによる通知を受けた送信元では、第一の実施形態と同様に、ICMPパケットのレイヤー3の処理によって再送等の判定を行うことができる。再送時には、マルチキャストフレームを送信する際のMTUを通知された最小値に一致させることが可能になる。したがって、ブリッジ装置1によるマルチキャストフレームの転送処理時におけるMTUの不一致の問題に適切に対処できる。
(第三の実施形態)
図7は、本発明の第三の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、図1に示した構成要素に加え、MTU判定部40と、MTU値取得部51と、MTU保持部6と、フラグメント処理部100とを備える。
フラグメント処理部100は、フレームをIPプロトコルのバージョン及びPW fragmentation(参考URL<http://www.ietf.org/internet-drafts/draft-ietf-pwe3-fragmentation-05.txt>)の手順に従った適切なフラグメント処理を行うための、IPフラグメント処理部101及びPWフラグメント処理部102を備える。
尚、図7において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
MTU判定部40は、マルチキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部41と、この受信ポート以外のすべてのポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部42と、記憶部41と記憶部42の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該マルチキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
本実施形態のブリッジ装置1は、第一の実施形態と同様にマルチキャストフレームを受信して転送する際におけるMTU不一致の問題に対処するものであるが、複数の送信側ポートにおいて、受信側ポートと同一又はそれ以上のMTUの値を有する送信側ポートに対してはマルチキャストフレームをそのまま送信し、受信側ポートよりもMTUの値が小さい送信側ポートに対してはマルチキャストフレームにフラグメント処理を施して送信する点で第一の実施形態のもとは異なる。
本実施形態のブリッジ装置1では、マルチキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部41に記憶するとともにすべての送信側ポートが有するMTUの値をそれぞれ取得して記憶部42に記憶し、これら記憶部41、42に記憶された値の両者を比較器43により比較する。判定部44は、複数の送信側ポートにおいて、受信側ポートと同一又はそれ以上のMTUの値を有する送信側ポートに対してはマルチキャストフレームをそのまま送信し、受信側ポートよりもMTUの値が小さい送信側ポートに対してはマルチキャストフレームにフラグメント処理を施して送信するようL2ブリッジフレーム転送処理部3又はフラグメント処理部100に対して指示する。
図8は本発明の第三の実施形態に係るブリッジ装置がマルチキャストフレームを処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットマルチキャストフレームがブリッジ装置1において受信される(ステップS301)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、MTU値取得部51は、マルチキャストフレームを受信したポートを含むすべてのポートのMTUの値を取得する(ステップS302)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもマルチキャストフレームの受信の後に行う必要はなく、ステップS301とS302の実行順序を入れ替えてもよい。
次に、マルチキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部41に格納され、該受信ポートを除く他のすべてのポートのMTUの値が同様にMTU保持部6から読み出されて記憶部42に格納される。ここで判定部44は、マルチキャストフレームを受信したポートよりも小さいMTUを持つポートが存在するか否かを判定する(ステップS303)。記憶部41、42に記憶されたMTUの値の大小比較は比較器43により行われる。そして、マルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、受信ポートを除く他のポートのすべてに対して該マルチキャストフレームをフォワードするように、判定部44はL2ブリッジフレーム転送処理部3に対して指示する(ステップS304)。
これに対し、ステップS303においてマルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在すると判定されたならば、マルチキャストフレームの受信ポートを除く全てのポートのそれぞれについて、MTUの値の比較判定を行うことにより、そのポートについてマルチキャストフレームをフラグメント処理するか、これをそのままフォワードするかを判定する(ステップS305)。すなわち、当該ポートのMTUの値が受信ポートのMTUの値以上であるならば、そのポートに対してマルチキャストフレームをそのままフォワードする(ステップS306)。一方、当該ポートのMTUの値が受信ポートのMTUの値以上でない場合(ステップS305=NO)、まずフラグメント処理部100は、マルチキャストフレームのプロトコル種別を判別する(ステップS307)。例えばマルチキャストフレームの送信元がIPv6を用いており、IPv6のマルチキャストフレームを送信しているならば、フラグメント処理部100は、マルチキャストフレームにIPv6のフラグメント処理を施して当該ポートに送出する(ステップS308)。一方、送信元がIPv4を用いている場合、フラグメント処理部100は、マルチキャストフレームにIPv4のフラグメント処理を施して当該ポートに送出する(ステップS309)。なお、マルチキャストフレームの種別が上記IPv6でもIPv4でもない場合には、マルチキャストフレームを破棄して処理を終了する(ステップS310)。
本実施形態のように、MTUの値の大小比較に基づき特定のポートに対してマルチキャストフレームをフラグメント処理することにより、MTUの値の不一致に起因するフレーム破棄を防止できる。
(第四の実施形態)
図9は、本発明の第四の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、図1に示した構成要素に加え、マルチキャスト情報学習部8と、マルチキャスト情報保持部9と、MTU判定部40と、MTU値取得部51と、MTU保持部6と、フラグメント処理部100とを備える。
マルチキャスト情報学習部8は、IGMP/MLD snoop機能(参考URL<http://www.ietf.org/internet-drafts/draft-ietf-magma-snoop-10.txt>)に基づいたマルチキャスト情報の学習を行ってマルチキャスト情報保持部9に保持させる。マルチキャスト情報によれば、当該マルチキャストグループに参加している端末に向けて、マルチキャストフレームの転送を行うべきポートを特定することができる。
フラグメント処理部100は、フレームをPW fragmentation(参考URL<http://www.ietf.org/internet-drafts/draft-ietf-pwe3-fragmentation-05.txt>)の手順に従った適切なフラグメント処理を行うための、IPフラグメント処理部101及びPWフラグメント処理部102を備える。
尚、図9において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
MTU判定部40はマルチキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部41と、マルチキャスト情報学習部8による学習結果により特定されるマルチキャストフレームの送信対象ポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部45と、記憶部41と記憶部45の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該マルチキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
本実施形態のブリッジ装置1は、第三の実施形態と同様に特定のポートに対してはフラグメント処理を施してマルチキャストフレームを転送処理するものであるが、マルチキャストフレームのマルチキャストアドレスと該マルチキャストフレームを送信すべきポートとを関連付けるマルチキャスト情報をマルチキャスト情報学習部8により学習し、該マルチキャスト情報に基づいて限定されたポートについてMTUの判定を行う点で点で第三の実施形態のもとは異なる。
本実施形態のブリッジ装置1では、マルチキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部41に記憶するとともにマルチキャスト情報学習部8による学習結果により特定されるマルチキャストフレームの送信対象ポートのMTUの値をそれぞれ取得して記憶部45に記憶し、これら記憶部41、45に記憶された値の両者を比較器43により比較する。判定部44は、複数の送信側ポートにおいて、受信側ポートと同一又はそれ以上のMTUの値を有する送信側ポートに対してはマルチキャストフレームをそのまま送信し、受信側ポートよりもMTUの値が小さい送信側ポートに対してはマルチキャストフレームにフラグメント処理を施して送信するようL2ブリッジフレーム転送処理部3又はフラグメント処理部100に対して指示する。
図9は本発明の第四の実施形態に係るブリッジ装置がマルチキャストフレームを処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットマルチキャストフレームがブリッジ装置1において受信される(ステップS401)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、マルチキャスト情報学習部8はIGMP/MLD snoop機能によりマルチキャストフレームの送信対象(転送先)ポートを絞り込む(ステップS402)。
次に、MTU値取得部51は、マルチキャストフレームを受信したポートを含むすべてのポートのMTUの値を取得する(ステップS403)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもマルチキャストフレームの受信の後に行う必要はなく、ステップS301とS302の実行順序を入れ替えてもよい。
次に、マルチキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部41に格納され、転送先ポートのMTUの値が同様にMTU保持部6から読み出されて記憶部45に格納される。ここで判定部44は、マルチキャストフレームを受信したポートよりも小さいMTUを持つポートが存在するか否かを判定する(ステップS404)。記憶部41、45に記憶されたMTUの値の大小比較は比較器43により行われる。そして、マルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、受信ポートを除く他のポートのすべてに対して該マルチキャストフレームをフォワードするように、判定部44はL2ブリッジフレーム転送処理部3に対して指示する(ステップS405)。
これに対し、ステップS404においてマルチキャストフレームの受信ポートよりも小さいMTUを持つポートが存在すると判定されたならば、転送先ポートのそれぞれについて、MTUの値の比較判定を行うことにより、そのポートについてマルチキャストフレームをフラグメント処理するか、これをそのままフォワードするかを判定する(ステップS406)。すなわち、当該ポートのMTUの値が受信ポートのMTUの値以上であるならば、そのポートに対してマルチキャストフレームをそのままフォワードする(ステップS407)。一方、当該ポートのMTUの値が受信ポートのMTUの値以上でない場合(ステップS406=NO)、まずフラグメント処理部100は、マルチキャストフレームのプロトコル種別を判別する(ステップS408)。例えばマルチキャストフレームの送信元がIPv6を用いており、IPv6のマルチキャストフレームを送信しているならば、フラグメント処理部100は、マルチキャストフレームにIPv6のフラグメント処理を施して当該ポートに送出する(ステップS409)。一方、送信元がIPv4を用いている場合、フラグメント処理部100は、マルチキャストフレームにIPv4のフラグメント処理を施して当該ポートに送出する(ステップS410)。なお、マルチキャストフレームの種別が上記IPv6でもIPv4でもない場合には、マルチキャストフレームを破棄して処理を終了する(ステップS411)。
本実施形態によれば、IGMP/MLD snoop機能により絞り込まれたポート(転送先ポート)における特定のポートに対してマルチキャストフレームをフラグメント処理することにより、MTUの値の不一致に起因するフレーム破棄を防止できる。
(第五の実施形態)
図11は、本発明の第五の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、ユニキャストフレームのフラッディング処理を行うものであり、L2ブリッジフレーム転送処理部3がアドレス解決処理部31を備える。
MTU判定部40は、ユニキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部46と、この受信ポート以外のすべてのポート、すなわちフラッディング対象のポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部47と、記憶部46と記憶部47の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該ユニキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
尚、図11において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
本実施形態のブリッジ装置1は、ユニキャストフレームを受信してフラッディング処理する際におけるMTU不一致の問題に対処するものである。
本実施形態のブリッジ装置1では、ユニキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部46に記憶するとともにフラッディング対象であるすべての送信側ポートが有するMTUの値をそれぞれ取得して記憶部47に記憶し、これら記憶部46、47に記憶された値の両者を比較器43により比較する。判定部44は、送信側ポートのMTUのいずれかの値が受信側ポートのMTUの値よりも小さいか否かを判定し、そうであるならばICMPパケットを送信元端末に対して送信するようICMPパケット送信部52に対して指示する。
図12は本発明の第五の実施形態に係るブリッジ装置がユニキャストフレームをフラッディング処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットユニキャストフレームがブリッジ装置1において受信される(ステップS501)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、L2ブリッジフレーム転送処理部3は、受信したユニキャストフレームを転送すべきポートについて、フォワーディングデータベース32にエントリがあるか否かを調べる。エントリがある場合は、フラッディング処理は不要であり、このエントリにより特定されるポートに対してユニキャストフレームを転送処理して終了する(ステップS503)。
フォワーディングデータベース32にエントリがない場合、MTU値取得部51は、ユニキャストフレームを受信したポートのMTUの値およびこの受信ポート以外のすべてのポートのMTUの値を取得する(ステップS504)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもユニキャストフレームの受信の後に行う必要はなく、ステップS501とS504の実行順序を入れ替えてもよい。
次に、ユニキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部46に格納され、他の全てのポートのMTUの値が同様にMTU保持部6から読み出されて記憶部47に格納される。ここで判定部44は、ユニキャストフレームを受信したポートよりも小さいMTUを持つフラッディング対象のポートが存在するか否かを判定する(ステップS505)。記憶部46、47に記憶されたMTUの値の大小比較は比較器43により行われる。そして、ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、このユニキャストフレームをフラッディング処理して処理を終える(ステップS506)。
ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在するならば、フラッディング処理は禁止される(ステップS505=YES)。ICMPパケット送信部52は、ユニキャストフレームの送信元について、そのIPアドレスをIP送信元・宛先保持部7から取得し、該ユニキャストフレームのプロトコル種別を判別する(ステップS507)。
例えばユニキャストフレームの送信元がIPv6を用いており、IPv6のユニキャストフレームを送信しているならば、ICMPパケット送信部52は、この送信元に対してICMPv6パケットを送信する(ステップS508)。あるいは、この送信元がIPv4を用いている場合、この送信元に対してICMPv4パケットを送信する(ステップS509)。なお、プロトコル種別に応じたこれらICMPパケットには、送信側ポートのMTUの最小値を含めることが好ましい。
ステップS508又はS509においてICMPパケットを送信した後は、当該ユニキャストフレームを破棄して今回の受信処理を終了する(ステップS510)。
ICMPパケットによる通知を受けた送信元では、ICMPパケットのレイヤー3の処理によって再送等の判定を行うことができる。再送時には、ユニキャストフレームを送信する際のMTUを通知された最小値に一致させることが可能になる。したがって、ブリッジ装置1によるユニキャストフレームの転送処理時におけるMTUの不一致の問題に適切に対処できる。
(第六の実施形態)
図13は、本発明の第六の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、ユニキャストフレームのフラッディング処理を行うものであり、L2ブリッジフレーム転送処理部3がアドレス解決処理部31を備える。
MTU判定部40は、ユニキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部46と、この受信ポート以外のすべてのポート、すなわちフラッディング対象のポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部47と、記憶部46と記憶部47の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、アドレス解決処理を制御するアドレス解決処理制御部48とを備える。アドレス解決処理制御部48の具体的な処理内容は後述する。
尚、図13において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
本実施形態のブリッジ装置1は、第五の実施形態と同様にユニキャストフレームを受信してフラッディング処理する際におけるMTU不一致の問題に対処するものである。
本実施形態のブリッジ装置1では、ユニキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部46に記憶するとともにフラッディング対象であるすべての送信側ポートが有するMTUの値をそれぞれ取得して記憶部47に記憶し、これら記憶部46、47に記憶された値の両者を比較器43により比較する。アドレス解決処理制御部48は、フラッディング対象である送信ポートのMTUの値のいずれかの値が受信ポートのMTUの値よりも小さいならば、フラッディング処理を禁止するとともに送信元端末を送信元とするアドレス解決手順を実行するようL2ブリッジフレーム転送処理部3のアドレス解決処理部31を制御する。そして、アドレス解決処理部31のアドレス解決手順により解決された転送先に対してユニキャストフレームを送信するようにする。
図14は本発明の第六の実施形態に係るブリッジ装置がユニキャストフレームをフラッディング処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットユニキャストフレームがブリッジ装置1において受信される(ステップS601)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、L2ブリッジフレーム転送処理部3は、受信したユニキャストフレームを転送すべきポートについて、フォワーディングデータベース32にエントリがあるか否かを調べる(S602)。エントリがある場合は、フラッディング処理は不要であり、このエントリにより特定されるポートに対してユニキャストフレームを転送処理して終了する(ステップS603)。
フォワーディングデータベース32にエントリがない場合、MTU値取得部51は、ユニキャストフレームを受信したポートのMTUの値およびこの受信ポート以外のすべてのポートのMTUの値を取得する(ステップS604)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもユニキャストフレームの受信の後に行う必要はなく、ステップS601とS604の実行順序を入れ替えてもよい。
次に、ユニキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部46に格納され、他の全てのポートのMTUの値が同様にMTU保持部6から読み出されて記憶部47に格納される。ここで判定部44は、ユニキャストフレームを受信したポートよりも小さいMTUを持つフラッディング対象のポートが存在するか否かを判定する(ステップS605)。記憶部46、47に記憶されたMTUの値の大小比較は比較器43により行われる。そして、ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、このユニキャストフレームをフラッディング処理して処理を終える(ステップS606)。
ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在するならば、フラッディング処理は禁止される(ステップS605=YES)。
ここで、アドレス解決処理制御部48は、受信したユニキャストフレームのプロトコル種別を判別する(ステップS607)。例えばユニキャストフレームの送信元がIPv6を用いており、IPv6のユニキャストフレームを送信しているならば、アドレス解決処理制御部48は、アドレス解決処理部31に対してRFC2461に規定されるND(Neighbor Discovery)パケットをすべてのポートに送信するよう指示する(ステップS608)。あるいは、この送信元がIPv4を用いている場合、アドレス解決処理制御部48は、アドレス解決処理部31に対してRFC826に規定されるARP(Address Resolution Protocol)の要求パケットをすべてのポートに送信するよう指示する(ステップS609)。
ステップS608又はS609においてNDパケット又はARP要求パケットを送信した後、一定時間待機し(ステップS610)、再度、フォワーディングデータベース32を参照し、エントリが有るか否かを調べる(ステップS611)。エントリがある場合は、そのポートに対してユニキャストフレームを送信し(ステップS613)、エントリが無い場合は当該ユニキャストフレームを破棄(ステップS612)して終了する。
このような本実施形態では、MTU判定後のアドレス解決処理により、受信したユニキャストフレームをフラッディングすることなく送信できる可能性があり、アドレス解決できずMTUが不一致の場合はフラッディングを適切に禁止できる。
(第七の実施形態)
図15は、本発明の第七の実施形態に係わり、図1に示したブリッジ装置における機能拡張部分を示すブロック図である。同図に示すように、本実施形態に係るブリッジ装置1は、ユニキャストフレームのフラッディング処理を行うものであり、L2ブリッジフレーム転送処理部3がアドレス解決処理部31を備える。また、フラグメント処理部100を備える。フラグメント処理部100は、フレームをIPプロトコルのバージョン及びPW fragmentation(参考URL<http://www.ietf.org/internet-drafts/draft-ietf-pwe3-fragmentation-05.txt>)の手順に従った適切なフラグメント処理を行うための、IPフラグメント処理部101及びPWフラグメント処理部102を備える。
MTU判定部40は、ユニキャストフレームを受信したポートのMTU(最大転送ユニット)の値をMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部46と、この受信ポート以外のすべてのポート、すなわちフラッディング対象のポートのMTUの値をそれぞれMTU保持部6から読み出して記憶する、例えばレジスタ等の記憶部47と、記憶部46と記憶部47の値の大小を比較する比較器(COMP)43と、記憶部46と記憶部47の値の大小を比較する比較器(COMP)43と、比較器43による比較結果に応じて、当該ユニキャストフレームをどのように処理すればよいかを判定する判定部44とを備える。判定部44の具体的な処理内容は後述する。
尚、図15において、本実施形態のブリッジ装置1において第一の実施形態と実質的に同一の構成要素には第一の実施形態と同一の参照符号が付してあり、その詳細な説明は省略する。
本実施形態のブリッジ装置1は、第五の実施形態と同様にユニキャストフレームを受信してフラッディング処理する際におけるMTU不一致の問題に対処するものである。
本実施形態のブリッジ装置1では、ユニキャストフレームを受信した際に、その受信ポートが有するMTUの値を取得して記憶部46に記憶するとともにフラッディング対象であるすべての送信側ポートが有するMTUの値をそれぞれ取得して記憶部47に記憶し、これら記憶部46、47に記憶された値の両者を比較器43により比較する。判定部44は、送信側ポートのMTUの最小値が受信側ポートのMTUの値よりも小さいか否かを判定し、そのようなポートについてはフラグメント処理を施す。
図16は本発明の第七の実施形態に係るブリッジ装置がユニキャストフレームをフラッディング処理する手順を示すフローチャートである。
まず、送信元端末から送信されたイーサネットユニキャストフレームがブリッジ装置1において受信される(ステップS701)。このとき、MACアドレス学習部2により例えばIEEE802.1Dの仕様に基づいたMACアドレス学習が行われる。
次に、L2ブリッジフレーム転送処理部3は、受信したユニキャストフレームを転送すべきポートについて、フォワーディングデータベース32にエントリがあるか否かを調べる(S702)。エントリがある場合は、フラッディング処理は不要であり、このエントリにより特定されるポートに対してユニキャストフレームを転送処理して終了する(ステップS703)。
フォワーディングデータベース32にエントリがない場合、MTU値取得部51は、ユニキャストフレームを受信したポートのMTUの値およびこの受信ポート以外のすべてのポートのMTUの値を取得する(ステップS704)。これらMTUの値はMTU保持部6に格納される。なお、MTUの値の取得は必ずしもユニキャストフレームの受信の後に行う必要はなく、ステップS701とS704の実行順序を入れ替えてもよい。
次に、ユニキャストフレームの受信ポートのMTUの値がMTU保持部6から読み出されて記憶部46に格納され、他の全てのポートのMTUの値が同様にMTU保持部6から読み出されて記憶部47に格納される。ここで判定部44は、ユニキャストフレームを受信したポートよりも小さいMTUを持つフラッディング対象のポートが存在するか否かを判定する(ステップS705)。記憶部46、47に記憶されたMTUの値の大小比較は比較器43により行われる。そして、ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在しないならば、このユニキャストフレームをフラッディング処理して処理を終える(ステップS706)。
ユニキャストフレームの受信ポートよりも小さいMTUを持つポートが存在するならば、そのようなポートについてはフレームにフラグメント処理を施す(ステップS705=YES)。
ユニキャストフレームの受信ポートを除く全てのポートのそれぞれについて、MTUの値の比較判定を行うことにより、そのポートについてユニキャストフレームをフラグメント処理するか、これをそのままフォワードするかを判定する(ステップS707)。すなわち、当該ポートのMTUの値が受信ポートのMTUの値以上であるならば、そのポートに対してユニキャストフレームをそのままフォワードする(ステップS708)。一方、当該ポートのMTUの値が受信ポートのMTUの値以上でない場合(ステップS707=NO)、まずフラグメント処理部100は、ユニキャストフレームのプロトコル種別を判別する(ステップS709)。例えばユニキャストフレームの送信元がIPv6を用いており、IPv6のユニキャストフレームを送信しているならば、フラグメント処理部100は、ユニキャストフレームにIPv6のフラグメント処理を施して当該ポートに送出する(ステップS710)。一方、送信元がIPv4を用いている場合、フラグメント処理部100は、ユニキャストフレームにIPv4のフラグメント処理を施して当該ポートに送出する(ステップS711)。なお、ユニキャストフレームの種別が上記IPv6でもIPv4でもない場合には、ユニキャストフレームを破棄して処理を終了する(ステップS712)。
本実施形態のように、MTUの値の大小比較に基づき特定のポートに対してユニキャストフレームをフラグメント処理することにより、MTUの値の不一致に起因するフレーム破棄を防止できる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。