суббота, 25 июня 2011 г.

Dual Access Script for DD-WRT

Переехал я в другой город и столкнулся с ужасной проблемой! На моем Dir-400 c dd-wrt не поднимался pppoe вместе с сетью, стандартным и давно мне известным по старой сетки методом (скрипт запуска):

ifconfig vlan1 down
ifconfig vlan1 10.10.108.142 netmask 255.255.255.0 broadcast 10.10.108.255
ifconfig vlan1 up
route add -net 172.16.0.0 netmask 255.255.255.0 gw 172.16.0.1
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.10.108.1
route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.10.108.1
route add -net 193.178.228.1 netmask 255.255.255.255 gw 10.10.108.6


(Сумы RS)



А тут сеть поднимается, а default gw ppp0 никак не ставится ;(
Пришлось сооружать монстрообразное решение, в результате к которому добавились плюшки типа реконекта. При этом WAN получает по DHCP ip и является локкально-сетевым (как ни крути приятно). И при этом при всем работает pppoe (ppp0)! Вот он, скрипт запуска:

echo '#!/bin/sh while true do date | grep -q "03:00:" && reboot gpio enable 7 ping -q -c 1 ya.ru &> /dev/null || killall pppd if ! ps | grep pppd | grep -q -v grep then pppd file /tmp/pppoe.conf sleep 10 fi if ! ip r | grep -q "default dev ppp0" then route del default vlan1 route add default ppp0 fi if ! iptables -nL -t nat | grep "MASQUERADE" | grep -q "0.0.0.0/0" then iptables -t filter -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o ppp0 -s 10.0.0.0/24 -d 0/0 -j MASQUERADE iptables -t filter -A FORWARD -i ppp0 -j upnp iptables -t nat -A PREROUTING -i ppp0 -j upnp fi if ! ping -q c 1 172.20.255.1 &> /dev/null then route add -net 172.0.0.0 netmask 255.0.0.0 gw 172.31.76.65 dev vlan1 fi gpio disable 7 sleep 30 done' > /tmp/pppoe-init chmod +x /tmp/pppoe-init echo 'plugin /usr/lib/rp-pppoe.so nic-vlan1 noccp nomppc noipdefault noauth defaultroute noaccomp nobsdcomp nodeflate nopcomp nomppe usepeerdns user 'LOGIN' password 'PASSWORD' default-asyncmap mtu 1492 mru 1492 persist lcp-echo-interval 5 lcp-echo-failure 10' > /tmp/pppoe.conf /tmp/pppoe-init &


(ВИТ Феодосия)

логин и пароль не забудь подправить $username ;)

Вообщем разбираемся сами что к чему, мне лень, я поехал на море B-)

Комментариев нет: