Перейти к содержимому
Калькуляторы

Странное поведение freeradius и дубли выдаваемых ip

Добрый день, коллеги.

Наблюдаю очень странную я бы сказал даже бредовую картину и честно сказать не знаю куда даже копнуть и написать.

Сейчаc попробую пояснить.

Имею в ядре сети 2 коммутатора один catalyst другой extreme x670

В каталист вставлен сервак с Freeradius-ом и 4 браса на Линуксе куда подключаются клиенты через pppoe.

 

work_ok.thumb.jpg.ef476d134f6829e474d6232000a7b506.jpg

 

На радиусе заведены динамические IP-пулы при помощи модуля ippool, а сессии все хранятся не в базе, а в файлике radutmp

И всё прекрасно работало, но пришло время и гигабитных портов стало не хватать, поэтому было решено все брасы воткнуть в extreme портами 10g

А extreme соединить с каталистом тоже через 10G

 

В итоге получилась такая схема 

 

photo_2018-04-18_15-49-48.thumb.jpg.fbc49a59ee7f28d2f33d45fbeae99591.jpg

 

После этого началась полная паника и freeradius начал выдавать клиентам одинаковые ip-адреса не зависимо от брасов, дубли были между всеми брасами

После того как я не спал 3-ое суток не понимая в чем дело, я всё таки вернул все брасы в каталист обратно и случилось чудо, всё заработало так же хорошо как и раньше )

 

На данный момент я настраиваю Ericsson redback как 5-ый брас и воткнул его в exteme

Получилась такая схема

 

current.thumb.jpg.3ab38d8122370b0aaa1c2dcdc1fdd239.jpg

 

Так вот, теперь снова появились дубли выдаваемых ip-адресов, но дубли эти соответственно только между 5-ым брасом(redback) и остальными 4-мя(linux).

Между первыми 4-мя брасами которые вставлены в каталист, дублей - нет.

Ситуация смахивает на бредовую 1-ой степени, я ума не могу приложить в чем может быть дело.

Анализировал пакеты от радиус-клиентов с linux-а и c redback

Прикладываю ниже файлы.

Разницу удалось найти в том что с эриксона, который вставлен в экстрим пакет пришел с TTL равным 63, а с линукса который вставлен в каталист TTL=64

Уж не знаю как это может повлиять на радиус, но однако тоже вопрос куда делся один хоп?

Дело точно не в Эриксоне, Линуксы ловили такие же проблемы когда я их вставлял в extreme

На данный момент имею 2 пары дублей 

# radwho | awk {'print $8" "$7" "$1" "$5" "$6'} | sort | uniq -D -w 15 
172.16.203.225 192.168.201.10 zorinmm Tue 19:19
172.16.203.225 192.168.201.26 lyalyakins Tue 12:16
172.16.203.231 192.168.201.17 kornilovni Thu 17:16
172.16.203.231 192.168.201.26 sokolovss Tue 12:16

 

192.168.201.10 - линуховый брас в каталисте

192.168.201.17 - линуховый брас в каталисте

192.168.201.26 - эриксон в экстриме

 

Либо спецы по экстриму либо спецы по freeradius-у помогите, у меня просто нет идей никаких

 

 

linux_Access_Request.pcap

redback_Access_Request.pcap

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какая-то бредятина. У вас к радиусу свичи обращаются чтоли? А в роли BRAS что?

192.168.201.12 чей адрес? Почему NAS-IP-Address не совпадает с src радиус пакета?

Больше похоже на проксирование радиуса или снупинг. Может на экстриме радиус-снупинг настроен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

19 минут назад, ShyLion сказал:

У вас к радиусу свичи обращаются чтоли?

свитчи к радиусу не обращаются

хотя если быть совсем откровенным, то обращаются, но к другому совсем радиусу и только для того чтобы залогиниться на сам свитч для управления

19 минут назад, ShyLion сказал:

А в роли BRAS что?

то что в каталисте - linux с pppoe-server

то что в экстриме - ericsson redback se1200

19 минут назад, ShyLion сказал:

192.168.201.12 чей адрес?

192.168.201.12 - это один из линуховых брасов

19 минут назад, ShyLion сказал:

