我有一台 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