Настройка ADSL PPPoE соединения в FreeBSD
О настройке PPP соединения в FreeBSD написано не мало, но некоторые моменты пришлось додумывать самому. Начну с того, что склоняюсь всё-таки к настройке соединения с интернет на самом ADSL модеме. Здесь есть ряд плюсов, вернее он только один - при разрыве связи или какой-то нестабильной работе, нажать на кнопочку модема может любой не компетентный пользователь. Что, собственно, крайне важно, когда вы единственный человек, который занимается IT в организации...
Но бывают такие случаи, когда нужно, чтобы внешний IP адрес, принадлежал именно компьютеру, являющемуся шлюзом в Internet. Вот и появилась у нас такая программа, ключ которой строго привязывался к IP аресу, т.е. простым пробросом портов на модеме тут проблему не решишь. В итоге ADSL модем пришлось перевести в режим моста.
Пример моего конфига для установления ADSL соединения:
cat /etc/ppp/ppp.conf
# Общие настройки default: set log phase tun command set timeout 0 set redial 10+10-5.3 20 set reconnect 3 5 # Настройки Вобла-Телеком VT: disable lqr deny lqr set device PPPoE:vr1:VT set authname username set authkey password set dial set login add default HISADDR
Описание многих параметров есть в handbook. Поэтому остановлюсь лишь на некоторых моментах. Начинает настройку по умолчанию секция default. Команды этой настройки выполняются автоматически при запуске ppp для всех соединений, ведь в ppp.conf могут содержаться настройки для разных провайдеров, различных комбинаций логинов и паролей.
set log phase tun command
Включаем параметры протоколирования:
set redial 10+10-5.3 20
Говорим ppp пытаться соединиться 20 раз. После первой попытки пауза в течение 10 секунд. Следующая попытка - пауза 20 секунд и так далее до окончания шестой попытки, где пауза доходит до 1 минуты. У следующих 14 попыток соединения продолжительность пауз будет также 1 минута. Если ppp соединение так и не установилось в течение 20 попыток, блокировки времени снова начинаются с 10 секунд.
set reconnect 3 5
Эта команда говорит ppp восстанавливать подключение при неожиданной потере несущей, а именно сделать 5 попыток соединения с паузой в 3 секунды прежде, чем ppp сдастся. значение по умолчанию 0. Означает не делать попыток пересоединения при потере несущей.
Для того, чтоб Internet подключался при загрузке системы в /etc/rc.conf добавляем:
ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" #если делаете сетевой шлюз ppp_profile="VT" #название секции вашего соединения из ppp.conf
При настройке ppp была замечена следующая бага - ppp не запускался при старте системы, на консоль выдавал следующее:
/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "su"
Баг проявляется, если для root переопределена оболочка на bash (что поделать - сложно отказываться от привычек Linux). Выходов из данной ситуации, как всегда несколько, вот наиболее простые:
- сменить шелл roota c bash на родной csh
- для тех кто хочет оставить bash для roota по умолчанию сделать так:
в скрипте запуска /etc/rc.d/ppp в секции ppp_start_profile()
строку su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}" заменить на $command ${rc_flags} ${_ppp_profile} (внимание! кавычки надо убрать).
Вот кажется и все. Если остались вопросы - милости прошу в комменты.
Комментариев: 1
Спасибо за хорошую статью - кратко и то, что нужно. Тоже предпочитаю bash, поэтому собственно на статью и наткнулся :)