Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   объединить два интернет канала в один (http://forum.oszone.net/showthread.php?t=222852)

VictorSh 13-12-2011 23:24 1814742

объединить два интернет канала в один
 
Здравствуйте, собственно сабж.
Нужно объединить два интернет канала в один, чтобы использовалась суммарная пропускная способность каналов.
Прочитал массу статей, но многое осталось не понятным.

Напишите, хотя бы с чего начать.

Что сейчас имеем.
Роутер D-Link DI-704, в WAN порт которого воткнут провод от Провайдера 1. Роутер занимается NATом, и на нем все входящие перенаправляются на сервер.
LAN порт роутера подключен к свитчу, к которому в свою очередь подключен сервер и пользовательские компы.

Имеется также беспроводной роутер ASUS Yota, который сейчас не используется.

В сервере три сетевых карты (одна с двумя портами и интегрированная в материнку).

Как я понимаю, что надо убрать роутер D-Link и воткнуть напрямую провод от Провайдера 1 в один из портов сервера, а второй провод воткнуть от роутера ASUS Yota.
Локальную сеть подсоединить к третьму разъему и поднять нечто, что будет маршрутизировать весь траффик.

Мне предлагали Vyatta, но не охота переустанавливать из-за этого систему.
Как я понял есть два способа: 1) некоторые юзеры будут ходить по одному провайдеру, а остальные по другому;
2) сделать балансировку нагрузки, чтобы использовался как бы один виртуальный интернет канал (объединение двух);

Но как это даже в общих чертах сделать непонятно :( Не могли бы вы объяснить на пальцах, как это сделать и дать толковую ссылку? Также непонятно, что делать с доменами: у нас уже есть один белый IP и доменом, Yota будет тоже с белым IP статическим. Куда будет попадать пользователь, набравший в браузере company.ru?

VictorSh 14-12-2011 21:40 1815361

Скажите, есть ли хотя бы встроенные средства для решения этой проблемы? например pf?
или надо будет обновлять FreeBSD 7.4 и устанавливать сторонний софт?

VictorSh 18-12-2011 17:56 1817446

Прочитал, что pf умеет работать с двумя каналами. Здесь например написано. http://forum.ixbt.com/topic.cgi?id=76:6576
Только не понятно нужно ли мне NAT поднимать на сервере? сейчас пока один провайдер NATом занимается роутер.

Еще вопрос: надо ли переделывать структуру сети, чтобы роутер воткнуть не через свитч, а напрямую в серверный порт, а LAN порт сервера подключить к свитчу? я так думаю, что да.

VictorSh 19-12-2011 20:28 1818185

нашел интересную инфу тут http://www.opennet.ru/base/net/ipfw_balance.txt.html

Только вот хочу сделать, чтобы балансировалось по следующему условию. Все скачивать через ISP2, если скорость скачивания превышает 4Mbps, то перенаправлять остальных на ISP1. Есть ли специальный пакет, который умеет так делать? Буду очень благодарен за наводки.

То есть мне надо сначала загрузить второй канал, а когда его пропускная способность иссякнет, использовать для скачивания ISP1.

Для скачивания например по SCP из дома файлов с сервера хочу исползовать ISP1. Но тут как я понимаю, зависит от того, на какой IP адрес я обращаюсь. Если на ISP1, то все пакеты будут идти через него. Или не так?

То есть суть такова для скачивания использовать ISP2, для отдачи ISP1 в зависимости от текущей загруженности канала

Negativ 20-12-2011 11:08 1818552

VictorSh,
у Вас как минимум 1 провайдер дает канал с не гарантированной скоростью (Yota), на счет второго не знаю. А из этого следует, даже если вы будете использовать сложные алгоритмические структуры в своем файрволе (ipfw, pf) на основе pipe и измерения скорости, то эти сложные алгоритмы не будут работать если у вас не выделенные каналы, вернее они будут работать, но не так как задумано. ИМХО нужно просто распределить нагрузку либо между сервисами либо между пользователями и добавить это распределение в скидл. Перед тем как это все делать, разумеется бы надо собрать статистику по нагруженности по времени, по сервисам, по пользователям и на основе этой статистики уже решать каким образом распределять нагрузку. Иначе вы просто пальцем в небо тыкаете.

VictorSh 21-12-2011 16:54 1819529

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

Первый провайдер ТРН-телеком. гарантированная скорость скорость на скачивание 512Kbit/s, а скорость отдачи 10Mbit/s.
С Yota наоброт. Скорость не гарантируется, но как правило составляет: download 4Mbit/s, upload ~1Mbit/s.

Если делить по юзерам (25 пользователей), то все равно кто то будет испытывать проблемы. Так как сейчас 512Kbit/s - не устраивает, ну никак! Поэтому из-за характеристик каналов я и решил через Yota скачивать, а через TRN отдавать.

Из сервисов только почта есть.

Sun4wind 22-12-2011 16:32 1820180

Есть же готовые решения для таких задач.
например ИКС

VictorSh 26-12-2011 00:46 1822423

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

Negativ
Какую можете посоветовать систему сбора статистики?

Sun4wind
Мне надо на чистой фряхе, чтобы работало.

VictorSh 29-12-2011 18:14 1825043

Скажите, с чем может быть связано, что подключение по протоколу SSH у меня проходит только при подключении к D-Link. А к Yota - пишет, что Connection timeout. IP адрес у Yota белый. На роутере настроен проброс входящих на сервер. tcpdump показывает, что пакеты приходят на интерфейс сервера по порту 22, к которому подкючена Yota.

Стоит мне поменять defaultrouter на йотовский в /etc/rc.conf и применить изменения, так подключение по SSH к D-Link не проходит! Connection tomeout. А к Yota проходит!

Файервол pf. Вот его конфиг. Вроде бы все разрешено.

Код:

#ext_if1="192.168.1.2"
#ext_if2="192.168.2.2"
#ext_gw1="192.168.1.1"
#ext_gw2="192.168.2.1"
#
rdr on age0 proto tcp from any to 169.254.107.8 port 2525 -> 169.254.107.8 port 25
#It was on fxp0 for VPN
#nat on age0 from 169.254.106.0/24 to 169.254.107.0/24 -> 169.254.107.8

#nat on fxp0 from 169.254.107.0/24 to any -> 192.168.1.2

#for NAT
#nat pass on fxp0 from 169.254.107.0/24 to any -> fxp0
#nat pass on fxp1 from 169.254.107.0/24 to any -> fxp1

#Load balancing between TRN and Yota
#pass out quick route-to ($ext_if1 $ext_qw1) from $ext_ip1 to any keep state
#pass out quick route-to ($ext_if2 $ext_gw2) from $ext_ip2 to any keep state



Время: 09:19.

Время: 09:19.
© OSzone.net 2001-