_INF_ Опубликовано 1 апреля, 2010 · Жалоба Задача: Дано 3 сетевых адаптера eth0 - смотрит в Internet, имеет ip адрес 10.10.10.1 и является NAT-ом для клиентов сети 192.168.1.0/24, ip адрес 10.10.10.2 является шлюзом по умолчанию. eth1 - 192.168.0.1 255.255.255.252, через данный интерфейс роутится сеть 192.168.1.0/24 eth2 - 192.168.0.5 255.255.255.252, тоже через данный интерфейс роутится сеть 192.168.1.0/24 хочется чтобы трафик клиентов возвращался через тот же сетевой интерфейс, что и пришел. т е например запрос клиента 192.168.1.10 пришел на интерфейс eth1 "занатился", добежал до однокласники.ru и вернулся в NAT, далее ушел обратно в eth1. LARTC , в части главы 4 читал, но там несколько иная ситуация, у меня сеть на интерфейсе eth1 и eth2 одна и та же. Чувствую, что решение на поверхности, но понять не могу. Прошу помощи. Заранее спасибо, что уделили мне свое время. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 1 апреля, 2010 · Жалоба Зачем здесь iproute? Трафик от 192.168.1.10 однозначно уйдёт через eth1, поскольку маршрут на этот адрес один-единственный. Маршрутизация по какому-то критерию нужна, если выбор маршрута неоднозначен, у Вас всё должно работать и без этого. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_INF_ Опубликовано 1 апреля, 2010 · Жалоба поскольку маршрут на этот адрес один-единственный. Маршрута для сети 192.168.1.0/24 два ! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 1 апреля, 2010 · Жалоба А, в самом деле, не так прочёл :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
V1talya Опубликовано 1 апреля, 2010 (изменено) · Жалоба Что-то типо такого: # route ip rule add fwmark 3 table table1 ip rule add fwmark 4 table table2 ip route add default via 192.168.0.1 table table1 ip route add default via 192.168.0.5 table table2 # $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.1/32 -o eth2 -j MARK --set-mark 3 $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.5/32 -o eth1 -j MARK --set-mark 4 ?? Изменено 1 апреля, 2010 пользователем V1talya Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_INF_ Опубликовано 1 апреля, 2010 · Жалоба Что-то типо такого: # route ip rule add fwmark 3 table table1 ip rule add fwmark 4 table table2 ip route add default via 192.168.0.1 table table1 ip route add default via 192.168.0.5 table table2 # $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.1/32 -o eth2 -j MARK --set-mark 3 $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.5/32 -o eth1 -j MARK --set-mark 4 ?? Спасибо уважаемый, совсем забыл про то, что любой трафик через iptables пометить можно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 1 апреля, 2010 · Жалоба $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.1/32 -o eth2 -j MARK --set-mark 3$IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.5/32 -o eth1 -j MARK --set-mark 4 Трафика с 0.1 и 0.5 быть не должно, поскольку эти адреса висят на интерфейсах роутера.Лично я не вижу очевидного способа реализовать сабж. Возможно, поможет conntrack в iptables, но я с ним слабо знаком, с уверенностью говорить не могу. А зачем вообще отправлять через тот же интерфейс, что и получено? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_INF_ Опубликовано 1 апреля, 2010 · Жалоба А зачем вообще отправлять через тот же интерфейс, что и получено? интерфейсы имеют различные физические характеристики (скорость). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
V1talya Опубликовано 1 апреля, 2010 (изменено) · Жалоба $IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.1/32 -o eth2 -j MARK --set-mark 3$IPT -t mangle -A OUTPUT -p ALL -s 192.168.0.5/32 -o eth1 -j MARK --set-mark 4 Трафика с 0.1 и 0.5 быть не должно, поскольку эти адреса висят на интерфейсах роутера.Лично я не вижу очевидного способа реализовать сабж. Возможно, поможет conntrack в iptables, но я с ним слабо знаком, с уверенностью говорить не могу. А зачем вообще отправлять через тот же интерфейс, что и получено? Вообще у меня "похожая" схема работает... и нормально :)( не учел нат, у меня при подкл. к данному серверу такая схема работает ) .Расскажешь потом как сделал. Изменено 1 апреля, 2010 пользователем V1talya Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 1 апреля, 2010 · Жалоба а нельзя на интерфейсы повесить две /30 сети и роутить по человечески? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_INF_ Опубликовано 2 апреля, 2010 · Жалоба а нельзя на интерфейсы повесить две /30 сети и роутить по человечески? Так вроде на интерфейсах и так /30 сетки Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 2 апреля, 2010 · Жалоба виноват, не досмотрел. Ну тогда в условии убрать -s 192.168.0.2, оставьте только интерфейс, с которого идет.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Алексей Андриянов Опубликовано 2 апреля, 2010 · Жалоба Я такое делал. Как-то так: iptables -t mangle -A PREROUTING -i eth0 -m connmark --mark 1 -j CONNMARK --restore-mark iptables -t mangle -A PREROUTING -i eth0 -m connmark --mark 2 -j CONNMARK --restore-mark iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-xmark 1 iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-xmark 2 ip rule add fwmark 1 table to_eth1 prio 100 ip rule add fwmark 2 table to_eth2 prio 100 ip route add 192.168.1.0/24 via 192.168.0.2 table to_eth1 ip route add 192.168.1.0/24 via 192.168.0.6 table to_eth2 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...