复制数据包
从 Linux 内核 4.3 开始,你可以从 ip
和 ip6
地址族复制数据包到其它目的地址。你可能想用这个特性来把数据包转发到其它远程连接。
下面的规则把所有的数据包复制到 172.20.0.2
:
% nft add rule mangle prerouting dup to 172.20.0.2
你也可以让所有的 dup
语句都路由到给定的设备:
% nft add rule mangle prerouting dup to 172.20.0.2 device eth1
上面的规则指明复制的数据包必须通过 eth1
。不要忘了你需要在 eth1
上能路由到 172.20.0.2
,否则它就不会工作。
你也可以把 dup
语句和 maps 组合起来使用,例如:
% nft add rule mangle prerouting dup to ip saddr map { 192.168.0.1 : 172.20.0.2, 192.168.0.1 : 172.20.0.3 }
在上面的规则里,用于复制的数据包的目的地址取决于源 IPv4 地址。