The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"реализация балансировки/отказоустойчивости 2х каналов в инет..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"реализация балансировки/отказоустойчивости 2х каналов в инет..."  
Сообщение от apostle email(ok) on 27-Дек-06, 18:11 
os:
FreeBSD freebsd.domain.ru 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Thu Dec 21 16:41:09 MSK 2006     test@freebsd.domain.ru:/usr/src/sys/i386/compile/CUBXL  i386

настройки сети:
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=b<RXCSUM,TXCSUM,VLAN_MTU>
        inet 192.168.255.249 netmask 0xfffffff8 broadcast 192.168.255.255
        ether 00:02:b3:2e:e3:d7
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 195.x.x.215 netmask 0xffffff00 broadcast 195.x.x.255
        ether 00:50:8b:5e:70:5a
        media: Ethernet autoselect (10baseT/UTP)
        status: active
fxp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=b<RXCSUM,TXCSUM,VLAN_MTU>
        inet 10.0.2.31 netmask 0xff000000 broadcast 10.255.255.255
        ether 00:02:b3:5d:cb:98
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
pfsync0: flags=0<> mtu 2020
        syncpeer: 224.0.0.240 maxupd: 128

fxp0 - подсеть dmz
fxp1, fxp2 - интерфейсы, смотрящие, соотв., в инет ч/з 128kbs & 20mbs каналы.
хотелось бы, чтобы при падении одного из каналов (fxp2, например, как основного) пользователи переключались на fxp1 автоматически.
на ixbt.com http://forum.ixbt.com/topic.cgi?id=76:6339 посоветовали см. в сторону debian+iproute2 либо openbsd+pf. т.к. я немного знаю freebsd, а pf на ней работает, то решил попробовать связку freebsd+pf.
почитал мануал http://www.openbsd.org/faq/pf/pools.html#nat по pf и возник след. вопрос.
выбор интерфейса, на к-рый роутится трафик из внутр. подсети может быть осуществлен 4 способами:
1. bitmask - однозначно преобразует пул внутренних адресов в пул внешних комбинацией адреса сети внешнего интерфейса и адреса хоста клиента во внутр. сети
2. random - случайным образом выбирается интерфейс.
3. source-hash - жесткая привязка внутренних адресов к определенному внешнему интерфейсу.
4. round-robin - последовательный выбор следующего внешнего интерфейса (1->2->1->2...)
я не ошибся в инерпретации опций?
если нет, то вот суть вопроса: как я могу указать вероятность, с к-рой будет выбран тот или иной интерфейс? то есть: есть 2 канала, 20mbs & 128kbs; возможность динамической балансировки - это довесок и не критично (реализовать можно и policy-based routing). главное - чтобы при падении 1го канала исходящий трафик начинал использоваться 2ой канал без необходимости вмешательства тех. персонала =). если я выберу схему round-robin или random, не приведет ли это к снижению скорости доступа к инету: посылается один пакет ч/з быстрый канал, а след. или случайно выбранный - ч/з медленный. в рез-те часть пакетов идет ч/з 128кбс.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "реализация балансировки/отказоустойчивости 2х каналов в инет..."  
Сообщение от co6aka (??) on 28-Дек-06, 01:25 
>os:
>FreeBSD freebsd.domain.ru 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Thu Dec 21 16:41:09 MSK 2006
>    test@freebsd.domain.ru:/usr/src/sys/i386/compile/CUBXL  i386
>
>настройки сети:
>fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>        options=b<RXCSUM,TXCSUM,VLAN_MTU>
>        inet 192.168.255.249 netmask 0xfffffff8
>broadcast 192.168.255.255
>        ether 00:02:b3:2e:e3:d7
>        media: Ethernet autoselect (100baseTX <full-duplex>)
>        status: active
>fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>        options=8<VLAN_MTU>
>        inet 195.x.x.215 netmask 0xffffff00
>broadcast 195.x.x.255
>        ether 00:50:8b:5e:70:5a
>        media: Ethernet autoselect (10baseT/UTP)
>
>        status: active
>fxp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>        options=b<RXCSUM,TXCSUM,VLAN_MTU>
>        inet 10.0.2.31 netmask 0xff000000
>broadcast 10.255.255.255
>        ether 00:02:b3:5d:cb:98
>        media: Ethernet autoselect (100baseTX <full-duplex>)
>        status: active
>pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208
>lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
>        inet 127.0.0.1 netmask 0xff000000
>
>pfsync0: flags=0<> mtu 2020
>        syncpeer: 224.0.0.240 maxupd: 128
>
>
>fxp0 - подсеть dmz
>fxp1, fxp2 - интерфейсы, смотрящие, соотв., в инет ч/з 128kbs & 20mbs
>каналы.
>хотелось бы, чтобы при падении одного из каналов (fxp2, например, как основного)
>пользователи переключались на fxp1 автоматически.
>на ixbt.com http://forum.ixbt.com/topic.cgi?id=76:6339 посоветовали см. в сторону debian+iproute2 либо openbsd+pf. т.к. я
>немного знаю freebsd, а pf на ней работает, то решил попробовать
>связку freebsd+pf.
>почитал мануал http://www.openbsd.org/faq/pf/pools.html#nat по pf и возник след. вопрос.
>выбор интерфейса, на к-рый роутится трафик из внутр. подсети может быть осуществлен
>4 способами:
>1. bitmask - однозначно преобразует пул внутренних адресов в пул внешних комбинацией
>адреса сети внешнего интерфейса и адреса хоста клиента во внутр. сети
>
>2. random - случайным образом выбирается интерфейс.
>3. source-hash - жесткая привязка внутренних адресов к определенному внешнему интерфейсу.
>4. round-robin - последовательный выбор следующего внешнего интерфейса (1->2->1->2...)
>я не ошибся в инерпретации опций?
>если нет, то вот суть вопроса: как я могу указать вероятность, с
>к-рой будет выбран тот или иной интерфейс? то есть: есть 2
>канала, 20mbs & 128kbs; возможность динамической балансировки - это довесок и
>не критично (реализовать можно и policy-based routing). главное - чтобы при
>падении 1го канала исходящий трафик начинал использоваться 2ой канал без необходимости
>вмешательства тех. персонала =). если я выберу схему round-robin или random,
>не приведет ли это к снижению скорости доступа к инету: посылается
>один пакет ч/з быстрый канал, а след. или случайно выбранный -
>ч/з медленный. в рез-те часть пакетов идет ч/з 128кбс.


