Введение

Компьютерный сетевой протокол + PPPoE и стек протоколов TCP/IP. Применение: FTP, SMTP, HTTP, DNS. Транспорт: TCP, UDP. Интернет: IP, IPv6. Сетевой доступ: PPP, PPPoE, Ethernet.

Протокол Point to Point over Ethernet (PPPoE) — это сетевой протокол для инкапсуляции кадров протокола Point to Point (PPP) внутри кадров Ethernet. Он появился в 1999 году в период расцвета DSL как решение для организации туннелей пакетов через DSL-соединение в IP-сеть провайдера и далее — в остальную часть Интернета. В сетевой книге 2005 года отмечалось, что «большинство провайдеров DSL используют PPPoE, обеспечивающий аутентификацию, шифрование и сжатие». Типичное использование PPPoE предполагает использование возможностей PPP для аутентификации пользователя по имени пользователя и паролю через протокол PAP или CHAP. PAP был доминирующим в 2007 году, но провайдеры услуг переходят на более безопасный CHAP, поскольку PAP — это протокол, передающий данные в открытом виде. (Linux и Mac OS X). В последнее время некоторые домашние шлюзы на основе GPON (вместо DSL) также используют PPPoE, хотя статус PPPoE в стандартах GPON является второстепенным, но упоминается в рекомендации ITU-T G.984.1 «Гигабитные пассивные оптические сети (GPON): общие характеристики». PPPoE был разработан компаниями UUNET, Redback Networks (ныне Ericsson) и RouterWare (ныне Wind River Systems) и доступен в качестве справочной информации.

В мире DSL протокол PPP обычно рассматривается как работающий поверх ATM (в виде PPPoA), где ATM является базовым протоколом 2-го уровня, а версия DSL — протоколом 1-го уровня, хотя в самом протоколе PPP таких ограничений нет. Другие сценарии использования иногда различаются добавлением в качестве суффикса другого базового протокола. Например, PPPoEoE, когда транспортом является сам Ethernet, как в случае сетей Metro Ethernet. (В этой нотации первоначальное использование PPPoE будет обозначено как PPPoEoA, хотя его не следует путать с PPPoA, который имеет другую инкапсуляцию протокола PPP.) В некоторых книгах PPPoE описывается как протокол «уровня 2.5».

Оригинальное обоснование

В конце 1998 года модель предоставления услуг DSL еще не достигла того масштаба, который позволил бы снизить цены до уровня, доступного для домашних пользователей. Технология ADSL была предложена за десять лет до этого. Потенциальные поставщики оборудования и операторы связи понимали, что широкополосные технологии, такие как кабельные модемы или DSL, в конечном итоге заменят dial-up соединение, но аппаратное обеспечение (как на стороне клиента, так и на стороне LEC) сталкивалось со значительным барьером высокой стоимости при небольших объемах производства. Первоначальные оценки развертывания DSL в небольших масштабах показывали стоимость DSL-модема в диапазоне 300–500 долларов США и ежемесячную абонентскую плату от оператора связи в размере 300 долларов США, что значительно превышало возможности домашнего пользователя. Поэтому первоначальный упор был сделан на малый и домашний бизнес, для которых 1,5-мегабитная линия T1 (стоимостью 800–1500 долларов США в месяц в то время) была нерентабельной, но которым требовалась более высокая скорость, чем могли обеспечить dial-up или ISDN. Предполагалось, что если достаточное количество таких клиентов воспользуются новой услугой, объемы производства увеличатся и приведут к снижению цен, что сделает DSL привлекательным для домашних пользователей.

Время выхода на рынок: чем проще, тем лучше

