====== Настройка Accel-IPoE (устарел) ======
Поддержан типа NAS Accel-[[:ipoe|IPoE]] начиная с версии 2.7.0
В данной статье будут указаны особенности настройки accel-ppp модуль ipoe в с связке с mikbill
[[billing:nas_access_server:accelipoe_install|Установка Accel-IPoE от MikBiLL]]
* [[http://sourceforge.net/apps/trac/accel-ppp|Главная страница автора accel-ppp]]
* [[billing:nas_access_server:accelipoe_ipoe_ru|Accel-IPoE IPoE_ru.txt]]
Внимательно читаем README в дистрибутиве accell-ppp.
Внимательно изучаем accel-ppp.conf из дистрибутива и IPoE_ru.txt , ниже в этой статье указаны ИЗМЕНЕНИЯ а не ПОЛНАЯ замена секций конфигурационного файла. ДУМАТЬ и ЧИТАТЬ ОБЯЗАТЕЛЬНО.
====== Описание ======
Функционал который поддержан , фактически все что умеет сам модуль Accel-IPoE мы поддержали.
* IPoE/IP Unnumbered/QinQ IP Unnumbered
* "DHCP от Accel" ( не нужно включать модули dhcp другие вовсе)
* работа без "DHCP от Accel"
* Выдача "именных пулов" вместо IP от radius
* Режим "[[mikbill:настройки:динамические_реальные_ip|пулинга]]" для выдачи IP
* online
* шейпер
* шейпер по временным интервалам
* услуга турбо
* выкидывание
* стандартный функционал страницы без денег
* все варианты L4 redirect
* так же поддержаны "пулы без денег" для выдачи IP
===== MikBiLL =====
свойства NAS
{{ :billing:nas_access_server:accel-ipoe.jpg?nolink& |}}
Изменить под свои нужды имя, описание, IP, логин, пароль, секрет
Остальное не рекомендуется менять
===== Системные Опции =====
Указываем непосредственные свойства для Accel-ipoe:
{{ :billing:nas_access_server:accel_ipoe_sys_opts_main.png?nolink& |}}
|параметр|значение|
|Выдать IP локальный|Включает или отключает выдачу IP через Framed-IP-Address , выдается IP из карточки абонента "локальный IP" |
|Выдать IP выданный|Включает или отключает выдачу IP согласно услуге "[[mikbill:настройки:реальные_ip|внешний IP]]" выдается IP из карточки абонента "выданный IP", при условии что стоит галочка его выдать. использовать только совместно с опцией "Выдать IP локальный" или "Включить IP Pool в Accel" |
|Выдавать именной пул|включает функцию отправки Framed-Pool имени из параметра "Пул". Для обычных абонентов.|
|Включить IP Pool в Accel|Можно использовать совместно с "Выдать IP выданный" , тогда абоненты будут получать IP в "[[mikbill:настройки:динамические_реальные_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
Обязательно это же добавить в файл dictionary на вашем сервере с mikbill
Для Работы нужно расширить словари freeradius
Словарь находится в разных ОС по разным местам
ниже варианты нахождения файла словаря
/usr/share/freeradius/dictionary
/usr/local/share/freeradius/dictionary
В конце файла рекомендуем добавить пустую строку
После операции выше перезапустите radiusd
===== конфиг 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.
Обычный шейпер в тарифе
{{ :billing:nas_access_server:accel_ipoe_shaper_basic.jpg?nolink& |}}
пример обычного шейпера в модуле
[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
===== Шейпер День/Ночь =====
{{ :billing:nas_access_server:accel_ipoe_shaper_interval.jpg?nolink& |}}
пример шейпера по интервалам в модуле
[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
===== Настройка "Пул без денег" =====
Для корректной работы необходимо обязательно включить и указать пул без денег.
{{ :billing:nas_access_server:accel_ipoe_sys_opts-1.jpg?nolink& |}}
===== 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
В примере указаны 100% обязательные настройки, остальные по желанию
==== 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
Тип устройства
{{ :billing:nas_access_server:sw_type.jpg?nolink& |}}
Само устройство (модуль 1)
{{ :billing:nas_access_server:bd_com_mod_1.jpg?nolink& |}}
Добавляем пары влан=порт
{{ :billing:nas_access_server:bd_com_mod_2.jpg?nolink& |}}
{{ :billing:nas_access_server:bd_com_mod_3.jpg?nolink& |}}
Итого результат
{{ :billing:nas_access_server:bd_com_mod_4.jpg?nolink& |}}
таким образом можно делать и с меньшим или с большим кол-вом портов.
ну и никто вас не ограничивает кол-вом устройств.
После этого мы просто указываем абоненту модуль 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
{{ :billing:nas_access_server:bd_com_mod_1_qinq.jpg?nolink& |}}
Все остальные настройки в 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
ВНИМАНИЕ QinQ интерефейсы необходимо создать на сервере вручную.
Например vconfig add eth1 2000
Т е теперь accel будет слушать по qinq 2000
В qinq вланы должны иметь вид ethX.2000.101 где ethX - физический интерфейс, 2000 - номер тега QINQ, 101 номер клиентского влана
==== Итоги ====
Еще можно в рамках одного 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