iptables和CONNMARK在Ubuntu 12.04上

我有一个多宿主主机上的Ubuntu 12.04。 我正在尝试使用iptables将进入某个IP地址的HTTP数据包重新路由到另一个IP地址。

从谷歌search,我认为有必要在多宿主主机使用CONNMARK标记传入的连接,以便相关的传出数据包可以匹配。

但是,当我尝试使用“-j CONNMARK”这个短语时,我被告知没有这样的连锁。

我如何在Ubuntu 12.04上使用'-j CONNMARK'?

您必须加载connmark内核模块:

 sudo modprobe ipt_connmark 

检查模块是否已加载:

 lsmod | grep connmark 

简单的重新路由stream量不需要CONNMARK; 而是用一对DNAT / SNAT来做,例如:

 -t nat -A PREROUTING -d 1.2.3.4 -j DNAT --to-destination 5.6.7.8 -t nat -A POSTROUTING -d 5.6.7.8 -j SNAT --to-source 5.6.7.9 

哪里

  • 1.2.3.4是人们连接的IP地址
  • 5.6.7.8是实际的目标
  • 5.6.7.9是通过其达到目标的接口的IP