[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: несколько провайдеров, локальная сеть и доступ к "веб сайту" из Интернет



27.12.2013 01:07, Mikhail A Antonov пишет:
On 26/12/13 21:48, Скубриев Владимир wrote:
Подскажите пожалуйста как быть. С несколькими провайдерами еще не разу не сталкивался.
Суть проблемы гораздо шире. Но я на примере попытаюсь спросить конкретную вещь.

Предположим есть сервер, к которому подключены несколько провайдеров.
<...>
Но я не понимаю, что я должен сделать, чтобы работающий на сервере сайт был доступен из Интернет через всех подключенных провайдеров.
Используй правила iproute2.

Единоразово добавь в файл /etc/iproute2/rt_tables две строки
{
200 ISP1
201 ISP2
}
(Без скобок. Просто в конец допиши.)

Затем при подключении выполняй:

ip route add default dev ppp50 table ISP1
ip route add <IP_ppp50> dev ppp50  proto kernel  scope link  src
<IP_ppp50> table ISP1
ip rule add oif ppp50 table ISP1

ip route add default dev ppp60 table ISP2
ip route add <IP_ppp60> dev ppp60  proto kernel  scope link  src
<IP_ppp60> table ISP2
ip rule add oif ppp60 table ISP2

Я конкретно эти скрипты не проверял, но должно работать.

Эффект будет такой - к какому IP обратились - с того и ушёл ответ. И
ушёл через правильного провайдера.

Кстати, скриптам, которые выполняются после ppp-подключения, IP
передаётся в параметрах. Его не надо выцеплять.

С доступом в Интернет у клиентов ЛВС проблем нет:

Эти два правила для маршрута по умолчанию решают все мои проблемы, но только для "провайдера по умолчанию":

iptables -t nat -A POSTROUTING -o $INETNAME -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Напиши один раз
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
и больше не трогай.
Второе правило работает независимо от интерфейса -- и его не трогай.
Вообще говоря, и без него обычно всё работает.

А вообще, если у тебя одновременно включено оба прова сразу - можно
сделать псевдобалансировку средствами того же iproute2.

ip route add default scope global nexthop dev ppp50 weight 1 \
         nexthop dev ppp60 weight 1

Таким образом дашь нагрузку на два канала сразу при некоторых условиях
можешь получить сложение скоростей. Например, при использовании
торрентов. Даже при обычном скачивании двух файлов с двух разных
серверов, при условии что звёзды сложатся так, что первый файл начнёт
качаться через первый канал, а второй - через второй.
Я как-то делал такой фокус с тремя 3G-модемами и небольшим офисом.
Хочу сразу предостеречь - эта "балансировка" не даёт отказоустойчивости.
За этим следи сам.


Спасибо.

--
--
Faithfully yours,

Vladimir Skubriev


Reply to: