PPPOE(8)

НАЗВАНИЕ
pppoe - клиент PPPoE, работающий в пространстве пользователя.

ОБЗОР
pppd pty 'pppoe [опции-pppoe]' [опции-pppd]

pppoe -A [опции-pppoe]

ОПИСАНИЕ
pppoe - это клиент PPPoE (Point-to-Point Protocol over Ethernet - протокол точка-точка через Ethernet) для Linux и других UNIX-систем, работающий в пространстве пользователя. pppoe работает совместно с pppd - демоном PPP, чтобы создать PPP-соединение через Ethernet, которое используется многими DSL-провайдерами.

ОПЦИИ

-I интерфейс
    Опция -I указывает используемый интерфейс Ethernet. В Linux это обычно eth0 или eth1. Интерфейс должен быть в состоянии "up" перед запуском pppoe, но на нём не должен быть настроен IP-адрес.

-T таймаут
    Опция -T заставляет pppoe завершить работу, если в течение таймаут секунд в сеансе не обнаружен трафик. Я рекомендую чтобы вы использовали эту опцию в качестве дополнительной меры безопасности. Но если вы используете эту опцию, вы должны убедиться, что PPP генерирует достаточно трафика, чтобы таймаут не срабатывал в обычном режиме работы. Лучший способ достичь этого - использовать опцию lcp-echo-interval pppd. Вы должны установить таймаут PPPoE примерно в 4 раза больше интервала LCP-эха.

-D имя-файла
    Опция -D заставляет сбрасывать каждый пакет в файл с именем имя-файла. Предполагается, что она используется только для отладки; она выводит большое количество информации и сильно ухудшает производительность.

-V  Опция -V заставляет pppoe вывести номер его версии и завершить работу.

-A  Опция -A заставляет pppoe отправить пакет PADI и затем выводит имена концентраторов доступа из каждого принятого пакета PADO. Не используйте эту опцию совместно с pppd, опция -A предназначена только для интерактивного использования, чтобы получить интересующую информацию о концентраторе доступа.

-S имя-службы
    Указывает имя желаемой службы. pppoe начнёт установку сеанса только с тем концентратором доступа, который может предоставить указанную службу. В большинстве случаев вы не должны указывать эту опцию. Используйте её только если вы знаете, что имеется несколько концентраторов доступа или знаете, что вам нужно определённое имя службы.

-C имя-концентратора-доступа
    Указывает имя желаемого концентратора доступа. pppoe начнёт установку сеанса с указанным концентратором доступа. В большинстве случаев вы не должны указывать эту опцию. Используйте её только если вы знаете, что имеется несколько концентраторов доступа. Если указаны обе опции, -S и -C, они обе должны подойти, чтобы pppoe начал установку сеанса.

-U  Заставляет pppoe использовать метку Host-Uniq в своих пакетах обнаружения. Это позволит запустить несколько pppoe демонов, не создавая помехи наложением пакетов обнаружения. Вы должны снабдить этой опцией всех демонов pppoe, если вы собираетесь запустить несколько демонов одновременно.

-s  Заставляет pppoe использовать синхронную инкапсуляцию PPP. Если вы используете эту опцию, тогда вы должны использовать опцию sync в pppd. Предпочтительно использовать эту опцию если она работает, потому что она сильно снижает накладные расходы CPU на pppoe. Однако она МОЖЕТ быть ненадёжной на медленных машинах – существует соревнование между записью данных pppd и чтением их pppoe. Если вы обнаружите ошибки или аварийные завершения программ при использовании синхронного PPP, отключите его –- не пишите мне о поддержке!

-m MSS
    Заставляет pppoe фиксировать максимальный размер сегмента TCP на заданном значении. Поскольку из-за накладных расходов PPPoE максимальный размер сегмента PPPoE меньше, чем при нормальной инкапсуляции Ethernet. Это может вызывать проблемы на компьютерах в локальной сети за пределами шлюза, использующего PPPoE. Если у вас имеется локальная сеть за шлюзом, и шлюз подключается к Интернет посредством PPPoE, строго рекомендуется использовать опцию -m 1412. Это позволит не устанавливать MTU на всех узлах в локальной сети.

-H MAC
    Заставляет pppoe использовать указанный Ethernet MAC-адрес в качестве исходного адреса для отправки пакетов. MAC должен быть указан в виде AA:BB:CC:DD:EE:FF. Если указана эта опция, pppoe переведёт интерфейс в неразборчивый режим.

-p файл
    Заставляет pppoe записывать его идентификатор процесса в указанный файл. Это можно использовать для поиска и принудительного завершения процессов pppoe.

-e sess:mac
    Заставляет pppoe пропускать фазу обнаружения и перейти прямо к фазе сеанса. Сеанс задаётся идентификатором sess и MAC-адресом партнёра, указанным в mac. Этот режим не предназначен для обычного использования; он предназначен только для pppoe-server(8).

-n  Заставляет pppoe не открывать сокет обнаружения. Этот режим не предназначен для обычного использования; он предназначен только для pppoe-server(8).

-k  Заставляет pppoe завершить существующий сеанс отправкой кадра PADT, и затем выйти. Вы должны использовать опцию -e совместно с этой опцией для указания завершаемого сеанса. Это может быть использовано для закрытия сеансов, когда партнёр имеет ошибки в реализации процедуры завершения сеанса.

