用于在 ip 规则/ ip 路由中测试 fwmark 的命令行实用程序?

msu*_*mme 8 ip iptables testing iproute2

我正在尝试找到一种工具,它可以让我找到进入设备的数据包将采用的路由,并且具有特定的目标地址。

ip route get 将完成我正在寻找的大部分工作。

问题是我想测试当数据包在相当复杂的路由环境中具有 fwmark 时是否找到了正确的路由。

理想的工具将允许使用 fwmark(或其他属性)欺骗通用数据包,并且可以通过整个 IpTables 链和 ip route / ip 规则集发送它,或者只是找到将返回的路由。

我希望能够运行一个命令来验证一组特定的路由是否按预期工作。

最低要求类似于ip route get但具有 fwmark 支持。

虽然,在这一点上,任何测试路由实用程序的建议将不胜感激!随着路线的堆积,它变得相当复杂。

Ant*_*lov 9

您可以在“ip route get”命令中使用标记选项。您也可以在此命令中指定源地址和输入输出接口。

例子:

ip route get 8.8.8.8 mark 0x20 - 检查标记数据包到 8.8.8.8 地址的路由。

ip route get 8.8.8.8 from 192.168.0.200 iif eth1- 检查从 192.168.0.200 主机通过 eth1 接口接收的转发数据包的路由。在这种情况下,如果“发件人”地址不在此主机(非本地)上,则应指定 iif。

ip route get 8.8.8.8 from 192.168.0.100 iif eth1 mark 0x30 - 像前面的例子,但指定了标记。

要通过 netfilter 规则集测试数据包的路径,您可以使用 TRACE 目标和 scapy 来构建所需的数据包。