drag0mir Posted April 19, 2018 · Report post Добрый день, коллеги. Наблюдаю очень странную я бы сказал даже бредовую картину и честно сказать не знаю куда даже копнуть и написать. Сейчаc попробую пояснить. Имею в ядре сети 2 коммутатора один catalyst другой extreme x670 В каталист вставлен сервак с Freeradius-ом и 4 браса на Линуксе куда подключаются клиенты через pppoe. На радиусе заведены динамические IP-пулы при помощи модуля ippool, а сессии все хранятся не в базе, а в файлике radutmp И всё прекрасно работало, но пришло время и гигабитных портов стало не хватать, поэтому было решено все брасы воткнуть в extreme портами 10g А extreme соединить с каталистом тоже через 10G В итоге получилась такая схема После этого началась полная паника и freeradius начал выдавать клиентам одинаковые ip-адреса не зависимо от брасов, дубли были между всеми брасами После того как я не спал 3-ое суток не понимая в чем дело, я всё таки вернул все брасы в каталист обратно и случилось чудо, всё заработало так же хорошо как и раньше ) На данный момент я настраиваю Ericsson redback как 5-ый брас и воткнул его в exteme Получилась такая схема Так вот, теперь снова появились дубли выдаваемых 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted April 19, 2018 · Report post Какая-то бредятина. У вас к радиусу свичи обращаются чтоли? А в роли BRAS что? 192.168.201.12 чей адрес? Почему NAS-IP-Address не совпадает с src радиус пакета? Больше похоже на проксирование радиуса или снупинг. Может на экстриме радиус-снупинг настроен? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
drag0mir Posted April 19, 2018 · Report post 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 сказал: Больше похоже на проксирование радиуса или снупинг. Может на экстриме радиус-снупинг настроен? спасибо за идею, щас освещу эту тему, поковыряю экстрим Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted April 19, 2018 · Report post 22 минуты назад, drag0mir сказал: хотя если быть совсем откровенным, то обращаются, но к другому совсем радиусу и только для того чтобы залогиниться на сам свитч для управления ... спасибо за идею, щас освещу эту тему, поковыряю экстрим Что-то я уже такое где-то слышал: коммутатор с включенной авторизацией RADIUS портил транзитные RADIUS-пакеты. Кажется, на Huawei было. У Вас freeradius сырые пакеты в лог пишет? Может быть там поискать аномалии? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
drag0mir Posted April 19, 2018 · Report post 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 сырые пакеты в лог пишет? Может быть там поискать аномалии? что значит сырые пакеты? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted April 19, 2018 · Report post 4 минуты назад, drag0mir сказал: что значит сырые пакеты? Содержимое всех входящих пакетов. По умолчанию, вроде складывало куда-то даже с разбивкой по IP NAS'ов. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
drag0mir Posted April 19, 2018 · Report post 18 минут назад, TheUser сказал: Содержимое всех входящих пакетов. По умолчанию, вроде складывало куда-то даже с разбивкой по IP NAS'ов. в папку radacct? это уже пакеты аккаунтинга, которые после пакетов Access идут, ну если не поможет выключение всех настроек радиуса на экстриме, загляну и туда. на данный момент перекидываю клиентов на эриксон, жду дублей. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
TheUser Posted April 19, 2018 · Report post 22 минуты назад, drag0mir сказал: в папку radacct? это уже пакеты аккаунтинга, которые после пакетов Access идут Значит ошибся. В любом случае есть смысл собрать дамп всех Auth пакетов. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pingz Posted April 19, 2018 · Report post @drag0mir Недавно подобную проблему встретили на UTM5 + mikrotik (до этого каждый mikrotik не был связан и выдавались дубли, но т.к. нат был на каждой железки свой этого было не заметно) Возможно ТС это НЕ поможет Радиус отправляет до браса UDP пакет(подтверждения не требуется) если брас по каким либо причинам не отправил подтверждение, но при этом создал сессию радиус через какой-то промежуток времени(задаётся в конфиге) снова раздаёт этот IP. Соответственно появляется дубль. Решили вопрос через костыль отслеживать в билинге все сессий у которых ip 0.0.0.0(ну так пишет UTM, когда есть второй ip) и отправлять этому брасу стоп пакет для этой сессий. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted April 19, 2018 · Report post Можно запустить FreeRadius в режиме отладки: radiusd -X Будет видно запросы/ответы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
drag0mir Posted April 19, 2018 · Report post 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 ни к чему не пришел, к тому же там столько мусора постоянно ввиде ломящихся клиентов с неверными паролями или логинами, что диагностировать в таком режиме сущий ад ) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pingz Posted April 19, 2018 · Report post @drag0mir Все пакеты при авторизации UDP не требуют подтверждения от получателя, радиус(в моём случае UTM урезаный freeradius) выделяет IP адрес из пула и даёт время(в моём случае это было 30 сек) если по истечению этого времени барс не подтвердил(либо были дропы) существование сессий с этим ip то ip переносится в пул свободных. Ярким примерном как получилось у меня до удаленного браса пропала связь на 5 минут, радиус посчитал, что эти ip свободны и начали раздаваться другим брасам. Когда связь появилась, на удалённом брасе сессий не закрываются если нет связи с радиусом. Появились дубли. Связность на каталисте л2 или л3? С екстримом л2? Если попробовать другой каталист(вместо екстрима)? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
drag0mir Posted April 19, 2018 · Report post 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? уж очень они надоедают в логах Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...