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

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

<a href="http://www.linuxetc.ru/?p=16" class="forlinuxetc">(Оригинал написан для linuxetc.ru)</a> На машине, где несколько интернет-провайдеров, соответственно имеются несколько 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 исчезнет навсегда.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.