ipfw, "2 провайдера" и входящие соединения
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2009-09-19 15:01:49
- Откуда: Великий Новгород
ipfw, "2 провайдера" и входящие соединения
Имею сервер под FreeBSD 7.1, у него 3 интерфейса: один - в локальную сеть, два других - к разным провайдерам.
Интерфейсы провайдеров имеют реальные айпишники.
Что-то никак не могу сочинить сет правил, чтобы работали входящие соединения извне на айпишники обоих провайдеров.
Исходящую нагрузку разделять не надо, пусть бы так и шла по одному маршруту.
Пытался делать по местным статьям, но упорно одно подключение работает, а ответ на подключение на второй адрес уходит в шлюз по умолчанию.
Если шлюз по умолчанию поставить ко второму провайдеру - то наоборот - сервисы на втором айпи работают, а ответы от первого теперь уходят в шлюз по умолчанию.
Подскажите, как там правильно?
Интерфейсы провайдеров имеют реальные айпишники.
Что-то никак не могу сочинить сет правил, чтобы работали входящие соединения извне на айпишники обоих провайдеров.
Исходящую нагрузку разделять не надо, пусть бы так и шла по одному маршруту.
Пытался делать по местным статьям, но упорно одно подключение работает, а ответ на подключение на второй адрес уходит в шлюз по умолчанию.
Если шлюз по умолчанию поставить ко второму провайдеру - то наоборот - сервисы на втором айпи работают, а ответы от первого теперь уходят в шлюз по умолчанию.
Подскажите, как там правильно?
Услуги хостинговой компании 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/
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: ipfw, "2 провайдера" и входящие соединения
вообще правильно для таких случаев поднимать BGP
но можете попробовать извратиться через PF
и я не понял основного
что значит работали входящие от двух провадеров?
но можете попробовать извратиться через PF
и я не понял основного
что значит работали входящие от двух провадеров?
-
- сержант
- Сообщения: 170
- Зарегистрирован: 2007-02-27 11:59:41
Re: ipfw, "2 провайдера" и входящие соединения
эт когда есть 1.1.1.1 и 2.2.2.2 на серваке и в любое время если один из провайдоров лежит то к серваку можно получить доступparadox писал(а):и я не понял основного
что значит работали входящие от двух провадеров?
А так получается что все в дефолт уходит одного из провайдеров
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: ipfw, "2 провайдера" и входящие соединения
я не зря спросил что значит входящие
ибо нет смысла иметь доступ входящими через два канала
пусть он расшифрует конкретно что он хочет и имеет ввиду
ибо нет смысла иметь доступ входящими через два канала
пусть он расшифрует конкретно что он хочет и имеет ввиду
-
- рядовой
- Сообщения: 28
- Зарегистрирован: 2009-09-22 11:48:31
Re: ipfw, "2 провайдера" и входящие соединения
Где б найти таких правильных провайдеров, которые с каждым клиентом согласны BGP поднимать.paradox писал(а):вообще правильно для таких случаев поднимать BGP
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2008-10-02 20:49:21
Re: ipfw, "2 провайдера" и входящие соединения
тоесть по русски тебе нужно чтобы дефаултроутера было два?? или чтобы был запасной канал и резервный на случай падения основного??
-
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2009-09-19 15:01:49
- Откуда: Великий Новгород
Re: ipfw, "2 провайдера" и входящие соединения
Не, немного не так.
Есть сервер, у него два внешних айпи. Они оба живы одновременно.
Если к серверу извне обращаются по адресу первого провайдера, то и ответить на запрос сервер должен в шлюз первого провайдера, если обращаются по адресу второго, то ответ должен уйти в шлюз второго провайдера.
Шлюза по умолчанию не должно быть два, мне кажется это нарушает определение
. Шлюз по умолчанию должен быть один (шлюз предпочитаемого для исходящих соединений провайдера). И на этот шлюз должны идти все исходящие запросы от сервера и из локальной сети.
Локальная сеть за натом, в качестве ната на сервере используется natd.
Есть сервер, у него два внешних айпи. Они оба живы одновременно.
Если к серверу извне обращаются по адресу первого провайдера, то и ответить на запрос сервер должен в шлюз первого провайдера, если обращаются по адресу второго, то ответ должен уйти в шлюз второго провайдера.
Шлюза по умолчанию не должно быть два, мне кажется это нарушает определение

