我遇到了一个我无法解决的问题。在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
Tunnel-Private-Group-Id:0
隧道类型:0
我在互联网上看起来很不错,但是找不到有关它的文档。我的猜测与内部/外部隧道有关吗?
答案 0 :(得分:0)
: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”标记,如dictionary file中的RFC2868属性一样。
答案 1 :(得分:0)
当然必须是显而易见的东西。
似乎在后代理期间应用了属性过滤器来过滤Tunnel-Private-Group-ID属性。