12.1. Общие сведения о PPPoE Intermediate Agent
Протокол PPPoE (Point to Point Protocol over Ethernet) - протокол канального уровня передачи PPP кадров через Ethernet. PPPoE — это туннелирующий протокол, который позволяет инкапсулировать IP или другие протоколы через соединения Ethernet, устанавливая соединение «точка-точка», которое используется для транспортировки IP-пакетов. Такое соединение может быть установлено с BRAS, предоставляя пользователю широкополосный доступ и использующее аутентификацию.
PPPoE Intermediate Agent предоставляет возможность инкапсулировать в пакеты PPPoE данные о местоположении пользователя, что обеспечивает дополнительные возможности для проверки подлинности.
Существует 2 этапа в работе PPPoE: этап обнаружения и этап сеанса.
Этап обнаружения используется для получения MAC-адреса удаленного сервера для установления соединения «точка-точка» и идентификатора сеанса с сервером, а этап сеанса использует этот идентификатор сеанса для связи. PPPoE Intermediate Agent относится только к стадии обнаружения.
Этап обнаружения состоит из четырех шагов:
- Клиент отправляет пакет PADI (PPPoE Active Discovery Initiation). На первом шаге клиент использует широковещательный адрес как адрес назначения и широковещательный PADI (инициация активного обнаружения PPPoE) пакет для обнаружения концентратора доступа;
- Сервер отправляет в ответ PADO (PPPoE Active Discovery Offer). Как только пользовательская машина отослала PADI-пакет, сервер отвечает, посылая PADO-пакет, используя MAC-адреса, пришедшие с PADI. PADO-пакет содержит MAC-адреса сервера, его имя и имя сервиса;
- Клиент выбирает сервер, отсылая PADR (PPPoE Active Discovery Request);
- Подтверждая полученный PADR-пакет, сервер посылает PADS (PPPoE Active Discovery Session-confirmation), содержащий идентификатор сессии - Session ID.
PPPoE Intermediate Agent перехватывает PADI и PADR пакеты, добавляя дополнительные данные, идентифицирующие местоположение пользователя, например MAC коммутатора, порт коммутатора, VLAN пользователя. PPPoE Intermediate Agent также включает в себя функцию доверенного порта, который позволяет заблокировать прием нежелательных PADO и PADS пакетов с недоверенных портов.
12.2. Конфигурация PPPoE Intermediate Agent
- Настроить PPPoE Intermediate Agent глобально;
- Настроить PPPoE Intermediate Agent на интерфейсе.
- Настроить PPPoE Intermediate Agent глобально:
Команда | Описание |
---|---|
pppoe intermediate-agent no pppoe intermediate-agent ! В режиме глобальной конфигурации | Включить фунцию PPPoE Intermediate Agent, команда no отключает эту функцию |
pppoe intermediate-agent type tr-101 circuit-id access-node-id <string> no pppoe intermediate-agent type tr-101 circuit-id access-node-id ! В режиме глобальной конфигурации | Настроить идентификатор узла доступа <string> c circuit-id tr-101 Команда no удаляет этот идентификатор. Формат circuit-id по-умолчанию: access-node-id +” eth “+ Slot ID + delimiter + Port Index + delimiter + Vlan ID. Пример тега: “abcd eth 01/003:0003” |
pppoe intermediate-agent type tr-101 circuit-id identifier-string <string> option {sp | sv | pv | spv} delimiter <WORD> [delimiter <WORD> ] no pppoe intermediate-agent type tr-101 circuit-id identifier-string option delimiter ! В режиме глобальной конфигурации | Настроить добавляемые поля circuit-id формата tr-101. sp - слот и порт, sv - слот и vlan, pv - порт и vlan, spv - слот и порт и vlan. В случае использования spv может быть указано 2 различных разделителя delimiter друг за другом. Команда no возвращает формат по-умолчанию - spv. Формат circuit-id по-умолчанию: access-node-id +” eth “+ Slot ID + delimiter + Port Index + delimiter + Vlan ID. Пример тега: “abcd eth 01/003:0003” |
pppoe intermediate-agent type self-defined circuit-id {vlan| port|id (switch-id (mac | hostname)| remote-mac) | string WORD} no pppoe intermediate-agent type self-defined circuit-id ! В режиме глобальной конфигурации | Задать собственный формат circuit-id. Команда no удаляет эту конфигурацию. |
pppoe intermediate-agent type self-defined remoteid {mac | vlan-mac |hostname| string WORD} no pppoe intermediate-agent type self-defined remote-id ! В режиме глобальной конфигурации | Задать собственный формат remote-id. Команда no удаляет эту конфигурацию. |
pppoe intermediate-agent delimiter <WORD> no pppoe intermediate-agent delimiter ! В режиме глобальной конфигурации | Задать разделитель (#|.|,|;|:|/|space). Команда no возвращает разделитель по-умолчанию - ‘\’ |
pppoe intermediate-agent format (circuit-id | remote-id) (hex | ascii) no pppoe intermediate-agent format (circuit-id | remote-id) ! В режиме глобальной конфигурации | Задать формат представления circuit-id или remote-id. Команда no удаляет эту конфигурацию. |
2. Настроить PPPoE Intermediate Agent на интерфейсе:
Команда | Описание |
---|---|
pppoe intermediate-agent no pppoe intermediate-agent ! В режиме конфигурации интерфейса | Включить фунцию PPPoE Intermediate Agent, команда no отключает эту функцию |
pppoe intermediate-agent vendor-tag strip no pppoe intermediate-agent vendor-tag strip ! В режиме конфигурации интерфейса | Включить функцию снятия тега вендора на порту. Команда no отключает эту функцию. |
pppoe intermediate-agent trust no pppoe intermediate-agent trust ! В режиме конфигурации интерфейса | Выбрать порт в качестве доверенного. Команда no выбирает порт в качестве недоверенного. |
pppoe intermediate-agent circuit-id <string> no pppoe intermediate-agent circuit-id ! В режиме конфигурации интерфейса | Задать строку circuit-id, для добавления на порту. Команда no удаляет эту конфигурацию. |
pppoe intermediate-agent remote-id <string> no pppoe intermediate-agent remote-id ! В режиме конфигурации интерфейса | Задать строку remote-id, для добавления на порту. Команда no удаляет эту конфигурацию. |
12.3. Пример конфигурации PPPoE Intermediate Agent
Рисунок 61.1. - Конфигурация PPPoE IA
Как показано на рисунке 61.1, PPPoE клиент и сервер подключены к одной L2 Ethernet сети. На коммутаторе, к которому подключен клиент, активирована функция PPPoE Intermediate Agent.
Пример конфигурации 1:
Switch(config)#pppoe intermediate-agent Switch(config)#interface ethernet 1/0/1 Switch(config-if-ethernet1/0/1)#pppoe intermediate-agent trust Switch(config-if-ethernet1/0/1)#pppoe intermediate-agent trust vendor-tag strip Switch(config)#interface ethernet 1/0/2 Switch(config-if-ethernet1/0/2)#pppoe intermediate-agent Switch(config)#interface ethernet 1/0/3 Switch(config-if-ethernet1/0/3)#pppoe intermediate-agent Switch(config)#pppoe intermediate-agent type tr-101 circuit-id access-node-id abcd Switch(config-if-ethernet1/0/3)#pppoe intermediate-agent circuit-id aaaa Switch (config-if-ethernet1/0/3)#pppoe intermediate-agent remote-id xyz
В результате circuit-id для клиента в порту eth1/0/2 будет выглядеть как ”abcd eth 01/002:0001”, remote-id - MAC коммутатора ”0a0b0c0d0e0f”.
Для клиента в порту eth1/0/3 будет добавляться circuit-id ”aaaa”, remote-id ”xyz”.
Пример конфигурации 2:
Switch(config)#pppoe intermediate-agent Switch(config)#interface ethernet 1/0/1 Switch(config-if-ethernet1/0/1)#pppoe intermediate-agent trust Switch(config)#interface ethernet 1/0/2 Switch(config-if-ethernet1/0/2)#pppoe intermediate-agent Switch(config)#interface ethernet 1/0/3 Switch(config-if-ethernet1/0/3)#pppoe intermediate-agent Switch(config-if-ethernet1/0/3)#exit Switch(config)#pppoe intermediate-agent type tr-101 circuit-id access-node-id abcd Switch(config)#pppoe intermediate-agent type tr-101 circuit-id identifier-string efgh option spv delimiter # delimiter / Switch(config)#interface ethernet 1/0/2 Switch(config-if-ethernet1/0/2)#pppoe intermediate-agent circuit-id bbbb Switch(config)#interface ethernet 1/0/3 Switch(config-if-ethernet1/0/3)#pppoe intermediate-agent remote-id xyz
В результате circuit-id для клиента в порту eth1/0/2 будет выглядеть как ”bbbb”, remote-id - MAC коммутатора ”0a0b0c0d0e0f”.
Для клиента в порту eth1/0/3 будет добавляться circuit-id ”efgh eth 01#003/1234, remote-id ”xyz”.