スイッチングハブ環境なのに自分と関係ないコンピュータ間の通信が記録される
自分のマシンでSnortを動かしてる*1んだけど、たま〜に「なんでこの通信が?」というログが残ってる事がある。
こんな感じの環境なのだが
┌───┐ ┌───┐ ┌──┤ルータ├─┤ SW1 │ │ └───┘ └┬─┬┘ PC1 ┌┘ └─┐ ┌─┴─┐┌─┴─┐ │ SW2 ││ SW3 │ └┬──┘└──┬┘ │ │ MyPC PC2
なぜか、PC1からPC2への通信がMyPCのSnortで検知される事がある。
理由が分からなくて「ひょっとして誰か何かやってんのか?*2」とか疑ったりして調べても特におかしい所も無い。
しばらく悩んでいたのだが*3ようやく原因を思いついた。
スイッチングハブのMACアドレステーブルにPC2が登録されてないとMyPCまでパケットが来ますな。
スイッチングハブといえども学習していなければただのハブと同じな訳で。
分かってみれば極基本的な事なんだけど全然気づかなかたーよ。orz
追記:
と思ったけど、ちょっと待てよ?
通信本体のパケットが流れてるという事は、それ以前にルータからのarpが飛んでる訳でしかもそれは解決済みという事だよな。という事はその時点でMACアドレスの学習は終わってるような。。。あれぇ?
あ、分かった。ルータのarpテーブルにはPC2のエントリが残っているけど、スイッチングハブのテーブルからは消えている、というさらに限定された状況の場合のみ発生するんだ。