Настройка PPPoE и/или РРТР (VPN) на Mikrotik

Материал из BiTel WiKi

Перейти к: навигация, поиск

Настройка РРРоЕ и РРТР серверов на Mikrotik (в дальнейшем - МТ) в связке с BGBilling (в дальнейшем BGB).

В примере будет использована сеть 172.16.0.0/24 в которой адреса распределены следующим образом:

  • 172.16.0.1 - шлюз в интернет
  • 172.16.0.2 - DNS сервер
  • 172.16.0.3 - сервер BGB
  • 172.16.0.4 - МТ
  • 172.16.0.100-172.16.0.150 - 1-й пул для пользователей
  • 172.16.0.200-172.16.0.250 - 2-й пул для пользователей

Так же будут использованы 2 VLAN-а:

  • v1 (VID 1) - Интернет.
  • v2 (VID 2) - VLAN для пользователей, в нем будет работать РРРоЕ и/или РРТР сервер.

Если Вы не планируете использование VLAN, то Вам понадобится 2 Ethernet интерфейса затем просто пропустите пункт о создании VLAN и замените слова v1 и v2 на ether1 и ether2 соответственно.

Содержание

Настройка МТ

Общая часть

  • Устанавливаем МТ.
Обратите внимание, что при установке обязательно необходимо установить пакет ppp!
  • Создаем VLAN-ы:
interface vlan add name=v1 vlan-id=1 interface=ether1 disabled=no
interface vlan add name=v2 vlan-id=2 interface=ether1 disabled=no
  • Прописываем МТ IP адрес:
ip address add address=172.16.0.4/24 interface=v1
  • Прописываем маршрут по умолчанию:
ip route add gateway=172.16.0.1
  • Указываем что РРР пользователи будут авторизироваться в RADIUS-е:
ppp aaa set use-radius=yes interim-update=60
На самом деле параметр interim-update=60 указывать не обязательно, МТ будет получать его из Acct-Interim-Interval брямо с BGB, тут он указан только для подстраховки.
  • Добавляем RADIUS сервер для РРР пользователей:
radius add service=ppp address=172.16.0.3 secret="bgb_rulez" authentication-port=1812 accounting-port=1813 timeout=10s
  • Разрешаем RADIUS-у скидывать юзеров с помощью PoD:
radius incoming set accept=yes port=1700
Параметр port=1700 указать крайне желательно, т.к. в МТ, от версии к версии дефолтное значение почему-то может изменяться :(
  • Настраиваем экспорт netflow:
ip traffic-flow target add address=172.16.0.3:2001 version=5
ip traffic-flow target add address=172.16.0.3:2004 version=5
ip traffic-flow set active-flow-timeout=1m enabled=yes
Один поток - на RADIUS, другой - на IPN модуль для детализации, если Вы не используете детализацию - поток на IPN коллектор можно не прописывать. Если Вы не будете учитывать трафик с помощью netflow - можете вообще пропустить этот пункт :)

На этом общую настройку МТ можно считать оконченной.

РРРоЕ сервер

  • Cоздаем РРР профиль для РРРоЕ:
ppp profile add name=default-pppoe local-address=172.16.0.4 dns-server=172.16.0.2
  • Включаем РРРоЕ сервер:
interface pppoe-server server add interface=v100 default-profile=default-pppoe max-mtu=1492 max-mru=1492 authentication=pap one-session-per-host=yes disabled=no

РРTР сервер

  • Прописываем IP адрес к котому будут коннектится пользователи:
ip address add address=192.168.0.1/24 interface=v2
  • Создаем РРР профиль для РРТР:
ppp profile add name=default-pptp local-address=172.16.0.4 dns-server=172.16.0.2 use-encryption=no
  • Включаем РРТР сервер:
interface pptp-server server set authentication=pap,chap default-profile=default-pptp max-mtu=1472 max-mru=1472 enabled=yes
Если у Вас нет критической необходимости в шифровании - не включайте его (параметр use-encryption в пред. пункте) и не используйте ни MS-CHAP ни MS-CHAP v2 (параметр authentication)! Шифрование - достаточно ресурсоемкая процедура, а т.к. МТ не поддерживает аппаратного шифрования то вся шифрация/дешифрация будет осуществляться с помощью CPU.


