6

Python で手動 MTU ディスカバリーを実装するにはどうすればよいですか?

から: https://networkengineering.stackexchange.com/a/28988/23983

ターゲットに ping を送信します。この例では、Google の DNS サーバー (8.8.8.8) を使用します。ping の DF ビットをオンに設定して、ping が断片化されないようにします。パケット サイズを大きな数値または標準 MTU の 1500 に設定します。一部の ping 実装では、ペイロードのみのサイズを設定することに注意してください。つまり、8 バイトの ICMP ヘッダーと 20 バイトの IP ヘッダーを考慮する必要があります。

4

2 に答える 2

1

Pythonで生のものを送信すると、scapyの使用を検討しています。

ping メッセージの送信方法については、次を参照してください。

http://www.secdev.org/projects/scapy/doc/usage.html#icmp-ping

DF フラグを設定するには:

IP(flags='DF')

断片化をシミュレートできるように特定のサイズを調整する方法については、次を参照してください。

パケットにペイロードを追加する (scapy)

すべてを一緒に入れて:

data = "x" * 1473
ans,unans = sr(IP(dst="<target_ip>", flags='DF' )/ICMP() / Raw(load=data))

実際にこれらのものを生で作成することにそれほど興味がない場合、この質問は次のようなものです: How to find mtu value of network through code(in python)?

于 2016-06-02T07:27:27.327 に答える