Answer the question
In order to leave comments, you need to log in
OpenWrt: subnet selection script not working on PPPoE connection, what's wrong?
Hello everybody! There is a router, firmware in OpenWrt, provider Rostelecom, PPPoE protocol. When establishing a PPPoE connection, an IP address from 10.20.32.0/20 is randomly assigned. I want the router to disable and enable the PPPoE connection itself until it receives an IP address from the pool 10.20.38.0/24. At the same time, if this did not work out in 10 attempts, then we leave the address that we have now.
I am a complete zero in scripts, I wrote this, using examples from the Internet - findpool.sh
#!/bin/sh
ipiwant="10.20.38." #я хочу получить адрес из этой подсети
myvar=0
while [ $myvar -ne 10 ] #если за 10 попыток не удалось получить нужный ip-адрес - то оставляем тот, который есть
do
myvar=$(( $myvar + 1 ))
unset ip #обнуляем переменную ip
. /lib/functions/network.sh; network_get_ipaddr ip wan; #тут мы присваиваем переменной ip наш текущий WAN ip-адрес вида aaa.bbb.ccc.ddd
echo "$ip" >> /tmp/log/ip.log #записываем значение переменной ip в лог файл, что бы видеть что ip-адреса меняются при перезагрузке сетевого интерфейса
obrezkaWAN=$(echo $ip | grep -o -E '([0-9]+\.){3}') #обрезаем наш WAN ip-адрес до вида aaa.bbb.ccc.
# далее сравниваем желаемый ip-адрес с полученным
if [ "$obrezkaWAN" != "$ipiwant" ]; then # если ip-адреса не совпали - перезагружаем PPPoE соединение
(ifdown wan; sleep 10; ifup wan) &
sleep 2
else
break # если ip-адреса совпадают или закончились 10 попыток - просто выходим из цикла и запускаем обратный ssh до моего сервера на работе
fi
done
/etc/crontabs/restartssh.sh >/dev/null 2>&1
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question