PPPoE

PPPoE ( англ. Point-to-point protocol over Ethernet ) - мережевий протокол канального рівня передачі кадрів PPP через Ethernet. В основному використовується xDSL -сервісами. Надає додаткові можливості ( аутентифікація, стиснення даних, шифрування).

Стандартне MTU протоколу нижче (1492 байт), ніж на стандартному Ethernet (1500 байт), що іноді викликає проблеми з погано налаштованими міжмережевим екранами.

PPPoE - це туннелирующих протокол, який дозволяє настроювати (або інкапсулювати) IP, або інші протоколи, які налаштовуються на PPP, через з'єднання Ethernet, але з програмними можливостями PPP з'єднань, і тому використовується для віртуальних "дзвінків" на сусідню Ethernet-машину і встановлює з'єднання точка-точка, яке використовується для транспортування IP-пакетів, працююче з можливостями PPP.

Це дозволяє застосовувати традиційне PPP-орієнтоване ПО для настройки з'єднання, яке використовує не послідовний канал, а пакетно-орієнтовану мережу (як Ethernet), щоб організувати класичне з'єднання з логіном, паролем для Інтернет-з'єднань. Також, IP-адресу по іншу сторону з'єднання призначається тільки коли PPPoE з'єднання відкрито, дозволяючи динамічне перевикористання IP адрес.

PPPoE розроблений UUNET, Redback Networks і RouterWare. Протокол описаний в RFC 2516.

Варто відзначити, що деякі постачальники обладнання ( Cisco і Juniper, наприклад) використовують термін PPPoEoE (PPPoE over Ethernet), що означає PPPoE, що працює безпосередньо через Ethernet або інші IEEE 802.3 мережі, а також PPPoE, що працює через пов'язані в Ethernet (Ethernet bridged over) ATM, для того щоб відрізняти від PPPoEoA (PPPoE over ATM), який працює на ATM virtual circuit по специфікації RFC 2684 і SNAP і інкапсулює PPPoE. PPPoEoA - це не те ж саме, що Point-to-Point Protocol over ATM (PPPoA), оскільки він не використовує SNAP.


Робота PPPoE здійснюється наступним чином. Існує Ethernet -середа, тобто кілька з'єднаних мережевих карт, які адресуються MAC-адресами. Заголовки Ethernet-кадрів містять адресу відправника кадру, адреса одержувача кадру і тип кадру. Одну з карт слухає PPPoE- сервер. Клієнт посилає широкомовна Ethernet-кадр, на який повинен відповісти PPPoE-сервер (адреса відправника кадру - свій MAC-адресу, адресу одержувача кадру - FF: FF: FF: FF: FF: FF і тип кадру - PPPoE Active Discovery Initiation). PPPoE сервер посилає клієнтові відповідь (адреса відправника кадру - свій MAC-адресу, адресу одержувача кадру - МАС-адреса клієнта і тип кадру - PPPoE Active Discovery Offer). Якщо в мережі кілька PPPoE серверів, то всі вони посилають відповідь. Клієнт вибирає підходящий сервер і посилає йому запит на з'єднання. Сервер посилає клієнтові підтвердження з унікальним ідентифікатором сесії, всі наступні кадри в сесії будуть мати цей ідентифікатор. Таким чином, між сервером і клієнтом створюється віртуальний канал, який ідентифікується ідентифікатором сесії і MAC-адресами клієнта і сервера. Потім в цьому каналі встановлюється PPP з'єднання, а вже в PPP пакети упаковується IP -трафік.


1. PPPoE Discovery (PPPoED)

1.1. PADI

PADI - PPPoE Active Discovery Initiation.

Якщо користувач хоче підключитися до інтернету по DSL, спочатку його машина повинна виявити концентратор доступу (DSL access concentrator або DSL-AC) на стороні провайдера (point of presence (POP)). Взаємодія через Ethernet можливо тільки через MAC-адреси. Якщо комп'ютер не знає MAC-адреси DSL-AC, він посилає PADI пакет через Ethernet broadcast (MAC: ff: ff: ff: ff: ff: ff) Цей PADI-пакет містить МАС-адресу пославшей його машини.

