Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mikem
Зарегистрирован: 12.07.2003 Сообщения: 5
|
Добавлено: Сб Июл 12 2003 20:37 Заголовок сообщения: FreeBSD и два модема к двум разным провайдерам. |
|
|
помогите разобраться, (подойдут любые варианты)... Есть сервачек FreeBSD4.8 настроена диалапная связь 115kbit/s (реальнобыстрая tun0) -[хороший канал, но иногда падает, когда провайдеры чето там у себя ломают]. Есть второй модем 56kbit/s (всегда работает, но, цена в три раза выше - выделенка64к-async) который должен фонить к другому провайдеру на случай, когда первый провайдер чето там ломает (желательно это автоматически). ...как в песне Миронова - крокодил не ловится, не растет кокос... неделю по инету шерстю... Описание конфигурации: --- options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=50 options ICMP_BANDLIM options IPDIVERT options HZ=1000 options DUMMYNET --- net.inet.ip.fw.one_pass=0 --- gateway_enable="YES" hostname="saturn.sirius.com" network_interfaces="lo0 rl0 tun0" ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0" ifconfig_tun0= firewall_enable="YES" firewall_script="/etc/firewall/fwrules" natd_enable="YES" natd_interface="tun0" natd_flags="-dynamic -s -u -p 8668" named_enable="YES" named_flags="-b /etc/namedb/named.boot" kern_securelevel_enable="NO" linux_enable="YES" sshd_enable="YES" ---ppp.conf: default: add default HISADDR saturn: |
|
Вернуться к началу |
|
|
mikem
Зарегистрирован: 12.07.2003 Сообщения: 5
|
Добавлено: Сб Июл 12 2003 20:44 Заголовок сообщения: Re: FreeBSD и два модема к двум разным провайдерам. |
|
|
-- это рабочая коннекция первого модема set device /dev/cuaa1 set speed 115200 set phone "0|1:2|3" enable dns set authname saturn set authkey 111 set redial 5 333 set reconnect 5 9999 --- #!/bin/sh ipfw='/sbin/ipfw -q' ournet='192.168.0.1/24' uprefix='192.168.0' iftun='tun*' ifrl='rl0' ${ipfw} add 201 allow ip from ${uprefix}.3 to any via ${ifrl} ${ipfw} add 201 allow ip from any to ${uprefix}.3 via ${ifrl} ...и т.д. на кучу сетевых машин... ${ipfw} add 2400 pipe 1 ip from any to any out xmit ${iftun} ${ipfw} add 2401 pipe 2 ip from any to any in recv ${iftun} ${ipfw} pipe 1 config bw 115Kbit/s #${iftun} ${ipfw} pipe 2 config bw 115Kbit/s #${iftun} ${ipfw} queue 10 config pipe 1 weight 15 #mask src-ip 0xffffffff ${ipfw} queue 11 config pipe 2 weight 15 #mask dst-ip 0xffffffff ${ipfw} queue 20 config pipe 1 weight 35 #mask src-ip 0xffffffff ${ipfw} queue 21 config pipe 2 weight 35 #mask dst-ip 0xffffffff ${ipfw} queue 30 config pipe 1 weight 50 #mask src-ip 0xffffffff ${ipfw} queue 31 config pipe 2 weight 50 #mask dst-ip 0xffffffff # inside BEGIN ${ipfw} add 2410 queue 10 ip from ${uprefix}.3 to any out recv ${ifrl} xmit ${iftun} ...и т.д. ... ${ipfw} add 2459 queue 30 ip from ${uprefix}.99 to any out recv ${ifrl} xmit ${iftun} # inside END ${ipfw} add 2500 divert 8668 ip from any to any via ${iftun} # outside BEGIN ${ipfw} add 2510 queue 11 ip from any to ${uprefix}.3 in recv ${iftun} ...и т.д. ... ${ipfw} add 2559 queue 31 ip from any to ${uprefix}.99 in recv ${iftun} # outside END ${ipfw} add 3000 reset log tcp from any to any 113 in recv ${iftun} ${ipfw} add 3010 allow icmp from any to any icmptypes 0,3,8,11,12,13,14 ${ipfw} add 3050 allow udp from any to any 53 out xmit ${iftun} ${ipfw} add 3060 allow udp from any 53 to any in recv ${iftun} ${ipfw} add 3100 allow tcp from any to any out xmit ${iftun} setup ${ipfw} add 3110 allow tcp from any to any via ${iftun} established ${ipfw} add 3200 allow tcp from any to any 80 setup ${ipfw} add 3210 allow tcp from any to any 22 setup ${ipfw} add 4000 allow ip from any to any via lo0 ${ipfw} add 65435 deny log ip from any to any --- и все работает с сумасшедшей скоростью. НО как чтото ломают провидеры - на час на два инет не существует и все юзеры в конторе начинают потихоньку подвывать. Это бывает не часто, но все-же... Как сделать что-то чтобы работало: например [ ping -S (192.168.2.10 - постоянный IP модема tun0) 195.10.10.10 - IP подальше провидера ] и при неудаче фонил бы другой модем к другому провидеру. Таким же образом проверять через минуту - поднялся ли первый провидер и отрубать второй модем. Мне подсказывают Zebra - как это делается? - дело втом, что у меня на эксперименты только выходные Времени мало на изучение новинок, а знать хочется. ...где рыть надо, и в каком порядке??? Буду признателен за любой намек в сторону решения этой проблемы. |
|
Вернуться к началу |
|
|
Чувачёк Гость
|
Добавлено: Вс Июл 13 2003 10:10 Заголовок сообщения: Рассказываю (+) |
|
|
Зебра тут никаким место не поможет, т.к. она использует протокол динамической маршрутизации. На другом конце (у провайдера) тоже должен стоять протокол динамической маршрутизации и тебе отвечать, а вот этого они делать не будут! Гемойно это и чревато ошибками.
В таких ситуациях люди пишут собственные скриптики. Если в течении 5 минут ответа на ping нет, то меняем шлюз по умолчанию и правила FireWall на другой канал.
Идея ясна? |
|
Вернуться к началу |
|
|
mikem
Зарегистрирован: 12.07.2003 Сообщения: 5
|
Добавлено: Пн Июл 14 2003 09:23 Заголовок сообщения: Re: Рассказываю (+) |
|
|
А как проверить работоспособность первого модема если меняем шлюз? Есть патч на ядро Фри48 который дает возможность иметь 2 gateway, но он у меня почемуто не заработал может не разобрался до конца? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вт Июл 15 2003 13:14 Заголовок сообщения: Дык ping-уй дальше. Появился канал - опять меняй маршрут. (-) |
|
|
- |
|
Вернуться к началу |
|
|
|