Почему NAS-IP-Address не совпадает с src радиус пакета?

так сложилось исторически, раньше были в 201-ой подсети, я их потом перевел в другой vlan отдельный с отдельной подсетью 181-ой, а названия оставил старые

19 минут назад, ShyLion сказал:

Больше похоже на проксирование радиуса или снупинг. Может на экстриме радиус-снупинг настроен?

спасибо за идею, щас освещу эту тему, поковыряю экстрим

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

22 минуты назад, drag0mir сказал:

хотя если быть совсем откровенным, то обращаются, но к другому совсем радиусу и только для того чтобы залогиниться на сам свитч для управления

...

спасибо за идею, щас освещу эту тему, поковыряю экстрим

Что-то я уже такое где-то слышал: коммутатор с включенной авторизацией RADIUS портил транзитные RADIUS-пакеты. Кажется, на Huawei было.

У Вас freeradius сырые пакеты в лог пишет? Может быть там поискать аномалии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

23 минуты назад, TheUser сказал:

Что-то я уже такое где-то слышал: коммутатор с включенной авторизацией RADIUS портил транзитные RADIUS-пакеты. Кажется, на Huawei было.

Выключил полностью на экстриме радиус. Сейчас проверю.

 

# show radius
Radius Default State:   disabled
Radius Default Timeout: 3 seconds
Radius Algorithm: standard
Radius Retries: 3
Switch Management Radius: disabled
Switch Management Radius server connect time out: 3 seconds *
Switch Management Radius Accounting: disabled *
Switch Management Radius Accounting server connect time out: 3 seconds
Netlogin Radius: disabled *
Netlogin Radius server connect time out: 3 seconds *
Netlogin Radius Accounting: disabled *
Netlogin Radius Accounting server connect time out: 3 seconds

Legend: An asterisk (*) indicates a global value is in use.

 

24 минуты назад, TheUser сказал:

У Вас freeradius сырые пакеты в лог пишет? Может быть там поискать аномалии?

что значит сырые пакеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 минуты назад, drag0mir сказал:

что значит сырые пакеты?

Содержимое всех входящих пакетов. По умолчанию, вроде складывало куда-то даже с разбивкой по IP NAS'ов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

18 минут назад, TheUser сказал:

Содержимое всех входящих пакетов. По умолчанию, вроде складывало куда-то даже с разбивкой по IP NAS'ов.

в папку radacct? это уже пакеты аккаунтинга, которые после пакетов Access идут, ну если не поможет выключение всех настроек радиуса на экстриме, загляну и туда.

на данный момент перекидываю клиентов на эриксон, жду дублей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

22 минуты назад, drag0mir сказал:

в папку radacct? это уже пакеты аккаунтинга, которые после пакетов Access идут

Значит ошибся. В любом случае есть смысл собрать дамп всех Auth пакетов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@drag0mir Недавно подобную проблему встретили на UTM5 + mikrotik (до этого каждый mikrotik не был связан и выдавались дубли, но т.к. нат был на каждой железки свой этого было не заметно)

Возможно ТС это НЕ поможет 

 

Радиус отправляет до браса UDP пакет(подтверждения не требуется) если брас по каким либо причинам не отправил подтверждение, но при этом создал сессию радиус через какой-то промежуток времени(задаётся в конфиге) снова раздаёт этот IP. Соответственно появляется дубль. 

 

Решили вопрос через костыль отслеживать в билинге все сессий у которых ip 0.0.0.0(ну так пишет UTM, когда есть второй ip) и отправлять этому брасу стоп пакет для этой сессий. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно запустить FreeRadius в режиме отладки: radiusd -X

Будет видно запросы/ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, pingz сказал:

@drag0mir Недавно подобную проблему встретили на UTM5 + mikrotik (до этого каждый mikrotik не был связан и выдавались дубли, но т.к. нат был на каждой железки свой этого было не заметно)

Возможно ТС это НЕ поможет 

 

Радиус отправляет до браса UDP пакет(подтверждения не требуется) если брас по каким либо причинам не отправил подтверждение, но при этом создал сессию радиус через какой-то промежуток времени(задаётся в конфиге) снова раздаёт этот IP. Соответственно появляется дубль. 

 