Локальная сеть за натом, в качестве ната на сервере используется natd.
-
- сержант
- Сообщения: 173
- Зарегистрирован: 2007-11-20 10:14:37
- Контактная информация:
Re: ipfw, "2 провайдера" и входящие соединения
может использовать этот пример?
http://www.lissyara.su/?id=1330
http://www.lissyara.su/?id=1330
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2008-10-02 20:49:21
Re: ipfw, "2 провайдера" и входящие соединения
Расскажи что ты хочешь сделать на конкретном примере..
-
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2009-09-19 15:01:49
- Откуда: Великий Новгород
Re: ipfw, "2 провайдера" и входящие соединения
Хм, что то мне эта статья не попадалась на глаза при самостоятельном поиске, спасибо.cloudsv писал(а):может использовать этот пример?
http://www.lissyara.su/?id=1330
В принципе, у меня ситуация та же, что и в статье, только я применял уже правила с established, что-то не помогло.
Нужно повнимательнее пойти прочесть статью и свои правила.
-
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2009-09-19 15:01:49
- Откуда: Великий Новгород
Re: ipfw, "2 провайдера" и входящие соединения
Да типичная ситуация. Был один провайдер - быстрый, надежный, дорогой. Появился второй - недорогой.mediamag писал(а):Расскажи что ты хочешь сделать на конкретном примере..
По "недорогому" нужно пустить всех в Интернет, на "надежном" нужно оставить несколько сервисов (dns, web, ssh). Через "недорогой" также нужно иметь доступ извне хотя бы к ssh для резерва. Ну и желательно еще обеспечить возможность использования "надежного", когда "недорогой" упадет.
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2008-10-02 20:49:21
Re: ipfw, "2 провайдера" и входящие соединения
сам сейчас бьюсь над поиском решения проблемы "когда основной канал падает"...нарыл 3 на мой взгляд вполне рабочих скрипта...но я их еще не опробовал...вот
скрипт №1
скрипт №2
скрипт №3
скрипт №1
Код: Выделить всё
#!/bin/bash
PETERSTAR=82.XXX.XXX.XXX #PETERSTAR gateway
SAMPO=10.XXX.XXX.XXX #SAMPO gateway
if [[ `/bin/ping -c 3 ${PETERSTAR} | /bin/grep "64 bytes"` ]]
then
if [[ `/sbin/route | /bin/grep default | /bin/grep ${PETERSTAR}` ]]
then
echo "`date '+%d-%m-%Y-%H:%M:%S'`: Default gateway is ${PETERSTAR}" >>/var/log/chanel.log
else
{
#Switch chanel to PETERSTAR gateway
/sbin/route del default
/sbin/route add default gw ${PETERSTAR}
echo "`date '+%d-%m-%Y-%H:%M:%S'`: Switch chanel to PETERSTAR gateway" >>/var/log/chanel.log
}
fi
else
{
#Switch chanel to SAMPO
/sbin/route del default
/sbin/route add default gw ${SAMPO}
echo "`date '+%d-%m-%Y-%H:%M:%S'`: Switch chanel to SAMPO gateway" >>/var/log/chanel.log
}
fi
Код: Выделить всё
#!/bin/bash
# опрашиваемый узел основного провайдера
HOST=10.1.0.254
# шлюз к основному провайдеру
GW1=10.1.0.1
# шлюз к резервному провайдеру
GW2=10.2.0.1
ping -q -c 1 ${HOST} > /dev/null 2>&1
if [ $? -eq 0 ]; then
ping -q -c 1 ${GW1} > /dev/null 2>&1
if [ $? -eq 0 ]; then
ip route change default via ${GW1}
else
ip route change default via ${GW2}
fi
else
ip route change default via ${GW2}
fi
Нужен еще постоянный маршрут до опрашиваемого узла
ip route add 10.1.0.254 via 10.1.0.1
Скрипт загоняется в крон на исполнение каждую минуту.
Код: Выделить всё
xl0 -> 192.168.x.x
rl0 -> ISP A (ADSL 256 kbit)
rl1 -> ISP B (WiFi 1 Mbit)
Сию каку, по имени fallover.sh "пихаю" в 5-ти минутный крон.
#cat fallover.sh
#!/bin/sh
WAN_MAIN_CHECK_IP=google.ru # Надежный как кирпич ip-шник, я так думаю!? :-)
WAN_BACKUP_CHECK_IP= rl0 # Вместо фейса, его ip-шник конечно же.
DEFAULT_ROUTE_IP=`netstat -nr | grep default`
ISP_1_GATE=A.A.A.A
ISP_1_HALFBAND=`expr 32 \* 1024 \* 300 / 2`
ISP_1_ROUTE_COUNT=`ipfw show 40 | awk '{print $3}' ; ipfw -q zero 40`
ISP_2_GATE=B.B.B.B
ISP_2_HALFBAND=`expr 128 \* 1024 \* 300 / 2`
ISP_2_ROUTE_COUNT=`ipfw show 60 | awk '{print $3}' ; ipfw -q zero 60`
if echo $DEFAULT_ROUTE_IP | grep $ISP_1_GATE > /dev/null;
then
if [ "$ISP_1_HALFBAND" -gt "$ISP_1_ROUTE_COUNT" ];
then
if ! (ping -c 3 $WAN_MAIN_CHECK_IP > /dev/null);
then
route delete default;
route add default $ISP_2_GATE;
route add $WAN_BACKUP_CHECK_IP $ISP_2_GATE;
fi
fi
else
if [ "$ISP_2_HALFBAND" -gt "$ISP_2_ROUTE_COUNT" ];
then
if (ping -c 3 $WAN_BACKUP_CHECK_IP > /dev/null) || !(ping -c 3 $WAN_MAIN_CHECK_IP > /dev/null);
then
route delete default;
route delete $WAN_BACKUP_CHECK_IP;
route add default $ISP_1_GATE;
else
echo "<<L1e" > /dev/speaker;
fi
else
echo "<<e3e3e3e3" > /dev/speaker;
fi
fi
Поднимаю еще один НАТ, и добавляю каунты в ipfw:
/sbin/natd -f /etc/natd.conf -n rl1 -P /var/run/8669.pid
ipfw -q add 40 count ip from any to me in via rl0
ipfw -q add 60 count ip from any to me in via rl1
ipfw -q add 70 divert 8669 from any to any via rl1
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: ipfw, "2 провайдера" и входящие соединения
а какой смысл скриптовсам сейчас бьюсь над поиском решения проблемы "когда основной канал падает"...нарыл 3 на мой взгляд вполне рабочих скрипта...но я их еще не опробовал...вот
когда 7 и 8 это найтивно поддерживают
много дефолтов
а ядро само перебирает какой доступный в текущий момент
при недоступности текущего перебираеться следующий
-
- лейтенант
- Сообщения: 693
- Зарегистрирован: 2008-10-02 20:49:21
Re: ipfw, "2 провайдера" и входящие соединения
мануалов по двум дефолтным роутерам мало..я например найти не могу ничего подобного
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Re: ipfw, "2 провайдера" и входящие соединения
Тебе однозначно нужен BGP+PI. Ищи таких провов, копай в эту сторону, если не хочешь извращаться с файерволами.
-
- сержант
- Сообщения: 282
- Зарегистрирован: 2009-05-28 14:36:50
- Откуда: Кишинев
Re: ipfw, "2 провайдера" и входящие соединения
Вот уперлись все в этот ECMP routing, а он не отвечает на первначальный вопрос.
Ситуация у автора темы типа такого: на сервере стоит Apache, к серверу подключены два канала от разных провайдеров, Apache слушает оба внешних адреса. Приходит HTTP-запрос на первый адрес - ответ должн идти через шлюз первого провайдера. Приходит запрос на адрес второго провайдера - ответ уходит через шлюз второго провайдера. Эта задача никак не решается множественными маршрутами.
Ситуация у автора темы типа такого: на сервере стоит Apache, к серверу подключены два канала от разных провайдеров, Apache слушает оба внешних адреса. Приходит HTTP-запрос на первый адрес - ответ должн идти через шлюз первого провайдера. Приходит запрос на адрес второго провайдера - ответ уходит через шлюз второго провайдера. Эта задача никак не решается множественными маршрутами.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: ipfw, "2 провайдера" и входящие соединения
в таких ситуациях ответ - токо BGPСитуация у автора темы типа такого: на сервере стоит Apache, к серверу подключены два канала от разных провайдеров, Apache слушает оба внешних адреса.
и обсуждать нечего
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: ipfw, "2 провайдера" и входящие соединения
http://nuclight.livejournal.com/124348.htmlsch писал(а):Вот уперлись все в этот ECMP routing, а он не отвечает на первначальный вопрос.
Ситуация у автора темы типа такого: на сервере стоит Apache, к серверу подключены два канала от разных провайдеров, Apache слушает оба внешних адреса. Приходит HTTP-запрос на первый адрес - ответ должн идти через шлюз первого провайдера. Приходит запрос на адрес второго провайдера - ответ уходит через шлюз второго провайдера. Эта задача никак не решается множественными маршрутами.
Тот факт, что на самом деле "перепрыгивание" выполняется на параметры
действия, позволяет использовать это для интересных вещей. В частности, с
использованием появившегося во FreeBSD 6.2 параметра tag на каждый пакет можно
навешивать внутриядерный тег, что в применении со skipto позволяет сделать, к
примеру, запоминание, с какого шлюза пришел входящий пакет на машине с каналами
к двум разным провайдерам, и ответные пакеты отправлять в тот канал, откуда они
пришли (допустим, у вашей машины только один IP-адрес, и сделать fwd на базе
внешнего адреса не получится), т.е. реализовать аналог reply-to из pf:
ipfw add 100 skipto 300 tag 1 in recv $ext_if1 keep-state
ipfw add 200 skipto 300 tag 2 in recv $ext_if2 keep-state
ipfw add 300 allow { recv $ext_if1 or recv $ext_if2 } # входящие снаружи
ipfw add 400 allow in recv $int_if # разрешить ответы на внутреннем проходе
ipfw add 500 fwd $gw1 tagged 1 # остались ответы на внешнем интерфейсе,
ipfw add 600 fwd $gw2 tagged 2 # зарулим их куда надо