Одна из проблем создания совершенно нового протокола для удовлетворения этих потребностей заключалась во времени. Оборудование и сервис были доступны немедленно, а разработка нового стека протоколов (в то время Microsoft продвигала использование оптоволоконных ATM-ячеек для подключения к рабочим станциям, а L2TP находился в разработке, но еще не был завершен) заняла бы столько времени на внедрение, что можно было упустить благоприятную возможность. Чтобы быстро и с меньшими затратами предоставить готовое решение, было принято несколько решений, направленных на упрощение реализации и стандартизации.

Повторное использование существующих стеков программного обеспечения

PPPoE предполагалось объединить широко распространенную инфраструктуру Ethernet с повсеместно используемым протоколом PPP, позволяя производителям повторно использовать существующее программное обеспечение и быстро выводить продукты на рынок. Практически во всех операционных системах того времени был реализован PPP-стек, а конструкция PPPoE предусматривала использование простого адаптера/прокладки для инкапсуляции PPP-кадров в Ethernet-кадры.

Упростить требования к оборудованию

Конкурирующие технологии WAN (T1, ISDN) требовали наличия маршрутизатора на стороне клиента. PPPoE использовал иной тип Ethernet-кадров, что позволяло DSL-оборудованию функционировать как простой мост, пересылая некоторые кадры в WAN и игнорируя остальные. Реализация такого моста значительно проще, чем реализация маршрутизатора.

Информационная RFC

RFC 2516 был первоначально опубликован как информационный (а не как RFC, соответствующий стандартам) по той же причине: срок утверждения RFC в качестве стандарта был неприемлемо долгим.

Успех

PPPoE изначально разрабатывался для обеспечения небольших локальных сетей индивидуальными, независимыми подключениями к Интернету, но при этом протокол должен был быть достаточно лёгким, чтобы не повлиять на перспективный рынок домашнего использования, когда он, наконец, появится. Хотя успех в этом отношении может быть спорным (некоторые считают, что 8 байт на пакет – это слишком много), PPPoE, безусловно, обеспечил достаточный объём для снижения стоимости услуг до уровня, доступного для домашнего пользователя.

Современные варианты использования

Около 2000 года протокол PPPoE использовался либо (i) для подключения DSL-модема к компьютеру или маршрутизатору, вытесняя более ранний метод с использованием USB, либо (ii) для подключения маршрутизатора к сетевому узлу – протокольному преобразователю, расположенному выше по сети и принадлежащему либо интернет-провайдеру, либо оптовому оператору дальней связи, который, в свою очередь, подключается к IP-сетям провайдера и затем к Интернету. Первый сценарий использования – подключение маршрутизатора к модему, включающее так называемое PPPoEoE (набор протоколов PPPoE поверх физической Ethernet LAN) – до сих пор широко применяется для подключения модемов к маршрутизаторам при использовании PPP. Второй сценарий использования, когда набор протоколов PPPoE применяется через одну или несколько линий доступа в Интернет, простираясь вверх по сети на разную глубину, по общему мнению, используется лишь по историческим причинам. Однако, поскольку PPP остается популярным у некоторых провайдеров либо как протокол туннелирования, необходимый при использовании оптового оператора доступа/реселлера, либо из-за востребованных функций PPP, или по обоим причинам. Как упоминалось ранее, странным образом, Ethernet MAC-заголовки иногда используются вместе с PPPoE-заголовками, даже когда протокол Ethernet не используется и физически отсутствует в сети Ethernet. Это, по-видимому, не имеет никакой цели, кроме как добавление избыточных заголовков, так называемого "раздувания" (bloat). Например, в случае PPPoEoA, рассматриваемом ниже, где физического Ethernet не было, а использовалась только ATM, был добавлен не только ненужный Ethernet MAC-уровень заголовков, но и дополнительный уровень адаптации Ethernet, чтобы "подогнать" Ethernet под ATM. Во втором сценарии использования эти дополнительные заголовки протокола приводят к значительному "раздуванию" и, следовательно, незначительно снижают производительность. Во втором сценарии использования применение PPP+PPPoE+Ethernet MAC может простираться на переменное расстояние вверх по сети. Оно может ограничиваться "последней милей" – медной витой парой в ADSL или VDSL2/FTTC, включающей только модемы, или может использоваться и выше по сети, достигая BRAS (Broadband Remote Access Server – широкополосный сервер удаленного доступа) или концентратора доступа, который может, но не обязательно, обрабатывать авторизацию, но обязательно будет выполнять преобразование протоколов. В одном из примеров PPPoE распространяется вверх по сети и завершается на таком узле, управляемом оптовым оператором, который преобразует трафик в протокол туннелирования L2TP, который, в свою очередь, туннелирует данные к IP POPs (point of presence – точка присутствия) провайдера.

