Skip to content

Couldn’t allocate PPP unit 0 as it is already in use

Couldn’t allocate PPP unit 0 as it is already in use published on Комментариев к записи Couldn’t allocate PPP unit 0 as it is already in use нет

На машине, где несколько интернет-провайдеров, соответственно имеются несколько ppp интерфейсов. Часто случается так, что неизвестно, который из провайдеров поднимет ppp-линк раньше и получит ppp0, ppp1 или вообще pppN. И тогда запросто возможна ситуация, когда второй по задумке провайдер, которому надо висеть не ppp1, вдруг появляется на ppp0, руша настроенные правила роутинга, файрволла и прочего сетевого хозяйства.

Подобную ситуацию можно, конечно, отследить в скрипте, меняя при необходимости имя сетвеого интерфейса ppp* на нужное. До поры до времени это работает.

Потом выясняется, что один из провайдеров мистическим образом непрерывно глючит, коннекта с ним нет никогда или почти никогда. В логах при этом, если приглядеться, мелькает запись вида: Couldn’t allocate PPP unit 0 as it is already in use

Проблема на самом деле решается очень просто. У pppd есть параметр unit N, где N есть закрепленный за данным экземпляром pppd номер интерфейса pppN. Таким образом, достаточно для всех ppp* в системе в соответствующих /etc/ppp/options.* дописать нужный unit 0, unit 1, etc, и проблема драки за номера pppN исчезнет навсегда.

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

Войти с помощью: 

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

Primary Sidebar