Настройка VPN сервера FreeBSD MPD
Материал из BiTel WiKi
MPD 4.x версии доступен из портов, никакая адаптация для его работы с биллингом не требуется.
Конфигурационные файлы для настройки MPD можно загрузить здесь. Все скрипты кроме 001-netflow.sh, 002-mpd.sh рассчитаны на размещение в каталоге /usr/local/libexec/mpd/.
Скрипты запуска MPD и настройки NetFlow 001-netflow.sh, 002-mpd.sh размещаются в /usr/local/etc/rc.d/. В качестве NetFlow агента используется ng_netflow, доступный сразу в FreeBSD 6 и новее.
Для правильного функционирования необходимо убедится что в вашей системе установлен netcat, он используется в скрипте passtest.sh для передачи сигнала о разрыве сессии на сокет управления MPD.
Скрипт вызывается net-snmp демоном, при получении запроса на OID .1.3.6.1.4.1.2021.255. Конфигурация snmpd.conf также доступна на FTP. Замените x.x.x.x secret на IP адрес RADIUS сервера, с которого запросы попадут на snmpd и SNMP communtity, идентичный введенному в конфигурации NASа.
Разрыв по SNMP-не основной механизм прерывания сессий, он используется для срочного сброса клиентов через монитор модуля DialUP, либо через консольное управление. Кроме разрыва по SNMP RADIUS передает атрибут mpd-drop-user в ACCOUNTING RESPONSE пакете.
Для MPD NASов должен быть растроен режим тарификации UPDATE в биллинге, т.е. обсчеты идут по получению UPDATE пакетов. У NASа должен быть установлен вендор MPD, на основании этого RADIUS будет слать drop-атрибут.
MPD позволяет передавать опции скорости канала через RADIUS атрибуты, например:
attrset.1.title=Скорость 64-Арена
attrset.1.attributes=mpd-filter=1#1=match dst net 82.200.107.0/27 and src net 192.168.120.0/24;mpd-filter=2#1=match src net 82.200.107.0/27 and dst net 192.168.120.0/24;mpd-limit=in#1=flt1 pass;mpd-limit=in#2=all shape 64000 4000 pass;mpd-limit=out#1=flt2 pass;mpd-limit=out#2=all shape 64000 4000 pass;
- для сетки 82.200.107.0/27 и 192.168.120.0/24 без ограничений
- для остально интернета первые 4 кб без ограничений, потом скорость ограничивается до 64 кб/с
Либо более простой пример:
attrset.1.title=Канал 64
attrset.1.attributes=mpd-limit=out#1=all shape 60000 pass;mpd-limit=in#1=all rate-limit 10000000 pass
attrset.2.title=Канал 128
attrset.2.attributes=mpd-limit=out#1=all shape 128000 pass;mpd-limit=in#1=all rate-limit 10000000 pass
attrset.3.title=Канал 256
attrset.3.attributes=mpd-limit=out#1=all shape 256000 pass;mpd-limit=in#1=all rate-limit 10000000 pass
attrset.4.title=Канал 512
attrset.4.attributes=mpd-limit=out#1=all shape 512000 pass;mpd-limit=in#1=all rate-limit 10000000 pass