Как настроить автоматическое переподключение PPPoE после перезагрузки маршрутизатора у провайдера?

Ситуация чем-то напоминает вопрос Почему абоненты pppoe «уходят» в timeout после разрыва сессии на стороне Mikrotik`?

Небольшой город, есть несколько провайдеров, предоставляющих доступ к Интернету через протокол PPPoE. Мы устанавливаем своим клиентам небольшие шлюзы на Linux, подключение производится с помощью pppd.

Регулярно у разных провайдеров со стороны наблюдается следующая картина:
В какой-то момент, видимо, происходит перезагрузка маршрутизатора (или какого-то промежуточного оборудования) у провайдера, в результате чего на интерфейсе ppp видно, что происходит отправка пакетов шлюзом, но нет входящих пакетов.

На физическом интерфейсе (ethernet) видно, что есть исходящие пакеты PPPoE session, нет входящих пакетов PPPoE session. Также на физическом интерфейсе видны исходящие и входящие пакеты разного паразитного трафика соседних абонентов (у кого-то IPX, у кого-то DHCP, SMB, есть провайдерский STP и т.д.), т.е. канал на прием физически работоспособен.

Складывается впечатление, что провайдерский маршрутизатор, являющийся сервером PPPoE, после, видимо, перезагрузки или смены настроек, "забывает" номер уже установленной PPPoE сессии и игнорирует весь трафик этой сессии.

Обходится такая проблема двумя способами: либо перезапуск pppd, либо ip link set down и ip link set up на физическом интерфейсе (эквивалент выдергивания кабеля). Смена состояния интерфейса обнаруживается pppd и он сам заново устанавливает соединение.

В настройках pppd установлены опции persist, maxfail 0 и holdoff 15. Проблема возникает в случаях, когда не происходит потери несущей и интерфейс не переходит в состояние down. Такое бывает при сбоях на маршрутизаторах провайдеров или при наличии коммутаторов между сервером PPPoE и шлюзом.

Провайдеры непрошибаемы: сначала предлагают перезагрузить компьютер, затем "коробочку" (конечно, обычный роутер после перезагрузки установит новое соединение). Повлиять на провайдеров практически невозможно даже в случае юр. лиц с тарифом в 50 раз дороже, чем у физ. лиц.

Хочется добиться автоматической переустановки соединения PPPoE в случае такой ситуации.
Не хочется использовать скрипты "раз в минуту пингуем google и перезапускаем pppd". Это -- костыль.

Видел у pppd опцию active-filter, однако она предназначена для определения, когда можно произвести отключение (режим "on-demand") -- похоже, не подойдет.

Известно, что через интерфейс ppp всегда есть какой-то UDP трафик (от OpenVPN, внутренние пинги раз в 10 секунд).
  • Вопрос задан
  • 6989 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы