我々は、顧客に定期的なソケットダンプを実行するよう依頼し、コミュニティがネットワーク統計ソケットリストから複数の接続アドレスを識別する方法についてのアイデアがあるかどうか疑問に思いました。
Active Internet connections (including servers)
PCB Proto Recv-Q Send-Q Local Address Foreign Address (state)
-------- ----- ------ ------ ------------------ ------------------ -------
18970e0 TCP 0 0 10.51.57.214.1028 10.51.57.211.20021 ESTABLISHED
1897374 TCP 0 0 10.51.57.214.23 10.51.102.86.58998 ESTABLISHED
18960e4 TCP 0 0 10.51.57.214.1028 10.51.102.48.59466 ESTABLISHED
189747c TCP 0 0 10.51.57.214.1031 10.51.82.22.63682 ESTABLISHED
18972f0 TCP 0 0 10.51.57.214.1028 10.51.101.72.64318 ESTABLISHED
18969a8 TCP 0 0 10.51.57.214.1028 10.51.102.75.61478 ESTABLISHED
1896e4c TCP 0 0 10.51.57.214.1028 10.51.102.74.52111 ESTABLISHED
1896924 TCP 0 0 10.51.57.214.1028 10.51.57.232.57303 ESTABLISHED
1896d44 TCP 0 0 10.51.57.214.1028 10.51.57.232.57302 ESTABLISHED
1896ed0 TCP 0 0 10.51.57.214.1028 10.51.57.202.49952 ESTABLISHED
1896cc0 TCP 0 0 10.51.57.214.1028 10.51.57.242.56605 ESTABLISHED
1896b34 TCP 0 0 10.51.57.214.1028 10.51.57.245.49418 ESTABLISHED
1895b38 TCP 0 0 10.51.57.214.1028 10.51.57.245.49402 ESTABLISHED
18958a4 TCP 0 0 10.51.57.214.1028 10.51.57.244.49390 ESTABLISHED
18968a0 TCP 0 0 10.51.57.214.1028 10.51.101.36.60993 ESTABLISHED
1896714 TCP 0 0 10.51.57.214.1028 10.51.82.22.53412 ESTABLISHED
1896ab0 TCP 0 0 10.51.57.214.1028 10.51.57.243.50377 ESTABLISHED
1895ed4 TCP 0 0 10.51.57.214.1113 10.51.57.203.62953 ESTABLISHED
1896a2c TCP 0 25 10.51.57.214.1028 10.51.57.243.50362 ESTABLISHED
1895bbc TCP 0 0 10.51.57.214.1028 10.51.57.196.49313 ESTABLISHED
189681c TCP 0 0 10.51.57.214.1028 10.51.57.101.52556 ESTABLISHED
1896798 TCP 0 0 10.51.57.214.1028 10.51.57.201.53746 ESTABLISHED
1896c3c TCP 0 0 10.51.57.214.1028 10.51.57.193.51058 ESTABLISHED
1896588 TCP 0 0 10.51.57.214.1028 10.51.57.195.49358 ESTABLISHED
18962f4 TCP 0 0 10.51.57.214.1028 10.51.101.92.59060 ESTABLISHED
1896504 TCP 0 0 10.51.57.214.1028 10.51.57.213.62754 ESTABLISHED
18963fc TCP 0 0 10.51.57.214.1028 10.51.57.213.62753 ESTABLISHED
1896690 TCP 0 0 10.51.57.214.1052 10.51.57.203.62953 ESTABLISHED
189660c TCP 0 0 10.51.57.214.1028 10.51.57.241.54348 ESTABLISHED
1896168 TCP 0 0 10.51.57.214.1047 10.51.57.203.62953 ESTABLISHED
1896378 TCP 0 0 10.51.57.214.1031 10.51.57.203.62961 ESTABLISHED
1895f58 TCP 0 0 10.51.57.214.1028 10.51.57.203.62958 ESTABLISHED
1896270 TCP 0 0 10.51.57.214.1028 10.51.57.181.55438 ESTABLISHED
サーバーごとにローカルアドレスが変わるため、外部アドレスにのみ興味があります。実際に設定されているか古いソケットと見なされ、スイッチで孤児になりました(通常はソケットが複数設定された理由です)。
これを見つける唯一の方法は、タブ、点線クワッド、ソケット番号、タブ、ESTABLISHEDの順に見つけることです。レコードは以前のバージョンのvxworksから取得されたものであるため、ソケット番号の前にコロンは付けられませんが、すべてのエンドポイントが1024より大きいと想定できます。
フィルタリングされた一連のIPアドレスを表示し、接続数で並べ替える最良の方法を論理的に把握できませんか?同時接続が複数あることを確認したいと思います。
250以上の接続があれば論理的にローカルアドレスになるのでそこにローカルアドレスを残しておくことができると思いました!
非常にありがとう
答え1
スクリプトを使用してawk
データからIPを取得し、IPが発生するたびに配列counts
として収集できます。入力をすべて読んだら、配列を繰り返して数とIPを印刷します。ただし、2回以上発生する場合のみ、すべてパイプして整列します。
awkスクリプト:
NF == 7 && $7 == "ESTABLISHED" {
split($6, octets, ".")
ip=octets[1] "." octets[2] "." octets[3] "." octets[4]
counts[ip]++
}
END {
for (i in counts)
if (counts[i] > 2)
print counts[i], i
}
次のように実行します。
awk -f awkscript < input | sort -n
入力例では、1つのIPだけが5回表示されます。
5 10.51.57.203