PPPoE — протокол туннелирования поверх Ethernet¶
PPPoE (англ. Point-to-Point Protocol over Ethernet) — сетевой протокол, объединяющий возможности протокола PPP (Point-to-Point Protocol) с технологией Ethernet. Используется преимущественно провайдерами широкополосного доступа в интернет для организации абонентских подключений, аутентификации пользователей, выделения IP-адресов и учёта трафика. Работает поверх обычного Ethernet-сегмента, что позволяет применять PPP-механизмы в локальных сетях и на абонентских линиях.
¶История создания
Протокол PPP изначально разрабативался для последовательных линий связи (например, модемных) и предполагал соединение двух узлов напрямую. С развитием кабельных и DSL-сетей возникла потребность использовать PPP поверх широковещательных сетей Ethernet, где один сервер обслуживает множество абонентов. Решение было оформлено в виде RFC 2516, опубликованном в феврале 2000 года группой IETF. Авторами документа выступили Л. Мамакос, К. Лалил, Д. Карлсон, С. Цукерман, Б. Палл и Д. Метц. Протокол быстро получил распространение в ADSL-доступе и стал де-факто стандартом для абонентских подключений в России и во многих других странах.
¶Принцип работы
PPPoE функционирует в две фазы: обнаружение (Discovery) и сессия (Session).
¶Фаза обнаружения
На этом этапе клиент и сервер (PPPoE-сервер провайдера) находят друг друга в Ethernet-сегменте и устанавливают идентификатор сессии. Обмен пакетами включает следующие шаги:
- Клиент отправляет широковещательный пакет PADI (PPPoE Active Discovery Initiation).
- Сервер отвечает односторонним пакетом PADO (Offer).
- Клиент выбирает сервер и отправляет PADR (Request).
- Сервер подтверждает сессию пакетом PADS (Session-Confirmation) с присвоенным ID.
После завершения Discovery устанавливается логическая PPP-сессия, поверх которой передаётся аутентификация и трафик.
¶Фаза сессии
В сессии PPP-кадры инкапсулируются в Ethernet-кадры. Каждый пакет содержит идентификатор сессии, что позволяет серверу различать абонентов. Аутентификация обычно выполняется по протоколам PAP или CHAP, после чего клиенту назначается IP-адрес, маска, шлюз и DNS-серверы. Завершение сессии происходит по запросу любой из сторон или по таймауту.
¶Формат кадра
Ethernet-кадр PPPoE имеет следующую структуру:
| Поле | Размер |
|---|---|
| MAC-адрес назначения | 6 байт |
| MAC-адрес источника | 6 байт |
| EtherType (0x8863 — Discovery, 0x8864 — Session) | 2 байта |
| Версия и тип | 1 байт |
| Код | 1 байт |
| Идентификатор сессии | 2 байта |
| Длина | 2 байта |
| Полезная нагрузка | переменная |
Максимальный размер полезной нагрузки PPPoE-кадра — 1464 байта, что меньше стандартных 1500 байт Ethernet. Это приводит к необходимости фрагментации или снижения MTU на абонентском устройстве до 1492 байт, что может влиять на производительность некоторых приложений.
¶Классификация
По роли участников выделяют:
- PPPoE-клиент — абонентское устройство (модем, роутер, компьютер), инициирующее сессию.
- PPPoE-сервер — устройство провайдера (BRAS — Broadband Remote Access Server), принимающее подключения.
По способу инкапсуляции различают LCP-инкапсуляцию PPP-кадров и Ethernet-инкапсуляцию, но на практике используется преимущественно стандартный вариант из RFC 2516.
¶Применение
PPPoE применяется в следующих сценариях:
- ADSL-доступ — основной протокол абонентских подключений через DSL-модемы.
- Кабельный доступ — используется некоторыми операторами поверх DOCSIS.
- FTTH/FTTB — в России PPPoE остаётся распространённым протоколом абонентской аутентификации на оптических линиях.
- VPN-туннели — PPPoE может использоваться для построения VPN поверх Ethernet.
В России PPPoE традиционно применяется крупнейшими провайдерами, включая Ростелеком, для абонентской аутентификации и учёта трафика.
¶Альтернативы
В качестве альтернатив PPPoE используются:
- IPoE (IP over Ethernet) — более простой протокол, основанный на DHCP и MAC-аутентификации.
- DHCP-опции — механизм передачи параметров подключения через DHCP-сервер.
Многие операторы переходят с PPPoE на IPoE, поскольку последний проще в настройке и не требует снижения MTU. Однако PPPoE сохраняет преимущество в виде встроенной аутентификации и удобного учёта сессий.
¶Настройка
Для подключения по PPPoE необходимо указать логин и пароль, выданные провайдером, а также имя сервиса (Service Name). Настройка выполняется на роутере или операционной системе. В Linux PPPoE-клиент реализован утилитами rp-pppoe или pppoe, в Windows — средствами системы или сторонними программами.
¶Ограничения
К недостаткам PPPoE относят:
- Снижение MTU до 1492 байт, что может вызывать проблемы с фрагментацией.
- Дополнительные накладные расходы на заголовки протокола.
- Сложность настройки по сравнению с IPoE.
Несмотря на ограничения, протокол продолжает широко использоваться в абонентских сетях благодаря成熟的 механизма аутентификации и учёта сессий.
¶Источники
- RFC 2516 — Method for Transmitting PPP Over Ethernet (PPPoE)
- RFC 1661 — The Point-to-Point Protocol (PPP)
- Справочник сетевых протоколов TCP/IP
- Документация по настройке BRAS-серверов
