The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблемы с network балансировкой Linux."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Проблемы с network балансировкой Linux."  +/
Сообщение от crusader_1 (ok) on 16-Ноя-12, 18:25 
Доброго времени суток!

Есть 2 интернет канала, от двух разных провайдеров , которые подымаются на Linux Debian 6 в виде ppp0 и ppp1 , я настроил балансировку с помощью ip route2.
Оба соединения пингуются извне , изнутри сессии делятся между 2мя каналами. Т.е. одна сессия уходит по одному каналу, а следующая по второму... третья опять по первому и.т.д.
Например traceroute ya.ru первый раз пойдет по одному каналу а след. раз по второму.

Проблема : При подключении извне (например rdp или вебклиент) соединение устанавливается, но проходит какое то время и оно становится недоступным, пинги при этом идут. Через некоторое время связь восстанавливается. Потом опять пропадает.

Как я догадываюсь, что это происходит потому что роутер "забывает" по какому каналу была установлена сессия и начинает слать пакеты по другому каналу. Не хватает широты видения для понимания как решить проблему.

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

(есть 2 таблицы T1 и T2)
роуты :
ip route add 84.201.224.0\20 dev ppp0 src 84.201.228.158 table T1
ip route add default via 84.201.225.100 table T1
ip route add 81.25.32.0\20 dev ppp1 src 81.25.46.69 table T2
ip route add default via 81.25.33.1 table T2
ip route add 84.201.224.0\20 dev ppp0 src 84.201.228.158
ip route add 81.25.32.0\20 dev ppp1 src 81.25.46.69
ip rule add from 84.201.228.158 table T1
ip rule add from 81.25.46.69 table T2
ip route add 176.9.145.115 via 81.25.46.69
ip route add default scope global nexthop via 84.201.225.100 dev ppp0 weight 1 nexthop via 81.25.33.1 dev ppp1 weight 1

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблемы с network балансировкой Linux."  +/
Сообщение от PavelR (ok) on 16-Ноя-12, 19:51 

>При подключении извне (например rdp или вебклиент) соединение устанавливается, но
>проходит какое то время и оно становится недоступным

Если из интернета подключались к сервису вашего сервера, то так быть не может.
Если из интернета подключались к сервису, куда  ваш сервер пробрасывает соединение (RDP), то так быть не может, потому что указанных настроек не хватит для нормальной работы.


> Как я догадываюсь, что это происходит потому что роутер "забывает" по какому
> каналу была установлена сессия и начинает слать пакеты по другому каналу.
> Не хватает широты видения для понимания как решить проблему.

Если вы про то, что "локалка" уходя в интернет, ходит то так то сяк, то надо как-то так
сохранить маршрут с помощью iptables connmark:

iptables -t mangle -I POSTROUTING -o ppp+ -m connmark ! --mark 0 -j ACCEPT  // skip, already marked
iptables -t mangle -I POSTROUTING -o ppp0 -j CONNMARK --set-mark 1   // routed, set mark 1
iptables -t mangle -I POSTROUTING -o ppp1 -j CONNMARK --set-mark 2   // routed, set mark 2

iptables -t mangle -I PREROUTING -i eth1 -j CONNMARK --restore-mark  //restore mark to packet from connmark


ip ru add fwmark 1 table T1 pref 3000   // route using packet mark
ip ru add fwmark 2 table T2 pref 3010  

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблемы с network балансировкой Linux."  +/
Сообщение от crusader_1 (ok) on 19-Ноя-12, 12:19 
>>При подключении извне (например rdp или вебклиент) соединение устанавливается, но
>>проходит какое то время и оно становится недоступным
> Если из интернета подключались к сервису вашего сервера, то так быть не
> может.
> Если из интернета подключались к сервису, куда  ваш сервер пробрасывает соединение
> (RDP), то так быть не может, потому что указанных настроек не
> хватит для нормальной работы.

Да, Вы совершенно правы - это портмаппинг, он был настроен с помощью iptables еще в то время, когда был 1 канал. И вот в соединениях извне к сервисам проброшеным с помощью портмаппинга и возникают проблемы.

> Если вы про то, что "локалка" уходя в интернет, ходит то так
> то сяк, то надо как-то так
> сохранить маршрут с помощью iptables connmark:

