
MTR (ICMP ではなく TCP を使用) を使用すると、通常の ICMP フラッド制限を実行する 1 つのルーターでパケット損失が継続的に発生します。UDP でも同じですが、損失は依然として発生します。
ただし、TCPing.exe、hping3、PRTG QOS などの他のツールを使用すると、損失はほとんど発生しません (通常の ICMP 損失を除く)。
MTR が他のツールとは一貫して異なる結果を示すのはなぜでしょうか?
ホップ 2 は ICMP フラッド制限を備えた Cisco ルータです。MTR のミリ秒時間を確認します。
mtr -P 445 -T -rn 172.31.xx.5
Start: 2020-09-02T11:54:26+0800
HOST: xxxx Loss% Snt Last Avg Best Wrst StDev
1.|-- 172.20.x.254 0.0% 10 0.6 0.7 0.5 1.9 0.4
2.|-- 172.18.x.239 10.0% 10 7014. 3339. 0.2 7018. 3506.6
3.|-- 172.31.x.32 0.0% 10 4.3 2.4 2.0 4.3 0.7
4.|-- 172.18.x.211 0.0% 10 2.4 2.5 2.4 2.6 0.0
5.|-- 172.31.x.5 0.0% 10 81.4 81.7 81.4 82.5 0.4
ホーピング:
sudo hping3 -q --fast -n -c 100 172.31.x.5 -p 445 -T
HPING 172.31.x.5 (ens160 172.31.x.5): NO FLAGS are set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=172.20.x.254
hop=1 hoprtt=0.9 ms
hop=2 TTL 0 during transit from ip=172.18.x.239
hop=2 hoprtt=0.8 ms
hop=3 TTL 0 during transit from ip=172.31.x.32
hop=3 hoprtt=2.8 ms
hop=4 TTL 0 during transit from ip=172.18.x.211
hop=4 hoprtt=2.8 ms
--- 172.31.x.5 hping statistic ---
100 packets transmitted, 100 packets received, 0% packet loss
round-trip min/avg/max = 0.8/78.7/86.4 ms
TCPing.exe:
./tcping -i .1 -p 445 -n 50 172.31.x.5
Probing 172.31.x.5:445/tcp - Port is open - time=81.423ms
Probing 172.31.x.5:445/tcp - Port is open - time=81.375ms
Probing 172.31.x.5:445/tcp - Port is open - time=81.246ms
Ping statistics for 172.31.x.5:445
50 probes sent.
50 successful, 0 failed. (0.00% fail)
Approximate trip times in milli-seconds:
Minimum = 81.246ms, Maximum = 85.690ms, Average = 81.628ms
答え1
使用した他のツールについてはわかりませんが、mtr は TCP を使用する場合、宛先に TCP SYN パケットを送信し、宛先に到達するまで TTL を 1 から増加させます。そのため、パス内のルータは、パケットが TTL 0 に到達した場合でも、ICMP タイプ 11 - Time-to-live を超過しました を返信します。ルータでコントロール プレーン ポリシングが有効になっている場合、これがルータでの認識された損失の原因である可能性があります。
興味があれば、ここでコントロール プレーン ポリシングについて少し読んでみてください。https://nwmichl.net/2021/02/03/coping-with-copp-why-icmp-drops-happen/