PPPoE (англ. Point-to-point protocol over Ethernet) — сетевой протокол передачи кадров Протокол PPP, стандарт которого определён в документе RFC 2516, является установление соединения «точка-точка» поверх общей среды Ethernet. Настройка подключения отличается для абонентов сетей Что такое Ethernet и ADSL. В основном используется xDSL-сервисами. Предоставляет дополнительные возможности (Аутентификация, сжатие данных, шифрование).
Работа 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-трафик.
Для Ethernet необходима установка клиента РРРоЕ (для всех ОС за исключением Windows XP). В настройках сетевой карты можно отключить все протоколы (в том числе и TCP\IP), так как они не используются для создания РРРоЕ сессии. После установки драйвера клиента РРРоЕ необходимо из командной строки один раз запустить утилиту конфигурации «raspppoe», где в списках всех обнаруженных серверов доступа необходимо будет выбрать свой городской сервер. Автоматически будет создано новое соединение удаленного доступа. При запуске этого соединения будет запрошен логин и пароль и установлена сессия РРРоЕ. После этого становится возможен доступ в локальную сеть и Интернет. Пользователь идентифицируется по логину, паролю, МАС адресу (фиксируется при установлении первой сессии, поэтому важно первую сессию устанавливать со своего компьютера), IP адрес (назначается автоматически, но не меняется от сессии к сессии). Для Windows XP, где поддержка РРРоЕ встроена в ОС настройка сводится с созданию нового соединения, дополнительно устанавливать и настраивать специальное ПО не требуется.
Для ADSL настройка доступа через РРРоЕ производится следующим образом. Для USB ADSL модемов необходимо установить WAN драйвер модема. При этом будет создано соединение Dial-up через ADSL модем и нет необходимости устанавливать и настраивать программное обеспечение PPPoE клиентов, так как его роль выполняет ADSL оборудование. Чтобы установить РРРоЕ сессию необходимо ввести логин и пароль. Для модемов, имеющих Ethernet выход, через WEB интерфейс модема выбирается соединение через РРРоЕ, указывается логин и пароль. Сессия устанавливается модемом автоматически при подаче на него питания. Сетевой интерфейс компьютера настраивается на локальное подключение к ADSL модему (возможно использование встроенного в модем DHCP для автоматической настройки сетевой карты компьютера). При этом при включении компьютера автоматически устанавливается соединение с локальной сетью и Интернетом. Чтобы разорвать соединение, необходимо отключить питание модема или отключить сетевой интерфейс компьютера.
Рабочий пример настройки PPPoE на маршрутизаторе OS FreeBSD.
> ee /etc/ppp/ppp.conf default: set log Phase tun command # параметры протоколирования, где # log - включает ведение log-файла (по умолчанию все сообщения записываются в файл /var/log/ppp.log # Phase - поэтапный вывод сообщений в лог (соответствует этапам подключения), позволяет исключить малоинформативные сообщения # tun - виртуальное сетевое устройство, которое будет задействовано при соединении (в данном случае tun, т.к. протокол точка-точка) # command - производить запись в лог как команд, полученных с командной строки, так и тех, которые были считаны стартовым скриптом ppp из # конфигурационного файла set mru 1492 set mtu 1492 disable ipv6cp # отключить поддержу IPv6 enable lqr # Link Quality Reporting - по умолчанию выключено ispgateway: set device PPPoE:xl0 # где PPPoE - задаёт уточнение протокола (в рамках протоколов, поддерживающихся ppp), xl0 имя устройства вашей Ethernet карты set authname YourLoginName # выдает ваш ISP set authkey YourPassword # выдает ваш ISP add default HISADDR # установить шлюз по умолчанию (default route) на этого провайдера, HISSADR - отображать IP адрес присоединённой стороны
Для запуск Протокол PPP при загрузке добавим в /etc/rc.conf следующее строки:
> ee /etc/rc.conf ppp_enable="YES" ppp_mode="ddial" ppp_nat="NO" #для NAT -преобразования я использую PF, потому NAT в ppp выключен. ppp_nat по умолчанию включен. ppp_profile="ispgateway"
Настройка PPPoE на маршрутизаторе OS Операционная система Debian 7 Wheezy/sid.
# aptitude install pppoeconf pppoe ppp
# pppoeconf
> ifconfig tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492 ...
tun0 соединение имеет MTU 1492. Это значит, что ваше соединение с интернет имеет окно в 1492 байт (MTU - Maximim Transmission Unit) - это наибольший пакет, который ваша машина может передать по данному соединению. В тоже время, почти все веб и ftp серверы соединены с интернет с MTU 1500.
В логе ppp появилась запись tun0: Warning: deflink: Reducing configured MRU from 1500 to 1492. Для устранения зададим явным образом максимальные значения MTU и MRU для Протокол PPP.
FreeBSD:
> ee /etc/ppp/ppp.conf default: set mru 1492 set mtu 1492
Debian:
# nano /etc/ppp/peers/dsl-provider mtu 1492