Прописал написанные Вами правила - не помогло :(

> iptables -t mangle -I PREROUTING -i eth1 -j CONNMARK --restore-mark

eth1 - это интерфейс смотрящий на локальную сеть, я правильно понял же?


Есть еще какие-нибудь мысли? Заранее спасибо!


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Проблемы с network балансировкой Linux."  +/
Сообщение от PavelR (ok) on 19-Ноя-12, 12:56 
> Да, Вы совершенно правы - это портмаппинг, он был настроен с помощью
> iptables еще в то время, когда был 1 канал. И вот
> в соединениях извне к сервисам проброшеным с помощью портмаппинга и возникают
> проблемы.

Так что у вас там настроено? Предлагаете дальше играть в игру "угадай что где когда"?

повторю:

>> Если из интернета подключались к сервису, куда  ваш сервер пробрасывает соединение
>> (RDP), то так быть не может, потому что указанных настроек не
>> хватит для нормальной работы.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Проблемы с network балансировкой Linux."  +/
Сообщение от crusader_1 (ok) on 19-Ноя-12, 15:35 
КАК БЫЛО СРАЗУ :
LAN 10.10.10.0\24
SERVER : 10.10.10.1 (windows AD , почта и.т.д.)
ROUTER (debian) : 2 физ. сетевые карты и ppp0
1 eth0 смотрит на локалку : 10.10.10.3
2 eth1 смотрит на adsl модем  192.168.1.2 (модем 192.168.1.1 в режиме бриджа)
3 ppp0 интерфейс - устанавливается с провайдером через модем IP 84.201.228.158
сеть провайдера : 84.201.224.0\20

На роутере  включена маршрутизация и NAT
-A POSTROUTING -s 10.10.10.0/24 -o ppp0 -j SNAT --to-source 84.201.228.158
так же через iptables сделан портмаппинг (несколько портов, но будем разбирать на примере rdp):
-A PREROUTING -d 84.201.228.158/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.10.10.1:3389

В этой конфигурации, при одном default gateway ВСЁ РАБОТАЛО : и интренет и портмапинг всех внутр. сервисов.

Было решено добавить для надежности и увеличения скорости канал от другого интернет провайдера

КАК СТАЛО:
ROUTER: всё те же 2 физ карты :
1. смотрит на сеть eth0
2. т.к. отдельной сетевой для ВТОРОГО adsl модема (нового провайдера) не было, я поставил свитч включил в него 2 адсл модема, а от свитчка патчкорд включил в сетевую eth1 , которая смотрит на модемы. Для этой сетевой я прописал второй IP адресс.
Т.е. у сетевой смотрящей на модемы 2 IP адреса (для каждого прова свой)
Оба модема в бриджах. Это нужно ТОЛЬКО для того, что бы установить PPP соединение для каждого прова, через которые уже ходит трафик.

Устанавливаются два соеднинения ppp0 и ppp1 соответственно с первым и вторым провайдером. Далее я удалил старый основной шлюз на первого провайдера, переписал таблицу маршрутизации через ip route ( маршруты в первом сообщении) и сделал балансировку :
ip route add default scope global nexthop via 84.201.225.100 dev ppp0 weight 1 nexthop via 81.25.33.1 dev ppp1 weight 1

в iptables я дописал портмапы для нового соедиения
-A PREROUTING -d 81.25.46.69/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.10.10.1:3389
и так же дописал NAT
-A POSTROUTING -s 10.10.10.0/24 -o ppp1 -j MASQUERADE

Для визуального восприятия всей схемы я нарисовал для Вас картинку: http://img13.imageshost.ru/img/2012/11/19/image_50aa1a17922f...
По картинке может показаться что ppp0 и ppp1 поднимаются на модемах - это не так, ppp0 и ppp1 поднимаются на шлюзе.

Какой еще информации не хватает Вам для анализа?

Большое Спасибо что помогаете разобраться!


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Проблемы с network балансировкой Linux."  +/
Сообщение от VUZverev email(ok) on 19-Ноя-12, 16:30 
Не поделишься настройками?
Ситуация схожая, но с нуля. 2 провайдера, с адсл модема идет интернет в eth2, выдается в eth0, а нужно чтоб еще по eth1, поднимался VPN, и несколько IP только работали в 2 сеть. Ну и естественно стоит сервер в локалке для 3389 порта.Установлен Дебиан, после чего только прописана сеть, и установка ВПН соединения. Ткните носом где прочесть что настроить или просто подскажите. Зараннее благодарен.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Проблемы с network балансировкой Linux."  +/
Сообщение от PavelR (ok) on 19-Ноя-12, 18:42 
> Не поделишься настройками?
> Ситуация схожая, но с нуля. 2 провайдера, с адсл модема идет интернет
> в eth2, выдается в eth0, а нужно чтоб еще по eth1,
> поднимался VPN, и несколько IP только работали в 2 сеть. Ну
> и естественно стоит сервер в локалке для 3389 порта.Установлен Дебиан, после
> чего только прописана сеть, и установка ВПН соединения. Ткните носом где
> прочесть что настроить или просто подскажите. Зараннее благодарен.

http://opennet.ru/tips/2009_policy_route_linux.shtml
http://opennet.ru/tips/1651_route_iptables_linux_nat.shtml

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Проблемы с network балансировкой Linux."  +/
Сообщение от crusader_1 (ok) on 19-Ноя-12, 22:22 
PavelR, есть ли у Вас какие-либо еще мысли?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Проблемы с network балансировкой Linux."  +/
Сообщение от PavelR (ok) on 20-Ноя-12, 20:44 
> PavelR, есть ли у Вас какие-либо еще мысли?

а вы статейки прочитать попытались?
Их надо осмыслить и переделать настройки.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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