Приклад PADI-пакета:

 Frame 1 (44 bytes on wire, 44 bytes captured) Ethernet II, Src: 00:50: da: 42: d7: df, Dst: ff: ff: ff: ff: ff: ff PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Initiation (PADI) Session ID: 0000 Payload Length: 24 PPPoE Tags Tag: Service-Name Tag: Host-Uniq Binary Data: (16 bytes) 

Src. (= Source) являє MAC-адресу машини, яка послала PADI.
Dst. (= Destination) є широкомовним Ethernet-адресою.
PADI-пакет може бути отриманий більш ніж одним DSL-AC.


1.2. PADO

PADO - PPPoE Active Discovery Offer.

Як тільки користувальницька машина відіслала PADI-пакет, DSL-AC відповідає, посилаючи PADO-пакет, використовуючи MAC-адреси, що прийшли з PADI. PADO-пакет містить MAC-адреси DSL-AC, їх імена (наприклад LEIX11-erx для концентратора T-Com DSL-AC в Лейпцигу) і ім'я сервісу. Якщо ж більше однієї точки DSL-AC відповіло PADO-пакетом, користувальницька машина вибирає DSL-AC конкретний POP, використовуючи прийшли імена або імена сервісів.

Приклад PADO-пакета:

 Frame 2 (60 bytes on wire, 60 bytes captured) Ethernet II, Src: 00:0 e: 40:7 b: f3: 8a, Dst: 00:50: da: 42: d7: df PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Offer (PADO) Session ID: 0000 Payload Length: 36 PPPoE Tags Tag: Service-Name Tag: AC-Name String Data: IpzbrOOl Tag: Host-Uniq Binary Data: (16 bytes) 

AC-Name - String Data представляє строкове AC ім'я, в даному випадку "Ipzbr001" (Arcor DSL-AC в Лейпцигу).
Src. Представляє MAC-адресу DSL-AC.
MAC-адресу DSL-AC також ідентифікує виробника DSL-AC (в даному випадку, Nortel Networks).


1.3. PADR

PADR розшифровується як PPPoE Active Discovery Request.

Як сказано вище, користувальницька машина повинна вибрати POP (точку доступу) - це робиться за допомогою PADR-пакета, який надсилається на MAC-адресу вибраного DSL-AC.

1.4. PADS

PADS - PPPoE Active Discovery Session-confirmation.

PADR-пакет підтверджується концентратором пересиланням PADS-пакета, в ньому ж приходить Session ID. З'єднання з DSL-AC для цієї точки доступу тепер повністю встановлено.

1.5. PADT

PADT - PPPoE Active Discovery Termination.

Цей пакет обриває з'єднання з POP. Він може бути посланий або з боку користувача, або з боку DSL-AC.

2. Переваги схеми

  • IP-заголовки в Ethernet середовищі ігноруються. Тобто користувач може призначити IP-адресу своєї мережевої карти, але це не приведе до "обвалу" мережі (теоретично, при роботі з мережевим концентратором не повинно статися "обвалу" і при зміні користувачем MAC-адреси навіть на адресу сервера, а при роботі з мережевим комутатором все залежить від конструкції комутатора).
  • Кожне з'єднання відокремлено від інших (працює в своєму каналі).
  • Налаштування (IP-адреса, адреса шлюзу, адреси DNS серверів) можуть передаватися сервером.
  • PPP з'єднання легко аутентифицирующей і обраховується (наприклад, за допомогою RADIUS).
  • PPP з'єднання можна шифрувати. Наприклад, при роботі з мережевим концентратором (коли на кожній мережевій карті може бути видно весь Ethernet-трафік) прочитати чужий IP-трафік вельми скрутно.

Примітки