Настройка ADSL PPPoE соединения в FreeBSD

Июнь, 16th 2009Рубрика: *NIX 7550
Подписаться на комментарии по RSS

О настройке 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). Выходов из данной ситуации, как всегда несколько, вот наиболее простые:

  1. сменить шелл roota c bash на родной csh
  2. для тех кто хочет оставить bash для roota по умолчанию сделать так:
  3. в скрипте запуска /etc/rc.d/ppp в секции ppp_start_profile()

    строку su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}" заменить на $command ${rc_flags} ${_ppp_profile} (внимание! кавычки надо убрать).

Вот кажется и все. Если остались вопросы - милости прошу в комменты.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 1

  1. 2010-08-17 в 18:55:43 | Валентин

    Спасибо за хорошую статью - кратко и то, что нужно. Тоже предпочитаю bash, поэтому собственно на статью и наткнулся :)

Без регистрации
ваш комментарий будет опубликован после проверки
Регистрация на сайте

На указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.