Вот тут помоему надо так:Code:[admin@(none) root]$ route add default gw 192.168.0.2 vlan2 Казалось бы WAN должен работать [admin@(none) root]$ route -n
route del default
route add default gw 192.168.0.2 vlan2
Или поробовать Static IP для vlan2
Есть провайдер инета подключен к роутеру DI524 (192.168.0.2), а с него в WAN порт DIR320 (192.168.1.1). Режим работы Home Gateway, Automatic IP. Имеется также USB модем ZTE626 - все настроено и работает. Как в ручную переключатся между ними.
Вот мои потуги:
Куда копатьCode:В принципе работает здесь пока только эксперементы с вкл-откл инета с WAN ====================================================== Интернет идет с WAN ====================================================== [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.2 0.0.0.0 UG 0 0 0 vlan2 [admin@(none) root]$ route del default нет инета ================================================== [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo вот эта команда восстанавливает инет c wan route add default gw 192.168.0.2 vlan2 ============================================= [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.2 0.0.0.0 UG 0 0 0 vlan2 ^когда появляется эта строчка инет есть Если остановить с веб интерфеса (disconnect), то ====================================================== [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo [admin@(none) root]$ route add default gw 192.168.0.2 vlan2 route: SIOCADDRT: Network is unreachable не восстанавливвает инет пробывал еще вот это [admin@(none) root]$ ifconfig vlan2 192.168.0.2 netmask 255.255.255.0 up [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo [admin@(none) root]$ route add default gw 192.168.0.2 vlan2 [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.2 0.0.0.0 UG 0 0 0 vlan2 Но инета нет!!!! не хватает вот этого что ли? 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 Как то он из веба подругому работает? ============================================================ Ну и наконец совсем печально!!!! Тестируем: WAN --> modem --> WAN [admin@(none) root]$ route del default [admin@(none) root]$ pppd call dialup [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 10.64.64.64 0.0.0.0 UG 0 0 0 ppp0 Здесь инет идет с модема. [admin@(none) root]$ killall pppd [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo [admin@(none) root]$ route add default gw 192.168.0.2 vlan2 Казалось бы WAN должен работать [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.2 0.0.0.0 UG 0 0 0 vlan2 [admin@(none) root]$ Но вот и приехали Инета через WAN почему-то нет!!!!! в веб морде инета тоже нет!!
как в ручную сделать команды connect и disconnect
которые в веб-морде?
Status & Log - Status - Action
DIR-320 / WL-500gPv2 / O'Play R1
Вот тут помоему надо так:Code:[admin@(none) root]$ route add default gw 192.168.0.2 vlan2 Казалось бы WAN должен работать [admin@(none) root]$ route -n
route del default
route add default gw 192.168.0.2 vlan2
Или поробовать Static IP для vlan2
DIR320-1.9.2.7-d-r2627M
Неплохо бы узнать, что происходит во время этих манипуляций с iptables, особенно
Code:iptables -t nat -L POSTROUTING -nv
Everybody stand back. I know iptables.
Мой вариант правильного выключения роутера.
Спасибо что откликнулись
Может что подскажете, буду очень благодарен.
Code:Инет идет с WAN =========================================================================== [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 443 packets, 26699 bytes) pkts bytes target prot opt in out source destination 123 5900 MASQUERADE all -- * vlan2 !192.168.0.100 0.0.0.0/0 6 360 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 [admin@(none) root]$ route del default [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 460 packets, 27719 bytes) pkts bytes target prot opt in out source destination 123 5900 MASQUERADE all -- * vlan2 !192.168.0.100 0.0.0.0/0 6 360 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 [admin@(none) root]$ pppd call dialup [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 2 packets, 100 bytes) pkts bytes target prot opt in out source destination 3 132 MASQUERADE all -- * ppp0 !10.254.90.247 0.0.0.0/0 3 180 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 [admin@(none) root]$ killall pppd [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 11 packets, 640 bytes) pkts bytes target prot opt in out source destination 3 132 MASQUERADE all -- * ppp0 !10.254.90.247 0.0.0.0/0 3 180 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 [admin@(none) root]$ route add default gw 192.168.0.2 vlan2 [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 26 packets, 1460 bytes) pkts bytes target prot opt in out source destination 3 132 MASQUERADE all -- * ppp0 !10.254.90.247 0.0.0.0/0 3 180 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 [admin@(none) root]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vlan2 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.2 0.0.0.0 UG 0 0 0 vlan2 Здесь я сделал Disconnect из вебморды ======================================= [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 55 packets, 3470 bytes) pkts bytes target prot opt in out source destination 3 132 MASQUERADE all -- * ppp0 !10.254.90.247 0.0.0.0/0 4 240 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 Здесь я сделал Сonnect из вебморды ======================================= [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 1 packets, 60 bytes) pkts bytes target prot opt in out source destination 2 92 MASQUERADE all -- * vlan2 !192.168.0.100 0.0.0.0/0 2 120 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
DIR-320 / WL-500gPv2 / O'Play R1
В общем, дело действительно в iptables (точнее, в NAT).
Кроме всего прочего, без этой строчки не будет работать проводной инет (через vlan2)
А без этой не заработает через usb модем (через ppp0)Code:MASQUERADE all -- * vlan2 !192.168.0.100 0.0.0.0/0
Вывод: надо подкрутить работу с iptables (написать грамотно post-firewall или что-то ещё). Наверняка это уже где-то рассмотрено, например в темах про multi-wan.Code:MASQUERADE all -- * ppp0 !10.254.90.247 0.0.0.0/0
Everybody stand back. I know iptables.
Мой вариант правильного выключения роутера.
Power
Анализируя я тоже понял, что дело в этом.
Но к сжалению я ни бум-мум как это сделать.
здесь я методом тыка команду написал:
после pppd call dialup обратно как вернуть?Code:[admin@(none) root]$ iptables -t nat -A POSTROUTING -o vlan2 -s 192.168.0.100 -j MASQUERADE [admin@(none) root]$ iptables -t nat -L POSTROUTING -nv Chain POSTROUTING (policy ACCEPT 21 packets, 1120 bytes) pkts bytes target prot opt in out source destination 2 92 MASQUERADE all -- * ppp0 !10.254.69.98 0.0.0.0/0 2 120 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1 0 0 MASQUERADE all -- * vlan2 192.168.0.100 0.0.0.0/0 По идее ее надо засунуть в место ppp0. ну я не знаю как...??
2 92 MASQUERADE all -- * ppp0 !10.254.69.98 0.0.0.0/0
2 120 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
DIR-320 / WL-500gPv2 / O'Play R1
Тут как бы уже диагноз поставлен, осталась только техническая часть вопроса. Нужно прочитать про iptables, потом про файл /usr/local/sbin/post-firewall и посмотреть, с какими параметрами он вызывается в каждом случае (можно воткнуть в начало строчку
тогда в логе будет видно). Затем вставить в post-firewall нужные модификации iptables. Возможно, также придётся копнуть в сторону ip-up-script и ip-down-script для pppd.Code:logger -t "`basename $0`" "[$@]"
Вот ещё пара ссылок:
http://wl500g.info/showthread.php?t=6208
http://wl500g.info/showthread.php?t=14650
Everybody stand back. I know iptables.
Мой вариант правильного выключения роутера.
примечание:Code:vi /usr/local/sbin/ez-setup ============================= #!/bin/sh if [ -n "`pidof pppd`" ] then killall pppd nvram set rc_service=wan_connect,0 kill -SIGUSR1 1 else nvram set rc_service=wan_disconnect,0 kill -SIGUSR1 1 pppd call dialup fi
Если кто-то пользуется (прошивкой) скриптом modem от Сорине, то тогда придется подправить этот скрипт.
1. Для начала находим его в папке /usr/sbin/modem. Копируем к себе на компьютер. Убираем 2 строчки
(последняя с низу и 6-я с низу)
#echo "nodetach" >> /tmp/ppp/peers/dialup
и
#pppd call dialup & >> /tmp/chat.log
2. переименовываем например в set-modem
3. закидываем опять на роутер в папку /tmp/local/sbin и даем прова 0775
4. в post-boot вместо modem прописываем set-modem
5. сохранить и перегрузится: flashfs save && flashfs commit && flashfs enable && reboot
При включении (или перзагрузке роутера) соединение с интернетом происходит по сети.
После нажатия на боковую кнопку (~3-5 сек) происходит переключение на модем
Следующее нажатие на кнопку приводит к обратному переключению.
Last edited by andr128; 27-11-2009 at 07:22.
DIR-320 / WL-500gPv2 / O'Play R1
Есть DIR-320, USB GPRS Huawei E160G.
Модем нормально работает в роутере.
Есть линк через обычный проводной Ethernet, хотелось бы его зарезервировать посредством USB GPRS модема.
Читал про Multi-WAN, но там ниразу не обсуждалась тема USB.
Было: WL500gP (fw 1.9.2.7-10-USB-1.71) + Toshiba TravelStar 250Gb 2.5" inside router.
(ADOS + rTorrent WebUI+rtorrent + samba + rrdtool + XMail + QuiXplorer + ClamAV)
> Мои инструкции < Для новичков и ленивых > Wiki переехало сюда < "Ночные" сборки >
Вопрос к andr128: удалось реализовать задуманное красиво?
Со всем уважением, но я же больше года назад написал как раз для dynamic IP
http://wl500g.info/showpost.php?p=149985&postcount=11
Вот с учетом новых прошивок от энтузиастов с поддержкой USB модемов.
1. в разделе:
http://192.168.1.1/Advanced_ConnectionMode_Content.asp
Set as WAN Connection Type by default: галку убрал
2. Взял файл /usr/ppp/uni/dial и подправив его:
Code:....... # nodetach .......Code:....... fi } sleep 5 load_drivers sleep 1 write_dialup_file
а также после:
write_dialup_file
ниже все удалил
Переименовал в initmodem забросил в /tmp/local/sbin и сменил права на 775
Вызывается этот скрипт из post-boot.
копируем в /tmp/local/sbin
Происходит начальная инициализация модема, dialup не происходит.Code:#!/bin/sh initmodem .....
Соединение с инетом идет сначала через WAN.
Переключение на модем и обратно происходит через скрипт ez-setup.
Скрипт для Dynamic IP (WAN):
swauto копируем в /tmp/local/sbin
Скрипт для Static IP (WAN)Code:#!/bin/sh # ======================== # Auto IP WAN or MODEM # ======================== # if connect pppd (modem) if [ -n "`pidof pppd`" ] then killall pppd nvram set rc_service=wan_connect,0 kill -SIGUSR1 1 sleep 2 echo "Set Wan Connect" logger "Set Wan Connect" else nvram set rc_service=wan_disconnect,0 kill -SIGUSR1 1 sleep 2 pppd call dialup echo "Set Modem Connect" logger "Set Modem Connect" fi
swstatic копируем в /tmp/local/sbin
Думаю многим будет полезен скрипт "спаси и сохрани"Code:#!/bin/sh # =========================== # For Static IP WAN or MODEM # =========================== wanip=$(nvram get wan_ipaddr) wangw=$(nvram get wan_gateway) # if connect pppd (modem) if [ -n "`pidof pppd`" ] then killall pppd killall dnsmasq iptables -t nat -A POSTROUTING -o vlan1 ! -s $wanip -j MASQUERADE route add default gw $wangw vlan1 dnsmasq echo "Set Wan Connect" logger "Set Wan Connect" else route del default killall dnsmasq pppd call dialup sleep 10 dnsmasq echo "Set Modem Connect" logger "Set Modem Connect" fi
чтоб сохранить все изменения
save
Ну вот собственно и всеCode:#!/bin/sh chmod +x /tmp/local/sbin/* flashfs save && flashfs commit && flashfs enable
скрипт для кнопки
ez-setup копируем в /tmp/local/sbin
в ez-setup пишемCode:#!/bin/sh swauto
swauto или swstatic (под конкретный WAN)
и переключаем кнопкой
На новых прошивках удалось таким образом завести CDMA/EVDO AnyDATA ADU-510А, ZTE-626, E1550.
Оригинальный скрипт можно взять здесь
wiki 3G/CDMA по настройке модема через web
Большнство модемов (Vid/Pid) определяются автамотически если установить Autodetect device - Yes
с Zero CD Configuration - Auto тоже как правило проблем нет.
А вот с установкой порта модема - можно воспользоваться скриптом
http://wl500g.info/attachment.php?at...2&d=1296502323
измененный скрипт
Last edited by andr128; 05-02-2011 at 10:36.
DIR-320 / WL-500gPv2 / O'Play R1