-d  Заставляет pppoe произвести обнаружение, вывести информацию о сеансе и завершить работу. Информация о сеансе печатается в соответствии с форматом, ожидаемым опцией -e. Эта опция позволяет вам начать обнаружение PPPoE, произвести некоторую другую работу, и затем начать действующий сеанс PPP. Будьте аккуратны; если вы используете эту опцию в цикле, вы можете создать много сеансов, которые могут раздражать вашего партнёра.

-f disc:sess
    Опция -f задаёт типы кадров Ethernet для кадров обнаружения и кадров сеансов PPPoE. Типы указываются как шестнадцатеричные числа, разделённые двоеточиями. Стандарт PPPoE использует типы кадров 8863:8864. Вы не должны использовать эту опцию, если вы не абсолютно уверены, что ваш партнёр работает с использованием нестандартных типов кадров. Если ваш провайдер использует нестандартные типы кадров, жалуйтесь!

-h  Опция -h заставляет pppoe вывести информацию об использовании и завершить работу.

ЗА КУЛИСАМИ PPPOE
PPPoE (Point-to-Point Protocol over Ethernet - протокол точка-точка через Ethernet) описан в RFC2516 и является протоколом, который предоставляет абстракцию сеанса, работающего поверх соединённых мостом сетей Ethernet. PPPoE работает инкапсулируя кадры PPP в кадры Ethernet. Протокол имеет два чётких этапа: этап обнаружения и этап сеанса. На этапе обнаружения узел отправляет широковещательно особый кадр PADI (PPPoE Active Discovery Initiation - инициация активного обнаружения PPPoE) для обнаружения любых концентраторов доступа. Концентраторы доступа (обычно только один концентратор доступа) отвечают пакетами PADO (PPPoE Active Discovery Offer - предложение активного обнаружения PPPoE), анонсируя присутствие и предоставляемые ими службы. Узел выбирает один из концентраторов доступа и передаёт пакет PADR (PPPoE Active Discovery Request - запрос активного обнаружения PPPoE), запрашивающий сеанс. Концентратор доступа отвечает пакетом PADS (PPPoE Active Discovery Session-Confirmation - подтверждение сеанса активного обнаружения PPPoE). Затем протокол переходит на этап сеанса. На этапе сеанса узел и концентратор доступа обмениваются кадрами PPP вложенными в кадры Ethernet. Обычный MTU Ethernet - 1500 байт, но PPPoE добавляет к накладным расходам PPP-кадра два байта, что означает наибольший MTU PPP-интерфейса - 1492 байта. Это приводит к различным проблемам, если вы используете Linux-машину как фильтрующий шлюз, и интерфейс за пакетным фильтром имеет MTU больше 1492. Фактически, для безопасности, я рекомендую установить на машины за фильтрующим шлюзом MTU 1412, чтобы в наихудшем случае разрешить TCP и IP опции в соответствующих заголовках. Обычно PPP использует LCP (Link Control Protocol - протокол управления каналом) чтобы отключить соединение PPP. Однако спецификация PPPoE разрешает завершать канал с помощью специального пакета PADT (PPPoE Active Discovery Terminate - завершение активного обнаружения PPPoE). Если был принят запрос завершения сеанса PPP, данный клиент распознает этот пакет и попытается корректно отключить соединение.

ЦЕЛИ ПРОЕКТИРОВАНИЯ
Мои цели для этого PPPoE клиента были следующими, в порядке убывания важности:

o   Он должен работать.

o   Он должен быть программой, работающей в пространстве пользователя, а не частью ядра.

o   Код должен быть прост для чтения и сопровождения.

o   Он должен быть полностью совместим с RFC2516, предложенным стандартом PPPoE.

o   Он никогда не должен зависать –- если соединение повреждено, он может обнаружить это и выйти, позволяя сценарию-обёртке (wrapper) перезапустить соединение.

o   Он должен быть довольно эффективным.

Я верю, что я достиг всех этих целей, но (конечно) открыт для предложений, исправлений и идей. Посетите мою домашнюю страницу http://www.roaringpenguin.com, чтобы узнать контактную информацию.

ЗАМЕЧАНИЯ
Для наилучших результатов, вы должны задать pppd опцию mtu 1492. Я наблюдал проблемы с чрезмерно большими кадрами, если я не устанавливал эту опцию. Также, если pppoe запущен на фильтрующем шлюзе, все машины за фильтрующим шлюзом должны иметь MTU 1412. Если у вас есть проблемы, проверьте системные журналы. pppoe помещает интересную информацию в системный журнал. Вы можете включить журналирование сообщений уровня отладки (debug) для получения полной диагностики.

АВТОРЫ
pppoe был написан Дэвидом Ф. Сколлом (David F. Skoll) <dfs@roaringpenguin.com> под влиянием более ранних версий Люка Страса (Luke Stras). Домашняя страница pppoe - http://www.roaringpenguin.com/pppoe/.

АВТОР ПЕРЕВОДА
Перевод на русский язык выполнил Владимир Ступин <wheel69@yandex.ru>.

СМОТРИ ТАКЖЕ
pppd(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8), /usr/share/doc/pppoe/README.Debian.gz