2 канала в интернет

Автор: bogdanr Дата: 05.10.2007 20:18 Поиогите разобраться. Не могу настроить маршрутизацию из локалки через шлюз
на линуксе, подключенному к двум провайдерам.

Ситуция такая

Роутер на ASPLinux 9.2

2 канала в интернет

3 сетевые карты
eth0 - 192.168.5.125 gw 192.168.5.1
eth1 - 192.168.0.1
eth2 - 192.168.1.2 gw 192.168.1.1

На eth0 - 1-й провайдер
На eth2 - 2-й провайдер
На eth1 - докалка

Задача организовать доступ из локальной сети в МИР через 2-го провайдера (eth2),
а через 1-го (eth0) только к его ресурсам (193.x.x.x).

Делаю следующее:

Правила в iptables

маркирую пакеты
iptables -A PREROUTING -t mangle -i eth1 -s 192.168.0.0/24 -d 193.x.x.x/24 -j MARK --set-mark 2

маскирую эти пакеты под 192.168.5.125
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -d 193.x.x.x/24 -j SNAT --to-source 192.168.5.125

остальные под 192.168.1.2
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j SNAT --to-source 192.168.1.2

Потом добавляю талицу NAVY в /etc/iproute2/rt_tables

Добавляю правило в NAVY
ip rule add fwmark 2 table NAVY

и шлюз для таблицы NAVY
ip route add default via 192.168.5.1 dev eth0 table NAVY

В итоге ВСЕ пакеты все равно из локалки идут через 192.168.1.1

Помогите кто сталкивался с такой задачей.
Заранее спасибо.
Re: 2 канала в интернет 06.10.2007 04:37Bircoph > iptatables

надеюсь, это опечатка в посте?

А если
ip route flush cache
в конце добавить? ;-)
Re: 2 канала в интернет 06.10.2007 12:04bogdanr Bircoph писал(а):

> > iptatables
> надеюсь, это опечатка в посте?
Да, ачипятка. Свой пост я уже поправил.
> А если
> ip route flush cache
> в конце добавить? ;-)
Пробовал. Не помогает.

Попутно вопрос. iproute2 обрабатывает пакеты после того как они пройдут ВСЕ
цепочки iptables?
Re: 2 канала в интернет 07.10.2007 06:56Bircoph > iproute2 обрабатывает пакеты после того как они пройдут ВСЕ
> цепочки iptables?

Нет, iproute2 работает в блокe routing decision на выходе:
[iptables-tutorial.frozentux.net]

Странно, я не вижу у вас ошибки, А что говорит
iptables -t mangle -L -v -n
?

Там хоть счётчик отмеченных пакетов не нулевой?
И что в итоге в ip route (полностью)?
Re: 2 канала в интернет 07.10.2007 17:11bogdanr Фухх! Заработало! Улыбка
Большое СПАСИБО Bircoph за
> Там хоть счётчик отмеченных пакетов не нулевой?

На счетчики я как-то внимания не обратил.
Глянул iptables -L -v -t mangle
Правила есть, ну и ладно, т.е. не работало из-за iptables
Правила читались iptables-restore из /etc/sysconfig/iptables (об этом я не писал в первом посте).
Прибил маркировку пакетов в /etc/sysconfig/iptables
Написал скриптик и добавил его вызов в /etc/rc.d/rc.local
Теперь все работает как надо.

Еще раз спасибо!
Re: 2 канала в интернет 07.10.2007 19:01Bircoph > Большое СПАСИБО Bircoph за

Да не за что, люблю грамотно поставленные вопросы ;-).

> Написал скриптик и добавил его вызов в /etc/rc.d/rc.local

Лучше service iptables save использовать, тогда он сам
сохранит правила, которые при старте сервиса автоматически
загрузятся. Можно ещё автосохранение правил при остановке в
/etc/sysconfig/iptables-config включить, но я бы этого делать
не стал, т.к. можно поэкспериментировать и забыть про это.
Re: 2 канала в интернет 30.10.2007 17:24John Здравствуйте !

Проконсультируйте, плиз, по похожей задаче. Есть машинка с ASPLinux 11.2. На ней установлен squid и iptables и две сетевые карты.Одна в локалку, другая в Интернет. Через iptables организовано перенаправление портов на внешние POP и SMTP ресурсы. Все работает.
Есть еще резервный канал для выхода в Интернет от другого провайдера, за который все равно платится абонентская плата. Задача в том, чтобы воткнуть третью сетевую карту и разделить трафик. Например весь почтовый трафик оставить как есть, а все остальное перенаправить через второго провайдера.
Как разделить трафик по портам, например, я понимаю. С маршрутизацией тоже более-менее . Не возьму в толк, как при этом будет работать squid , так как выходной интерфейс в настройках не указывается.

Спасибо.
С уважением.
Re: 2 канала в интернет 31.10.2007 17:17bogdanr Сделать можно так:

1. Добавить 3-ю сетевую карту и сделать шлюз по-умолчанию через нее
(route add default gw <ip шлюза второго провайдера>;-)

2. Пакеты, идущие на 110 и 25 порты промаркировать и с помощью iproute2
перенаправить их на 1-ю сетевую карту (которая у вас уже есть)

Таким образом SQUID у вас будет работать как и раньше, только POP и SMTP пойдут
через старую (1-ю) сетевую карту.
Но это все равно, т.к. SQUID работает только с HTTP, FTP и GOPHER протоколами.

Ну, где-то так.
Удачи.
Re: 2 канала в интернет 01.11.2007 14:09Grinja [www.linuxetc.ru]

вот тут неплохо описано правда для Gentoo
RSS-материал