Ubuntu 16.10 中删除了 IP 选项

Ubuntu 16.10 中删除了 IP 选项

我正在使用 Ubuntu 16.10 来运行实验。我用Python scapy将两个数据包发送到通过交换机连接的机器。第一个数据包是一个普通的 TCP SYN 数据包,由第二台机器上的 nc 应用程序接收,我可以看到相应的 SYN/ACK 数据包。但是,我发送的第二个数据包包含一个 IP 选项松散源路由。第二个数据包在另一台机器上收到(我可以在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更改界面)第二台计算机上的设置。eth0即使您能够使用wireshark看到数据包,它也可能被内核阻止。

您可以使用以下命令更改行为以接受源路由数据包

# /sbin/sysctl -w net.ipv4.conf.all.accept_source_route=1

请注意,启用此功能是安全风险

相关内容