Два канала интернет и шлюз на FREEBSD 6.2
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- andy3000
- рядовой
- Сообщения: 12
- Зарегистрирован: 2007-03-13 13:16:26
- Откуда: Питер
Два канала интернет и шлюз на FREEBSD 6.2
Народ, кто нить озадачивался таким вопросом:
Имеется два выделенных канала интернет, сервер (в нем три сетевые карточки, одна для внутренней сети, и две карточки для двух выделенных каналов), задача такая при падении основного первого канала , автоматически включать резервный второй канал, а когда первый канал востанавливает свое рабочее состояние, автоматически подключать его обратно.
Есть ли решения данного вопроса?
Имеется два выделенных канала интернет, сервер (в нем три сетевые карточки, одна для внутренней сети, и две карточки для двух выделенных каналов), задача такая при падении основного первого канала , автоматически включать резервный второй канал, а когда первый канал востанавливает свое рабочее состояние, автоматически подключать его обратно.
Есть ли решения данного вопроса?
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35427
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
-
- проходил мимо
- Abigor
- старшина
- Сообщения: 425
- Зарегистрирован: 2006-03-02 11:13:15
- Откуда: РФ. г. Иркутск
- Контактная информация:
- alex3
- лейтенант
- Сообщения: 872
- Зарегистрирован: 2006-11-20 16:47:56
- Откуда: Переславль
- Контактная информация:
-
- ефрейтор
- Сообщения: 60
- Зарегистрирован: 2006-10-31 14:15:36
Re: Два канала интернет и шлюз на FREEBSD 6.2
апну тему: немного другие условия:
есть 3 сетевых интерфейса: dc0,rl0 - каналы в интернет от разных провайдеров, xl0 -локалка
dc0 имеет внешний ip, rl0 - внутренний (непересекается с xl0), xl0 - обычная серая локалка.
шлюз по умолчанию rl0 (он просто быстрее на порядок).
Задача: выставить наружу 1723 порт (pptp) и radmin (4899).
Если шлюз по умолчанию dc0 - то проблем нет, все работает и перенаправляется (radmin внутрь локалки), если же шлюз по умолчанию rl0, то ответы на запросы (внешние соединения) возвращаются не через тотинтерфейс (dc0) через который они принимались, а через default gateway, т.е. через xl0 и нефига не работает
Если я жестко прописываю маршрут к внешнему хосту через dc0, а потом с этого хоста соединяюсь, то все работает, но проблема в том, что я не могу знать всех ip с которых будет соединение инициироваться.
изложил все для себя, чтоб так сказать структурировать в голове, но и от помощи не откажусь.
6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Tue May 29 12:53:25 MSD 2007
ткните в ман
есть 3 сетевых интерфейса: dc0,rl0 - каналы в интернет от разных провайдеров, xl0 -локалка
dc0 имеет внешний ip, rl0 - внутренний (непересекается с xl0), xl0 - обычная серая локалка.
шлюз по умолчанию rl0 (он просто быстрее на порядок).
Задача: выставить наружу 1723 порт (pptp) и radmin (4899).
Если шлюз по умолчанию dc0 - то проблем нет, все работает и перенаправляется (radmin внутрь локалки), если же шлюз по умолчанию rl0, то ответы на запросы (внешние соединения) возвращаются не через тотинтерфейс (dc0) через который они принимались, а через default gateway, т.е. через xl0 и нефига не работает

