Что Делать, Если Ваш Провайдер — Akado?

Ниже хабраката приведены примеры скриптов, облегчающих жизнь :)



Часть 1. Проверка полученного адреса

В свое время у Акадо были проблемы с pppoe авторизацией.

А поскольку при загрузке системы часть демонов была привязана к полученному IP-адресу, нужно было как-то автоматизировать процесс загрузки системы и исключить простои.

Идея была в том, чтобы проверить адрес, полученный от провайдера, после запуска pppd. Сам скрипт выглядит следующим образом:

 #!/usr/bin/perl
 
 use strict;
 use warnings;
 use threads;
 use Touch;
 use Net::Ping;
 use Net::Ifconfig::Wrapper qw(Ifconfig);
 
 my @check_hosts
и добавлен в /etc/rc.d/ppp. Если нам не удалось получить нужный адрес, то отправляем машину на перезагрузку.

Почему бы нам не попробовать перезапустить сам демон ppp? На момент проверки еще мало что запускалось, поэтому исключаем возможность того, что перезагрузка займет много времени — до остановки процессов, а усложнять конструкцию очень не хотелось.



Часть 2. Проверка подключения

Помимо описанной выше ситуации, могут возникнуть проблемы с потерей соединения.

Оговорюсь, что вылет пакетов происходит дальше.

способ:

  • для работы локальной сети используется адрес, выдаваемый DHCP-сервером провайдера;
  • pppoe используется для выхода на улицу.

Скрипт запускается через cron с периодом 10 минут и если пинг не удался на внутренние адреса, то пытаемся переполучить адрес от dhcp, на внешние - перезапускаем pppd.

i=0 pppip="<my_ip>" echo -e "waiting pppoe connection" until [ "$i" -eq "30" ] do iconf=`/sbin/ifconfig tun0 | awk '/inet/ {print $2}'` if [ "$iconf" = "$pppip" ] then echo -e "successful" i="30" break else i=`expr $i + 1` echo -n ".

" sleep 5 fi done if [ "$iconf" != "$pppip" ] then echo -e "pppoe not connected!\nSystem will be reboot" reboot fi

Теги: #акадо #скрипт #Чулан

Вместе с данным постом часто просматривают: