我有两台服务器通过虚拟链路(实际上是 4in6 隧道)连接在一起。一台是 OpenVZ VPS 服务器,它在 venet 接口上配置了一个未使用的 IPv4 地址(无法桥接),我想将此 IPv4 转移到另一台服务器。
换句话说,我想将两个接口链接在一起:
- 来自 venet0 接口(备用 IPv4)的所有 IPv4 流量都应转发到 ip6tnl1 接口
- 从 ip6tnl1 接口返回的所有 IPv4 流量都应转发到 venet0
您知道我该如何设置它吗,同时考虑到 venet 接口无法桥接?
谢谢
答案1
我想我可以用 iptables 来做:
# packets received from venet0 are sent to ip6tnl1
iptables -t mangle -A PREROUTING -i venet0 -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING --mark 11 -o ip6tnl1
# packets received from ip6tnl1 are sent to venet0
iptables -t mangle -A PREROUTING -i ip6tnl1 -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING --mark 12 -o venet0
一些很好的启发:iptables-目标是将数据包路由到特定接口?
这些 iptables 规则的唯一问题是,当来自 venet0 的数据包离开 PREROUTING 链时,它将被发送到用户空间,而不是转发并由 POSTROUTING 处理