Перейти к содержимому
Калькуляторы

Прошу помочь с iproute простая задача

Задача:

 

Дано 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 одна и та же.

 

Чувствую, что решение на поверхности, но понять не могу. Прошу помощи. Заранее спасибо, что уделили мне свое время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем здесь iproute? Трафик от 192.168.1.10 однозначно уйдёт через eth1, поскольку маршрут на этот адрес один-единственный. Маршрутизация по какому-то критерию нужна, если выбор маршрута неоднозначен, у Вас всё должно работать и без этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

поскольку маршрут на этот адрес один-единственный.

Маршрута для сети 192.168.1.0/24 два !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А, в самом деле, не так прочёл :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то типо такого:

 

# 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

 

??

Изменено пользователем V1talya

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то типо такого:

 

# 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 пометить можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

$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, но я с ним слабо знаком, с уверенностью говорить не могу.

А зачем вообще отправлять через тот же интерфейс, что и получено?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А зачем вообще отправлять через тот же интерфейс, что и получено?

интерфейсы имеют различные физические характеристики (скорость).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

$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, но я с ним слабо знаком, с уверенностью говорить не могу.

А зачем вообще отправлять через тот же интерфейс, что и получено?

Вообще у меня "похожая" схема работает... и нормально :)

( не учел нат, у меня при подкл. к данному серверу такая схема работает )

 

.
Расскажешь потом как сделал.
Изменено пользователем V1talya

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а нельзя на интерфейсы повесить две /30 сети и роутить по человечески?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а нельзя на интерфейсы повесить две /30 сети и роутить по человечески?

Так вроде на интерфейсах и так /30 сетки

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

виноват, не досмотрел.

 

Ну тогда в условии убрать -s 192.168.0.2, оставьте только интерфейс, с которого идет....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я такое делал. Как-то так:

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.