Всегда получаем «белый» IP от Ростелеком с помощью OpenWrt

Автор: | 01.04.2019

Вводная

Из-за нехватки адресов IPv4, Ростелеком начал использовать технологию Carrier-Grade NAT (CG-NAT), тем самым вместо “белых IP” пользователь получает адреса из сети — 100.64.0.0/10

Для исправления ситуации использую скрипт для Микротика, но лишнего устройства не оказалось под рукой и решил опробовать вариант – установка OpenWrt на  DIR-620 rev.D1

Сама установка прошивки и первичные настройки прошли гладко, а вот дальше пошли загвоздки.

Установка DDNS

Много лет использую сервис http://freedns.afraid.org Во многих устройствах достаточно ввести свои логин/пароль,теперь в поле “пароль” нужно вводить токен вида:
Взять свой токен можно, например, из quick cron.

Установка mc и nano

Привык пользоваться файлменеджером mc, установка ничем непримечательна

Чтобы в mc заработал nano, первым делом зайти в mc и отключим встроенный редактор и просмотровщик. Нужно отжать выделенные красным крестики на рисунке.

Дальше в переменной среды $EDITOR задаем редактор по умолчанию nano

nano /etc/profile — что бы данная настройка сохранилась после перезагрузки.

На этом настройка закончена.

Скрипт переподключения pppoe

Долго искал по интернету, перепробовал кучу вариантов и способов реализации, остановился на следующем варианте:

Скрипт извлекает текущий IP адрес, раскладывает “по полочкам”, если первый октет окажется 100, то переподключается интерфейс wan, каждые 5 секунд, пока IP адрес не будет получен отличный от 100.64.0.0/10

Кучу времени потратил на то, чтобы установить следующий факт: в самом начале скрипта используется интерфейс pppoe-wan, в конце скрипта логично было бы так же использовать ifdown pppoe-wan/ifuppppoe-wan, но опытным путём было установлено, что нужно рестартовать интерфейс wan (pppoe само собой так же будет переподключаться).

Следующей загвоздкой было то, что этот скрипт попросту не запускался, оказалось, что в OpenWrt нет bash 🙂

Настройка cron на openWRT

Скрипт записал в файл ip.sh, дал права на исполнение – chmod +x /root/hosts/ip.sh

Разместил в /root/ip.sh

Для выполнения заданий нужно создать файл:

Стартуем сервис и включаем автозагрузку:
Проверяем успешный запуск крона в системном логе:
Теперь, когда cron настроен и работает, можно запускать любые задачи по расписанию.  Добавим запись в /etc/crontabs/root:
Перезагружаем сервис для сохранения изменений:

Всегда получаем «белый» IP от Ростелеком с помощью OpenWrt: 2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.