2 канала в инет

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-09 18:52:55

в общем имеем:
есть 2 канала в инет от одного провайдера. один канал со статическим адресом, второй - с динамическим.
инет получаю с АДСЛ модемов (настроил mpd (pppoe))
для обоих каналов одинаковый шлюз по-умолчанию.

задача:
1. есть 2 сервера во внутренней сети (почта, веб), т.е. нуно организовать проброс во внутрь (это НАТ). с этим вроде ясно.
2. есть 2 типа пользователей, одни должны ходить через канал со статическим ИПом, другие - с динамическим. При этом пользователи в одноранговой сети, получают настройки по ДШСП.
3. при падении 1-го из каналов, нужно перебросить всех на другой, при поднятии канала - все соответственно по своим местам.

вопрос:
1. как лучше организовать. в смысле какой НАТ использовать (natd или ipnat)? натд умеет работать с таблицами, а ипнат умеет строить списки или что-то подобное?
2. методика переброса между каналами. т.е. куда лучше скрипты писать, или по крону проверять живучесть канала (вопрос тоже как? ведь шлюз у обоих одинаковый), или при падении интерфейса мпд прописать в down_script...


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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение dikens3 » 2008-04-10 9:10:41

1. есть 2 сервера во внутренней сети (почта, веб), т.е. нуно организовать проброс во внутрь (это НАТ). с этим вроде ясно.
Незнаю что ясно, я вижу это так:

1. Проброс порта на внутренние сервера (25 и 80 порты).
2. Т.к. IP-Адрес статический?, тогда ответ должен уходить через этот же интерфейс:

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

ipfw fwd ШЛЮЗ from xxx 25,80 to any
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-10 22:30:03

так прикол в том что ШЛЮЗ одинаковый для обеих соединений ...
а так прокатит?

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

ipfw fwd ШЛЮЗ from xxx 25,80 to any via ng0
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение dikens3 » 2008-04-11 8:50:32

schizoid писал(а):так прикол в том что ШЛЮЗ одинаковый для обеих соединений ...
а так прокатит?

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

ipfw fwd ШЛЮЗ from xxx 25,80 to any via ng0
Чё-то я перемудрил.

1. Проброс портов 25,80 на внутренние компьютеры.( Решаема )
2. Возврат пакетов средствами ipfw?
Пакеты будут идти от 25 или 80 порта и их нужно отправлять через определённый интерфейс. С помощью ipfw fwd можно указать только шлюз (а он у нас одинаковый). Т.о. отправка (возврат пакетов) через определённый интерфейс с помощью ipfw невозможна.

Нужно что-то ещё думать, я этого не делал. Возможно pf,ipfilter помогут или какое-нибудь ПО.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-11 9:23:38

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение dikens3 » 2008-04-11 12:07:50

Да.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-12 22:25:09

стал читать по pf, вроде там возможно...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-18 17:04:43

блин с этими 2-мя каналами с одинаковым шлюзом жопа :(
одновременно поднимается только 1 из двух (типа кто первый того и тапки), при поднятии второго мпд ругается

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

IFACE: Adding IPv4 address to ng0 failed: File exists
оно то и понятно
получается, что маршрут к шлюзу уже прописан через другой интерфейс.
если же я удаляю тот маршрут , то поднимается второй интерфейс.
но как же они буду работать без маршрута к шлюзу? :twisted:
как-то можно это вымутить?
самое прикольное что на д-линковском шлюзе это как-то работает...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

void*
ефрейтор
Сообщения: 52
Зарегистрирован: 2008-01-03 13:25:13
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение void* » 2008-04-18 21:04:03

Второй линк не поднимается по той причине что дублируется запись в таблице роутинга кроме маршрута по умолчанию прописывается еще маршрут через интерфейс к гейтвею, маршрута два а гейтвей один. Я на днях проделывал такое. Схема была следующей (приблизительно):
1) поднимаем первый канал (ng0 1.1.1.1 => 3.3.3.3)
2) когда поднимется делаем route delete 3.3.3.3
3) поднимаем второй канал (ng1 2.2.2.2 => 3.3.3.3)
4) когда поднимется делаем route add default 3.3.3.3
при этом поднятие канала _НЕ_ДОЛЖНО_ прописывать маршрут по умолчанию, уберите это из конфига
после этого эсть 2 прописаных роута:
2.2.2.2 => 3.3.3.3
default => 3.3.3.3

потом вот так:

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

nat 100 config if ng0 reset
nat 200 config if ng1 reset