---
На 7.2 вместо fwd можно делать setfib для пущей красоты...
Последний раз редактировалось terminus 2009-10-06 15:05:20, всего редактировалось 1 раз.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: ipfw, "2 провайдера" и входящие соединения
мне сейчас думать лень, но на линупсе такая задача рашается через маршрутизацию
http://www.opennet.ru/docs/RUS/LARTC/x348.html
значит и во фре тоже может быть решена и не надо вводить человека в заблуждение
BGP им, блин, с PI падавай, умники
http://www.opennet.ru/docs/RUS/LARTC/x348.html
значит и во фре тоже может быть решена и не надо вводить человека в заблуждение
BGP им, блин, с PI падавай, умники

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: ipfw, "2 провайдера" и входящие соединения
во terminus нормальный пример откопал :-)
если еще setfib привернуть получитсо еще красивее ;]
если еще setfib привернуть получитсо еще красивее ;]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: ipfw, "2 провайдера" и входящие соединения
+1024hizel писал(а):во terminus нормальный пример откопал :-)
если еще setfib привернуть получитсо еще красивее ;]

Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: ipfw, "2 провайдера" и входящие соединения
с таким же успехом можно придумать и как pf настроить
а фиб врядли от этого спасет
а фиб врядли от этого спасет
dsa писал(а):Да типичная ситуация. Был один провайдер - быстрый, надежный, дорогой. Появился второй - недорогой.
По "недорогому" нужно пустить всех в Интернет, на "надежном" нужно оставить несколько сервисов (dns, web, ssh). Через "недорогой" также нужно иметь доступ извне хотя бы к ssh для резерва. Ну и желательно еще обеспечить возможность использования "надежного", когда "недорогой" упадет.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: ipfw, "2 провайдера" и входящие соединения
скрпит для управления fib-ами и выбрать по какому критерию будет определятся падение недорого канала - вот и решение
кстати а откуда pf вытащил? :-\
кстати а откуда pf вытащил? :-\
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Re: ipfw, "2 провайдера" и входящие соединения
Где-то встречал фразу "и микроскопом можно гвозди забивать", это к тому, что лучше использовать вещи, которые под это заточены. Имхо.