Открытие PPPoE

Поскольку традиционные PPP-соединения устанавливаются между двумя конечными точками по последовательному каналу связи или через виртуальную схему ATM, которая уже была установлена при наборе номера, все PPP-кадры, отправленные по линии связи, гарантированно достигают другого конца. Однако сети Ethernet являются сетями с общим доступом, где каждый узел в сети может обращаться к любому другому узлу. Ethernet-кадр содержит аппаратный адрес узла назначения (MAC-адрес). Это обеспечивает доставку кадра по назначению. Следовательно, перед обменом управляющими пакетами PPP для установления соединения через Ethernet необходимо, чтобы MAC-адреса двух конечных точек были известны друг другу, чтобы их можно было закодировать в этих управляющих пакетах. Этап обнаружения PPPoE (PPPoE Discovery) как раз и выполняет эту задачу. Он также помогает установить идентификатор сеанса, который затем используется для дальнейшего обмена пакетами.

Сессия ПЧП

После того, как MAC-адрес партнера станет известен и сессия будет установлена, начнется стадия сессии.

Открытие PPPoE (PPPoED)

Хотя традиционный PPP является протоколом "точка-точка", PPPoE по своей сути представляет собой клиент-серверную архитектуру, поскольку несколько устройств могут подключаться к провайдеру услуг через одно физическое соединение. Процесс установления соединения состоит из четырех этапов между хост-компьютером, выступающим в роли клиента, и концентратором доступа на стороне интернет-провайдера, выступающим в роли сервера. Они описаны ниже. Пятый и последний этап – завершение существующей сессии.

Сервер клиенту: предложение (PADO)

PADO расшифровывается как PPPoE Active Discovery Offer.

Использование с DSL PPPoE через ATM (PPPoEoA)

Количество накладных расходов, добавляемых PPPoEoA на DSL-линии связи, зависит от размера пакета из-за (i) поглощающего эффекта заполнения ячеек ATM (описанного ниже), который в некоторых случаях полностью компенсирует дополнительные накладные расходы PPPoEoA, (ii) накладных расходов PPPoEoA + AAL5, которые могут потребовать дополнительную ячейку ATM размером 53 байта, и (iii) в случае IP-пакетов, накладные расходы PPPoE, добавляемые к пакетам, близким к максимальной длине (MRU), могут вызвать фрагментацию IP, что также учитывает первые два фактора для обоих полученных IP-фрагментов. Однако, если временно не учитывать фрагментацию ATM и IP, накладные расходы протокола для полезной нагрузки ATM при использовании PPP + PPPoEoA могут достигать 44 байт = 2 байта (для PPP) + 6 (для PPPoE) + 18 (Ethernet MAC, переменная) + 10 (RFC 2684 LLC, переменная) + 8 (AAL5 CPCS). Juniper, например, различает PPPoE[oA] и PPPoEoE (PPPoE через Ethernet), который представляет собой PPPoE, работающий непосредственно поверх Ethernet или других сетей IEEE 802, либо через Ethernet, подключенный к ATM, чтобы отличить его от PPPoEoA (PPPoE через ATM), который работает поверх виртуальной цепи ATM с использованием инкапсуляции PPPoE по RFC 2684 и SNAP. (PPPoEoA не идентичен протоколу Point-to-Point over ATM (PPPoA), который не использует SNAP). Согласно документу Cisco, "PPPoEoE – это вариант PPPoE, в котором протокол второго уровня теперь является Ethernet или 802.1q VLAN вместо ATM. Этот метод инкапсуляции обычно используется в средах Metro Ethernet или цифровых абонентских линиях Ethernet (DSLAM). Типичная модель развертывания предполагает, что этот метод инкапсуляции чаще всего встречается в многоквартирных домах или отелях. Предоставляя абоненту Ethernet, обеспечивается значительно большая доступная полоса пропускания и упрощается дальнейшее предоставление услуг."