add 100 check-state
add prob 0.5 skipto 300 all from 10.0.1.0/24 to any
add 200 nat 100 all from 10.0.1.0/24 to not me setup keep-state
add 210 nat 100 all from 10.0.1.0/24 to not me keep-state
add 300 nat 200 all from 10.0.1.0/24 to not me setup keep-state
add 310 nat 100 all from 10.0.1.0/24 to not me keep-state
add 400 nat 100 all from any to me via ng0 in
add 500 nat 200 all from any to me via ng1 in
форвардинг между интерфейсами включен, net.inet.ip.fw.one_pass=1

и получается нормальная, рабочая балансировка 2х каналов. Это все для TCP хорошо работает, при 10-потоковой закачке скорость реально 190% от скорости одного канала (они оба одинаковые, 512к). Несмотря на то что маршрут на 3.3.3.3 прописан через 2.2.2.2 исходящие пакеты идут не только через 2.2.2.2 а нормально делятся между каналами - видимо НАТ хитрит, не знаю. UDP не особо пробовал, но вроде тоже работает, возможно благодаря правилам 210 и 310.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение schizoid » 2008-04-18 22:13:32

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

з.ы.: а за ответ спасибо :P

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

Аватара пользователя
GreenDay
мл. сержант
Сообщения: 100
Зарегистрирован: 2008-02-21 20:25:39
Откуда: Новосибирск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение GreenDay » 2008-04-19 18:16:41

кстати в восьмой фре вроде как два равноценных дефолтовых маршрута задавать можно будет
Бесполезно рассказывать о высоком моральном облике коллектива человеку, имеющему доступ к логам прокси-сервера этого коллектива.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-11 7:46:21

Подкажите как более рационально поступить в моем случае.
В сервере две сетевые , одна в сторону провайдера (основной интернет канал ) + в локалку. В локальной сети есть адсл модем (резервный канал, доступ без ppp соединений только с ip:mac сервера), когда основной канал "в дауне" , то перекидывается nat и маршруты на адсл, который в сети.
Обидно что резервный канал простаивает, как реализовать доступ сразу к двум каналам?
На основном канале nat (192.168.10.0/24)
Вложения
cheme.GIF
cheme.GIF (4.38 КБ) 2420 просмотров
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-11 9:41:57

pf + altq на load balance

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-11 18:43:47

А pf и ipfw смогут дружить?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-11 19:54:17

у народа что то не сильно получилось...
да и смысл в ipfw очень быстро отпадает
поскольку весь лоад бананс как раз на pf строиться route-to reply-to
ну и что бы корректно балансировать запросы и делить каналы + altq

вот altq помоему может в ipfw дружить
но чесно говоря слабо представляю что там получиться
такая комбинация больше подходит на замену dummynet

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-12 11:39:57

Почитал немного документацию по pf , вроде бы nat поднять не трудно будет. Просто биллинг,который стоит на данном PC использует ipfw (открывает доступ для определенного ip + ограничивает скорость.)
Использует вообще кто pf и ipfw ? Погуглил , нашел приоритеты fw
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-12 11:55:40

pf+ipfw плохо сочитаються
недавно тема была где это пробовали

поэтому стоит для начала определиться
что там за юзера в ipfw
можно ли их перенести на pptp /pppoe
и мороки будет меньше
и биллинг будет цивильнее

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-12 19:04:47

Хочется остаться на ipfw.
void* посоветовал

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

natd -p 8668 -a ip1
natd -p 8669 -a ip2

ipfw add divert 8668 ip from any to ${ip1} recv ${ext1}
ipfw add divert 8669 ip from any to ${ip2} recv ${ext2}
ipfw add check-state
ipfw add prob 0.5 divert 8668 ip from 192.168.0.0/16 to any xmit ${ext1} keep-state
ipfw add divert 8669 ip from 192.168.0.0/16 to any xmit ${ext1} keep-state
ipfw add fwd ${gw1} ip from ${ip1} to any out xmit ${ext1}
ipfw add fwd ${gw2} ip from ${ip2} to any out xmit ${ext2} 
Но как сделать исключения по определенным портам 21,22,25,80,5190 и т.п.?
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-12 19:09:52

я понял что он имел ввиду
на опеннете эта идея была

но незнаю кто как но я не одобряю
ipfw add prob 0.5

что имелось ввиду по определенным портам?

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-13 5:30:10

Как я понял, prob - это приоритет вероятности
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-13 9:21:44

prob - This can be useful for a number of applications such as random packet drop ...

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: 2 канала в инет

Непрочитанное сообщение RusBiT » 2008-11-13 18:12:40

Вообщем пришел к выводы.
1. выделить отдельный комп под pf
2. купить DI-LB604 http://dlink.ru/products/prodview.php?type=15&id=605
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: 2 канала в инет

Непрочитанное сообщение paradox » 2008-11-13 19:06:13

зачем вам какойто длинк с линухом на борту
потому как я сомниваюсь что там аппаратная реализация баланса

поставь на бсд pf+altq и експериментируй

киску ты врядли купишь...