<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=COA</id>
	<title>COA - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=COA"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-05T12:22:18Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv: /* Зачем нужен COA? */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-01T09:35:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Зачем нужен COA?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Модуль Change of Authorization ===&lt;br /&gt;
&lt;br /&gt;
COA - это расширение Radius протокола, позволяющее посылать команды на оборудование.&lt;br /&gt;
&lt;br /&gt;
===Зачем нужен COA?===&lt;br /&gt;
&lt;br /&gt;
Стандартно Radius работает в одном направлении - оборудование посылает информацию на Radius-сервер (например, запрос на авторизацию или данные по трафику), тот обращается к NoDeny чтобы авторизовать абонента, зафиксировать трафик, получить данные для установки скорости порта на оборудовании или другие действия.&lt;br /&gt;
&lt;br /&gt;
Если же возникает необходимость изменить параметры соединения, например, скорость уже подключенного клиента - зачастую это проблематично по двум причинам:&lt;br /&gt;
&lt;br /&gt;
# Оборудование или сервис (dhcp или pppoe) могут устанавливать параметры соединения только в момент подключения клиента;&lt;br /&gt;
# Если же они и могут делать это &amp;quot;посредине&amp;quot; работы сессии, то смогут это сделать только во время accounting-пакетов. Т.е чтобы послать команду нам придется ждать такой пакет, а в некоторых случаях, например, с dhcp, это может быть несколько минут.&lt;br /&gt;
&lt;br /&gt;
COA позволяет послать radius-атрибуты на оборудование (dhcp/pppoe сервер) ровно в тот момент когда это потребуется.  Ситуация: клиент подключен в данный момент, но произошло подключение нового тарифа, не  хватило денег и учетку автоматически заблокировало - модуль COA сразу же пошлет команду на оборудование (dhcp/pppoe сервер). Это может быть команда урезания скорости, изменения аксесс-группы или иное.&lt;br /&gt;
&lt;br /&gt;
===Запуск===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perl noserver.pl -v -g=coa.cfg.pm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Предварительно необходимо настроить конфиг  в /usr/local/nodeny/modules/coa/create.cfg.coa.cfg.pm.&lt;br /&gt;
&lt;br /&gt;
В переменных $coa_connect__state_on, $coa_connect__state_off и $coa_disconnect указываются атрибуты, которые посылаются Radius-сервером клиенту в определенных ситуациях:&lt;br /&gt;
* В '''$coa_connect__state_on''' атрибуты, которые посылаются когда подключен абонент, которому разрешен доступ в интернет&lt;br /&gt;
* В '''$coa_connect__state_off''' атрибуты, которые посылаются когда подключен абонент, которому запрещен доступ в интернет&lt;br /&gt;
* В '''$coa_disconnect''' атрибуты, которые посылаются когда абонент отключается (перестает быть авторизованным)&lt;br /&gt;
&lt;br /&gt;
Не обязательно использовать все три переменные.&lt;br /&gt;
&lt;br /&gt;
Атрибуты задаются таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$coa_connect__state_on = {&lt;br /&gt;
    type     =&amp;gt; тип пакета,&lt;br /&gt;
    template =&amp;gt; шаблон,&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если же необходимо послать несколько команд:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$coa_connect__state_on = [&lt;br /&gt;
    {&lt;br /&gt;
        type     =&amp;gt; тип пакета,&lt;br /&gt;
        template =&amp;gt; шаблон,&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        type     =&amp;gt; тип пакета,&lt;br /&gt;
        template =&amp;gt; шаблон,&lt;br /&gt;
    }&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тип пакета может быть:&lt;br /&gt;
&lt;br /&gt;
* '''coa''' - предписывает изменить параметры сессии&lt;br /&gt;
* '''disconnect''' - предписывает отключить клиента&lt;br /&gt;
&lt;br /&gt;
Шаблон - это текст с атрибутами в виде:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
атрибут=значение&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В двойных фигурных скобках можно указать данные конкретного абонента, например:&lt;br /&gt;
&lt;br /&gt;
* ip - ip адрес&lt;br /&gt;
* auth_ses - имя сессии&lt;br /&gt;
* speed_in1_kb - входящая скорость в килобитах&lt;br /&gt;
* speed_in1_mb -  входящая скорость в мегабитах&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Если в параметрах авторизации будет параметр nas''' - coa пакет будет послан на сервер, ip которого берется из nas. В противном случае пакет будет послан на ip, указанный в конфиге.&lt;br /&gt;
&lt;br /&gt;
===Пример настройки mpd===&lt;br /&gt;
&lt;br /&gt;
В mpd.conf в секцию startup необходимо добавить:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        set radsrv peer 127.0.0.1 hardpass5&lt;br /&gt;
        set radsrv open&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Пример настройки mikrotik===&lt;br /&gt;
&lt;br /&gt;
Внимание: coa в mikrotik работает начиная с версии 6.33&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        /radius incoming set accept=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Как модуль работает с несколькими NAS-ами===&lt;br /&gt;
Если вы настраивали Radius по документации, то в параметры авторизации каждой сессии будет записан параметр nas - сервер, который принял авторизацию. Модули coa/webcoa учитывают это и посылают запросы на этот сервер, а из конфига берется только пароль. Проверить, что этот параметр присутствует, можно в данных учетной записи кликнув по соответствующему ip и в окне найти параметр «дополнительно»:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Webcoa.png]]&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>