Настройка BGB

  • В файле dictionary.xml, в секции vendors добавьте:
<vendor name="Mikrotik" code="14988">
    <attribute name="Mikrotik-Recv-Limit" code="1" type="integer" />
    <attribute name="Mikrotik-Xmit-Limit" code="2" type="integer" />
    <attribute name="Mikrotik-Group" code="3" type="string" />
    <attribute name="Mikrotik-Wireless-Forward" code="4" type="integer" />
    <attribute name="Mikrotik-Wireless-Skip-Dot1x" code="5" type="integer" />
    <attribute name="Mikrotik-Wireless-Enc-Algo" code="6" type="integer" />
    <attribute name="Mikrotik-Wireless-Enc-Key" code="7" type="string" />
    <attribute name="Mikrotik-Rate-Limit" code="8" type="string" />
    <attribute name="Mikrotik-Realm" code="9" type="string" />
    <attribute name="Mikrotik-Host-IP" code="10" type="ipaddr" />
    <attribute name="Mikrotik-Mark-Id" code="11" type="string" />
    <attribute name="Mikrotik-Advertise-URL" code="12" type="string" />
    <attribute name="Mikrotik-Advertise-Interval" code="13" type="integer" />
    <attribute name="Mikrotik-Recv-Limit-Gigawords" code="14" type="integer" />
    <attribute name="Mikrotik-Xmit-Limit-Gigawords" code="15" type="integer" />
</vendor>
  • В конфигурации модуля, в параметре vendors добавьте 14988=Mikrotik, после этого параметр vendors должен выглядеть примерно так:
vendors=9=Cisco;14988=Mikrotik
  • В конфигурации NAS-а укажите что отключение пользователей будет осуществляться с помощью PoD:
dialup.workmode=1
nas.inspector.class=bitel.billing.server.processor.PoDNASConnectionInspector
nas.inspector.pod.port=1700
nas.inspector.pod.attributes=User-Name;Framed-IP-Address;Acct-Session-Id

После столь нехитрых комбинаций BGB полностью готов к работе с МТ :)

Выдача адресов

Выдача адресов с помощью BGB

В конфигурации модуля:

  • Пропишите пулы IP адресов:
pools.pool1=172.16.0.100-172.16.0.150
pools.pool2=172.16.0.200-172.16.0.250
  • Пропишите атрибуты:
attrset.1.title=Адреса из пула 1
attrset.1.attributes=Framed-Pool=pool1
attrset.2.title=Адреса из пула 2
attrset.2.attributes=Framed-Pool=pool2

После чего Вы можете использовать пулы как в тарифах, так и в свойствах логинов.

Выдача адресов МТ самостоятельно

Одинаковые пулы для всех типов доступа

  • Простые пулы:
  • Создаем пулы адресов:
ip pool add name=pool1 ranges=172.16.0.100-172.16.0.150,172.16.0.200-172.16.0.250
  • Привязываем пулы адресов к профилям:
РРРоЕ и/или РРТР пользователи будут пользоваться адресами из пула pool1:
ppp profile set default-pppoe remote-address=pool1
ppp profile set default-pptp remote-address=pool1
  • Пулы с помощью next-pool:
  • Создаем пулы адресов:
ip pool add name=pool1 ranges=172.16.0.100-172.16.0.150 next-pool=pool2
ip pool add name=pool2 ranges=172.16.0.200-172.16.0.250
  • Привязываем пулы адресов к профилям:
РРРоЕ и/или РРТР пользователи будут пользоваться адресами из пула pool1:
ppp profile set default-pppoe remote-address=pool1
ppp profile set default-pptp remote-address=pool1

Различные пулы для различного типа доступа

  • Создаем пулы адресов:
ip pool add name=pool1 ranges=172.16.0.100-172.16.0.150
ip pool add name=pool2 ranges=172.16.0.200-172.16.0.250
  • Привязываем пулы адресов к профилям:
РРРоЕ пользователи будут пользоваться адресами из пула pool1:
ppp profile set default-pppoe remote-address=pool1
РРТР пользователи будут пользоваться адресами из пула pool2:
ppp profile set default-pptp remote-address=pool2

snark

Личные инструменты