最近、一部のネットワーク構成に問題があり、解決するのが難しかったです。
こうなりそうですねたくさんどの方向に車両が通過できないかを知ると、診断が簡単になります。要求のどれも応答を受け取らず、ping
ping要求パケットが通過して応答が失敗したのか、それとも要求自体が失敗したのか疑問に思います。
明確に言えば、標準ユーティリティは、あるシステムからパケットを送信し、同じシステムに応答パケットを再受信するのと似ており、ping
それに依存します。traceroute
応答が戻らない場合は、最初の要求が失敗したのか、その要求に対する応答がブロックされているのか、応答がまったく送信されていないのかはわかりません。具体的な内容はこうです。」方向失敗だ」と分析したい。
着信ICMP ping要求を監視できるLinux用の共通ユーティリティはありますか?
答え1
tcpdump
これはほぼどこでも行うことができ、使用できます。
tcpdump -n -i enp0s25 icmp
着信および発信するすべてのICMPパケットがダンプされますenp0s25
。
ICMPエコーリクエストのみを表示:
tcpdump -n -i enp0s25 "icmp[0] == 8"
(-n
パケットの報告が遅れ、不要なトラフィックが発生する可能性があるDNSルックアップを避けてください。)
これにより、他のシステムがパケットを受信していること(他のシステムがパケットを受信できるping
)を確認でき、問題が戻り経路にあるのか、単に到着していないのかを確認できます。
答え2
@Stephen Kittの提案に加えて、tcpdump
一方向にのみパケットをフィルタリングできます。
# see if the icmp request exits the interface
tcpdump -nQ out 'icmp'
tshark
ルートとして実行することなく使用できるもう1つの便利なツールは次のとおりです。
tshark -nf "icmp && (icmp[icmptype] == icmp-echo)"
別のパケットキャプチャで出力を解析できます。
netstat -s
各ネットワークソケットの統計を印刷します。例は次のとおりです。
netstat -s | grep -Eo "^[[:space:]]+[[:digit:]]+ ICMP messages sent$"; 1>/dev/null ping -c1 -w1 host; !-1
28 ICMP messages sent
30 ICMP messages sent
答え3
2平方メートルあなたに適しているかもしれません。ディストリビューションのパッケージマネージャで利用できます。
しかし、もしいいえ交通渋滞が発生しており、まだ知らないことを知らせることができるかどうかわかりません。
サイトを引用するには:
2pingは双方向のpingユーティリティです。 3方向ping(TCP SYN、SYN / ACK、ACKと同様)と2ping受信機と2pingクライアント間のポストステータス比較を使用して、パケット損失が発生した方向を確認します。
user@alice:~$ 2ping test.2ping.net
2PING test.2ping.net (209.177.154.210): 64 to 512 bytes of data.
Lost outbound packet to 209.177.154.210: ping_seq=1
64 bytes from 209.177.154.210: ping_seq=2 time=10.557 ms
Lost inbound packet from 209.177.154.210: ping_seq=3
64 bytes from 209.177.154.210: ping_seq=4 time=10.527 ms
^C
--- test.2ping.net 2ping statistics ---
4 pings transmitted, 2 received, 50% ping loss, time 4008ms
1 outbound ping losses (25%), 1 inbound (25%), 0 undetermined (0%)
rtt min/avg/max = 10.527/10.542/10.557 ms
6 raw packets transmitted, 3 received
答え4
読むman traceroute
。 ICMP Pingの小さな値を使用して、TTL
ソースから宛先へのパスにあるすべてのノードからICMP応答を取得します(あなたの場合はソースから野生までに似ていますが、何でも)。
このtracepath
ユーティリティ(sudo apt install tracepath;man tracepath
)は同じ小さなTTLトリックを使用しますが、TCP/IP
特定のポートレベルで使用されます。