Не работает цепочка mangle в iptables
Здравствуйте!
Пытаюсь промаркировать входящий трафик для заворачивания его
на тот-же шлюз с которого он поступил.
Тема давно обсуждалась и не раз, но у меня почему-то правила в
iptables не отрабатывают.
Вот скрипт
TBL1=«prov1»
TBL2=«prov2»
IP1=«a1.a2.a3.a4»
IP2=«b1.b2.b3.b4»
P1_NET=«a1.a2.a3.0/24»
P2_NET=«b1.b2.b3.0/24»
IPTABLES=«/sbin/iptables»
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
echo «1» > /proc/sys/net/ipv4/ip_forward
ip route flush table $TBL1 > /dev/null 2>&1
ip route flush table $TBL2 > /dev/null 2>&1
ip rule delete fwmark 1 > /dev/null 2>&1
ip rule delete fwmark 2 > /dev/null 2>&1
ip route flush cache
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F PREROUTING -t mangle
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t mangle -A PREROUTING -i eth2 -j CONNMARK --set-mark 1
$IPTABLES -t mangle -A PREROUTING -i eth1 -j CONNMARK --set-mark 2
$IPTABLES -t mangle -A OUTPUT -m state --state new -j CONNMARK --set-mark 0
$IPTABLES -t mangle -A OUTPUT -j CONNMARK --restore-mark
ip rule add fwmark 1 table $TBL1
ip rule add fwmark 2 table $TBL2
ip route add $P1_NET dev eth2 table $TBL1 > /dev/null 2>&1
ip route add default via $IP2 $TBL1 > /dev/null 2>&1
ip route add $P2_NET dev eth1 table $TBL2 > /dev/null 2>&1
ip route add default via $IP1 table $TBL2 > /dev/null 2>&1
Вот ошибка которая выдается на экран
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
Смотрю iptables -L -nvx -t mangle
таблица mangle пустая
правила rule и route отрабатывают
что посмотреть, где ошибка?