FreeRadius为了负载均衡随机分配属性
FreeRadius Assign Attributes Randomly For The Sake of Load Balance
我们正在使用 FreeRadius
对网络用户进行身份验证,其中一项要求是在两个 DNS 服务器之间平衡 DNS 负载,以便当用户在连接后获得 IP 时,他们会收到他们的 DNS 服务器例如,以随机顺序,一些用户分别获得 10.10.10.1 和 10.10.10.2,而其他用户则相反。
为此,我们将在用户通过 radius 进行身份验证后为其分配随机 DNS 服务器属性。我们正在考虑将 FreeRadius rand 方法与 un lang if 语句一起使用,但是,我们认为也许有更好或更优雅的方法来实现类似的要求。
当前设置完美运行(请注意,它不是循环方式)但使用 un lang 以及 rand 和 expr 方法成功,如下所示:
if (&User-Name == "bob") {
if ("%{expr:%{rand:2}+1}" == "1") { ## A workaround to switch DNS orders
update reply {
Reply-Message := "Primary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.1"
MS-Secondary-DNS-Server := "192.168.41.2"
}
accept
}
else {
update reply {
Reply-Message := "Secondary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.2"
MS-Secondary-DNS-Server := "192.168.41.1"
}
accept
}
}
你能建议或提出更好的方法来实现类似的结果吗?
使用:FreeRADIUS 版本 3.0.11
使用负载平衡关键字
load-balance {
group {
update reply {
Reply-Message := "Primary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.1"
MS-Secondary-DNS-Server := "192.168.41.2"
}
accept
}
group {
update reply {
Reply-Message := "Secondary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.2"
MS-Secondary-DNS-Server := "192.168.41.1"
}
accept
}
}
您还可以将 'group' 部分替换为策略调用或模块调用。
IIRC 在 v3 的负载平衡部分中使用裸更新部分存在一些问题。0.x,所以即使你只有更新部分,你可能仍然希望将它包装在一个组中。
我们正在使用 FreeRadius
对网络用户进行身份验证,其中一项要求是在两个 DNS 服务器之间平衡 DNS 负载,以便当用户在连接后获得 IP 时,他们会收到他们的 DNS 服务器例如,以随机顺序,一些用户分别获得 10.10.10.1 和 10.10.10.2,而其他用户则相反。
为此,我们将在用户通过 radius 进行身份验证后为其分配随机 DNS 服务器属性。我们正在考虑将 FreeRadius rand 方法与 un lang if 语句一起使用,但是,我们认为也许有更好或更优雅的方法来实现类似的要求。
当前设置完美运行(请注意,它不是循环方式)但使用 un lang 以及 rand 和 expr 方法成功,如下所示:
if (&User-Name == "bob") {
if ("%{expr:%{rand:2}+1}" == "1") { ## A workaround to switch DNS orders
update reply {
Reply-Message := "Primary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.1"
MS-Secondary-DNS-Server := "192.168.41.2"
}
accept
}
else {
update reply {
Reply-Message := "Secondary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.2"
MS-Secondary-DNS-Server := "192.168.41.1"
}
accept
}
}
你能建议或提出更好的方法来实现类似的结果吗?
使用:FreeRADIUS 版本 3.0.11
使用负载平衡关键字
load-balance {
group {
update reply {
Reply-Message := "Primary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.1"
MS-Secondary-DNS-Server := "192.168.41.2"
}
accept
}
group {
update reply {
Reply-Message := "Secondary DNS comes first"
MS-Primary-DNS-Server := "192.168.41.2"
MS-Secondary-DNS-Server := "192.168.41.1"
}
accept
}
}
您还可以将 'group' 部分替换为策略调用或模块调用。
IIRC 在 v3 的负载平衡部分中使用裸更新部分存在一些问题。0.x,所以即使你只有更新部分,你可能仍然希望将它包装在一个组中。