The OpenNET Project / Index page

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

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

"Free BSD router с двумя интернет подключениями"  +/
Сообщение от Palich email(ok) on 04-Сен-07, 13:53 
Вопрос в следующий. Как сделать router с двумя интернет подключениями, сеичас он подключен к одному проваидеру и надо подключить второго. Т.е. если инет не идет у первого то переклучаемся на второго проваидера, ну или как то так.
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от Lemegeton (ok) on 04-Сен-07, 14:34 
>Вопрос в следующий. Как сделать router с двумя интернет подключениями, сеичас он
>подключен к одному проваидеру и надо подключить второго. Т.е. если инет
>не идет у первого то переклучаемся на второго проваидера, ну или
>как то так.

Возможно, подойдет протокол OSPF (http://ru.wikipedia.org/wiki/OSPF).

Во FreeBSD быстрый поиск нашел сразу: /usr/ports/net/quagga , /usr/ports/net/zebra (похоже, что больше не развивается) и /usr/ports/net/openospfd-devel . Удачи в настройке!

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

2. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от miroslav email(ok) on 04-Сен-07, 15:03 
Два и более подключения к инету по нормальному будут работать только под Linux. Сам с этим сталкивался :)

Под FreeBSD будет работать только статическая маршрутизация. Причем при обрашении с не дефолтного интерфейса, ответные пакеты пойдут всеравно по дефолтному и поэтому клиент ничего не получит. Ну а изменять дефольтный маршрут под FreeBSD можно используя простейший пинг по крону (zebra делает тоже самое).

В Linux существуют множество таблиц маршрутизации и выбор, по какой таблице пройдет пакет, происходит на основании пользовательских правил (по адерсам, по портам, по TTL, по TOS), весь этот огород называется роутинг-полиси.

Совет: сноси FreeBSD и ставь Gentoo Linux, в нем также все пакеты ставятся из дерева портов, только нызвается это portage и работает круче :)

PS: По сути, Gentoo это механизм установки этих portage, а все остальное просто ставится из них, к примеру ядро может быть от FreeBSD. Но для твоих задач необходимо ядро именно Linux.

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

4. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от ShyLion (??) on 05-Сен-07, 07:28 
>Два и более подключения к инету по нормальному будут работать только под
>Linux. Сам с этим сталкивался :)
>
>Под FreeBSD будет работать только статическая маршрутизация. Причем при обрашении с не
>дефолтного интерфейса, ответные пакеты пойдут всеравно по дефолтному и поэтому клиент
>ничего не получит. Ну а изменять дефольтный маршрут под FreeBSD можно

Гражданин, не болтайте ерундой.

Во фре можно правилами фаервола на нужных пакетах задавать route-to. А зебра, это вообще демон протоколов маршрутизации.

Вот пример для pf, откорректируйте на свой вкус:


eif0="rl0"
eif1="ed0"


int_net1="192.168.1.0/24"
int_if1="rl1"
ext_nat_addr1="a.a.a.a"
ext_nat_route1="a.a.a.b"
ext_if1="ed0"

int_net3="192.168.3.0/24"
int_if3="rl1"
ext_nat_addr3="b.b.b.b"
ext_nat_route3="b.b.b.c"
ext_if3="ed0"

int_net4="192.168.4.0/24"
int_if4="rl1"
ext_nat_addr4="c.c.c.c"
ext_nat_route4="c.c.c.d"
ext_if4="rl0"

int_if="rl1"
int_net="rl1:network"


scrub in all

nat on $ext_if1 from $int_net1 to any -> ($ext_if1)
nat on $ext_if3 from $int_net3 to any -> ($ext_if3)
nat on $ext_if4 from $int_net4 to any -> ($ext_if4)

pass in all label "$nr"
pass out all label "$nr"

block in on $eif0 all label "$nr"
block in on $eif1 all label "$nr"

pass out on $int_if from $int_if to $int_net
pass in quick on $int_if from $int_net to $int_if
pass on $int_if from $int_net to $int_net

pass  in  on $eif0 proto tcp from any to $eif0 port 22 flags S/SA keep state label "$nr"
pass  in  on $eif0 proto icmp from any to $eif0 keep state label "$nr"

pass  in  on $eif1 proto tcp from any to $eif1 port 22 flags S/SA keep state label "$nr"
pass  in  on $eif1 proto icmp from any to $eif1 keep state label "$nr"

pass  out on $eif0 proto { tcp } all flags S/SA keep state label "$nr"
pass  out on $eif0 proto { udp, icmp } all keep state label "$nr"

pass  out on $eif1 proto { tcp } all flags S/SA keep state label "$nr"
pass  out on $eif1 proto { udp, icmp } all keep state label "$nr"

pass in on $int_if1 route-to ($ext_if1 $ext_nat_route1) from $int_net1 to any keep state label "$nr"
pass in on $int_if3 route-to ($ext_if3 $ext_nat_route3) from $int_net3 to any keep state label "$nr"
pass in on $int_if4 route-to ($ext_if4 $ext_nat_route4) from $int_net4 to any keep state label "$nr"

