PPPoE - Point-to-Point Protocol over Ethernet
PPPoE (Point-to-Point Protocol over Ethernet) - это сетевой протокол для инкапсуляции PPP фреймов внутри Ethernet фреймов. PPPoE широко используется DSL провайдерами и интернет-провайдерами для предоставления услуг широкополосного доступа с аутентификацией, шифрованием и управлением соединением.
Введение в PPPoE
Что такое PPPoE?
PPPoE - это протокол, который:
- Инкапсулирует PPP фреймы в Ethernet фреймы
- Обеспечивает аутентификацию пользователя (PAP, CHAP, MS-CHAP, MS-CHAPv2)
- Управляет установкой и разрывом соединения
- Поддерживает динамическое назначение IP адресов
- Используется для DSL, FTTH, кабельных модемов
Архитектура PPPoE
Компоненты:
- PPPoE Client - инициирует соединение (VyOS router)
- PPPoE Server - принимает соединение (ISP equipment)
- Access Concentrator (AC) - сервер провайдера
- DSL/Ethernet Modem - физическое устройство
Этапы установки соединения:
- Discovery Stage - поиск Access Concentrator
- PADI (Active Discovery Initiation)
- PADO (Active Discovery Offer)
- PADR (Active Discovery Request)
- PADS (Active Discovery Session-confirmation)
- PPP Session Stage - установка PPP сессии
- LCP (Link Control Protocol)
- Authentication (PAP/CHAP)
- NCP (Network Control Protocol)
- IP configuration
Режимы работы
Режим 1: Домашние пользователи (Transparent Mode)
[Computer] ---- [DSL Modem with PPPoE] ---- [ISP]
(auto-connect)- Модем автоматически устанавливает PPPoE соединение
- Получает приватный IP адрес (RFC 1918)
- Возможен double NAT
Режим 2: Роутер VyOS (Bridge Mode)
[LAN] ---- [VyOS Router] ---- [DSL Modem Bridge] ---- [ISP]
PPPoE Client- VyOS инициирует PPPoE соединение
- Модем работает в режиме моста
- Полный контроль над сетевой конфигурацией
- Один уровень NAT
Когда использовать PPPoE?
Рекомендуется для:
- Подключение к DSL провайдеру
- FTTH (Fiber to the Home) соединения
- Кабельные модемы с PPPoE
- Любое подключение требующее ISP аутентификацию
- Соединения с динамическим IP от провайдера
Применение:
- Домашний интернет через DSL/FTTH
- Офисное подключение к провайдеру
- Резервное подключение через DSL
- Тестирование PPPoE инфраструктуры
Конфигурация PPPoE
Базовая настройка
configure
# Создать PPPoE интерфейс
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'myuser@isp.ru'
set interfaces pppoe pppoe0 authentication password 'SecretPassword123'
# Использовать default route от ISP
set interfaces pppoe pppoe0 default-route auto
commit
saveРезультат:
- PPPoE соединение через eth0
- Автоматическое получение IP адреса от ISP
- Default route указывает на PPPoE интерфейс
Параметры конфигурации
Source Interface
# Физический интерфейс для PPPoE
set interfaces pppoe pppoe0 source-interface eth0
# PPPoE через VLAN интерфейс
set interfaces ethernet eth0 vif 100
set interfaces pppoe pppoe0 source-interface eth0.100Важно: Source interface должен быть:
- Физическим Ethernet интерфейсом
- VLAN sub-interface
- Bond интерфейсом
- В состоянии UP
Authentication
# Username и password от ISP
set interfaces pppoe pppoe0 authentication username 'user@provider.com'
set interfaces pppoe pppoe0 authentication password 'MyPassword'
# Plaintext password (не рекомендуется в production)
set interfaces pppoe pppoe0 authentication plaintext-password 'MyPassword'Типы аутентификации:
- PAP (Password Authentication Protocol) - пароль в открытом виде
- CHAP (Challenge Handshake Authentication Protocol) - хеш пароля
- MS-CHAP, MS-CHAPv2 - Microsoft variants
VyOS автоматически согласует метод аутентификации с ISP.
IP Address Configuration
# Автоматическое получение IP от ISP (default)
set interfaces pppoe pppoe0
# Статический IP (если ISP предоставляет)
set interfaces pppoe pppoe0 address 203.0.113.10/32
# IPv6 через DHCPv6
set interfaces pppoe pppoe0 ipv6 address autoconf
set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1 address 1
set interfaces pppoe pppoe0 dhcpv6-options pd 0 length 56Default Route
# Автоматически добавить default route через PPPoE
set interfaces pppoe pppoe0 default-route auto
# Явно указать default route
set interfaces pppoe pppoe0 default-route force
# Не добавлять default route
set interfaces pppoe pppoe0 default-route none
# Default route с метрикой
set interfaces pppoe pppoe0 default-route-distance 10Опции:
auto- добавить route если PPPoE - единственное подключениеforce- всегда добавлять routenone- не добавлять route
MTU и MRU
# MTU (Maximum Transmission Unit)
set interfaces pppoe pppoe0 mtu 1492
# MRU (Maximum Receive Unit)
set interfaces pppoe pppoe0 mru 1492Рекомендации MTU:
- Ethernet MTU: 1500 bytes
- PPPoE overhead: 8 bytes (PPPoE header + PPP header)
- Рекомендуемый MTU: 1492 bytes
- Некоторые ISP требуют MTU 1480-1490
Автоматический TCP MSS clamping:
# Установить TCP MSS для предотвращения фрагментации
set interfaces pppoe pppoe0 ip adjust-mss 1452
set interfaces pppoe pppoe0 ipv6 adjust-mss 1432Connect on Demand
# Устанавливать соединение по требованию (при трафике)
set interfaces pppoe pppoe0 connect-on-demand
# Idle timeout - разорвать соединение после N секунд простоя
set interfaces pppoe pppoe0 idle-timeout 300
# Holdoff time - пауза перед повторным подключением
set interfaces pppoe pppoe0 holdoff 30Use case: Экономия трафика, платные соединения
Service Name
# Указать конкретный service name (если ISP требует)
set interfaces pppoe pppoe0 service-name 'MY-SERVICE'
# Использовать любой доступный service
# (default behavior - не указывать service-name)Access Concentrator
# Подключаться к конкретному AC (если несколько доступно)
set interfaces pppoe pppoe0 access-concentrator 'BRAS-01'Interface Description
# Добавить описание
set interfaces pppoe pppoe0 description 'ISP Connection - Main Link'Host-uniq Tag
# Уникальный тег для сессии (hex)
set interfaces pppoe pppoe0 host-uniq '0x12345678'Назначение: Идентификация сессии на стороне клиента
Local and Remote IP
# Локальный IP адрес (обычно получается автоматически)
set interfaces pppoe pppoe0 local-address 192.168.100.1
# IP адрес удаленной стороны (ISP gateway)
set interfaces pppoe pppoe0 remote-address 192.168.100.254Примечание: Обычно не требуется - IP адреса согласуются автоматически
Практические сценарии
Сценарий 1: Базовое DSL подключение
Топология:
[LAN 192.168.1.0/24] ---- [VyOS eth1] [VyOS eth0] ---- [DSL Modem Bridge] ---- [ISP]
PPPoEЗадача: Настроить интернет-подключение через DSL провайдера
Конфигурация:
configure
# WAN интерфейс (к DSL модему)
set interfaces ethernet eth0 description 'DSL Modem'
# PPPoE соединение
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'user@dsl-provider.ru'
set interfaces pppoe pppoe0 authentication password 'MySecretPass'
set interfaces pppoe pppoe0 default-route auto
set interfaces pppoe pppoe0 mtu 1492
set interfaces pppoe pppoe0 description 'ISP Connection'
# LAN интерфейс
set interfaces ethernet eth1 address 192.168.1.1/24
set interfaces ethernet eth1 description 'LAN'
# NAT для выхода в интернет
set nat source rule 100 outbound-interface name pppoe0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
# DHCP сервер для LAN
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start 192.168.1.100
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop 192.168.1.200
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option default-router 192.168.1.1
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server 8.8.8.8
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 option name-server 8.8.4.4
# DNS forwarding
set service dns forwarding listen-address 192.168.1.1
set service dns forwarding allow-from 192.168.1.0/24
commit
saveПроверка:
# Статус PPPoE интерфейса
show interfaces pppoe pppoe0
# Полученный IP адрес
show interfaces pppoe pppoe0 brief
# Default route
show ip route
# Тест connectivity
ping 8.8.8.8 interface pppoe0Сценарий 2: PPPoE через VLAN
Топология:
[VyOS] ---- eth0.100 (VLAN 100) ---- [Switch] ---- [ISP with VLAN tagging]Задача: ISP требует VLAN 100 для PPPoE соединения
Конфигурация:
configure
# Создать VLAN интерфейс
set interfaces ethernet eth0 vif 100 description 'ISP VLAN'
# PPPoE через VLAN
set interfaces pppoe pppoe0 source-interface eth0.100
set interfaces pppoe pppoe0 authentication username 'customer@fiber-isp.ru'
set interfaces pppoe pppoe0 authentication password 'FiberPass123'
set interfaces pppoe pppoe0 default-route auto
set interfaces pppoe pppoe0 mtu 1492
set interfaces pppoe pppoe0 description 'Fiber ISP Connection'
# Service name если требуется
set interfaces pppoe pppoe0 service-name 'FIBER-100M'
commit
saveПроверка VLAN:
# Проверить VLAN интерфейс
show interfaces ethernet eth0 vif 100
# Проверить PPPoE
show interfaces pppoe pppoe0Сценарий 3: Dual PPPoE (два провайдера)
Топология:
┌─ eth0 ── PPPoE0 ── [ISP-A Primary]
[VyOS Router] ────┤
└─ eth1 ── PPPoE1 ── [ISP-B Backup]Задача: Резервирование через два DSL провайдера с failover
Конфигурация:
configure
# Основной ISP (eth0)
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'user@isp-a.ru'
set interfaces pppoe pppoe0 authentication password 'PasswordA'
set interfaces pppoe pppoe0 default-route-distance 10
set interfaces pppoe pppoe0 mtu 1492
set interfaces pppoe pppoe0 description 'ISP-A Primary'
# Резервный ISP (eth1)
set interfaces pppoe pppoe1 source-interface eth1
set interfaces pppoe pppoe1 authentication username 'user@isp-b.ru'
set interfaces pppoe pppoe1 authentication password 'PasswordB'
set interfaces pppoe pppoe1 default-route-distance 20
set interfaces pppoe pppoe1 mtu 1492
set interfaces pppoe pppoe1 description 'ISP-B Backup'
# NAT через оба интерфейса
set nat source rule 100 outbound-interface name pppoe0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
set nat source rule 110 outbound-interface name pppoe1
set nat source rule 110 source address 192.168.1.0/24
set nat source rule 110 translation address masquerade
commit
saveЛогика failover:
- Primary route через pppoe0 (distance 10)
- Backup route через pppoe1 (distance 20)
- При падении pppoe0 автоматический переход на pppoe1
Проверка:
# Routing table - должно быть два default route
show ip route
# Тест failover
# 1. Disconnect pppoe0
disconnect interface pppoe0
# 2. Проверить активный route
show ip route 0.0.0.0/0
# 3. Reconnect
connect interface pppoe0Сценарий 4: PPPoE с IPv6 и DHCPv6-PD
Задача: Получить IPv6 prefix от ISP и раздать в LAN
Конфигурация:
configure
# PPPoE с IPv4 и IPv6
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'user@ipv6-isp.ru'
set interfaces pppoe pppoe0 authentication password 'IPv6Password'
set interfaces pppoe pppoe0 default-route auto
set interfaces pppoe pppoe0 mtu 1492
# IPv6 autoconfig
set interfaces pppoe pppoe0 ipv6 address autoconf
# DHCPv6 Prefix Delegation
set interfaces pppoe pppoe0 dhcpv6-options pd 0 length 56
set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1 address 1
set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1 sla-id 1
# LAN интерфейс с IPv6
set interfaces ethernet eth1 address 192.168.1.1/24
# IPv6 Router Advertisement для LAN
set service router-advert interface eth1 prefix ::/64
commit
saveОбъяснение DHCPv6-PD:
pd 0- prefix delegation IDlength 56- запросить /56 prefix от ISPinterface eth1- назначить subnet на eth1address 1- использовать ::1 как адрес роутераsla-id 1- subnet ID из делегированного prefix
Проверка IPv6:
# IPv6 адрес PPPoE
show ipv6 interface pppoe0
# Делегированный prefix
show dhcpv6 client leases
# IPv6 routing
show ipv6 route
# Ping IPv6
ping 2001:4860:4860::8888 interface pppoe0Сценарий 5: Connect on Demand с Idle Timeout
Задача: Платное PPPoE соединение, подключаться только при необходимости
Конфигурация:
configure
# PPPoE с on-demand режимом
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'user@metered-isp.ru'
set interfaces pppoe pppoe0 authentication password 'MeteredPassword'
set interfaces pppoe pppoe0 default-route auto
set interfaces pppoe pppoe0 mtu 1492
# Connect on demand
set interfaces pppoe pppoe0 connect-on-demand
# Idle timeout 5 минут
set interfaces pppoe pppoe0 idle-timeout 300
# Holdoff 30 секунд перед reconnect
set interfaces pppoe pppoe0 holdoff 30
commit
saveПоведение:
- Соединение устанавливается при появлении трафика
- После 300 секунд без трафика - disconnect
- Пауза 30 секунд перед следующим connect
- Повторный connect при новом трафике
Тестирование:
# Проверить статус (должен быть down если idle)
show interfaces pppoe pppoe0
# Инициировать трафик
ping 8.8.8.8
# Проверить соединение (должно установиться)
show interfaces pppoe pppoe0
# Ждать 5 минут без трафика - disconnectСценарий 6: PPPoE в VK Cloud
Задача: Использовать VyOS в VK Cloud для тестирования PPPoE сервера
Топология:
[VK Cloud VyOS Client] ---- [Private Network] ---- [VyOS PPPoE Server]Client конфигурация:
configure
# PPPoE client в облаке
set interfaces pppoe pppoe0 source-interface eth1
set interfaces pppoe pppoe0 authentication username 'testuser'
set interfaces pppoe pppoe0 authentication password 'TestPass123'
set interfaces pppoe pppoe0 default-route none
set interfaces pppoe pppoe0 mtu 1450
set interfaces pppoe pppoe0 description 'VK Cloud PPPoE Test'
commit
saveПримечание для VK Cloud:
- MTU в VK Cloud: 1500, использовать PPPoE MTU 1450
- PPPoE работает в private networks
- Для production используйте VPC peering вместо PPPoE
Сценарий 7: Российские провайдеры DSL
Конфигурация для типичного российского DSL провайдера:
configure
# Ростелеком / МТС / Билайн DSL
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'login@provider'
set interfaces pppoe pppoe0 authentication password 'password'
set interfaces pppoe pppoe0 default-route auto
set interfaces pppoe pppoe0 mtu 1492
# Некоторые провайдеры требуют service-name
# set interfaces pppoe pppoe0 service-name 'Internet'
# LAN сеть
set interfaces ethernet eth1 address 192.168.0.1/24
# NAT
set nat source rule 100 outbound-interface name pppoe0
set nat source rule 100 source address 192.168.0.0/24
set nat source rule 100 translation address masquerade
# DNS от провайдера (автоматически через PPPoE)
set system name-server pppoe0
# DHCP для LAN
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 start 192.168.0.100
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 stop 192.168.0.200
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 option default-router 192.168.0.1
commit
saveОсобенности российских провайдеров:
- Часто используется MTU 1492
- Username формат:
login@providerилиlogin - Некоторые требуют VLAN tagging
- IPTV может требовать отдельный VLAN
Мониторинг и отладка
Проверка статуса PPPoE
# Общая информация
show interfaces pppoe
# Детальная информация конкретного интерфейса
show interfaces pppoe pppoe0
# Brief вывод
show interfaces pppoe pppoe0 brief
# Статистика
show interfaces pppoe pppoe0 statisticsПример вывода:
pppoe0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492
inet 203.0.113.45 peer 203.0.113.1/32
RX: bytes packets errors dropped overrun mcast
10485760 8192 0 0 0 0
TX: bytes packets errors dropped carrier collisions
5242880 4096 0 0 0 0Operational Commands
# Disconnect PPPoE соединение
disconnect interface pppoe0
# Connect PPPoE соединение
connect interface pppoe0
# Проверить log сообщения PPPoE
show log | match pppoe
# Проверить authentication log
show log auth | match pppoeDebugging PPPoE
# Включить debug для PPPoE
debug pppoe interface pppoe0
# Просмотр debug вывода
show log tail
# Выключить debug
no debug pppoe interface pppoe0Debug информация включает:
- Discovery packets (PADI, PADO, PADR, PADS)
- LCP negotiation
- Authentication attempts
- IP address assignment
- Keepalive packets
Packet Capture
# Захват PPPoE трафика на source интерфейсе
monitor traffic interface eth0 filter "pppoe"
# Захват трафика на PPPoE интерфейсе
monitor traffic interface pppoe0
# Сохранить capture в файл
monitor traffic interface eth0 filter "pppoe" save /tmp/pppoe-capture.pcapАнализ в Wireshark:
- PPPoE Discovery packets (0x8863)
- PPPoE Session packets (0x8864)
- LCP/CHAP/PAP frames
- IP packets внутри PPPoE
Проверка DNS
# DNS servers полученные от ISP
show interfaces pppoe pppoe0 | grep "name-server"
# Тест DNS resolution
nslookup google.comМониторинг производительности
# Bandwidth monitoring
monitor bandwidth interface pppoe0
# Real-time traffic statistics
show interfaces pppoe pppoe0 statistics
# Connection uptime
show interfaces pppoe pppoe0 | grep "uptime"Troubleshooting
Проблема: PPPoE не устанавливает соединение
Симптомы:
- Интерфейс в состоянии DOWN
- Нет IP адреса
Диагностика:
# 1. Проверить source interface
show interfaces ethernet eth0
# Должен быть UP
# Если DOWN - проверить физическое подключение
# 2. Проверить PPPoE logs
show log | match pppoe
# 3. Включить debug
debug pppoe interface pppoe0
# 4. Попытка connect
connect interface pppoe0
# 5. Проверить debug вывод
show log tailТипичные причины:
- Source interface DOWN:
# Проверить link
show interfaces ethernet eth0
# Решение: проверить кабель, DSL модем- Неверные credentials:
# В логах: "authentication failed"
# Решение: проверить username/password
set interfaces pppoe pppoe0 authentication username 'correct-user'
set interfaces pppoe pppoe0 authentication password 'correct-pass'
commit- DSL модем не в bridge mode:
# Модем сам устанавливает PPPoE
# Решение: перевести модем в bridge mode (router mode -> bridge mode)- VLAN требуется:
# ISP требует VLAN tagging
# Решение: использовать VLAN интерфейс
set interfaces ethernet eth0 vif 100
set interfaces pppoe pppoe0 source-interface eth0.100
commitПроблема: Соединение устанавливается, но нет интернета
Диагностика:
# 1. Проверить IP адрес
show interfaces pppoe pppoe0
# Должен быть публичный IP или carrier-grade NAT IP (100.64.0.0/10)
# 2. Проверить default route
show ip route 0.0.0.0/0
# Должен указывать на pppoe0
# 3. Ping gateway ISP
ping 203.0.113.1 interface pppoe0
# 4. Ping public IP
ping 8.8.8.8 interface pppoe0
# 5. Проверить DNS
nslookup google.com
# 6. Проверить NAT
show nat source statisticsРешения:
- Нет default route:
set interfaces pppoe pppoe0 default-route force
commit- DNS не работает:
# Использовать DNS от ISP
set system name-server pppoe0
# Или public DNS
set system name-server 8.8.8.8
set system name-server 8.8.4.4
commit- NAT не настроен:
set nat source rule 100 outbound-interface name pppoe0
set nat source rule 100 source address 192.168.1.0/24
set nat source rule 100 translation address masquerade
commitПроблема: Частые disconnects/reconnects
Симптомы:
- PPPoE постоянно переподключается
- В логах: “LCP terminated”
Диагностика:
# 1. Проверить uptime
show interfaces pppoe pppoe0 | grep uptime
# 2. Проверить logs
show log | match "pppoe0"
# 3. Статистика errors
show interfaces pppoe pppoe0 statisticsПричины и решения:
- Проблемы DSL line:
# Плохое качество линии, интерференция
# Решение: проверить DSL модем статистику, SNR, attenuation
# Контакт провайдера для проверки линии- MTU problems:
# Packets dropping из-за MTU
# Решение: уменьшить MTU
set interfaces pppoe pppoe0 mtu 1480
set interfaces pppoe pppoe0 ip adjust-mss 1440
commit- ISP keepalive timeout:
# ISP разрывает соединение из-за отсутствия трафика
# Если idle-timeout включен - отключить
delete interfaces pppoe pppoe0 idle-timeout
delete interfaces pppoe pppoe0 connect-on-demand
commit- Duplicate MAC addresses:
# Проверить нет ли другого устройства с таким же MAC на source interface
show interfaces ethernet eth0Проблема: Низкая скорость
Диагностика:
# 1. Bandwidth test через iperf3
# На сервере (публичный IP)
iperf3 -s
# На VyOS
iperf3 -c server-ip -i 1 -t 30
# 2. Проверить MTU
ping 8.8.8.8 size 1472 do-not-fragment interface pppoe0
# 3. Проверить CPU usage
show system resources
# 4. Interface statistics
show interfaces pppoe pppoe0 statisticsРешения:
- MTU fragmentation:
# Path MTU Discovery
# Уменьшить MTU
set interfaces pppoe pppoe0 mtu 1480
set interfaces pppoe pppoe0 mru 1480
set interfaces pppoe pppoe0 ip adjust-mss 1440
commit- Hardware offloading:
# Включить offloading на source interface
set interfaces ethernet eth0 offload gso
set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload tso
commit- QoS shaping (если ISP throttling):
# Traffic shaping по скорости тарифа
set traffic-policy shaper ISP-LIMIT bandwidth 100mbit
set traffic-policy shaper ISP-LIMIT default bandwidth 100%
set interfaces pppoe pppoe0 traffic-policy out ISP-LIMIT
commitПроблема: IPv6 не работает
Диагностика:
# 1. Проверить IPv6 address
show ipv6 interface pppoe0
# 2. Проверить DHCPv6-PD
show dhcpv6 client leases
# 3. IPv6 routing
show ipv6 route
# 4. Ping IPv6
ping 2001:4860:4860::8888 interface pppoe0Решения:
# Включить IPv6 autoconfig
set interfaces pppoe pppoe0 ipv6 address autoconf
# Настроить DHCPv6-PD
set interfaces pppoe pppoe0 dhcpv6-options pd 0 length 56
set interfaces pppoe pppoe0 dhcpv6-options pd 0 interface eth1 address 1
# Проверить ISP поддерживает IPv6
# Если нет - использовать tunnel broker (6in4, 6rd)Security Best Practices
1. Защита credentials
# Никогда не использовать plaintext-password в production
# Используйте password (автоматически хешируется)
set interfaces pppoe pppoe0 authentication password 'SecurePassword123!'
# Ограничить доступ к конфигурации
set system login user admin authentication plaintext-password 'AdminPassword'
set system login user admin level admin2. Firewall на WAN
# Создать firewall для PPPoE интерфейса
set firewall name WAN-IN default-action drop
set firewall name WAN-IN rule 10 action accept
set firewall name WAN-IN rule 10 state established enable
set firewall name WAN-IN rule 10 state related enable
set firewall name WAN-IN rule 20 action drop
set firewall name WAN-IN rule 20 state invalid enable
# Применить к PPPoE
set interfaces pppoe pppoe0 firewall in name WAN-IN
commit3. Ограничение входящих connections
# Разрешить только established/related
set firewall name WAN-IN default-action drop
set firewall name WAN-IN enable-default-log
set firewall name WAN-IN rule 10 action accept
set firewall name WAN-IN rule 10 state established enable
set firewall name WAN-IN rule 10 state related enable
set firewall name WAN-IN rule 999 action drop
set firewall name WAN-IN rule 999 log enable
commit4. Rate limiting
# Защита от DDoS
set firewall name WAN-IN rule 5 action drop
set firewall name WAN-IN rule 5 protocol icmp
set firewall name WAN-IN rule 5 limit rate 10/second
set firewall name WAN-IN rule 5 limit burst 20
commit5. Мониторинг подключений
# Логирование PPPoE events
set system syslog global facility all level info
# Отправка логов на syslog сервер
set system syslog host 192.168.1.100 facility all level warning
# Email alerts при disconnect
# (требует настройки mail relay)Performance Tuning
1. MTU Optimization
# Оптимальный MTU для PPPoE
set interfaces pppoe pppoe0 mtu 1492
set interfaces pppoe pppoe0 mru 1492
# TCP MSS clamping
set interfaces pppoe pppoe0 ip adjust-mss 1452
set interfaces pppoe pppoe0 ipv6 adjust-mss 1432
commit2. Hardware Offloading
# Включить offloading на source interface
set interfaces ethernet eth0 offload gso
set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload sg
set interfaces ethernet eth0 offload tso
commit3. Buffer Tuning
# Увеличить ring buffers (если NIC поддерживает)
# Проверить текущие значения
ethtool -g eth0
# Установить максимальные (через shell)
# ethtool -G eth0 rx 4096 tx 40964. QoS для VoIP/Gaming
# Priority queueing для низкой latency
set traffic-policy shaper GAMING class 10 match VoIP ip protocol udp
set traffic-policy shaper GAMING class 10 match VoIP ip source port 5060-5090
set traffic-policy shaper GAMING class 10 bandwidth 10%
set traffic-policy shaper GAMING class 10 priority 7
set traffic-policy shaper GAMING class 20 match Gaming ip dscp cs4
set traffic-policy shaper GAMING class 20 bandwidth 30%
set traffic-policy shaper GAMING class 20 priority 5
set traffic-policy shaper GAMING default bandwidth 60%
set traffic-policy shaper GAMING default priority 1
set interfaces pppoe pppoe0 traffic-policy out GAMING
commitAdvanced Configuration
Load Balancing через два PPPoE (Dual WAN)
configure
# PPPoE 1
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'user1@isp1.ru'
set interfaces pppoe pppoe0 authentication password 'Pass1'
set interfaces pppoe pppoe0 default-route none
# PPPoE 2
set interfaces pppoe pppoe1 source-interface eth1
set interfaces pppoe pppoe1 authentication username 'user2@isp2.ru'
set interfaces pppoe pppoe1 authentication password 'Pass2'
set interfaces pppoe pppoe1 default-route none
# Load balancing configuration
set load-balancing wan interface-health pppoe0 nexthop pppoe0
set load-balancing wan interface-health pppoe0 test 10 type ping
set load-balancing wan interface-health pppoe0 test 10 target 8.8.8.8
set load-balancing wan interface-health pppoe1 nexthop pppoe1
set load-balancing wan interface-health pppoe1 test 10 type ping
set load-balancing wan interface-health pppoe1 test 10 target 8.8.4.4
set load-balancing wan rule 1 inbound-interface eth2
set load-balancing wan rule 1 interface pppoe0 weight 1
set load-balancing wan rule 1 interface pppoe1 weight 1
commit
savePPPoE Server на VyOS
VyOS может работать как PPPoE сервер:
configure
# PPPoE server
set service pppoe-server interface eth1
set service pppoe-server authentication mode local
set service pppoe-server authentication local-users username client1 password 'ClientPass1'
set service pppoe-server client-ip-pool start 10.255.0.2
set service pppoe-server client-ip-pool stop 10.255.0.254
set service pppoe-server gateway-address 10.255.0.1
set service pppoe-server name-server 8.8.8.8
set service pppoe-server name-server 8.8.4.4
commit
saveUse case: Предоставление PPPoE доступа клиентам
Сравнение PPPoE vs DHCP vs Static IP
| Характеристика | PPPoE | DHCP | Static IP |
|---|---|---|---|
| Authentication | Да (username/password) | Нет | Нет |
| IP Assignment | Динамический | Динамический | Статический |
| Session Management | Да (connect/disconnect) | Нет | Нет |
| MTU | 1492 (overhead 8 bytes) | 1500 | 1500 |
| Setup Complexity | Средняя | Низкая | Низкая |
| Типичное использование | DSL, FTTH | Home broadband, Cable | Business, Dedicated |
| Overhead | 8 bytes PPPoE + 2 bytes PPP | 0 bytes | 0 bytes |
| ISP Control | Высокий | Средний | Низкий |
Когда выбрать PPPoE:
- ISP требует аутентификацию
- DSL/ADSL подключение
- Нужен session control
- Multiple users sharing physical link
Когда выбрать DHCP:
- Cable modem
- Simple home connection
- Нет требований аутентификации
Когда выбрать Static IP:
- Business connections
- Нужен постоянный IP
- Server hosting
- VPN endpoints
Best Practices
1. Naming Convention
# Используйте понятные имена
set interfaces pppoe pppoe0 description 'ISP-Rostelecom-Primary'
set interfaces pppoe pppoe1 description 'ISP-MTS-Backup'2. MTU Configuration
# Всегда настраивайте MTU и MSS
set interfaces pppoe pppoe0 mtu 1492
set interfaces pppoe pppoe0 ip adjust-mss 1452
# Тест оптимального MTU
ping 8.8.8.8 size 1472 do-not-fragment interface pppoe03. Monitoring и Alerting
# Syslog для tracking events
set system syslog global facility all level info
set system syslog host 192.168.1.100 facility all level warning
# SNMP monitoring
set service snmp community public authorization ro
set service snmp community public network 192.168.1.0/244. Backup Configuration
# Регулярный backup конфигурации
show configuration commands | save /config/backup-$(date +%Y%m%d).conf
# Или automated backup
# Настроить в cron или external script5. Security
# Firewall на WAN обязателен
set firewall name WAN-IN default-action drop
set firewall name WAN-IN rule 10 action accept
set firewall name WAN-IN rule 10 state established enable
set firewall name WAN-IN rule 10 state related enable
set interfaces pppoe pppoe0 firewall in name WAN-IN6. Documentation
# Документируйте все в description
set interfaces pppoe pppoe0 description 'Main ISP - Contract #12345 - Support 8-800-XXX'Миграция с VyOS 1.4 на 1.5
PPPoE конфигурация совместима между версиями:
VyOS 1.4:
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 user-id 'username'
set interfaces pppoe pppoe0 password 'password'VyOS 1.5:
set interfaces pppoe pppoe0 source-interface eth0
set interfaces pppoe pppoe0 authentication username 'username'
set interfaces pppoe pppoe0 authentication password 'password'Migration script:
# Старая конфигурация (1.4) автоматически конвертируется
# Рекомендуется использовать новый синтаксис (authentication username/password)Заключение
PPPoE остается важным протоколом для подключения к интернет-провайдерам:
Преимущества:
- Встроенная аутентификация
- Session management
- Широкая поддержка провайдерами
- Поддержка IPv6 и DHCPv6-PD
Применение:
- DSL/ADSL подключения
- FTTH (Fiber to the Home)
- Кабельные модемы с PPPoE
- ISP connections с аутентификацией
Лучшие практики:
- Правильная настройка MTU (1492) и MSS clamping
- Firewall на WAN интерфейсе
- Monitoring и logging
- Резервирование через dual PPPoE
- Regular backup конфигурации
PPPoE в VyOS обеспечивает надежное и гибкое решение для подключения к интернет-провайдерам как для домашних пользователей, так и для бизнеса, с полным контролем над сетевой конфигурацией и безопасностью.