Объединение 3х каналов доступа в интернет в 1 (3 белых ip подходящих к машине по 3м сетевушкам в 1)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
LMAoD
Сообщения: 182
ОС: Gentoo ~amd64

Объединение 3х каналов доступа в интернет в 1

Сообщение LMAoD »

Доброго времени суток. сразу к проблеме: есть 3 соединения с интернетом с 3мя белыми динамическими ip, подключены они к одной машине через 3 сетевушки, задача заключается в том что бы объединить эти 3 канала в 1 и раздавать в локальную сеть по 4й сетевушке. возможно ли такое? на ум пришли мысли что в последующем этапе придется собирать их в 1 ip через внешний прокси.

А теперь предыстория. Решили объединить наши небольшие локальные сети в одну, так же у одного из пользователей есть свой собственный канал и он непротив поделиться. организовать их прямое соединение с 1 компьютером уже не проблема. осталось только их объединить.

В дополнение к данному вопросу: возможно ли сделать динамическое ограничение канала пользователям сети(по мере необходимости делить только между теми кто реально использует в данный момент канал, Down/Up speed разные)
Заморачиваемся с этим только из-за того что в нашей глубинке интернет не такой высокоскоростной и довольно дорогостоящий.

Заранее благодарен за помощь.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение KiWi »

Тут где-то была тема об объединение 2 каналов в один. Я и sash-kan в ней отмечались. Если там не было про шейпинг, то можно поискать по форуму -- это тоже было. Больше всего от Olden Gremlin.
Спасибо сказали:
alex_suse
Сообщения: 204
ОС: Debian, openSUSE, Gentoo

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение alex_suse »

Спасибо сказали:
Аватара пользователя
LMAoD
Сообщения: 182
ОС: Gentoo ~amd64

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение LMAoD »

KiWi писал(а):
19.08.2010 23:36
Тут где-то была тема об объединение 2 каналов в один. Я и sash-kan в ней отмечались. Если там не было про шейпинг, то можно поискать по форуму -- это тоже было. Больше всего от Olden Gremlin.

Спасибо, постараюсь найти.

alex_suse писал(а):
20.08.2010 09:53
Можно почитать

Спасибо за готовое решение но есть вопрос, возможно ли выжать из 3х каналов всю скорость на один узел сети, а не попеременно распределяя нагрузку на каждом из них? т.е. предположив что на каждом из каналов скорость 1mbit/sec получить максимальную 3mbit/sec
Спасибо сказали:
alex_suse
Сообщения: 204
ОС: Debian, openSUSE, Gentoo

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение alex_suse »

(LMAoD) писал(а):Спасибо за готовое решение но есть вопрос, возможно ли выжать из 3х каналов всю скорость на один узел сети, а не попеременно распределяя нагрузку на каждом из них? т.е. предположив что на каждом из каналов скорость 1mbit/sec получить максимальную 3mbit/sec

На одно соединение нет, т.е. однопоточно качаем файл, то тогда только будет задействован один канал. Разные приложения можно расскидать на разные каналы, поэтому теоритически достичь 3mbit можно, но практически скорее нет.
Спасибо сказали:
Аватара пользователя
LMAoD
Сообщения: 182
ОС: Gentoo ~amd64

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение LMAoD »

жаль, в процессе поиска информации наткнулся на Bonding в данном случаи это бесполезно?
небольшая поправка 1 соединение через pppoe а 2 других eth под NATом через 2 ADSL модема
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение sash-kan »

LMAoD писал(а):
20.08.2010 15:32
Bonding в данном случаи это бесполезно?
да. bonding — связь через несколько носителей между двумя точками.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
LMAoD
Сообщения: 182
ОС: Gentoo ~amd64

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение LMAoD »

sash-kan писал(а):
20.08.2010 22:23
да. bonding — связь через несколько носителей между двумя точками.
в итоге скорость одного потока на bond0 будет являться суммарной с 3х каналов в интернет?

А теперь хотелось бы пройти по теоритической части объединения:
1. устанавливаем ifenslave

Код: Выделить всё

# emerge ifenslave

2. компилируем ядро включая модулем bonding, добавляем в автозагрузку
/etc/modules.autoload.d/kernel-2.6

3. Конфигурируем
/etc/modules.d/bond

Код: Выделить всё

alias bond0 bonding
options bond0 mode=0 miimon=100

4. Настраиваем интерфейс
/etc/conf.d/net

Код: Выделить всё

modules=( "bonding" )
iface_bond0="172.16.1.2 broadcast 172.16.255.255 netmask 255.255.0.0"
gateway="bond0/172.16.1.1"
ip адрес и маска подсети задаются абсолютно любые?

5. настраиваем загрузку интерфейса при запуске системы

Код: Выделить всё

# ln -s /etc/init.d/net.lo /etc/init.d/net.bond0
# rc-update add net.bond0 default
# rc-update del net.eth0
# rc-update del net.eth1
# rc-update del net.ppp0
/etc/conf.d/net

Код: Выделить всё

slaves_bond0="eth0 eth1 ppp0"

