Linux:提供单个 IP 地址(将本地 IP 地址路由到另一个接口)

Linux:提供单个 IP 地址(将本地 IP 地址路由到另一个接口)

我有两台服务器通过虚拟链路(实际上是 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 处理

相关内容