The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"2 интернет канала... "
Отправлено narayan, 28-Июл-10 18:12 
Доброго дня

Тема банальная: дается 2 интернет канала от 2 провайдеров. Нужно часть народа пустить через один, часть через второй по всяким разным условиям. Но потыкавшись, попробовав нифига не вышло
Знаю, тема и поднималась неоднократно, но как-то...

Уже сделал банально, смотря вот на это https://www.opennet.ru/base/net/debian_multilink.txt.html аще копипастом (ну тока поменяв переменные на нужные значения), но всё равно одна и та же ситуация, а именно такая:
исходящие пакеты (смотрю tcpdump 'ом)  уходят куда надо (например через провайдера P1), и ответы от удаленного сервера приходят на интерфейс прова P1, но до получателя ответы не доходят
НО, если в таблицу main добавить маршрут по умолчанию через этого же провайдера P1
ip route add default dev eth0 via 1.1.1.1
сразу начинает всё работать, но только для правил этого провайдера (с правилами для P2, та же самая ситуация - ответы до получателя не доходят)
Аналогично для провайдера P2
Куда копать?..

Ubuntu server 9.10

Вот конфиг:

IP_LOCAL="10.10.1.99" # адрес нашего маршрутизатора в локальной сети.
IP_INET1="1.1.1.10" # адрес нашего маршрутизатора в сети первого провайдера.
IP_INET2="2.2.2.10" # адрес нашего марщрутизатора в сети второго провайдера.

IF_LOCAL="eth1" # имя интерфейса на локальную сеть
IF_INET1="eth0" # имя интерфейса на первого провайдера.
IF_INET2="eth3" # имя интерфейса на второго провайдера.

NET_LOCAL="10.10.0.0/16" # локальная сеть.
NET_INET1="1.1.1.0/24" # адрес сети в которой гейт нашего первого провайдера.
NET_INET2="2.2.2.0/24" # адрес сети в которой гейт нашего второго провайдера.
NET_SUB1="10.10.10.0/24" # подсеть пользователей на первого провайдера
NET_SUB2="10.10.1.0/24" # подсеть пользователей на второго провайдера

GW1="1.1.1.1" # гейт первого провайдера.
GW2="2.2.2.1" # гейт второго провайдера.


ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1 table P1
ip route add $NET_LOCAL dev $IF_LOCAL table P1
ip route add $NET_INET2 dev $IF_INET2 table P1
ip route add 127.0.0.0/8 dev lo   table P1
ip route add default via $GW1 table P1

ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2 table P2
ip route add $NET_LOCAL dev $IF_LOCAL table P2
ip route add $NET_INET1 dev $IF_INET1 table P2
ip route add 127.0.0.0/8 dev lo   table P2
ip route add default via $GW2 table P2

ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1
ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2

ip rule add from $IP_INET1 table P1
ip rule add from $IP_INET2 table P2
ip rule add fwmark 10 table P1
ip rule add fwmark 11 table P2

ip route flush cache

iptables -t mangle -A PREROUTING -s $NET_SUB1 ! -d  $NET_LOCAL -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s $NET_SUB2 ! -d  $NET_LOCAL -j MARK --set-mark 11

iptables -t nat -A POSTROUTING -m mark --mark 10 -j MASQUERADE
iptables -t nat -A POSTROUTING -m mark --mark 11 -j MASQUERADE


Заранее благодарен

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру