Настройка PPPoE и/или РРТР (VPN) на Mikrotik
Материал из BiTel WiKi
(Различия между версиями)
LoGRuS (Обсуждение | вклад) (Новая: Скоро... ждите, статья в процессе) |
Snark (Обсуждение | вклад) м (Отмена правки 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