The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"BSD и два модема к двум разным провидерам."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"BSD и два модема к двум разным провидерам."
Сообщение от mikem emailИскать по авторуВ закладки on 07-Июл-03, 16:28  (MSK)
помогите разобраться...
Есть сервачек FreeBSD4.8
настроена диалапная связь 115kbit/s (tun0) - [хороший канал, но иногда падает, когда провайдеры чето там у себя ломают].
Есть второй модем 56kbit/s который должен фонить к другому провайдеру на случай, когда первый провайдер чето там ломает (желательно это автоматически).
...как в песне Миронова - крокодил не ловится, не растет кокос... неделю по инету шерстю...

Описание конфигурации:
---
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:               <-- это рабочая коннекция
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
---
и все работает с сумасшедшей скоростью. НО как чтото ломают провидеры - на час на два инет не существует :( и все юзеры в конторе начинают потихоньку подвывать. Это бывает не часто, но все-же...
Как скрипт для cron сделать чтоб давал [ ping -S (192.168.2.10 - постоянный IP модема tun0) 195.10.10.10 - IP подальше провидера ] и при неудаче фонил бы другой модем к другому провидеру. Таким же образом проверять через минуту - поднялся ли первый провидер и отрубать второй модем.
Самое главное - правила фиревола или роутинга - какие команды надо давать, или что настроить чтобы сеть не страдала от отсутствия инета?
...где рыть надо???
Буду признателен за любой намек в сторону решения этой проблемы.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "маленькое дополнение"
Сообщение от mikem emailИскать по авторуВ закладки on 07-Июл-03, 17:23  (MSK)
Когда соединяется второй модем со вторым провидером роутинг тайбл перебирается на второго провидера и ping -S (192.168.2.10 - постоянный IP модема tun0) 195.10.10.10 естественно перестает работать, тоесть, определить работоспособность первого модема (наличия связи) у меня не получается :(.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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