http://dreamcatcher.ru/index.php?option=com_content&task=view&id=69&Itemid=5

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "реализация балансировки/отказоустойчивости 2х каналов в инет..."  
Сообщение от co6aka (??) on 28-Дек-06, 01:47 
PS: А конкретно http://dreamcatcher.ru/index.php?option=com_content&task=view&id=70&Itemid=3
"Балансировка нагрузки исходящего трафика"
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "реализация балансировки/отказоустойчивости 2х каналов в инет..."  
Сообщение от apostle email(??) on 28-Дек-06, 14:29 
>PS: А конкретно http://dreamcatcher.ru/index.php?option=com_content&task=view&id=70&Itemid=3
>"Балансировка нагрузки исходящего трафика"

определнную балнсировку я получил:
freebsd# pfctl -ss
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 85.21.216.2:62761       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 85.21.216.2:63017       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:44607 -> 10.0.2.31:58127 -> 195.x.x.19:3389       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:40285 -> 195.x.x.215:58957 -> 195.x.x.19:3389       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 83.139.17.34:36285       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:41452 -> 195.x.x.215:54512 -> 195.242.9.41:1723       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:44746 -> 195.x.x.215:61926 -> 80.67.86.63:80       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 84.48.225.63:53755       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:44748 -> 195.x.x.215:51678 -> 80.67.86.64:80       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 200.159.211.64:1079       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 207.255.241.74:24009       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 82.81.142.81:4087       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 80.252.156.82:40103       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 207.148.209.82:29168       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:44753 -> 10.0.2.31:58784 -> 216.239.59.99:80       ESTABLISHED:FIN_WAIT_2
self tcp 192.168.255.250:44756 -> 195.x.x.215:54790 -> 216.239.59.103:80       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 82.142.170.113:62834       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 84.137.238.138:2843       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:44750 -> 195.x.x.215:54138 -> 216.239.59.147:80       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 76.168.98.186:4130       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 84.40.204.186:65223       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 88.152.16.187:10950       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 85.64.55.191:2499       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 60.23.126.199:3213       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 68.146.142.204:2673       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.250:25 <- 195.x.x.215:25 <- 194.150.155.229:2490       ESTABLISHED:ESTABLISHED
self tcp 195.x.x.19:3389 <- 192.168.255.250:44607       ESTABLISHED:ESTABLISHED
self tcp 80.67.86.63:80 <- 192.168.255.250:44746       ESTABLISHED:ESTABLISHED
self tcp 80.67.86.64:80 <- 192.168.255.250:44748       ESTABLISHED:ESTABLISHED
self tcp 216.239.59.99:80 <- 192.168.255.250:44753       FIN_WAIT_2:ESTABLISHED
self tcp 216.239.59.103:80 <- 192.168.255.250:44756       ESTABLISHED:ESTABLISHED
self tcp 216.239.59.147:80 <- 192.168.255.250:44750       ESTABLISHED:ESTABLISHED
self tcp 192.168.255.249:22 <- 192.168.255.250:44555       ESTABLISHED:ESTABLISHED

то есть как минимум какая-то балансировка работает  я вот думаю, что если сделать нат ч/з пул адресов, указанный табл., в к-рой, напр., 10 раз последовательно указан Ip-адрес быстрого соед., затем - 1 раз медленного. при round-robin адреса выбираются последовательно => как я понимаю, на 10 соединений по быстрому каналу я получу одно на медленном... как вы думаете, это не фантазия?
еще есть опасение, к-рое озвучил форумчанин с ixbt.com:

>>Единственное, что меня тревожило, что при падении широкого канала, round-robin будет долго пытаться отдать пакеты на работающий (но без связи) интерфейс. Таймауты, помноженные на число повторений впустую, могут привести к тому, что сеть будет просто недоступна.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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