LINUX.ORG.RU
решено ФорумAdmin

Freeradius: как разорвать установленную сессию


0

2

Добрый день!

С BRAS'a периодически приходят Accounting-Request пакеты. Как я понимаю, радиус начинает обрабатывать /etc/raddb/sites-enabled/default, заглядывает в секцию preacct, потом в accounting. Что там писать, чтобы радиус в по определенным условиям генерировал в ответ Disconnect-request (или что-то в этом роде), чтобы BRAS разрывал сессию? Читал документацию на сайте freeradius'a, в том числе и по встроенному языку, всё равно не понял. Есть ли какие-нибудь мануалы, где на пальцах объясняется архитектура freeradius'a, что куда приходит, что откуда вызывается?

BRAS в ответ на Accounting-Request ничего не ждет, иначе это очень странный BRAS.

Лучше документацию на BRAS почитайте. Реализация завершения клиентских сессий BRAS-о специфичная задача.

hizel ★★★★★
()
Ответ на: комментарий от hizel

BRAS ждет Accounting-Responsе. Однако респонс тут только для контроля доставки аккаунтинга. Радиусом можно сгенерить в этот момент еще COA запрос и послать его для разрыва сессии.

ventilator ★★★
()

Мы делаем так:

accounting {
....SKIPPED


        if ("%{Acct-Status-Type}" != "Stop") {
                if ("%{sql-master: SELECT * FROM se_pppoe_pod_check_f('%{User-Name}')}") {
                        update disconnect {
                                Framed-Protocol="PPP"
                                Nas-Port="%{NAS-Port}"
                                Packet-Dst-IP-Address = "%{NAS-IP-Address}"
##                              NAS-IP-Address = "%{NAS-IP-Address}"
                        }
                }
       }
....SKIPPED
}

ventilator ★★★
()
Ответ на: комментарий от ventilator

У браса в clients.conf нужно описать coa_server = blabla

а в proxy.conf:

home_server = blabla { type = coa ... дальше по мануалам }

ventilator ★★★
()
Ответ на: комментарий от ventilator

Добавил это в accounting, теперь радиус выдает

WARNING: Unknown destination 192.168.200.29:3799 for CoA request. Do CoA Fail handler here

Гугл говорит, что я должен исправить raddb/sites-available/originate-coa. Я попытался сделать по аналогии (как я понял, home-server в примере - это радиус и источник сообщения disconnect, а localhost-coa - это должен быть BRAS, т.е. куда посылать сообщение)

home_server bras {
    type = coa
    ipaddr = 192.168.200.29
    port = 3799
    secret = test
}
и исправил clients.conf, добавив туда указатель (?) на созданный раздел в originate-coa
client 192.168.200.29 {
    secret = testraduis
    shortname = phobos
    coa_server = bras
}
но ничего не изменилось. Я точно делаю что-то не то, но что именно?

anonymous_0
() автор топика
Ответ на: комментарий от anonymous_0
proxy_server {
        retry_delay = 5
        retry_count = 1
        default_fallback = no
        dead_time = 120
        wake_all_if_all_dead = no

}

home_server pppoe-blade0 {
        type = coa
        ipaddr = xx.xx.xx.xx
        port = 3799
        secret = blabla
        retry_count = 1
        coa {
                irt = 1
                mtr = 1
                mrc = 10
                mrd = 5
        }
}

home_server_pool coa {
....
        home_server = pppoe-blade0
....
}

client pppoe-blade0 {
        ipaddr = xx.xx.xx.xx
        secret = blabla
        shortname = pppoe-blade0
        require_message_authenticator = no
        coa_server = pppoe-blade0
        nastype = other
}

У меня так, попробуйте аналогично, если не сработает - показывайте логи freeradius -XX

ventilator ★★★
()
Ответ на: комментарий от ventilator

Большое спасибо, радиус начал отсылать пакеты, с ними не все еще гладко, но, главное, что дело сдвинулось с мёртвой точки. Видимо, проблема была в том, что я в качестве имени клиента указал его ip-адрес.

Может посоветуете какие-нибудь хорошие мануалы по freeradius'у, чтоб можно было почитать поподробнее, какие модули там есть, с какими параметрами вызывать и т.п.?

anonymous_0
() автор топика
Ответ на: комментарий от anonymous_0

Официального мана вполне достаточно. Единственно читать его придется внимательно и не один раз.

ventilator ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.