一方向にのみICMPテスト(「ping」)を実行できるユーティリティはありますか?

一方向にのみICMPテスト(「ping」)を実行できるユーティリティはありますか?

最近、一部のネットワーク構成に問題があり、解決するのが難しかったです。

こうなりそうですねたくさんどの方向に車両が通過できないかを知ると、診断が簡単になります。要求のどれも応答を受け取らず、pingping要求パケットが通過して応答が失敗したのか、それとも要求自体が失敗したのか疑問に思います。

明確に言えば、標準ユーティリティは、あるシステムからパケットを送信し、同じシステムに応答パケットを再受信するのと似ており、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特定のポートレベルで使用されます。

関連情報