根据接口在 iptables 上设置标记

根据接口在 iptables 上设置标记

我有一台 Ubuntu 10.04 机器,带有两个以太网接口:eth0(WAN)eth1(LAN)

我已经使用以下命令配置了 NAT:

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE 

现在我想为来自 eth1 的数据包添加数据包标记,以便我可以根据标记进行流量整形。我需要哪些 iptables 命令来执行此操作?

我似乎需要类似的东西

   sudo iptables -A FORWARD -i eth1 -t mangle -j MARK --set-mark 3

但我不确定。我想确保这个标记在 nat 之后仍然存在,这样我就可以使用 tc 检查从 eth0 发出的数据包,以进行流量整形。

答案1

sudo iptables -A PREROUTING -i eth1 -t mangle -j MARK --set-mark 3

您希望在数据包进入路由器之前对其进行标记,以便使用 PREROUTING。另请参阅http://lartc.org/howto/lartc.netfilter.html

相关内容