Решили вопрос через костыль отслеживать в билинге все сессий у которых ip 0.0.0.0(ну так пишет UTM, когда есть второй ip) и отправлять этому брасу стоп пакет для этой сессий. 

 

я так понимаю у вас родной радиус от UTM, а не freeradius? у меня фрирадиус и все пулы динамические на нем заведены.

Вы говорите что радиус отправляет UDP пакет брасу, а что за пакет? как называется? 

Насколько мне известно брас отправляет Access-Request с логином паролем допустим, радиус делает запрос в базу на правильность, и если связка верна отвечает Access-Accept с атрибутом Framed-IP-Address, где указывает адрес который выделил.

Дальше устанавливается уже сессия и начинается accounting. Никаких больше пакетов не нужно радиусу.

Может возникнуть вот какая ситуация в вашем случае, когда начинается аккаунтинг, и не приходит допустим пакет Accounting-Start от браса, либо он приходит, но радиус не успевает его обработать из-за нагрузки например.

Может быть тогда радиус от UTM считает, что этот айпишник никто не занял?

 

Тут как бы фрирадиус создает ключи на каждую связку такого рода key = "%{NAS-IP-Address} %{NAS-Port}"

И к каждому такому ключу прибивает ip-address. В итоге получается что за определенный брасом и определенным интерфейсом закрепляется всегда один и тот же айпишник.

Допустим брас имеет адрес 192.168.201.12 и сессию 300, для нее создался ключ к нему привязался Framed-IP-Address в виде 1.1.1.1 к примеру, и всё! теперь каждый раз на этом брасе на эту сессию будет выдаваться этот айпишник.

Ну разумеется пока ты не удалишь этот ключ сам.

Ключи уникальные и не могут впринципе совпасть никак когда разные атрибуты NAS-IP-Address

Поэтому я вообще в полном ступоре, как такое возможно в моей ситуации ))

 

Костыль я написал чтобы искать дубли и сбрасывать сессии, но это не решение проблемы вообще.

К тому же проблемы и не было, пока я не начал вставлять брасы в extreme. 

 

54 минуты назад, ShyLion сказал:

Можно запустить FreeRadius в режиме отладки: radiusd -X

Будет видно запросы/ответы.

Я этим занимался в феврале когда вставил все брасы в extreme ни к чему не пришел, к тому же там столько мусора постоянно ввиде ломящихся клиентов с неверными паролями или логинами, что диагностировать в таком режиме сущий ад )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@drag0mir  Все пакеты при авторизации UDP не требуют подтверждения от получателя, радиус(в моём случае  UTM урезаный freeradius) выделяет IP адрес из пула и даёт время(в моём случае это было 30 сек) если по истечению этого времени барс не подтвердил(либо были дропы) существование сессий с этим ip то ip переносится в пул свободных. 

 

 

Ярким примерном как получилось у меня до удаленного браса пропала связь на 5 минут, радиус посчитал, что эти ip свободны и  начали раздаваться другим брасам. Когда связь появилась, на удалённом брасе сессий не закрываются если нет связи с радиусом. Появились дубли. 

 

Связность на каталисте л2 или л3? С екстримом л2? Если попробовать другой каталист(вместо екстрима)? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

12 минут назад, pingz сказал:

Связность на каталисте л2 или л3? С екстримом л2? Если попробовать другой каталист(вместо екстрима)? 

л2 везде

да где его взять другой каталист ) да и надо на 10Г ) странное дело, но пока что дублей не было, хотя перекинул сегодня на эриксон около 500 клиентов, правда перекидывал мелкими пачками по 50-100 клиентов

пока что наблюдаю

 

 

может заодно кто знает еще фрирадиус шлет такие сообщения

rlm_radutmp: NAS 192.168.201.26 port 335546356 unknown packet type 103)

не известный тип пакета 103.

сейчас поясню. у аккаунтинг пакетов есть 3 типа 1,2,3 - это Start,Stop,Update

а вот ericsson redback посылает пакеты кроме этих 3-ех типов еще с типами 101,102,103 это аккаунтинг для дочерних сервисов.

так вот freeradius не знает что за типы такие, можно ли каким то образом его обучить им либо может их подменить на 1,2,3?

уж очень они надоедают в логах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.