вторник, 29 марта 2011 г.

PPPoE client FreeBSD

Задача простая - настроить соединение с вышестоящим провайдером по PPPoE.
Адрес получается по DHCP (динамически).
Пример настройки стандартными средствами FreeBSD

/etc/ppp/ppp.conf
default:
  set log Phase tun command # you can add more detailed logging if you wish
  set ifaddr 10.0.0.1/0 10.0.0.2/0
  disable ipv6cp
   enable lqr

name_of_service_provider:
  set device PPPoE:xl1 # заменить xl1 именем вашей сетевой карты
  set authname YOURLOGINNAME
  set authkey YOURPASSWORD
  set ifaddr 0 0
  set dial
  set login
  add default HISADDR
  set redial 0 0
  set reconnect 1 0
Разбор конфига 
default: Команды этой настройки выполняются автоматически при запуске ppp


set log phase tun command - Указываем явно, что логировать, для предотвращения слишком быстрого роста лога


set ifaddr 10.0.0.1/0 10.0.0.2/0 - Если провайдер не выделил статический IP адрес, ppp может быть настроен для определения локального и удаленного адреса. Это делается путем ''вычисления'' IP адреса и настройки его программой ppp с использованием IP Configuration Protocol (IPCP) после установления соединения.
Номер после символа / это число бит в адресе, которые будут запрошены ppp. Вы можете
использовать более подходящие вам IP адреса, но пример выше всегда будет работать.
Если вы не используете режим -auto, потребуется создать запись в /etc/ppp/ppp.linkup. Этот файл используется после установки соединения. На этот момент ppp уже настроит адреса интерфейсов и станет возможным добавление записей в таблицу маршрутизации:


disable ipv6cp - отключаем IPv6.

enable lqr -   включает Link Quality Reporting (LQR), который отслеживает качество канала

name_of_service_provider: определяет настройки для провайдера, называемого ''name_of_service_provider''. Это имя может быть изменено на имя вашего провайдера, чтобы в дальнейшем вы могли использовать load name_of_service_provider для начала соединения.


set device PPPoE:xl1 - заменить xl1 именем вашей сетевой карты. Эта команда указывает через какой интерфейс должно происходить соединение.


set authname YOURLOGINNAME - логин для соединения (Как правило выдается провайдером)

set authkey YOURPASSWORD - пароль (Как правило выдается провайдером)

set dial - Строка дозвона. Инициация соединения.

set login - пройти аутентификацию.



add default HISADDR - Эта строка сообщает ppp добавить маршрут по умолчанию, указывающий на HISADDR. HISADDR будет заменен на IP адрес шлюза, определенного IPCP.

set redial 0 0 - восстановления связи

set reconnect 1 0 - авторекннект после потери связи

/etc/rc.conf
Устанавливаем параметры для автостарта PPPoE.

# запуск ppp
ppp_enable="YES"
# Постоянное соединение. Восстанавливается после обрыва.
ppp_mode="dedicated"
# Если машина - шлюз в локальной сети. 
# NAT можно также настроить отдельно.
#ppp_nat="YES"
ppp_profile="name_of_service_provider"
Проверка запуска

#/etc/rc.d/ppp start
Либо
# ppp -dedicated name_of_service_provider


Ссылки:
Wikipedia - PPPoE
Freebsd handbook - pppoe
FAQ-PPP-FreeBSD
Citforum - Подробное руководство по PPP

3 комментария:

  1. изменил сетевое устройство на внешнее. логин пароль. словом, сделал все так, как описано.

    итог:
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: netgraph: Cannot load module
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: ng_ether: Cannot load module
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: ng_pppoe: Cannot load module
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: ng_socket: Cannot load module
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: Cannot create netgraph socket node: Operation not permitted
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: deflink: PPPoE: unknown host
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: deflink: PPPoE: unknown host
    Sep 20 15:22:21 andrey ppp[1955]: tun0: Warning: deflink: Device (PPPoE:rl0) must begin with a '/', a '!' or contain at least one ':'

    ОтветитьУдалить
  2. в такой конфигурации хрен какие пакеты идут.
    если закомментировать "block all", то все ок.

    спасибо автору. хороший мануал.

    ОтветитьУдалить
  3. Насчет ошибок, можно пересобрать ядрос этими модулями, или подгрузить kldload netgraph.ko и остальные.
    Также на динамическую загрузку модулей может влиять параметр securelevel, Подробнее можно прочитать на офф сайте

    ОтветитьУдалить