复制数据包

从 Linux 内核 4.3 开始,你可以从 ipip6 地址族复制数据包到其它目的地址。你可能想用这个特性来把数据包转发到其它远程连接。

下面的规则把所有的数据包复制到 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 地址。