Всем привет,
Вообщем:
Имеется сервер сетка с двумя рутерами. Задача моя состоит в том, что надо поставить комп (уже стоит Linux SuSE 9.1 с iptables 1.2.9 и iproute2) внутри сетки, который в зависимости от портов переправлял пакеты или на один или на другой рутер. Задача наверно осложняется тем, что этот самый linux-комп имеет одну единственную сетевую карту. Сразу говорю, в задачу не входит запрет использования рутером. Т.е. ничего страшного, если какой-то умник напрямую будет обращятся к рутеру, а не через linux-комп. Т.е. на этом не стоит заострять внимание.
Вообщем: допустим, что рутер1 имеет внутренний адрес 192.168.0.1, рутер2 192.168.0.2 и linux-комп 192.168.0.20. Причем по дефолту в linux-комп рутер установлен рутер1. Задача перевести все запросы по порту 80 на рутер2.
Т.е. делаю след.:
1. Разрешаю рутинг
echo "1" > /proc/sys/net/ipv4/ip_forward
2. Маркирую все пакеты на порт 80
iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 80 -j MARK --set-mark 1
3. Создаю правила для помеченных пакетов
echo 202 www.out >> /etc/iproute2/rt_tables
ip rule add fwmark 2 table www.out
ip route add default via 192.168.0.2 dev eth0 table www.out
ip route flush cache
В итоге получаю однако, что все пакеты, в том числе и с порта 80 идут все-равно на рутер1, а не на 2.
Где моя ошибка?
За помощь заранее благодарен!
1.