Если я жестко прописываю маршрут к внешнему хосту через dc0, а потом с этого хоста соединяюсь, то все работает, но проблема в том, что я не могу знать всех ip с которых будет соединение инициироваться.
изложил все для себя, чтоб так сказать структурировать в голове, но и от помощи не откажусь.
6.2-RELEASE-p4 FreeBSD 6.2-RELEASE-p4 #0: Tue May 29 12:53:25 MSD 2007
Oct 27 12:31:55 gw kernel: ipfw: 509 Accept TCP 175.59.051.117:1310 181.294.59.63:1723 in via dc0
Oct 27 12:31:55 gw kernel: ipfw: 509 Accept TCP 181.294.59.63:1723 175.59.051.117:1310 out via rl0
ткните в ман
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Два канала интернет и шлюз на FREEBSD 6.2
Перехватывай нужный порт и отправляй всегда через dc0. (ipfw add fwd .. . . . ..
http://www.lissyara.su/?id=1330
http://www.lissyara.su/?id=1330
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- рядовой
- Сообщения: 13
- Зарегистрирован: 2007-07-09 20:47:59
- Контактная информация:
Re: Два канала интернет и шлюз на FREEBSD 6.2
andy3000 писал(а):Народ, кто нить озадачивался таким вопросом:
Имеется два выделенных канала интернет, сервер (в нем три сетевые карточки, одна для внутренней сети, и две карточки для двух выделенных каналов), задача такая при падении основного первого канала , автоматически включать резервный второй канал, а когда первый канал востанавливает свое рабочее состояние, автоматически подключать его обратно.
Есть ли решения данного вопроса?
Код: Выделить всё
#/usr/local/bin/bash
DGW="xx.xx.xx.xx"
GW1="xx.xx.xx.xx"
GW2="yy.yy.yy.yy"
DATE=`date`
while sleep 15; do
ping -c 1 -s 2 -q -r $DGW > /dev/null
STATE=$?
ROUTEDEF=` netstat -rn | grep default | grep -v grep | awk '{print $2}' `
if [ ! "$STATE" = "0" ]; then
if [ "$ROUTEDEF" = "$GW1" ]; then
route -q delete default
route -q add default $GW2
sh /etc/rc.firewall LAC
echo "Switch to gw $GW2 in $DATE" >> /var/log/switchlog
fi
else
if [ "$ROUTEDEF" = "$GW2" ]; then
route -q delete default
route -q add default $GW1
sh /etc/rc.firewall USP
echo "Switch to gw $GW1 in $DATE" >> /var/log/switchlog
fi
fi
done

-
- проходил мимо
Re: Два канала интернет и шлюз на FREEBSD 6.2
А никто не пробовал прикрутить routed(8) для этих целей?
in7rude, в чем прикол использовать быдлобаш ради sh-скрипта? Лишнюю зависимость тянуть?
Может проще?
> /dev/null... а чем >&- не угодил?
ROUTEDEF=` netstat -rn | grep default | grep -v grep | awk '{print $2}' `, можно короче ROUTEDEF=$(route -n get -inet default | awk '/gateway/ { print $2 }')
А вот эту конструкцию
можно сократить до
И что за опция (-r) такая у ping(8)'а? Согласно man'у она не требует никаких аргументов.
Ах да, #/usr/local/bin/bash... восклицательный знак после решеточки не забыли (#!)?
Вообщем скрипт кривой, но он все же лучше чем управлять роутингом из фаервола. Так что +1.
in7rude, в чем прикол использовать быдлобаш ради sh-скрипта? Лишнюю зависимость тянуть?
Код: Выделить всё
if [...]
if ...
else ...
if [...]
Код: Выделить всё
if [ ... -a ... ]
elif [ ... ]
ROUTEDEF=` netstat -rn | grep default | grep -v grep | awk '{print $2}' `, можно короче ROUTEDEF=$(route -n get -inet default | awk '/gateway/ { print $2 }')
А вот эту конструкцию
Код: Выделить всё
ping -c 1 -s 2 -q -r $DGW > /dev/null
STATE=$?
<snip>
if [ ! "$STATE" = "0" ]; then
Код: Выделить всё
if ! ping -c 1 -s 2 -q -r $DGW >&-; then
Ах да, #/usr/local/bin/bash... восклицательный знак после решеточки не забыли (#!)?
Вообщем скрипт кривой, но он все же лучше чем управлять роутингом из фаервола. Так что +1.