私は実験を実行するためにUbuntu 16.10を使用しています。私は使うPython スケープスイッチを介して接続されたシステムに2つのパケットを送信します。最初のパケットは、2番目のシステムのncアプリケーションが受信した通常のTCP SYNパケットであり、対応するSYN / ACKパケットを見ることができます。しかし、私が送信した2番目のパケットにはIPオプションが含まれていました。緩いソースルーティング。 2番目のパケットは他のシステムで受信されています(wiresharkで見られます)、アプリケーションに転送されないため、SYN / ACKは送信されません。なぜこれが起こるのか知りたいです。
これは私が使用しているscapyコードです:
パケット1:
pkt1=IP(src="10.0.0.2", dst="10.0.0.3")/TCP(sport=random.randint(54100,54300),dport=23800)
send(pkt1)
パケット2:
pkt2=IP(src="10.0.0.2", dst="10.0.0.3",options=IPOption('\x83\x03\x10'))/TCP(sport=random.randint(54100,54300),dport=23800)
send(pkt2)
答え1
ソースルーティングパケットはデフォルトで許可されていない可能性があります。net.ipv4.conf.eth0.accept_source_route
2台目のコンピュータの設定を確認します(インターフェイスを設定に変更)。eth0
Wiresharkを使用してパケットを表示できますが、カーネルによってブロックされる可能性があります。
以下を使用して、ソースルーティングパケットを許可するように動作を変更できます。
# /sbin/sysctl -w net.ipv4.conf.all.accept_source_route=1
この機能を有効にするにはセキュリティリスク