首页 > 解决方案 > 如何在条件中引用标记属性

问题描述

我遇到了一个我无法弄清楚的问题。在 FreeRadius 中,我使用“后代理”部分来评估条件。这对我来说一直很好。但是,现在我面临一个奇怪的问题:

这是我收到的访问接受:

(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”是什么意思:

隧道中型:0

隧道专用组 ID:0

隧道类型:0

我已经在互联网上查看过,但找不到有关它的文档。我的猜测是它与内/外隧道有关吗?

标签: freeradius

解决方案


: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属性的字典文件中一样。


推荐阅读