<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: RADIUS клиент — SessionID не является глобально уникальным]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме RADIUS клиент — SessionID не является глобально уникальным форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 12 Aug 2026 19:06:43 -0400</pubDate>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399645">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Здесь приведён очень хороший пример. Например, одна реализация использует строку из 8-значного шестнадцатеричного числа в верхнем регистре: первые две цифры увеличиваются при каждой перезагрузке (сброс каждые 256 перезагрузок), а следующие 6 цифр считаются с 0 для первого вошедшего пользователя после перезагрузки и идут до 2^24-1, примерно 16 миллионов. Но у меня уже 6 дублей с 2018-01-10 (!) на одном NAS:<br /><br />select count(*) as dup, AcctSessionId, UserName, NASIPAddress from radacct group by AcctSessionId, UserName, NASIPAddress having dup &gt; 1;<br /><br />+-----+---------------+----------+--------------+<br />| dup | AcctSessionId | UserName | NASIPAddress |<br />+-----+---------------+----------+--------------+<br />| &nbsp; 2 | 811000a2 &nbsp; &nbsp; &nbsp;| USER1 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />| &nbsp; 2 | 811000ab &nbsp; &nbsp; &nbsp;| USER1 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />| &nbsp; 2 | 8120005a &nbsp; &nbsp; &nbsp;| USER2 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />| &nbsp; 2 | 81200075 &nbsp; &nbsp; &nbsp;| USER2 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />| &nbsp; 2 | 81200096 &nbsp; &nbsp; &nbsp;| USER2 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />| &nbsp; 2 | 81600062 &nbsp; &nbsp; &nbsp;| USER3 &nbsp; &nbsp;| 10.249.99.5 &nbsp;|<br />+-----+---------------+----------+--------------+<br /><br />количество сессий за этот период — 3718. Я понимаю, что «возможны другие кодировки», но явно была выбрана очень простая методика. <br />
			<i>14.03.2018 05:41:00, asy.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399645</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399645</guid>
			<pubDate>Wed, 14 Mar 2018 05:41:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399644">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Acct-Session-Id не является глобально уникальным, он не уникален для каждого NAS и не уникален при перезагрузках. <noindex><a href="https://tools.ietf.org/html/rfc2866#page-15" target="_blank" rel="nofollow" >https://tools.ietf.org/html/rfc2866#page-15</a></noindex> В RFC нет требования, чтобы этот атрибут был уникальным. <br />
			<i>13.03.2018 11:22:00, savage.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399644</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399644</guid>
			<pubDate>Tue, 13 Mar 2018 11:22:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399643">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Проблему можно решить с помощью атрибута RADIUS «Class», если он больше нигде не используется. «Class» может возвращаться в сообщении «Access-Accept» и, например, содержать время начала сессии. Уникальным ключом в этом случае будет сочетание «UserName-AcctSessionId-NASIPAddress-Class». Однако «Class» может использоваться и для других целей, поэтому это решение имеет ограничения. <br />
			<i>13.03.2018 09:23:00, asy.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399643</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399643</guid>
			<pubDate>Tue, 13 Mar 2018 09:23:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399642">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Нет. Один NAS может сгенерировать это:<br /><br />+----------+---------------+--------------+---------------------+---------------------+<br />| UserName | AcctSessionId | NASIPAddress | AcctStartTime &nbsp; &nbsp; &nbsp; | AcctStopTime &nbsp; &nbsp; &nbsp; &nbsp;|<br />+----------+---------------+--------------+---------------------+---------------------+<br />| XXXXXXX &nbsp;| 81800055 &nbsp; &nbsp; &nbsp;| 172.26.83.81 | 2017-11-26 12:52:23 | 2017-11-26 13:04:24 |<br />| XXXXXXX &nbsp;| 81800055 &nbsp; &nbsp; &nbsp;| 172.26.83.81 | 2017-12-18 17:13:27 | 2017-12-18 20:53:36 |<br />+----------+---------------+--------------+---------------------+---------------------+<br /><br />UserName-AcctSessionId-NASIPAddress — неплохой кандидат на уникальный ключ в SQL, но сейчас его использовать нельзя. И я не могу добавить AcctStopTime (то есть TimeStamp), потому что он может быть разным для одной сессии:<br /><br />+-----------+---------------+-----------+---------------------+<br />| RadAcctId | AcctSessionId | UserName &nbsp;| AcctStopTime &nbsp; &nbsp; &nbsp; &nbsp;|<br />+-----------+---------------+-----------+---------------------+<br />| &nbsp; 1945119 | 81906399 &nbsp; &nbsp; &nbsp;| YYYYYYYY &nbsp;| 2017-11-22 04:39:21 |<br />| &nbsp; 1945121 | 81906399 &nbsp; &nbsp; &nbsp;| YYYYYYYY &nbsp;| 2017-11-22 04:39:20 |<br />+-----------+---------------+-----------+---------------------+<br /><br />Задача — отфильтровать дубликаты. <br />
			<i>08.03.2018 17:39:00, asy.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399642</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399642</guid>
			<pubDate>Thu, 08 Mar 2018 17:39:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399641">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Но почему ты используешь session ID? Можно настроить Nas Id как угодно, сделать его уникальным во всём мире. Проблема решена? <br />
			<i>08.03.2018 17:27:00, blingblouw.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399641</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399641</guid>
			<pubDate>Thu, 08 Mar 2018 17:27:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399640">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Да, это проблема. Я считаю, что время должно использоваться для обеспечения уникальности SessionID. В пакетах RADIUS есть TimeStamp, но с ним возникает вторая проблема. Метка времени может отличаться для повторяющегося учетного пакета. Значит, одну из этих проблем нужно решить в RouterOS (а лучше обе). Я не тестировал последнюю версию, но проблема с SessionID есть в версии v6.36. <br />
			<i>08.03.2018 17:08:00, asy.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399640</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399640</guid>
			<pubDate>Thu, 08 Mar 2018 17:08:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399639">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Прошло уже 4 года, а проблема до сих пор не решена. Может кто-то из MikroTik ответит на это? Когда используешь тысячи роутеров MikroTik в качестве шлюзов HotSpot и RADIUS-сервер, это превращается в серьёзную проблему. <br />
			<i>02.08.2016 15:11:00, Aaelyen.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399639</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399639</guid>
			<pubDate>Tue, 02 Aug 2016 15:11:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>RADIUS клиент — SessionID не является глобально уникальным</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399638">RADIUS клиент — SessionID не является глобально уникальным</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Похоже, что SessionID MikroTik для аутентификации через RADIUS сбрасывается при перезагрузке, и поэтому не может считаться уникальным идентификатором внутри одного устройства. К тому же стартовое значение SessionID не уникально между разными роутерами, из-за чего могут возникать коллизии идентификаторов сессий у совершенно разных устройств. Это время от времени вызывает проблемы с нашей RADIUS-базой, которая создаёт дублирующиеся записи.<br /><br />Корень проблемы в сетевых сбоях, из-за которых пакеты подтверждения не доходят до MikroTik. Роутер не знает, что пакет уже достиг базы, поэтому пытается отправить его повторно, что в некоторых случаях создаёт дубликат записи, а не обновляет существующую.<br /><br />RADIUS также генерирует свой собственный “AcctUniqueID”, однако он тоже не является глобально уникальным! По умолчанию он формируется на основе MikroTik SessionID и нескольких других элементов, но поскольку уникальность этих элементов не гарантирована, весь ID не может считаться глобально уникальным. Усиливает проблему и то, что «уникальный» ID RADIUS — это MD5-хеш. К сожалению, возможно (хоть и с небольшой вероятностью) получить одинаковые MD5-хеши от совершенно разных данных!<br /><br />В MikroTik и на стороне RADIUS-сервера есть несколько тайминговых параметров, которые я настраивал максимально эффективно, но полностью избавиться от проблем не удалось. Дело в том, что значения на сервере глобальные, и приходится искать компромисс. У нас на линиях сильно варьируется задержка из-за использования спутникового соединения и перегруженных xDSL DSLAM. Найти значения, которые подходят для всех случаев, сложно.<br /><br />Было бы здорово, если бы MikroTik сделал SessionID действительно уникальным — например, генерировал стартовое значение, используя несколько параметров, уникальных для конкретного роутера, и сохранял его в NVRAM, чтобы после перезагрузки его можно было восстановить. Единственная оставшаяся проблема — замена роутера. Если не будет способа вручную ввести стартовое значение SessionID, снова могут появиться дубликаты.<br /><br />Сейчас я рассматриваю возможность использовать поле Location ID в RADIUS (RADIUS WISPr-Location-ID), чтобы передавать серверу значение, гарантированно уникальное в глобальном масштабе. В него будет входить уникальный RouterID и счётчик, увеличивающийся скриптом при каждой перезагрузке роутера. Это значение в сочетании с SessionID на сервере должно обеспечить глобально уникальный идентификатор сессии, который можно будет использовать в базе данных с индексом SessionID и уникальным ограничением.<br /><br />Мне было бы интересно узнать, сталкиваются ли другие с дублирующимися записями в своих RADIUS-базах и какие меры, если таковые есть, они принимали для устранения или хотя бы смягчения этой проблемы. <br />
			<i>22.06.2012 02:45:00, cmacneill.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399638</link>
			<guid>http://mikrotik.moscow/forum/forum57/85758-radius-klient-_-sessionid-ne-yavlyaetsya-globalno-unikalnym/message399638</guid>
			<pubDate>Fri, 22 Jun 2012 02:45:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
