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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Скоро... ждите, статья в процессе)
м (Отмена правки 3579 участника Ipodsoft (обсуждение))
 
(7 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
Скоро... ждите, статья в процессе
+
Настройка РРРоЕ и РРТР серверов на [http://mikrotik.com Mikrotik] (в дальнейшем - МТ) в связке с [http://bgbilling.ru 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'' добавьте:
 +
<source lang=xml>
 +
<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>
 +
</source>
 +
*В конфигурации модуля, в параметре ''vendors'' добавьте ''14988=Mikrotik'', после этого параметр ''vendors'' должен выглядеть примерно так:
 +
<source lang=java>
 +
vendors=9=Cisco;14988=Mikrotik
 +
</source>
 +
*В конфигурации NAS-а укажите что отключение пользователей будет осуществляться с помощью PoD:
 +
<source lang=java>
 +
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
 +
</source>
 +
 
 +
После столь нехитрых комбинаций BGB полностью готов к работе с МТ :)
 +
 
 +
== Выдача адресов ==
 +
 
 +
=== Выдача адресов с помощью BGB ===
 +
 
 +
В конфигурации модуля:
 +
*Пропишите пулы IP адресов:
 +
<source lang=java>
 +
pools.pool1=172.16.0.100-172.16.0.150
 +
pools.pool2=172.16.0.200-172.16.0.250
 +
</source>
 +
*Пропишите атрибуты:
 +
<source lang=java>
 +
attrset.1.title=Адреса из пула 1
 +
attrset.1.attributes=Framed-Pool=pool1
 +
attrset.2.title=Адреса из пула 2
 +
attrset.2.attributes=Framed-Pool=pool2
 +
</source>
 +
 
 +
После чего Вы можете использовать пулы как в тарифах, так и в свойствах логинов.
 +
 
 +
=== Выдача адресов МТ самостоятельно ===
 +
 
 +
==== Одинаковые пулы для всех типов доступа ====
 +
 
 +
*Простые пулы:
 +
:*Создаем пулы адресов:
 +
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
 +
 
 +
<!--
 +
TODO:
 +
- написать про фильтрацию пользовательского трафика
 +
- написать про реализацию уведомления об ошибке 691
 +
- написать про ограничение скорости для пользователей
 +
-->
 +
[[Участник:Snark|snark]]

Текущая версия на 04:20, 13 мая 2013

Настройка РРРоЕ и РРТР серверов на 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

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