и с объединением все. прошу подправте если что не так. физически второй канал появится только в понедельник, а третий уже ближе к концу следущей недели.
Раздача интернета - Как раздать интернет в локальную сеть заменив интерфейс на bond0.
И поледнее что интересует - динамическое ограничение доступа к bond0 (равномерное распределение скорости между теми кто реально на данный момент использует канал, скорость входящего и исходящего потоков на bond0 разная). мысли по распределению - делить 90% канала между теми кто активно скачивает что либо, 10% оставить на тех кто сидит в браузерах icq и прочие мелкие запросы, при увеличении использования канала 1 узлом выше 5% в течении минуты - считать его как активно использующего канал и перераспределить 90% канала выставив активнопользующим новые ограничения, в течении минуты активный узел не загружает канал больше 5% - считать его неактивным и дать больше скорости активным.с исходящим потоком - выдать стабильную скорость для 2х узлов остальную можно без принудительного разделения оставить как есть - кому сколько достанется.
Это только мысли, возможно это или нет и как это реализовать пока мне неизвестно, если у кого есть свои предложения, свои варианты буду рад выслушать.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение KiWi »

LMAoD писал(а):
21.08.2010 00:39
sash-kan писал(а):
20.08.2010 22:23
да. bonding — связь через несколько носителей между двумя точками.
в итоге скорость одного потока на bond0 будет являться суммарной с 3х каналов в интернет?

А теперь хотелось бы пройти по теоритической части объединения:
1. устанавливаем ifenslave

Код: Выделить всё

# emerge ifenslave

2. компилируем ядро включая модулем bonding, добавляем в автозагрузку
/etc/modules.autoload.d/kernel-2.6

3. Конфигурируем
/etc/modules.d/bond

Код: Выделить всё

alias bond0 bonding
options bond0 mode=0 miimon=100

4. Настраиваем интерфейс
/etc/conf.d/net

Код: Выделить всё

modules=( "bonding" )
iface_bond0="172.16.1.2 broadcast 172.16.255.255 netmask 255.255.0.0"
gateway="bond0/172.16.1.1"
ip адрес и маска подсети задаются абсолютно любые?

5. настраиваем загрузку интерфейса при запуске системы

Код: Выделить всё

# ln -s /etc/init.d/net.lo /etc/init.d/net.bond0
# rc-update add net.bond0 default
# rc-update del net.eth0
# rc-update del net.eth1
# rc-update del net.ppp0
/etc/conf.d/net

Код: Выделить всё

slaves_bond0="eth0 eth1 ppp0"

и с объединением все. прошу подправте если что не так. физически второй канал появится только в понедельник, а третий уже ближе к концу следущей недели.

Вам же сказали -- bonding это не для вас.

Он должен выполняться с ОБЕИХ сторон.
Если это PC и свитч -- то bonding на PC и link aggregation на свитче.
Если два PC -- то на обоих bonding.

LMAoD писал(а):
20.08.2010 14:03
alex_suse писал(а):
20.08.2010 09:53
Можно почитать

Спасибо за готовое решение но есть вопрос, возможно ли выжать из 3х каналов всю скорость на один узел сети, а не попеременно распределяя нагрузку на каждом из них? т.е. предположив что на каждом из каналов скорость 1mbit/sec получить максимальную 3mbit/sec

Нельзя.
Соединения устанавливаются между двумя парами ip/port. Одно соединение не может знать о нескольких ip источника/назначения.
Спасибо сказали:
Аватара пользователя
LMAoD
Сообщения: 182
ОС: Gentoo ~amd64

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение LMAoD »

прошу прощения, не вчитался
Спасибо сказали:
Аватара пользователя
kma21
Сообщения: 874
Статус: Странный экспериментатор...

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение kma21 »

А если 2-а канала интернета привести в Proxy сервер, а из него уже в локалку или сеть? Интересует именно объединение, чтобы скорость в 2-а раза выше была.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение Ленивая Бестолочь »

в любом случае у вас повысится не скорость, а пропускная способность.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Aliech
Сообщения: 1135
Статус: дилетант широкого профиля
ОС: debian/openbsd

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение Aliech »

Профит будет, только если всю ширину полосы утилизировать множеством потоков. Если одним потоком (а-ля FTP), то профита не будет.
С уважением,
Павел Алиев
Спасибо сказали:
Аватара пользователя
infra_hdc
Сообщения: 376
ОС: GNU/Linux

Re: Объединение 3х каналов доступа в интернет в 1

Сообщение infra_hdc »

сейчас дискокачалки типа FlashGet и ReGet (да и линуксовые наверняка тоже) умеют в несколько потоков работать.
если созреет решение попробовать, и все три внешних IP-адреса идут по порядку, то можно простым правилом
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 111.11.1.1-111.11.1.3
(согласно iptables tutorial, внешний IP-адрес для подмены будет выбираться случайным образом для каждого потока что должно распределить нагрузку равномерно)
хотя можно и для -j MASQUERADE тоже попробовать посмотреть -- ничего плохого по идее не должно получиться )) тем более, что у него нет требования указывать "к источнику", и он более интеллектуален, чем -j SNAT
Спасибо сказали: