Доброго всем времени суток.
Задумал сделать балансировку соединений между двумя провайдерами, отталкиваясь от мануала http://forum.interzet.ru/index.php?showtopic=24998
Вот что имею:
[root@localhost ~]# iptables -t mangle -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
CONNMARK icmp -- 0.0.0.0/0 0.0.0.0/0 CONNMARK set 0x1
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
[root@localhost ~]# ip r s
111.111.111.208/29 dev eth0 proto kernel scope link src 111.111.111.210
222.222.222.0/24 dev eth1 proto kernel scope link src 222.222.222.2
169.254.0.0/16 dev eth1 scope link
default via 111.111.111.209 dev eth0
[root@localhost ~]# ip r s table 101
111.111.111.208/29 dev eth0 proto kernel scope link src 111.111.111.210
222.222.222.0/24 dev eth1 proto kernel scope link src 222.222.222.2
169.254.0.0/16 dev eth1 scope link
default via 222.222.222.1 dev eth1
[root@localhost ~]# ip ru s
0: from all lookup local
32765: from all fwmark 0x1 lookup 101
32766: from all lookup main
32767: from all lookup default
[root@localhost ~]# ip route flush cache
[root@localhost ~]# traceroute www.ru
traceroute to www.ru (194.87.0.50), 30 hops max, 40 byte packets
1 111.111.111.209 (111.111.111.209) 1.020 ms 1.091 ms 1.199 ms
2 .......
Как видно, от наличия CONNMARK маршрут почему-то не изменяется. Если же писать MARK, то пакеты начинают ходить туда, куда им надо, но у MARK нет необходимого параметра --restore-mark
Подскажите, пожалуйста, почему может не работать CONNMARK, и как вообще проверить наличие маркировки в пакете?