Рассказ о том, как я настраивал pptp-соединение в Fedora.
Один провайдер раздаёт интернет через VPN-соединения по протоколу pptp. Долго и стабильно работающая Gentoo была заменена на Fedora 14. Pptp-соединения у этого провайдера настраиваю не первый год, поэтому сразу набросал скрипт подключения.
Но использовать /etc/rc.local для поднятия сети - не очень хорошо, да и происходит в последний момент. В Gentoo соединение устанавливалось штатным способом. NetworkManager не был установлен, поэтому всё настраивалось через службу network:
/etc/sysconfig/network-scripts/ifcfg-ppp0
Следую далее по скрипту. Вижу, что запускается из него другой скрипт - /etc/sysconfig/network-scripts/ifup, а из него - ifup-ppp. Перехожу туда. Ставлю в начале скрипта строчку
Поставил подобные "брейкпоинты" у всех строчек с exit в скрипте. Перезагрузка. Не отловился exit, где-то в другом месте скрипт прерывается. Ставлю граничные "брейкпоинты" и начинаю сужать круг подозреваемых.
Виновной оказалась строчка
Проверил порядок запуска служб - так и есть, auditd запускается сразу после network.
Сменил порядковый номер службы auditd с 11 на 09 в rc3.d и rc5.d, вернул SELINUX в enforcing и всё заработало. Когда-нибудь руки дойдут и до selinux, а пока и такой вариант устраивает.
Один провайдер раздаёт интернет через VPN-соединения по протоколу pptp. Долго и стабильно работающая Gentoo была заменена на Fedora 14. Pptp-соединения у этого провайдера настраиваю не первый год, поэтому сразу набросал скрипт подключения.
Но использовать /etc/rc.local для поднятия сети - не очень хорошо, да и происходит в последний момент. В Gentoo соединение устанавливалось штатным способом. NetworkManager не был установлен, поэтому всё настраивалось через службу network:
/etc/sysconfig/network-scripts/ifcfg-ppp0
DEVICE=ppp0 NM_CONTROLLED=no ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes/etc/sysconfig/network-scripts/route-eth0
ADDRESS0=78.29.0.0 NETMASK0=255.255.0.0 GATEWAY0=ip_адрес_шлюза_локальной_сети ADDRESS1=10.48.0.0 NETMASK1=255.240.0.0 GATEWAY1=ip_адрес_шлюза_локальной_сетиПробуем:
# service network restartВсё работает. Перезагружаю машину:
Активируется интерфейс loopback: [ OK ] Активируется интерфейс eth0: Определяется информация IP для eth0... готово. Активируется интерфейс eth1: [ OK ] Активируется интерфейс ppp0: [ СБОЙ ]Исследование логов ничего не дало. Добавляю в конфиг pptp опции debug и logfile /var/log/pptp.log. Перезагружаюсь. Данный лог даже не появился.
# service network restartИ всё работает. Т.е. во время перезагрузки не работает, а после загрузки - работает. Странно. Может быть при загрузке интерфейс eth0 не успевает получить ip-адрес от dhcp-сервера?.. Вставляю в нужное место скрипта /etc/init.d/network строчку
ip a >> /root/report && ip r >> /root/reportПерезагрузка показала, что адрес и маршруты на момент поднятия ppp в порядке.
Следую далее по скрипту. Вижу, что запускается из него другой скрипт - /etc/sysconfig/network-scripts/ifup, а из него - ifup-ppp. Перехожу туда. Ставлю в начале скрипта строчку
echo "1" >> /root/reportа в конце -
echo "2" >> /root/reportПерезагрузка. В /root/report единица есть, двойки - нет.
Поставил подобные "брейкпоинты" у всех строчек с exit в скрипте. Перезагрузка. Не отловился exit, где-то в другом месте скрипт прерывается. Ставлю граничные "брейкпоинты" и начинаю сужать круг подозреваемых.
Виновной оказалась строчка
exec /sbin/ppp-watch "${CONFIG##ifcfg-}" "$2"Т.е. при перезагрузке скрипт на этой строчке падает, а при перезапуске службы network - нормально срабатывает. Значит нет у скрипта доступа к ppp-watch, видимо в момент загрузки, позже - появляется. А может ppp-watch запускается, но сама по себе падает. Кто у нас доступом ведает? SElinux! Временно поставил в файле /etc/selinux/config опцию SELINUX в disabled. Перезагрузка. Всё работает. Значит он виноват.
Проверил порядок запуска служб - так и есть, auditd запускается сразу после network.
Сменил порядковый номер службы auditd с 11 на 09 в rc3.d и rc5.d, вернул SELINUX в enforcing и всё заработало. Когда-нибудь руки дойдут и до selinux, а пока и такой вариант устраивает.
Комментариев нет:
Отправить комментарий