Секреты PPPoE в Mikrotik

Наверняка все знают о мощной ОС Mikrotik предназначенной для работы на маршрутизаторах RouterBoard(собственное оборудование компании Mikrotik), а так же на любых x86 машинах с минимально необходимым железом.

Зачастую многие ISP используют Mikrotik для User-End  оборудования, а именно PPPoE или PPPTP сервера.

1. Изменение MSS

Чаще всего системные администраторы, создают PPPoE сервер следующим образом:

/ppp profile
add change-tcp-mss=yes dns-server=8.8.8.8 local-address=1.1.1.1 name=PPPoE_profile only-one=default remote-address=pool_pppoe

/interface pppoe-server server
add authentication=chap default-profile=PPPoE_profile disabled=no interface=\
ether1 keepalive-timeout=10 max-mru=1480 max-mtu=1480 max-sessions=0 \ 
mrru=disabled one-session-per-host=no service-name=internet

И в целом они правы, что изменяют MSS, что бы все сайты нормально открывались. Однако Mikrotik в версии до 5.24 создает кучу динамических правил (по 2-а на каждое клиентское соединение) в таблице Firewall Mangle, что существенно увеличивает нагрузку на центральный процессор. Лучше поступать так:

/ip firewall mangle
add action=change-mss chain=forward comment="change real ip mss" disabled=no \
    new-mss=1440 passthrough=yes protocol=tcp src-address-list=pppoe_addrs \
    tcp-flags=syn

Это одно правило будет изменять MSS для всей подсети – pppoe_addrs

2. Скорости больше 6 Mbit/s

По умолчанию новое клиентское соединение с сервером в Mikrotik, порождает динамическую очередь Queue Simple, с типом очереди default-small, которое имеет настройки PFIFO c емкостью очереди в 10 пакетов. Естественно такое положение вещей не устраивает, меняем таки образом:

set 2 kind=mq-pfifo mq-pfifo-limit=50 name=default-small

Не буду останавливаться на возможностях Mikrotik в плане управления скоростью, однако можете прочитать об этом здесь.

3. Lost-Carrier что это такое и с чем его едят

Как часто бывает оборудование провайдера (NAS) и клиентское оборудование соединено не только оптическими и медными линиями но и какого либо радио оборудованием(того же Mikrotik). В связи с чем иногда можно наблюдать в причинах отсоединения Lost-Carrier. Данная ошибка возникает потому что Mikrotik не получает за отведенное время запросы на свои пакеты Echo(в PPPoE/PPTP существует протокол проверки “жизнеспособности” ppp соединения, которые через определенные интервалы времени (lcp-echo-interval) посылает пакеты, схожие по своей цели с icmp ping, но реализованы специально для тунельных соединений и называемые LCP-пакетами).

За это отвечает параметр KeepAlive, определяется он в секундах(по умолчанию 10) и работает след. образом.
Mikrotik начинает отправлять пакеты Echo клиенту в течении 10(по умолчанию) секунд, если в течении следующих 10 секунд не получит ни одного ответа, то разорвет соединение с такой ошибкой KeepAlive.

Таким образом Mikrotik будет ждать 2*10 секунд пока не разорвет соединение.

Я рекомендую ставить его в пределах от 10-20 до секунд, при плохом качестве линии 20 секунд. Помните что чем выше этот параметр то тем выше время ожидания завершения сбойного соединения и установки нового.

Жду Ваших комментариев о полезности статьи.
Возможно напишу свой опыт о работе с PPPoE далее а именно:

  • Использование CoA для PPPoE Mikrotik
  • Классификация трафика в PPPoE и динамическое ограничение скорости определенного из них

 

8 Comments

  1. Интересует именно использование COA для PPPoE. Вроде микротик этого не реализовывал.

  2. Интересует именно использование COA для PPPoE. Можете подсказать как удалось реализовать ?

  3. Добрый день! При настройки PPPoE сервера на mikrotik 6.34.6 возникла следующая проблема: некоторые роутеры и компьютеры не могут установить соединение. Точнее оно устанавливается и сразу же рвется.
    Вот логи по дебагу PPP
    19:13:29 pppoe,ppp,debug : IPCP opened
    19:13:29 pppoe,ppp,info : connected
    19:13:30 pppoe,ppp,debug,packet : rcvd LCP EchoReq id=0xb
    19:13:30 pppoe,ppp,debug,packet
    19:13:30 pppoe,ppp,debug,packet : sent LCP EchoRep id=0xb
    19:13:30 pppoe,ppp,debug,packet
    19:13:30 pppoe,ppp,debug,packet : rcvd LCP EchoReq id=0x3b
    19:13:30 pppoe,ppp,debug,packet
    19:13:30 pppoe,ppp,debug,packet : sent LCP EchoRep id=0x3b
    19:13:30 pppoe,ppp,debug,packet
    19:13:30 pppoe,debug,packet Vlan | 3030 | LAN | clients PPPoE: rcvd PADT from 2C:56:DC:A4:B9:87
    19:13:30 pppoe,debug,packet session-id=0x18c4
    19:13:30 pppoe,debug,packet generic-error=session closed
    19:13:30 pppoe,ppp,debug : LCP lowerdown
    19:13:30 pppoe,ppp,debug : LCP closed
    19:13:30 pppoe,ppp,debug : CCP lowerdown
    19:13:30 pppoe,ppp,debug : BCP lowerdown
    19:13:30 pppoe,ppp,debug : BCP down event in starting state
    19:13:30 pppoe,ppp,debug : IPCP lowerdown
    19:13:30 pppoe,ppp,debug : IPCP closed
    19:13:30 pppoe,ppp,debug : IPV6CP lowerdown
    19:13:30 pppoe,ppp,debug : IPV6CP down event in starting state
    19:13:30 pppoe,ppp,debug : MPLSCP lowerdown
    19:13:30 pppoe,ppp,debug : MPLSCP down event in starting state
    19:13:30 pppoe,ppp,info : terminating… – disconnected
    19:13:30 pppoe,ppp,debug : LCP lowerdown
    19:13:30 pppoe,ppp,debug : LCP down event in starting state
    19:13:30 pppoe,ppp,info,account test1234 logged out, 0 705 323 14 8
    19:13:30 pppoe,ppp,info : disconnected
    можете подсказать куда копать?

Leave a Reply