- PPTP плагин до сих пор не научился автоматически подключаться при входе в систему. Про автоматическое подключение на этапе загрузки системы я вообще молчу.
- В некоторых случаях не запоминает пароль на подключение и его приходится каждый раз вводить.
- Я пользуюсь сетевыми файловыми системами (cifs). Так вот, Network Manager при завершении работы системы отключает сетевые интерфейсы ДО отмонтирования сетевых файловых систем. Последние при этом подвисают на 60 секунд каждая.
- Я не пользуюсь Wi-Fi и поэтому мне не нужно постоянно переподключаться между несколькими сетями.
- Мои настройки сети статичны и меняются крайне редко.
Казалось бы, достаточно удалить пакет network-manager в синаптике и всё. Ан нет. Действительно, удаление названного пакета отключает NetworkManager. Однако конфигурация сети, заданная в традиционном файле /etc/network/interfaces при этом обрабатывается не совсем корректно. Вот мой файл конфигурации:
auto lo eth0 ppp0В нем определно 3 сетевых интерфейса: локальная петля (lo), физический Ethernet (eth0) и PPTP интерфейс, по которому я хожу в инет (ppp0).
iface lo inet loopback
iface eth0 inet static
address 192.168.1.33
netmask 255.255.0.0
broadcast 192.168.255.255
gateway 192.168.1.10
iface ppp0 inet ppp
provider rez
Строка "auto lo eth0 ppp0" говорит системе о том, что нужно сначала поднять lo, затем eth0, и в последнюю очередь ppp0.
Что же происходит на деле? При загрузке системы действительно поднимается lo, затем eth0, а вот ppp0 поднимается... еще ДО старта syslogd! То есть еще даже до инициализации сетевой подсистемы Linux. Причем демон pppd запускается аж в трёх экземплярах! Разумеется, что подключиться он не может, соединение разрывается, он пробует снова и вся эта чехарда продолжается до бесконечности...
Раньше (в Ubuntu 8.04) такого поведения не было.
Как?
Как оказалось, виноват во всём udev. Ну разумеется он, потому что кто же еще мог запустить pppd на такой ранней стадии запуска системы? Начал смотреть правила в /lib/udev/rules.d/ и обнаружил там вот что: 85-ifupdown.rules:
# Bring devices up and down only if they're marked auto.Udev, как только находил новый сетевой интерфейс в системе, запускал скрипт /sbin/ifup, который в свою очередь пытался поднять интерфейс pppd раньше времени.
# Use start-stop-daemon so we don't wait on dhcp
SUBSYSTEM=="net", TEST!="/var/run/network/ifstate", RUN+="/bin/mkdir /var/run/network"
SUBSYSTEM=="net", ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}"
SUBSYSTEM=="net", ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}"
Прочитав комментарий в /lib/udev/rules.d/README, я скопировал файл 85-ifupdown.rules в папку /etc/udev/rules.d и привел его к такому виду:
# Bring devices up and down only if they're marked auto.То есть по сути отключил действия, выполняющиеся при подключении/отключении сетевых адаптеров. Очевидно, это может как-то повлиять на работу систему, если вы в процессе её работы часто меняете сетевые адаптеры. Но в обычных условиях это правило практически бесполезно.
# Use start-stop-daemon so we don't wait on dhcp
SUBSYSTEM=="net", TEST!="/var/run/network/ifstate", RUN+="/bin/mkdir /var/run/network"
SUBSYSTEM=="net", ACTION=="add"
SUBSYSTEM=="net", ACTION=="remove"
Теперь моя сеть инициализируется как положено и на этапе входа в систему я уже имею подключенный интернет.
Еще раз, что нужно сделать, чтобы в Ubuntu 9.04 отключить Network Manager:
1) Удалить пакет network-manager и, если хотите, относящиеся к нему.
2) Скопировать файл /lib/udev/rules.d/85-ifupdown.rules в /etc/udev/rules.d/ и убрать в нем параметр RUN как указано выше.
85-ifupdown.rules я не нашел у себя в Ubuntu 9.04 такой файл
ОтветитьУдалить