Настройка Accel-IPoE (устарел)

Поддержан типа NAS Accel-IPoE начиная с версии 2.7.0

В данной статье будут указаны особенности настройки accel-ppp модуль ipoe в с связке с mikbill

Установка Accel-IPoE от MikBiLL

Внимательно читаем README в дистрибутиве accell-ppp.

Внимательно изучаем accel-ppp.conf из дистрибутива и IPoE_ru.txt , ниже в этой статье указаны ИЗМЕНЕНИЯ а не ПОЛНАЯ замена секций конфигурационного файла. ДУМАТЬ и ЧИТАТЬ ОБЯЗАТЕЛЬНО.

Описание

Функционал который поддержан , фактически все что умеет сам модуль 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 как у Билайна

Варианты использования опций выше:

  1. Не включать ни одной галочки - это значит что у вас режим start=up
  2. Включено только "Выдавать именной пул" - у вас используется пулы внутри конфига accel
  3. "Выдать IP локальный"+"Выдать IP выданный" - используете выдачу IP из локальная сеть и выданный IP, указанных в микбилл
  4. "Включить IP Pool в Accel"+"Выдать IP выданный" - используете выдачу IP из микбилл , всем выдаются ip в ротации + указанным абонентам фиксированные
  5. Так же можно не использовать "Выдать 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.

Обычный шейпер в тарифе пример обычного шейпера в модуле

[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.

  1. "Включить Pool должников"- средствами микбила выдается "пул должников", настройки ниже + укажите правильную маску в "системных опциях".
  2. "Выдать именной пул должников" - вы указываете имя пула, который задан в конфиге акселя и ip выдаются из него.
  3. слать "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

В примере указаны 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 Тип устройства Само устройство (модуль 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

ВНИМАНИЕ 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
billing/nas_access_server/accelipoe.txt · Последние изменения: 2017-05-13 23:19 — Александр Дудяк
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki