概要
遅ればせながら今年(2025)からインターネット環境をV6プラスに移行しました。 これによりIPv4のポート制限による通信影響が心配で、実際にどのような通信が行われているのかモニターするために、OpenWrtで動作するconntrack 出力を使った簡易 Traffic Analizer のConnTraTop を作成しました。 OpenWrtは、GL-MT2500 (24.10.2) とWRC-1167GST2 (23.05.6)でテストし、追加ソフト無しで標準のuhttpd で動作します
通信状況を見ると、日本でもIPv6化が進みIPv6通信が過半となっています。 また、OpenWrt標準のRealtime Graphs のConnections では数百もカウントされてIPv4ポート制限が心配ですが、このConnTraTop で確認すると半数はDNS参照で、IPv6利用も多くそれほど心配ないことがわかります
トップ画面
本体はブラウザで動作するJavaScriptで、トップ画面は以下の様になります。 上の表はIPv4プライベート、IPv4パブリックとIPv6に分類して高トラフィック部分を抽出し、最大値の背景色を変更しています。 IPv4パブリックのセッション数でV6プラスのIPv4ポート制限の状況を見る事ができます。
上のチャートは、初期は受信データー量の時間推移です。 Received data volume プルダウンメニューで送信データとセッション数に変更できます。 こちらの操作行で表示時刻や1時間/10分のタイムスパン切替が設定できます。 右の円矢印はReset Setting で初期画面にもどります。
一番上の「Loaded ...」はステータス表示行です。 最新時刻のファイル名とその時刻が表示されます。 下の表は、受信元IPアドレスで集計し、データー受信量で上位から並べています。
/tmp/dhcp.lease の出力からMACアドレスとホスト名を取得して同一MACアドレスをグループ化しています

送信元IP画面
トップ画面から、IPアドレスをクリックすると該当のIPアドレスに絞って送信先IPアドレスごとに集計した画面になります。表右のDNS Lookupチェックボックスをチェックすると nslookup.cgi を使ってIPアドレス逆引きを行いますが、CDN利用している例が多くてアクセス先は判別不能です。 CDNはホスト名が長いので右側の32文字で短縮しています

デモ画面
基本的にスタティックなファイルで構成されているので、以下のURLにダミーデーターによるデモ画面を作成しました。 2種類の画面しか無いので触った方が理解が早いと思います
http://msys.xii.jp/conntratop/
インストレーション/設定
OpenWrt のシェルで以下のコマンドを実行してファイルをコピーして、bycron.sh を一分ごとに実行するように設定してください
wget -O - 'http://msys.xii.jp/conntratop-1.0.tar.gz' | tar zxf - -C /www
OpenWrt のシステム時刻を使うのでタイムゾーンをAsia/Tokyo に合わせてください。 またcron の実行により毎回syslog が出力されるので、Cron Log Level をDisable にするのが推奨です


既知の問題
インストレーション直後にブラウザ表示で、Err 0503.log.gz
bycron.sh の実行後、1分ごとにログファイルが生成されて1時間分の60個を読み込もうとしますが、作成されていないとエラーになるのでお待ちください。 ログファイルは/tmp に置いているので再起動すると削除されます。 また、各ログファイルの先頭にタイムスタンプがありこれの整合性チェックでもエラーになる事があります