2008年7月28日月曜日

L2スイッチ、スイッチングハブのメモ

サーバの事ばっかりなので、たまにはネットワークも。
記事自体はお客さんからの問い合わせがベースになってたりします。
 
 

自分宛でないIPパケットがくることもある


スイッチングハブというとMACアドレス学習して不要なポートにはパケットを流さない。
なのですが、学習はどのタイミングなのか。
※ブロードキャストやマルチキャストは置いといて。
 
スイッチングハブは通信があった際、
送信元MACアドレスをMACアドレス学習テーブル(FDB)に学習します。
で、FDB内に宛先のMACアドレスがあればそれを使いますが、
宛先は学習しない、というかできない。
 
未学習、またはFDB有効期限切れのMACアドレス宛通信はどうするかというと、
やっぱり全部のポートから発信(フラッディング)するしかなく、レスポンスがあったらその送信元を学習し、以降はそのポートにのみパケットを流す。
このとき無関係な端末にも自分宛でないIPパケットが届く、プロミスキャスモードでパケットを拾えば確認できる。
L2の話なのでIPヘッダのIPアドレスなどは直接関係ないですが、フレームを拾ってみた結果、自分が全く関係ないIPアドレス同士の通信の断片だったりします。
 
多くのスイッチのカタログには学習テーブルのエージングタイムが載ってます、結構短めで、300秒とかそんなもん。
例えばPCのMACテーブルに残っている(ARP不要)けど、L2のFDBにMACアドレスの記録がない場合はフラッディングが起こるはず。
WindowsのARPキャッシュは確か10分でした、それを考えるとそこそこ起こる現象のような気がします。
 
 
ただ、見出しにあるような「自IPアドレス宛でない通信」は基本的に稀なので、どうも沢山来ているという場合はそれなりの原因があると思うので調べたほうがよさそうです。
下記に調べ方やフラッディングが起こりまくる例の構成が載っています。
参考:Ciscoサイトののフラッディングに関する記事
http://www.cisco.com/JP/support/public/ht/tac/102/1020418/143-j.shtml

 
 

CSMA/CDでの転送制御はしていない


MACアドレス学習して、ストア&フォワードするため、コリジョンドメインはポート単位で分割されている。
 
イーサネットの勉強をするとまず出てくるCSMA/CD方式、スイッチングハブのカタログにもよく書いてありますが、リピータハブの機能であって実際コリジョン起こらないはず。
 
無線LANのCSMA/CA方式は当分使われるのも仕方なかろうけど、CSMA/CD方式は今や使ってなさそうなのにカタログではよく書いてある、実装しているということでしょうか。
そうなると逆にコリジョンの検出技術をどうあつかっているのか少し不思議。