У меня есть машина Ubuntu 10.04 с двумя интерфейсами Ethernet: 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, чтобы я мог проверять пакеты, исходящие по eth0, с помощью tc для формирования трафика.
sudo iptables -A PREROUTING -i eth1 -t mangle -j MARK --set-mark 3
вы хотите, чтобы пакеты были отмечены до того, как они попадут в маршрутизатор, чтобы вы могли использовать PREROUTING. смотри также http://lartc.org/howto/lartc.netfilter.html