如何在条件中引用标记属性
How to reference tagged attributes in conditions
我 运行 遇到了一个我想不通的问题。在 FreeRadius 中,我使用“post-proxy”部分来评估条件。这对我来说一直很好。但是,现在我遇到了一个奇怪的问题:
这是我收到的访问接受:
(11877) Tue Jul 2 10:21:36 2019: Debug: Received Access-Accept Id 198 from xxx.xxx.xxx.xxx:1812 to xxx.xxx.xxx.xxx:53259 length 309
(11877) Tue Jul 2 10:21:36 2019: Debug: Proxy-State = 0x3731
(11877) Tue Jul 2 10:21:36 2019: Debug: Framed-Protocol = PPP
(11877) Tue Jul 2 10:21:36 2019: Debug: Service-Type = Framed-User
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Medium-Type:0 = IEEE-802
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Private-Group-Id:0 = "530"
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Type:0 = VLAN
(11877) Tue Jul 2 10:21:36 2019: Debug: EAP-Message = 0x030c0004
(11877) Tue Jul 2 10:21:36 2019: Debug: Class = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-CHAP-Domain = "XXXXX"
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-CHAP2-Success = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-MPPE-Send-Key = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-MPPE-Recv-Key = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: Message-Authenticator = 0xXXXXX
当我尝试评估 VLAN / Tunnel-Private-Group-Id 时,我得到了这个:
(11877) Tue Jul 2 10:21:36 2019: Debug: if (proxy-reply:Tunnel-Private-Group-ID == "530") {
(11877) Tue Jul 2 10:21:36 2019: ERROR: Failed retrieving values required to evaluate condition
我是不是遗漏了什么明显的东西?谁能告诉我这三个属性后面的“:0”是什么意思:
Tunnel-Medium-Type:0
Tunnel-Private-Group-Id:0
Tunnel-Type:0
我已经在 Internet 上查找了所有内容,但找不到有关它的文档。我猜它与 inner/outer 隧道有关?
:0 是属性的标记指示符,表示属性在标记组 0 中。某些属性有一个 1 字节的标记前缀,用于将描述相同 'thing' 的属性组合在一起.
您可以看到标签的运行方式与分组 TLV 非常相似,但标记的属性实际上并未编码在单个分组属性中。
一个常见的 use-case 标记是将描述单个 VPN 端点的属性组合在一起,其中指定了多个 L2TP 端点(主要是 ISP 土地)。另一个 use-case 是对描述动态 VLAN 标记的属性做类似的事情(如您的示例数据包所示)。
如果您对在线格式感兴趣,描述标记的原始 RFC 是 RFC2868。
在 FreeRADIUS 中,当您使用标记属性进行操作时,您通常需要明确指定标记值,这就是上述条件不起作用的原因。
尝试:
if (proxy-reply:Tunnel-Private-Group-ID:0 == "530") {
或者如果这是 FreeRADIUS 3,你应该可以使用 'all instances' 数组下标,不记得我在编写该代码时为匹配实现的确切逻辑...
if (proxy-reply:Tunnel-Private-Group-ID[*] == "530") {
当然,它必须是显而易见的,而且确实如此。
似乎在 post-proxy 期间应用了过滤 Tunnel-Private-Group-ID 属性的属性过滤器。
我 运行 遇到了一个我想不通的问题。在 FreeRadius 中,我使用“post-proxy”部分来评估条件。这对我来说一直很好。但是,现在我遇到了一个奇怪的问题:
这是我收到的访问接受:
(11877) Tue Jul 2 10:21:36 2019: Debug: Received Access-Accept Id 198 from xxx.xxx.xxx.xxx:1812 to xxx.xxx.xxx.xxx:53259 length 309
(11877) Tue Jul 2 10:21:36 2019: Debug: Proxy-State = 0x3731
(11877) Tue Jul 2 10:21:36 2019: Debug: Framed-Protocol = PPP
(11877) Tue Jul 2 10:21:36 2019: Debug: Service-Type = Framed-User
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Medium-Type:0 = IEEE-802
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Private-Group-Id:0 = "530"
(11877) Tue Jul 2 10:21:36 2019: Debug: Tunnel-Type:0 = VLAN
(11877) Tue Jul 2 10:21:36 2019: Debug: EAP-Message = 0x030c0004
(11877) Tue Jul 2 10:21:36 2019: Debug: Class = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-CHAP-Domain = "XXXXX"
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-CHAP2-Success = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-MPPE-Send-Key = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: MS-MPPE-Recv-Key = 0xXXXXX
(11877) Tue Jul 2 10:21:36 2019: Debug: Message-Authenticator = 0xXXXXX
当我尝试评估 VLAN / Tunnel-Private-Group-Id 时,我得到了这个:
(11877) Tue Jul 2 10:21:36 2019: Debug: if (proxy-reply:Tunnel-Private-Group-ID == "530") {
(11877) Tue Jul 2 10:21:36 2019: ERROR: Failed retrieving values required to evaluate condition
我是不是遗漏了什么明显的东西?谁能告诉我这三个属性后面的“:0”是什么意思:
Tunnel-Medium-Type:0
Tunnel-Private-Group-Id:0
Tunnel-Type:0
我已经在 Internet 上查找了所有内容,但找不到有关它的文档。我猜它与 inner/outer 隧道有关?
:0 是属性的标记指示符,表示属性在标记组 0 中。某些属性有一个 1 字节的标记前缀,用于将描述相同 'thing' 的属性组合在一起.
您可以看到标签的运行方式与分组 TLV 非常相似,但标记的属性实际上并未编码在单个分组属性中。
一个常见的 use-case 标记是将描述单个 VPN 端点的属性组合在一起,其中指定了多个 L2TP 端点(主要是 ISP 土地)。另一个 use-case 是对描述动态 VLAN 标记的属性做类似的事情(如您的示例数据包所示)。
如果您对在线格式感兴趣,描述标记的原始 RFC 是 RFC2868。
在 FreeRADIUS 中,当您使用标记属性进行操作时,您通常需要明确指定标记值,这就是上述条件不起作用的原因。
尝试:
if (proxy-reply:Tunnel-Private-Group-ID:0 == "530") {
或者如果这是 FreeRADIUS 3,你应该可以使用 'all instances' 数组下标,不记得我在编写该代码时为匹配实现的确切逻辑...
if (proxy-reply:Tunnel-Private-Group-ID[*] == "530") {
当然,它必须是显而易见的,而且确实如此。
似乎在 post-proxy 期间应用了过滤 Tunnel-Private-Group-ID 属性的属性过滤器。