Настройка Accel-IPoE (устарел)
Поддержан типа NAS Accel-IPoE начиная с версии 2.7.0
В данной статье будут указаны особенности настройки accel-ppp модуль ipoe в с связке с mikbill
Установка Accel-IPoE от MikBiLL
Описание
Функционал который поддержан , фактически все что умеет сам модуль Accel-IPoE мы поддержали.
- IPoE/IP Unnumbered/QinQ IP Unnumbered
- "DHCP от Accel" ( не нужно включать модули dhcp другие вовсе)
- работа без "DHCP от Accel"
- Выдача "именных пулов" вместо IP от radius
- Режим "пулинга" для выдачи IP
- online
- шейпер
- шейпер по временным интервалам
- услуга турбо
- выкидывание
- стандартный функционал страницы без денег
- все варианты L4 redirect
- так же поддержаны "пулы без денег" для выдачи IP
MikBiLL
свойства NAS
Изменить под свои нужды имя, описание, IP, логин, пароль, секрет
Системные Опции
Указываем непосредственные свойства для Accel-ipoe:
параметр | значение |
Выдать IP локальный | Включает или отключает выдачу IP через Framed-IP-Address , выдается IP из карточки абонента "локальный IP" |
Выдать IP выданный | Включает или отключает выдачу IP согласно услуге "внешний IP" выдается IP из карточки абонента "выданный IP", при условии что стоит галочка его выдать. использовать только совместно с опцией "Выдать IP локальный" или "Включить IP Pool в Accel" |
Выдавать именной пул | включает функцию отправки Framed-Pool имени из параметра "Пул". Для обычных абонентов. |
Включить IP Pool в Accel | Можно использовать совместно с "Выдать IP выданный" , тогда абоненты будут получать IP в "пулинге", кроме тех кому выдадите статику . Т е режим работы по выдаче IP как у Билайна |
Варианты использования опций выше:
- Не включать ни одной галочки - это значит что у вас режим start=up
- Включено только "Выдавать именной пул" - у вас используется пулы внутри конфига accel
- "Выдать IP локальный"+"Выдать IP выданный" - используете выдачу IP из локальная сеть и выданный IP, указанных в микбилл
- "Включить IP Pool в Accel"+"Выдать IP выданный" - используете выдачу IP из микбилл , всем выдаются ip в ротации + указанным абонентам фиксированные
- Так же можно не использовать "Выдать IP выданный" в указанных вариантах выше
Включить Pool должников | Включает режим выдачи IP из пула должников, настройка ниже |
Выдать именной пул должников | включает функцию отправки Framed-Pool имени из параметра "Пул должников". Для должников. |
Слать L4-Redirect | Шлет тег attr-l4-redirect=L4-Redirect в случае если абонент не прошел авторизацию. |
Длинна маски для пула без денег | Указать длину маски для пула без денег, в примере в пул должников занесли 192.168.0.0/20 и длинна маски тут 20 |
шлюз для пула без денег | |
длинна маски для справочника реальных ip | Это необходимо для выдачи постоянных внешних ip согласно услуге "статические реальные ip" в рамках работы в модуле accel-ipoe нужно понимать что например если у нас блок /21 а мы выдаем абонентам всего лишь часть в статику , то эта маска должна включать в себя параметр ниже "шлюз для справочника реальных ip" т е например у нас сеть 195.2.204.0/20 мы на услугу "статические реальные ip" выделили 195.2.205.240/28 а шлюз для всех клиентов в рамках accel используем 195.2.204.14 - тогда получается указать маску надо 20 хотя и блок в услуге намного короче |
шлюз для справочника реальных ip | читать длинна маски для справочника реальных ip |
таймаут сессии должников | Убран за ненадобностью |
Пул | имя пула которое шлется в Accel при включенной опции "Выдавать именной пул" текст на английском - имя пула в Accel параметром Framed-Pool |
Пул должников | имя пула которое шлется в Accel при включенной опции "Выдать именной пул должников" текст на английском - имя пула в Accel параметром Framed-Pool |
модули Accel
словарь accel
Так же после установки accel-ipoe необходимо открыть файл словаря самого accel как правило он тут
/usr/local/share/accel-ppp/radius/dictionary
и добавить строки ниже в самый конец файла
ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr ATTRIBUTE DHCP-Mask 242 integer ATTRIBUTE L4-Redirect 243 integer ATTRIBUTE L4-Redirect-ipset 244 string ATTRIBUTE DHCP-Option82 245 octets ATTRIBUTE AccelRemoteId 246 octets ATTRIBUTE AccelCircuitId 247 octets
Для Работы нужно расширить словари freeradius
Словарь находится в разных ОС по разным местам ниже варианты нахождения файла словаря
/usr/share/freeradius/dictionary /usr/local/share/freeradius/dictionary
конфиг accel - radius
[radius] dictionary=/usr/local/share/accel-ppp/radius/dictionary nas-identifier=accel nas-ip-address=10.1.1.1 server=10.1.1.2,secret,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0 dae-server=0.0.0.0:3799,secret verbose=0 timeout=3 max-try=3 acct-delay-time=0
secret | указать свой секрет |
10.1.1.2 | указать ip сервера с freeradius |
10.1.1.1 | указать ip accel-ppp |
шейпер
mikbill отправляет шейпер по атрибуту "Filter-Id" Так же возможен вариант с временными интервалами. Все едлать как указано на сайте accel по включению временных интервалов В микбил достаточно просто заполнить их в тарифе , по сути все работает как и в случае с accel-ppp.
Обычный шейпер в тарифе
пример обычного шейпера в модуле
[shaper] attr=Filter-Id ifb=ifb0 up-limiter=htb down-limiter=htb cburst=1375000 r2q=10 quantum=1500 leaf-qdisc=sfq perturb 10 verbose=0
Шейпер День/Ночь
пример шейпера по интервалам в модуле
[shaper] attr=Filter-Id quantum=1500 time-range=1,7:00-00:59 time-range=2,1:00-3:59 time-range=3,4:00-6:59 up-limiter=htb down-limiter=htb cburst=1375000 ifb=ifb0 r2q=10 quantum=1500 leaf-qdisc=sfq perturb 10 verbose=0
должники
Суть работы с должниками в следующем. Есть несколько вариантов как им выдать IP.
- "Включить Pool должников"- средствами микбила выдается "пул должников", настройки ниже + укажите правильную маску в "системных опциях".
- "Выдать именной пул должников" - вы указываете имя пула, который задан в конфиге акселя и ip выдаются из него.
- слать "L4-Redirect" - эту опцию можно включать совместно с любой из выше или же только ее.
Указанный пул должников в mikbill будет выдаваться абонентам вместо их ip. Т е они получат от accel ip, mask, gw, dns, wins
wins | указать в соответствующих модулях accel |
dns | указать в соответствующих модулях accel |
Именной пул - пример
пример конфига для "Выдать именной пул должников":
[ip-pool] 192.168.0.2-254/20,name=l4-redirect gw-ip-address=192.168.0.1 attr=Framed-Pool
Настройка "Пул без денег"
L4-Redirect
Если включена системная опция "слать L4-Redirect" то пир ответе для должников, заблокирован интернет и т д будет послан данный атрибут
L4-Redirect
По которому модуль ipoe может выполнить дополнительные действия например часть из конфига
[ipoe] l4-redirect-ipset=l4
Т е в ipset 14 будет добавлена запись с IP абонента
[ipoe] l4-redirect-table=100
В таблицу маршрутизации номер 100 будет добавлен маршрут на IP абонента
IPoE - примеры
ниже примеры настроек модулей не забываем включить протокол accel Это делается 1 раз при установке accel-ppp
echo "100 accel/ipoe" >> /etc/iproute2/rt_protos
IPoE (mac)
режим работы аналогичный mikrotik hotspot или LinuxIGS
Поиск абонента идет по указанному в абоненте mac-адресу IP выдается согласно указаному абоненту сегменту шлюз и маска берутся из свойств сегмента dns, wins согласно настройкам accel Если указано "выдать реальник" то выдается внешний ip Хотя никто не мешает сделать 1 сегмент на внешних, другой на серых и т д
[ipoe] username=lua:username lua-file=/etc/accel-ppp.lua lease-time=300 max-lease-time=300 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-router-ip=DHCP-Router-IP-Address attr-dhcp-mask=DHCP-Mask attr-l4-redirect=L4-Redirect shared=1 ifcfg=1 mode=L2 start=dhcpv4 proto=100 interface=re:eth1.101
файл /etc/accel-ppp.lua
function username(pkt) return pkt:hdr('chaddr') end
IPoE (L3)
Поиск абонента идет по указанному в абоненте IP-адресу IP выдается согласно указаному абоненту сегменту шлюз и маска берутся из свойств сегмента dns, wins согласно настройкам accel Если указано "выдать реальник" то выдается внешний ip Хотя никто не мешает сделать 1 сегмент на внешних, другой на серых и т д
[ipoe] username=ifname lease-time=300 max-lease-time=300 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-router-ip=DHCP-Router-IP-Address attr-dhcp-mask=DHCP-Mask attr-l4-redirect=L4-Redirect shared=1 ifcfg=1 mode=L3 start=dhcpv4 proto=100 interface=re:eth1.101
Unnumbered
Выполняет мониторинг вланов на eth1 начиная с 101 до 464 принцип работы 1 влан = 1 абонент Поиск абонента идет по указанному в абоненте устройству и порту IP выдается согласно указаному абоненту сегменту шлюз и маска берутся из свойств сегмента dns, wins согласно настройкам accel Если указано "выдать реальник" то выдается внешний ip Хотя никто не мешает сделать 1 сегмент на внешних, другой на серых и т д
Пример настройки устройства BDCOM для пассивной оптики В конфиге устройства занесено так чтобы на каждую онушку давался свой разный влан от 101 до 464 Тип устройства
Само устройство (модуль 1)
Добавляем пары влан=порт
Итого результат
таким образом можно делать и с меньшим или с большим кол-вом портов. ну и никто вас не ограничивает кол-вом устройств.
После этого мы просто указываем абоненту модуль 1 и порт и все система всегда его авторизует и занесет в логи его мак. Пример
[ipoe] username=ifname lease-time=300 max-lease-time=300 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-router-ip=DHCP-Router-IP-Address attr-dhcp-mask=DHCP-Mask attr-l4-redirect=L4-Redirect shared=0 proxy-arp=0 proto=100 vlan-mon=eth1,101-464 vlan-timeout=600 vlan-name=%I.%N interface=re:eth1\.[1-4][0-9][0-9]
QinQ
Тут все так же как и в прошлом модуле за исключением одной детали которая указана ниже
В настройках устройства нужно указать номер тега QinQ
Все остальные настройки в mikbill аналогичны Unnumbered. Пример
[ipoe] username=ifname lease-time=300 max-lease-time=300 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-router-ip=DHCP-Router-IP-Address attr-dhcp-mask=DHCP-Mask attr-l4-redirect=L4-Redirect shared=0 proxy-arp=0 proto=100 vlan-mon=re:eth1\.2[0-9][0-9][0-9],101-464 vlan-timeout=600 vlan-name=%I.%N interface=re:eth1\.2[0-9][0-9][0-9].[1-4][0-9][0-9]
Т е слушается qinq 2000-2999 и vlan 100-464 на eth1
Итоги
Еще можно в рамках одного accel-ppp Сделать все три режима настройки Т е разными свойствами interface и vlan-mon обеспечить одновременную работу всех режимов и на каждом interface будет свой режим. Например на одном NAS нам понадобилось
1 часть вланов были в авторизации по mac и там было в каждом влан много абонентов
2 Другая часть вланов была unnumbered
vlan-mon=eth1,101-464 vlan-timeout=600 vlan-name=%I.%N interface=re:eth1\.[1-4][0-9][0-9],shared=0,mode=L2 interdace=re:eth2.100,shared=1,mode=L2