: 0 является индикатором тега для атрибута, это означает, что атрибут находится в группе тегов 0. Некоторые атрибуты имеют 1-байтовый префикс тега, который используется для группировки атрибутов, которые описывают одну и ту же «вещь» вместе.
Вы можете видеть, что теги работают очень похоже на группировку TLV, но тегированные атрибуты фактически не кодируются в пределах одного атрибута группировки.
Обычный вариант использования тегов - группировать атрибуты, которые описываютодна конечная точка VPN вместе, где указывается несколько конечных точек L2TP (в основном это ISP).Другой вариант использования - сделать что-то подобное для атрибутов, описывающих динамическое тегирование VLAN (как показано в вашем примере пакета).
Исходный RFC, описывающий тегирование, - RFC2868 , если вы заинтересованыв формате «на проводе».
В FreeRADIUS, когда вы работаете с теговыми атрибутами, вам, как правило, нужно явно указывать значение тега, поэтому ваше условие выше не работает.
Попробуйте:
if (proxy-reply:Tunnel-Private-Group-ID:0 == "530") {
Или, если это FreeRADIUS 3, вы можете использовать подстрочный индекс массива «все экземпляры», не помните точную логику, которую я реализовал для сопоставления, когда писал этот код...
if (proxy-reply:Tunnel-Private-Group-ID[*] == "530") {
Если вы посмотрите в словарях, вы также увидите теговые атрибуты, помеченные флагом 'has_tag', как в файле словаря для RFC2868 атрибуты.