Использование после DSL и некоторые альтернативы в этих контекстах

ZTE запатентовала определенный метод использования PPPoE в сочетании с GPON (который предполагает создание VLAN посредством OMCI). Сообщается, что PPPoE поверх GPON используется розничными провайдерами услуг, такими как Internode из Национальной широкополосной сети Австралии, Orange во Франции, Globe Telecom на Филиппинах и Aruba FTTH в Италии в общедоступных сетях GPON OpenFiber. RFC 6934 "Применимость механизма управления узлами доступа к широкополосным сетям на основе PON", в котором обосновывается использование протокола управления узлами доступа в сетях PON для, в частности, аутентификации доступа абонента и управления их IP-адресами, и первым автором которого является сотрудник Verizon, исключает PPPoE как допустимую инкапсуляцию для GPON: "Инкапсуляция протокола в BPON основана на многопротокольной инкапсуляции поверх ATM Adaptation Layer 5 (AAL5), определенной в [RFC2684]. Это включает PPP через Ethernet (PPPoE, определенный в [RFC2516]) или IP через Ethernet (IPoE). Инкапсуляция протокола в GPON всегда IPoE". Стандарт 10G PON (XG PON) (G.987) предусматривает взаимную аутентификацию ONU и OLT по стандарту 802.1X, помимо метода OMCI, унаследованного от G.984. G.987 также добавляет поддержку аутентификации другого абонентского оборудования, помимо ONU (например, в MDU), хотя это ограничено портами Ethernet, которые также обрабатываются посредством 802.1X. (В этом сценарии ONU должен перехватывать сообщения RADIUS, инкапсулированные в EAP, и определять, была ли аутентификация успешной.) В стандартах OMCI предусмотрена некоторая поддержка PPPoE, но только в отношении возможности ONU фильтровать и добавлять теги VLAN для трафика на основе его инкапсуляции (и других параметров), включая PPPoE в число протоколов, которые ONU должен уметь распознавать. В TR 200 "Использование EPON в контексте TR 101" (2011), который также относится к 10G EPON, говорится: "OLT и многочисленные абонентские ONU ДОЛЖНЫ выполнять функцию промежуточного агента PPPoE, как указано в разделе 3.9.2/TR 101". В книге об Ethernet на последней миле отмечается, что DHCP, очевидно, может использоваться вместо PPPoE для настройки хоста для IP-сессии, хотя в ней указывается, что DHCP не является полной заменой PPPoE, если также требуется некоторая инкапсуляция (хотя мосты VLAN могут выполнять эту функцию), и что, кроме того, DHCP не обеспечивает аутентификацию (абонента), что подразумевает необходимость IEEE 802.1X для "полного решения" без PPPoE. (В этой книге предполагается, что PPPoE используется для других функций PPP, помимо инкапсуляции, включая IPCP для конфигурации хоста и PAP или CHAP для аутентификации.) Существуют соображения безопасности, связанные с использованием PPPoE в среде общего доступа (не DSL/ATM), такой как сети связи по линиям электропередач, для создания отдельных туннелей для каждого клиента. PPPoE широко используется на линиях WAN, включая FTTx. Многие абонентские шлюзы FTTx, предоставляемые интернет-провайдерами, интегрировали функции маршрутизации.