Россия, Санкт-Петербург, Северо-Западный заочный технический университет, 2007 |
Способы передачи РРР по Ethernet
Протокол PPPoE
Данный протокол представляет собой способ передачи по Ethernet протоколов РРР, таких как LCP, управляющих протоколов сетевого уровня, аутентификации и т.п. Эти возможности предоставляются для взаимодействия участников типа точка-точка и не предназначены для многоадресного взаимодействия, которое возможно в сети Ethernet и других аналогичных окружениях.
Этот способ может использоваться для открытия РРР-сессий с несколькими получателями. Данный способ используется в различных технологиях удаленного доступа, когда провайдеры доступа хотят поддерживать сессию, связанную с РРР.
Обзор
Современные технологии доступа предназначены для нескольких конфликтующих друг с другом целей. Желательно установить соединение с несколькими хостами через одно и то же устройство доступа. Также необ-ходимо обеспечить управление доступом и возможности биллинга способом, аналогичным dial-up сервисам, использующим РРР. Во многих технологиях доступа наиболее эффективным является использование Ethernet для подсоединения нескольких хостов через одно и то же устройство доступа. Кроме того, желательно максимально снизить стоимость такого устройства и минимизировать необходимость конфигурирования.
РРРоЕ предоставляет возможность подсоединять к сети хосты через единственное устройство, которое обеспечивает доступ к удаленному Access Concentrator (NAC). При таком подходе каждый хост использует свой собственный РРР-канал, а пользователь имеет простой интерфейс. Управление доступом, биллинг и предоставляемые типы сервисов могут определяться на уровне пользователя.
Для предоставления соединения точка-точка по Ethernet каждая РРР-сессия должна знать Ethernet-адрес удаленной стороны, а также установить уникальный идентификатор сессии. В РРРоЕ определен протокол обнаружения, который выполняет эти задачи.
РРРоЕ имеет две стадии: стадия обнаружения (Discovery) и стадия РРР-сессии. Когда хост хочет установить РРРоЕ-сессию, он должен во-первых выполнить стадию Discovery для определения Ethernet МАС-адреса противоположной стороны и установить РРРоЕ SESSION_ID. Хотя РРР определяет взаимодействие типа точка-точка, Discovery наследует клиент-серверное взаимодействие. В процессе обнаружения Хост (клиент) определяет Access Concentrator (сервер). В зависимости от сетевой тополо-гии может быть несколько Access Concentrator, с которыми может взаимо-действовать Хост. Стадия Discovery позволяет Хосту обнаружить все Access Concentrator и выбрать один из них. При успешном завершении ста-дии Discovery как Хост, так и выбранный Access Concentrator обладают информацией, которую они будут использовать для создания своего собственного соединения точка-точка по сети Ethernet.
Стадия Discovery не поддерживает состояние до тех пор, пока не установлена РРР-сессия. После установления РРР-сессии как Хост, так и Access Concentrator выделяют ресурсы для виртуального РРР-интерфейса.
Содержимое пакетов
Пакеты имеют следующий формат.
Поле DESTINATION_ADDR содержит либо единственный Ethernet-адрес получателя, либо широковещательный Ethernet-адрес (0xffffffff). Для пакетов Discovery значением является либо единственный, либо широковещательный адрес. Для трафика РРР-сессии данное поле должно содержать адрес противоположной стороны.
Поле SOURCE_ADDR должно содержать Ethernet МАС-адрес источника.
Поле ETHER_TYPE определяет либо стадию Discovery, либо стадию РРР-сессии.
Стадия Discovery
На стадии Discovery существует четыре шага. После завершения данной стадии оба участника знают PPPoE SESSION_ID и Ethernet-адрес противоположной стороны, которые уникально определяют РРРоЕ-сессию. Шаги включают отправку Хостом широковещательного пакета Initiation, и получение от одного или более NAC пакета Offer. Затем Хост посылает одноадресный пакет Session Request, и выбранный NAC отвечает пакетом Confirmation. После получения Хостом пакета Confirmation, он начинает стадию установления РРР-сессии.
Содержимое РРРоЕ состоит из нуля или более атрибутов, которые в данном случае называются тегами (TAG). TAG являетсятройкой TLV (type-length-value).
1. Пакет PPPoE Active Discovery Initiation (PADI)
Хост посылает пакет PADI с широковещательным адресом, установленным в поле DESTINATION_ADDR.
2. Пакет PPPoE Active Discovery Offer (PADO)
При получении пакета PADI NAC отвечает пакетом PADO. Поле DESTINATION_ADDR содержит адрес Хоста, который послал пакет PADI. Пакет PADO должен содержать AC-Name TAG с именем NAC.
3. Пакет PPPoE Active Discovery Request (PADR)
Так как пакет PADI является широковещательным, Хост может получить более одного пакета PADI, из которых он должен выбрать один. Выбор может быть основан на AC-Name или предлагаемых сервисах. Затем Хост посылает пакет PADR к NAC, который он выбрал. Поле DESTINATION_ADDR установленов Ethernet-адресполучателя.
4. Пакет PPPoE Active Discovery Session-confirmation (PADS)
Когда NAC получает пакет PADS, он обрабатывает его и начинает РРР-сессию. Он создает уникальный SESSION_ID для данной РРРоЕ-сессии и возвращает пакет PADS Хосту.
5. Пакет PPPoE Active Discovery Termination (PADT)
Данный пакет может быть послан в любое время, после того, как сессия установлена, для указания того, что РРРоЕ-сессия завершается. Он может быть послан как Хостом, так и NAC.
При получении PADT никакой РРР-трафик не должен посылаться в рамках данной сессии. После посылки или получения PADT не должны посылаться даже обычные пакеты завершения РРР. РРР противоположной стороны может использовать сам протокол РРР для завершения РРРоЕ-сессии, но PADT может использоваться и тогда, когда РРР не используется.
Стадия РРР-сессии
После того, как РРРоЕ-сессия началась, РРР-данные посылаются как вложенные данные. Все Ethernet-пакеты являются одноадресными. SESSION_ID не изменяется для данной РРРоЕ-сессии и определяется на стадии обнаружения. Содержимым РРРоЕ является РРР-кадр. Кадр начинается с Protocol-ID PPP.
Не должны вестись переговоры о максимальном возможном блоке (Maximum-Receive-Unit - MRU), размер которого больше 1492. Так как максимальный размер содержимого Ethernet 1500 байтов, РРРоЕ-заголовок равен 6 байтам, и Protocol ID PPP равен 2 байтам, то РРР MTU не может быть больше, чем 1492.
Обычно NAC посылает Echo-Request пакеты к Хосту для определения состояния сессии. В противном случае, если Хост завершает сессию без отправления Terminate-Request пакета, NAC не имеет возможности определить, что сессия завершилась.
Когда LCP завершается, и Хост, и NAC перестают использовать данную сессию. Если Хост хочет начать другую РРР-сессию, он должен заново повторить стадию Discovery РРРоЕ.