Доброго времени суток.
FreeBSD 8.2 mpd4.В общем есть два провайдера, один PPPoE, другой дает выделенный IP.
Проблема такая, natd стартует быстрее mpd4(ng11). И из отсутствия ng11 natd не хочет стартовать. Можно ли поменять приоритет загрузки демонов? После загрузки вручную стартую natd и он работает. Дабы не писать отдельную тему хочу спросить, может кто нить поможет со скриптом смены defaultroute X.X.X.X
если меняю вручную, то все работает :
/sbin/route change default X.X.X.X переключение с одного провайдера на другой идет.
В моем случае основной PPPoE, резервный с выделенным ip. При загрузки freebsd я вижу из вне пинг ip(pppoe), при этом второго ip я не вижу, одновременно они не работают, только поочередно при смене (defaultroute)
В инете нашел много скриптов, единственное но, там пингуют dns 8.8.8.8 с разных сетевых одновременно. Вот тут то и вопрос - это как ? Есть еще некая проблема, у меня провайдер PPPoE имеет два шлюза, при смене в скрипте как это сделать? Иногда mpd4 подвисает и в crontab я прописал проверку dns гугла, и restart mpd4.
http://habrahabr.ru/post/124447/
скрипт:
#!/bin/sh
IP1=111.111.111.1
IP2=222.222.222.1
GW1=111.111.111.2
GW2=222.222.222.2
/sbin/ping -q -c 1 -S $IP1 yandex.ru > /dev/null 2>&1
if [ $? != 0 ]; then
/sbin/ping -q -c 1 -S $IP2 yandex.ru > /dev/null 2>&1
if [ $? = 0 ]; then
if [ ! -f /tmp/gw.changed ]; then
/sbin/route change default $GW2 && touch /tmp/gw.changed
fi
fi
else
if [ -f /tmp/gw.changed ]; then
/sbin/route change default $GW1 && rm /tmp/gw.changed
fi
firc.conf
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-f /etc/natd.conf"natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yesinstance rl1
interface rl1
port 8669
use_sockets yes
same_ports yesglobalport 8670
> natd.confdynamic ?
>> natd.conf
> dynamic ?такой: Работает, но как и написал после того как вручную старую демон natd.
natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yes
instance rl1
interface rl1
port 8669
use_sockets yes
same_ports yes
globalport 8670по поводу скрипта, мне просто непонятно как могут одновременно работать 2 провайдера, у меня только попеременно, либо PPPoE либо провайдер с статическим IP когда вручную меняю шлюх.... в скрипте который я нашел работают именно 2 (если я правильно понял). Которые пингуют dns с разных IP
> когда вручную меняю шлюх....да уж, забавная произошла опечатка, гыг-гыг.. )) оговорка(?) по Фрейду
>> когда вручную меняю шлюх....
> да уж, забавная произошла опечатка, гыг-гыг.. )) оговорка(?) по Фрейду:))) у меня провайдер дает инет pppoe (по радиоканалу) можно ip тарелки пинговать..... только вот в скриптах я не силен :)
использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
и по возможности перейти с natd на nat (но это не принципиально)
> использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
> и по возможности перейти с natd на nat (но это не принципиально)да можно, единственное как обратно с резервного переключатся? в скриптах проверка dns - если нет то шлюз меняем на запасного провайдера, а обратно ? можно конечно попробовать пинг ip локалки провайдера где PPPoE
>> использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
>> и по возможности перейти с natd на nat (но это не принципиально)
> да можно, единственное как обратно с резервного переключатся? в скриптах проверка dns
> - если нет то шлюз меняем на запасного провайдера, а обратно
> ? можно конечно попробовать пинг ip локалки провайдера где PPPoEДа что там и для чего пинговатть и переключать?!
Пример приведу ниже.
Чисто как пример, не копипастить бездумно.))default gateway - 192.168.1.1
rl0 - 192.168.1.2 - внешний (инет)
rl1 - 192.168.2.1 - внутренний (локалка)вешаем natd на rl0
Обеспечиваем запуск natd в /etc/rc.confdefaultrouter="192.168.1.1"
natd_enable="YES"
natd_interface="rl0"В фаерволе прописываем правила по минимуму
add 50 divert 8668 all from any to any via rl0
add 100 allow all from any to any via lo0
add 200 deny all from any to 127.0.0.0/8
add 300 deny all from 127.0.0.0/8 to any
add 400 allow ip from 192.168.11.202/32 to any
add 500 allow ip from any to 192.168.1.2/32
add 600 allow ip from 192.168.0.0/16 to 192.168.0.0/16
add 65000 deny ip from any to any
в /usr/local/etc/mpd5/mpd.confв секции pppoe
pppoe0:
create bundle static B1
# set iface route default
set iface up-script "/usr/local/etc/mpd5/up.sh"
set iface down-script "/usr/local/etc/mpd5/down.sh"
set ipcp ranges 0.0.0.0/0 0.0.0.0/0если есть строка set iface route default её нужно обязательно закомментировать!
это принципиальноостальное в mpd.conf
create link static L1 pppoe
set link action bundle B1
set auth authname "user"
set auth password "pass"
set link max-redial 0
set link mtu 1492
set link keep-alive 5 15
set pppoe iface rl0
openпишем в скрипт up pppoe /usr/local/etc/mpd5/up.sh
#!/bin/sh
killall -9 natd
ipfw delete 50
natd -n ng0
ipfw add 50 divert 8668 all from any to any via ng0
route change default $4пишем в скрипт pppoe /usr/local/etc/mpd5/down.sh
#!/bin/sh
killall -9 natd
natd -n rl0 -dynamic
ipfw delete 50
ipfw add 50 divert natd all from any to any via rl0
route change default 192.168.1.1Делаем скрипты исполняемыми
chmod 555 /usr/local/etc/mpd5/up.sh /usr/local/etc/mpd5/down.shТеперь пусть при загрузке демон natd стартует раньше чем mpd - это ничуть не помешает
mpd стартанёт, pppoe поднимется, вместе с поднятием pppoe отработает скрипт up.sh автоматом сменится и шлюз по умолчанию.Если же mpd упадёт, pppoe завалится и всё должно будет вернуться в первозданное состояние,
default gateway также сменится на прежний.Если mpd вновь рестартанёт - pppoe снова в up и так далее..
>[оверквотинг удален]
> Делаем скрипты исполняемыми
> chmod 555 /usr/local/etc/mpd5/up.sh /usr/local/etc/mpd5/down.sh
> Теперь пусть при загрузке демон natd стартует раньше чем mpd - это
> ничуть не помешает
> mpd стартанёт, pppoe поднимется, вместе с поднятием pppoe отработает скрипт up.sh автоматом
> сменится и шлюз по умолчанию.
> Если же mpd упадёт, pppoe завалится и всё должно будет вернуться в
> первозданное состояние,
> default gateway также сменится на прежний.
> Если mpd вновь рестартанёт - pppoe снова в up и так далее..Спасибо за ответ :) Но в моем случае все наоборот :)))) Был сначала один провайдер с выделенным мне IP. Но он часто падает, подключился к другому, он PPPoE. Провайдера с статическим IP решили оставить как запасной вариант.Основной соединяет по PPPoE. Запасной выделяет статический IP. PPPoE поднимается с помощью mpd4 (ng11)- работает.
Решил переключение между провайдерами в случае падения сделать автоматически.
rl0 - PPPoe (Интернет)поднимает ng11
rl1 - Выделенный IP (Интернет)
1. NAT надо настроить на 2 интерфейса. ng11 и rl1.
В rc.conf добавил rc.conf
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-f /etc/natd.conf"
В natd.conf
natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yes
instance rl1
interface rl1
port 8669
use_sockets yes
same_ports yes
globalport 8670
Вычитал это из статьи которую нашел в инете, начал проверять, natd не стартует по причине что mpd4 пока не создал соединение ng11. Вопрос: можно ли демон mpd4 сделать так чтоб стартовал первее natd ????? Ну и скрипт нужен :)В твоем варианте это подходило когда провайдер с статическим IP был основным, а PPPoE запасным. Может я не понял чего???? :))))
Так и я про то..))
pppoe (ng) - это как раз таки основной канал
в случае падения оного, переходим на статику, на резервный канал,
как только ng вновь поднимается, переключаемся автоматом, без всякого пингованияпоставьте вместо mpd4 лучше mpd5
> Так и я про то..))
> pppoe (ng) - это как раз таки основной канал
> в случае падения оного, переходим на статику, на резервный канал,
> как только ng вновь поднимается, переключаемся автоматом, без всякого пингования
> поставьте вместо mpd4 лучше mpd5У тебя до начала загрузки mpd4 (PPPoE) будет сначала резервный канал подключатся, на пару сек:)
Немного подумав, твой вариант тоже можно реализовать. Единственное но, mpd4 может и не упасть, соединение быть, но инета нет. Сейчас попробую твой вариант.
>> Так и я про то..))
>> pppoe (ng) - это как раз таки основной канал
>> в случае падения оного, переходим на статику, на резервный канал,
>> как только ng вновь поднимается, переключаемся автоматом, без всякого пингования
>> поставьте вместо mpd4 лучше mpd5
> У тебя до начала загрузки mpd4 (PPPoE) будет сначала резервный канал подключатся,
> на пару сек:)
> Немного подумав, твой вариант тоже можно реализовать. Единственное но, mpd4 может и
> не упасть, соединение быть, но инета нет. Сейчас попробую твой вариант.Отписал ниже.
>[оверквотинг удален]
> interface ng11
> port 8668
> use_sockets yes
> same_ports yes
> instance rl1
> interface rl1
> port 8669
> use_sockets yes
> same_ports yes
> globalport 8670попробовал убить mpd4 (PPPoE) все рухнуло запасной так и не заработал.... Надо думать.
> попробовал убить mpd4 (PPPoE) все рухнуло запасной так и не заработал.... Надо
> думать.Каким образом, что значит убить? kill чтоб не мучился что ли? ))
Вы что творите то?!
Надо штатно.
/usr/local/etc/rc.d/mpd4 stop
Потом поднимаем
/usr/local/etc/rc.d/mpd4 startПри стартанутом mpd , предположим, что ваш пров оборвал pppoe
mpd будет работать дальше, но pppoe упадет, а вместе с ним и интерфейс ng
следовательно, отработает скрипт down.sh с вытекающими последствиями.Потом, пров опомнится, возобновит и перезапустит pppoe,
ваш mpd очухается, проснётся и перезапустит при поднятии ng скрипт up.sh
ну и шлюз с дивертом сменится соответственно
>[оверквотинг удален]
> /usr/local/etc/rc.d/mpd4 stop
> Потом поднимаем
> /usr/local/etc/rc.d/mpd4 start
> При стартанутом mpd , предположим, что ваш пров оборвал pppoe
> mpd будет работать дальше, но pppoe упадет, а вместе с ним и
> интерфейс ng
> следовательно, отработает скрипт down.sh с вытекающими последствиями.
> Потом, пров опомнится, возобновит и перезапустит pppoe,
> ваш mpd очухается, проснётся и перезапустит при поднятии ng скрипт up.sh
> ну и шлюз с дивертом сменится соответственноОгромное спс за подробные комментария!!! Буду пребывать, вы далеко не уходите из темы :))))
мой mpd.conf
PPPoE:
new PPPoE PPPoE
set iface route default
set iface disable on-demand
set iface idle 0
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set bundle disable multilink
set auth authname MyLogin
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link keep-alive 10 60
openпросто вы написали:
create link static L1 pppoe
set link action bundle B1это обязательно и что это?:)
>[оверквотинг удален]
> set link disable pap
> chap
> set link accept chap
> set link keep-alive 10
> 60
> open
> просто вы написали:
> create link static L1 pppoe
> set link action bundle B1
> это обязательно и что это?:)это относится к конфигу mpd5 а у вас mpd4 (я уже советовал перейти на 5 версию)
но и с 4 всё будет работать
строку set iface route default закомментировать не забудьте
проверяйте работу up/down скриптов выдёргиванием кабеля из сетевой карты, а не убийством mpd
>[оверквотинг удален]
>> просто вы написали:
>> create link static L1 pppoe
>> set link action bundle B1
>> это обязательно и что это?:)
> это относится к конфигу mpd5 а у вас mpd4 (я уже советовал
> перейти на 5 версию)
> но и с 4 всё будет работать
> строку set iface route default закомментировать не забудьте
> проверяйте работу up/down скриптов выдёргиванием кабеля из сетевой карты, а не убийством
> mpdскрипты работают, еще раз огромное спасибо! завтра кабель буду kill :))) Риторический вопрос про mpd5 - в моем случае в сравнение с mpd4. И еще, так как резервный провайдер Лимитка, и в случае падения основного, это не заметят пользователи скачивая что то - просто сожрут трафик, можно ли что то с этим придумать? Видел в скриптах отправка на почту сообщения, но я так понимаю на freebsd должна почта настроена - или ? :)
> Риторический вопрос про mpd5 - в моем случае в сравнение с mpd4.
> И еще, так как резервный провайдер Лимитка, и в случае падения
> основного, это не заметят пользователи скачивая что то - просто сожрут
> трафик, можно ли что то с этим придумать? Видел в скриптах
> отправка на почту сообщения, но я так понимаю на freebsd должна
> почта настроена - или ? :)Да, mpd5 лучше чем mpd4, а nat лучше чем natd.
Разработчики не стоЯт на месте, как правило, новые версии софта лучше, быстрее, сильнее (олимпиада, блин ))
Старые версии софта оправданы на старом оборудовании, где свежий дистр не вкатить (памяти мало, проц слабоват)
К примеру, берём фрю 4.11 и ставим её на слабенькое железо, вот там и будет только mpd3(даже не 4) и natd
А где есть возможность переёти на свежак - это лучше сделать, производительнее будет, ошибок меньше, всяких плюшек/фишек больше и т.д.По трафику. Его "сжиранию" ))
Можно пользователям крылышки-то подрезать, скорость уменьшить.
Всем или избранным, к примеру. Особо избранных и вовсе от кормушки отодвинуть ))Считать трафик. Я не знаю как у вас реализовано с провом-статикой.
В минус можете залезть или вас отрубит?
Если можете залезть, то попадёте на "бабки".
Чтобы этого не произошло, чтобы не перебрать, нужно обязательно считать трафик на входящем интерфейсе (можно через ipcad - есть в портах) и отрубать в нужный момент.
>[оверквотинг удален]
> По трафику. Его "сжиранию" ))
> Можно пользователям крылышки-то подрезать, скорость уменьшить.
> Всем или избранным, к примеру. Особо избранных и вовсе от кормушки отодвинуть
> ))
> Считать трафик. Я не знаю как у вас реализовано с провом-статикой.
> В минус можете залезть или вас отрубит?
> Если можете залезть, то попадёте на "бабки".
> Чтобы этого не произошло, чтобы не перебрать, нужно обязательно считать трафик на
> входящем интерфейсе (можно через ipcad - есть в портах) и отрубать
> в нужный момент.Привет! Приехал в офис, выдернул провод, через минуту переключился на резервный, вставляю провод заново, и тишина. Mpd запущена, но не хочет PPPoe поднимать, если вручную рестарт mpd делаю, то переключается. До этого иногда mpd подвисал, с другими провайдерами. В cron */1 * * * * root /sbin/ping -q -c 1 -t 1 8.8.8.8|| /usr/local/etc/rc.d/mpd4 restart ставил. В данной ситуации поменял 8.8.8.8 на IP PPPoE - работает. Может есть еще вариант? Или это mpd4 так ведет? Mpd5 хочу поставить ты не замечал того что тунель не хочет поднимать?
> Или это mpd4 так ведет? Mpd5 хочу
> поставить ты не замечал того что тунель не хочет поднимать?У меня с 4 mpd было подобное, с 5 практически нет (за крайне редким исключением).
Обновитесь.
Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые)) )
В любом случае вы ничего не теряете.
Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его как пример привёл выше.Такая схема с переключением успешно опробированна и работает.
>[оверквотинг удален]
>> поставить ты не замечал того что тунель не хочет поднимать?
> У меня с 4 mpd было подобное, с 5 практически нет (за
> крайне редким исключением).
> Обновитесь.
> Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые))
> )
> В любом случае вы ничего не теряете.
> Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его
> как пример привёл выше.
> Такая схема с переключением успешно опробированна и работает.Михалыч!!!! :))) Короче перевел один сервак на mpd5. PPPoE заработал, интернет есть, завтра попробую провод выдернуть, гляну как будет подниматься.... Единственная просьба, у меня в mpd4 был поднят PPTP_server: тут он совершенно по другому, мой старый конфиг не заработал. Если есть возможность помочь, в очередной раз, буду благодарен.... По VPN мне очень нужен для сотрудников.....
>[оверквотинг удален]
>> поставить ты не замечал того что тунель не хочет поднимать?
> У меня с 4 mpd было подобное, с 5 практически нет (за
> крайне редким исключением).
> Обновитесь.
> Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые))
> )
> В любом случае вы ничего не теряете.
> Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его
> как пример привёл выше.
> Такая схема с переключением успешно опробированна и работает.Михалыч!!!! :))) Короче перевел один сервак на mpd5. PPPoE заработал, интернет есть, завтра попробую провод выдернуть, гляну как будет подниматься.... Единственная просьба, у меня в mpd4 был поднят PPTP_server: тут он совершенно по другому, мой старый конфиг не заработал. Если есть возможность помочь, в очередной раз, буду благодарен.... По VPN мне очень нужен для сотрудников.....
Конфиг нашел в инете, в принципе он клонируется на многих сайтах.....
тут: http://www.ussr.kiev.ua/ru/FreeBSD-Windows
раньше у меня в mpd4 было без шифрования, в mpd5 отключил, регистрация компа в сети и ошибка 734ВОБЩЕМ ХЗ....званого конфиг перебил и все заработало.... Завтра провод буду дергать, VPN работает. Если не ошибаюсь то переключалка быстро срабатывает тут.... Еще раз спасибо, завтра отпишусь.
P.S. Конфиг по сравнению с предыдущими стал до безобразия удобным и компактным :)