概要
ISP業者が設置した自宅のインターネット接続のWAN側機器の調子が悪かった。
ISP業者がなかなか対応してくれないので、自分でWAN側のパケットや状況を調査して連絡したら、やっと直してくれた。
パケットを調査すると言っても、Raspberry Pi3 (以後RasPi3と略す)と昔使っていたノンインテリジェンスのL2スイッチを組み合わせた簡易システムだったので、ブロードキャストパケットしか見られなかった。
調査結果を伝えたらISP側が動いて修理は完了した。
しかし、今回のトラブルをきっかけにWAN側のパケットキャプチャに興味が沸き、かつブロードキャストだけじゃ物足りなくなったので、ミラーポートの付いたL2アンマネージプラススイッチ(NETGEAR GS105E-200JPS)を買って、全パケットをモニタ出来るようにしてみた。
覚書的に設定の概要とtcpdumpのコマンドラインなどをここに控えておく。
接続
通常
(宅内LAN)--[ルータ]--[WAN側機器(VDSLモデム)]--(インターネット)
という構成でつなぐところ、
(宅内LAN)--[ルータ]--[ネットワークスイッチ]--[WAN側機器(VDSLモデム)]--(インターネット)
↑-(WiFi)--[RasPi3]--(Ether)--↑
のようにつなぐ。
この時、RasPi3とネットワークスイッチは固定IPアドレスとし、DHCPを殺しておく。
これは、ISP側からDHCPアドレスは1つしか割り当てられないので、この2つの機器でDHCPが有効になっているとルータにアドレスが割り振られなくなってしまうからである。
固定アドレス指定
ネットワークスイッチは、あらかじめWeb経由のGUIで固定IPアドレスやDHCPアドレスを無効化するなどしておく,く、また、ミラーポートの設定を行い、RasPi3に接続するポートからモデム-WAN側機器の間の通信が見えるように設定しておく。
RasPi3(Raspbian stretch)ではファイル/etc/dhcpcd.confに以下の行を追加。
念のため一度再起動。
ipv4only
interface eth0
static ip_address=192.168.0.254/24
tcpdumpコマンドライン例
以下、XX.XX.XX.XXはルータが取得したWAN側のアドレスとする。
sudo tcpdump -i eth0
sudo tcpdump -i eth0 broadcast
WAN側のルータから、盛んにARPパケットが飛んできている様子が見えた。
sudo tcpdump -i eth0 host XX.XX.XX.XX
sudo tcpdump -i eth0 src host XX.XX.XX.XX and '(tcp[tcpflags] & tcp-syn)' != 0
sudo tcpdump -i eth0 dst host XX.XX.XX.XX and '(tcp[tcpflags] & tcp-syn)' != 0
ポートスキャンされているのが分かる。
感想
やっぱりL3スイッチにして、いろいろフィルタリングするようにしたらよかったかな....