pass out on $ext_if1 route-to ($ext_if1 $ext_nat_route1) from $ext_if1 to any keep state label "$nr"
pass out on $ext_if3 route-to ($ext_if3 $ext_nat_route3) from $ext_if3 to any keep state label "$nr"
pass out on $ext_if4 route-to ($ext_if4 $ext_nat_route4) from $ext_if4 to any keep state label "$nr"

для ipfw и ipfilter есть подобные вещи

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

6. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от miroslav email(ok) on 06-Сен-07, 02:30 
Уважаемый, а вот попробуйте apache на сервак поставить и из инета на него через разные соединения позаходить, работать будет всегда? У меня не работало, ибо ответные пакеты уходили по дефолтному машруту. Если с таким apache можно жить, то для named это будет большим недостатком (ip два, хочется master и slave у себя держать).

А с nat в pf возникают проблемы с разбиением пакетов по mtu, когда выходит ethernet и pppoe, а входит ethernet и pptp. И как трафик шейпер с pf работает?

Про zebra я так и писал, чудес она не делает, а просто проверяет доступность используя BGP4 или OSPF, а при обрыве может что-нибудь выполнить.

iptables сам разрулить два выхода в инет также не способен, он может только маркировать и адреса подменять, дальше в роль вступает iproute2, который по маркам выбирает отдельную таблицу маршрутизации. (ессно команды iptables и iproute2 это просто пользовательский интерфейс к модулям ядра)

ipfw это вообще хроника, в нем простейщий nat отдельным демоном запускается, сам по себе ipfw сравним с фильтром в winxp :)

Я вообще не понял Ваш код для pf, но сложилось такое ощущение что выбор канала в инет происходит только для пользователей за натом и только на основании ip во внутреней сети, для своего разубеждение хотелось бы увидить выбор исходящего канала для NAT и самого FreeBSD, на основании сетей назначения, портов, тосов, пользователей, программ, потомков соединений (от ftp) и вроде дургих я не знаю :)

PS: Я так пишу не потому что я Вас не уважаю (я Вас уважаю), а по причине ушербности FreeBSD. После года моей *бли с FreeBSD я не смог выполнить простейщей цели (с 3 провами, но для дома), при этом все бздоиды гововрили: "Во фре можно все, да у тебя руки кривые", но при дарени ящика пива дело не двигалось. Никто мне не сказал что переход на Gentoo Linux решит все мои проблемы, поэтому я хочу скачать это новичкам и показать на контрасте :)

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

9. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от ShyLion (ok) on 07-Сен-07, 15:49 
>Уважаемый, а вот попробуйте apache на сервак поставить и из инета на
>него через разные соединения позаходить, работать будет всегда? У меня не
>работало, ибо ответные пакеты уходили по дефолтному машруту. Если с таким
>apache можно жить, то для named это будет большим недостатком (ip
>два, хочется master и slave у себя держать).

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

>А с nat в pf возникают проблемы с разбиением пакетов по mtu,
>когда выходит ethernet и pppoe, а входит ethernet и pptp. И
>как трафик шейпер с pf работает?

ALTQ

>ipfw это вообще хроника, в нем простейщий nat отдельным демоном запускается, сам
>по себе ipfw сравним с фильтром в winxp :)

Если вы 10 лет назад что-то пробовали, это не означает, что это не развивается больше. Оно уже давно ipfw2.


>Я вообще не понял Ваш код для pf, но сложилось такое ощущение
>что выбор канала в инет происходит только для пользователей за натом
>и только на основании ip во внутреней сети, для своего разубеждение

что мешает добавить другие критерии выбора пакетов в правило???

>
>Вас уважаю), а по причине ушербности FreeBSD. После года моей *бли
>с FreeBSD я не смог выполнить простейщей цели (с 3 провами,

если вы что-то не смогли сделать или решение не было для вас очевидным, это не означает, что его нет.
В приведенном конфиге вообще-то пофиг, есть там НАТ или нет.

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

11. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от universite email(ok) on 07-Сен-07, 18:23 
>>Уважаемый, а вот попробуйте apache на сервак поставить и из инета на
>>него через разные соединения позаходить, работать будет всегда? У меня не
>>работало, ибо ответные пакеты уходили по дефолтному машруту. Если с таким
>>apache можно жить, то для named это будет большим недостатком (ip
>>два, хочется master и slave у себя держать).
>
>прикладуха открывает сокет на всех подключениях. адрес в пакетах будет соответствовать сокету,

Покажите пример, как Апач или named будут отвечать через недефолтный интерфейс.

P.S. Ситуация с NAT меня мало интересует.

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

15. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от Gene email on 16-Май-17, 13:51 
>[оверквотинг удален]
> pass in on $int_if3 route-to ($ext_if3 $ext_nat_route3) from $int_net3 to any keep
> state label "$nr"
> pass in on $int_if4 route-to ($ext_if4 $ext_nat_route4) from $int_net4 to any keep
> state label "$nr"
> pass out on $ext_if1 route-to ($ext_if1 $ext_nat_route1) from $ext_if1 to any keep
> state label "$nr"
> pass out on $ext_if3 route-to ($ext_if3 $ext_nat_route3) from $ext_if3 to any keep
> state label "$nr"
> pass out on $ext_if4 route-to ($ext_if4 $ext_nat_route4) from $ext_if4 to any keep
> state label "$nr"

Уважаемый)-Если не сложно подробней.. не дошло... буквенные обозначения а.а.а.b  и т.п.
Имею 2 провайдера, 1 локалка, впн...freeBSD 10.2, pf
задача объеденить каналы..и если один отпадёт- чтобы всё по второму шло..
буду мега признателен если подскажите..
и как вижу скрип в cron для замены шлюза по умолчанию не требуется..?  


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

3. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от zick (ok) on 04-Сен-07, 20:56 
>Вопрос в следующий. Как сделать router с двумя интернет подключениями, сеичас он
>подключен к одному проваидеру и надо подключить второго. Т.е. если инет
>не идет у первого то переклучаемся на второго проваидера, ну или
>как то так.

по пингу делай, принудительно указывай через какой интерфейс пинговать ( -S  ), если код возврата молчание, то просто меняется дефаулт гетвейт на второй и ноборот. Скрипт получится строк на 6 :) Бросаешь его в крон с интервалом выполнения 1 минута. Удачи

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

5. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от MoHaX email(ok) on 05-Сен-07, 08:08 
>>Вопрос в следующий. Как сделать router с двумя интернет подключениями, сеичас он
>>подключен к одному проваидеру и надо подключить второго. Т.е. если инет
>>не идет у первого то переклучаемся на второго проваидера, ну или
>>как то так.
>
>по пингу делай, принудительно указывай через какой интерфейс пинговать ( -S  
>), если код возврата молчание, то просто меняется дефаулт гетвейт на
>второй и ноборот. Скрипт получится строк на 6 :) Бросаешь его
>в крон с интервалом выполнения 1 минута. Удачи

Нафига? Если надо одновременно рулить обоими каналами, Через один хттп пустить, через другой ещё чё-нить. Выше всё правильно написано про фаервол. Конечно в линуксе iproute2 весЧ прикольная, но и во фре всё это можно сделать.

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

10. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от Palich (ok) on 07-Сен-07, 17:06 
>>Вопрос в следующий. Как сделать router с двумя интернет подключениями, сеичас он
>>подключен к одному проваидеру и надо подключить второго. Т.е. если инет
>>не идет у первого то переклучаемся на второго проваидера, ну или
>>как то так.
>
>по пингу делай, принудительно указывай через какой интерфейс пинговать ( -S  
>), если код возврата молчание, то просто меняется дефаулт гетвейт на
>второй и ноборот. Скрипт получится строк на 6 :) Бросаешь его
>в крон с интервалом выполнения 1 минута. Удачи

Мне одновременно с двумя проваидерами работать не надо, один сдох на другого перехожу. А если скрипт ваять, что писать в rc.conf ( defaultrouter )
Случайно нет ни у кого такои скриптины?

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

12. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от Dorlas (??) on 08-Сен-07, 15:23 
На FreeBSD 6.1 год назад делал одновременную работу с двумя Интернет-каналами:

Делал через Policy Base Routing:
https://www.opennet.ru/base/net/bsd_pbr_route.txt.html
http://ipfw.ism.kiev.ua/pbr.html
http://www.lissyara.su/?id=1330

Все работает нормально.

Самое интересное - порт SSH этого FreeBSD-сервера мне доступен с обоих провайдеров...также как и Apache :)

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

13. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от universite email(ok) on 08-Сен-07, 15:46 
>На FreeBSD 6.1 год назад делал одновременную работу с двумя Интернет-каналами:

В этой версии есть еще IPFIREWALL_FORWARD_EXTENDED, в свежих:
The IPFIREWALL_FORWARD_EXTENDED kernel option has been removed. This option was used to permit ipfw(4) to redirect packets with local destinations. This behavior is now always enabled when the IPFIREWALL_FORWARD kernel option is enabled.


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

14. "Free BSD router с двумя интернет подключениями"  +/
Сообщение от Dorlas (??) on 08-Сен-07, 19:03 
>>На FreeBSD 6.1 год назад делал одновременную работу с двумя Интернет-каналами:
>
>В этой версии есть еще IPFIREWALL_FORWARD_EXTENDED, в свежих:
>The IPFIREWALL_FORWARD_EXTENDED kernel option has been removed. This option was used to
>permit ipfw(4) to redirect packets with local destinations. This behavior is
>now always enabled when the IPFIREWALL_FORWARD kernel option is enabled.

Ну прочитали Вы man ipfw - маладца...только не об этом речь :)

Все эти наезды на FreeBSD - бессмысленны. И Linux и FreeBSD хорошие ОС. 99% задач можно решить с их использованием.

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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