freeradius 高性能负载均衡配置说明

本文详细介绍了如何配置freeRADIUS的代理功能,包括proxy.conf和client.conf两个关键配置文件的使用方法。通过实例演示了如何设置homeserver、home_server_pool及realm,实现不同域的请求转发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要配置freeRADIUS的proxy功能,就需要熟悉它的两个配置文件:proxy.conf 和client.conf。

 

1. proxy.conf主要是用来配置被代理的radius server(也叫home server) 和 realm, 以及他们之间的映射关系,也就是request转发到那个home server。

该配置文件中主要有三个配置项目:

a. home_server: 主要用来配置home server的属性, 也就是被代理的radius server的属性,主要包括home server的类型(认证,计费,认证计费等)、ip地址、端口、密码(server和client之间的密码)、是否需要authenticator、重启时间等等。

b. home_server_pool: 用来定义home server集。 它可以把多个home server放到一个home_server_pool中,然后定义这些home  

server之间的协作关系,可以是load-balance,fail-over等

c.realm : 用来定义域。 在该项目中可以指定 home_sever_pool,这样就把该域的请求转发到home_server_pool中的一个home

server上。如果realm中不指定home_server_pool,那么该请求就会在本地处理。

总之, 一个home server指定了一台被代理的radius服务器,然后home_server_pool又将一些home server放到一个pool中,在realm中指定home_server_pool,这样也就把域和radius server联系在一起了。

 

在代理freeRadius server上,收到一个请求后,就会检查该请求的域,然后去匹配proxy.conf中定义的realm,然后将请求转发到相应的radius server上去。没有域的请求会使用realm NULL来处理,如果没有找到匹配的 会使用realm DEFAULT来处理。

 

    2. client.conf 主要是用来配置radius server的客户端的,server的客户端的概念是相对的,可以是NAS,直接的client设备,也可以是    代理radius server。 如果某一台freeRADIUS启用了代理,那么对于被他代理的radius server 来说他就是client。 所以,也需要 在被    代理的radius server的client.conf中,添加上代理radius server。

 

 

下面,以一个freeRadius 代理两个freeRadius server来说明。 

代理freeRadius(192.168.1.10)

被代理freeRADIUS server 1 (192.168.1.101,用来处理mydomain1.com的请求) 

被代理freeRADIUS server 2 (192.168.1.102,用来处理mydomain2.com的请求) 

 

(1) 代理freeRadius 上的配置

  1. #配置home server 1  
  2. home_server myProxyServer_1 {  
  3.     type = auth  
  4.     ipaddr = 192.168.1.101  #home server ip地址  
  5.     port = 1812  
  6.     secret = myProxyServer_1   #密码(client和server间的)  
  7.     require_message_authenticator = no  
  8.     response_window = 20  
  9.     zombie_period = 40  
  10.     revive_interval = 120  
  11.     status_check = status-server  
  12.     check_interval = 30  
  13.     num_answers_to_alive = 3  
  14.     coa {  
  15.         irt = 2  
  16.         mrt = 16  
  17.         mrc = 5  
  18.         mrd = 30  
  19.     }  
  20. }  
  21. #配置 home server pool 1  
  22. home_server_pool myProxyPool_1{  
  23.     type = fail-over  
  24.     home_server = myProxyServer_1    
  25.         #指定home_server 可以指定多个  
  26. }  
  27. #配置realm  
  28. realm mydomain1.com {  
  29.     auth_pool = myProxyPool_1  # 指定home_server_pool  
  30.     nostrip  #一定要加上这个,不然server会剪掉域名,导致认证通不过  
  31. }  
  32. #配置home server 2  
  33. home_server myProxyServer_2 {  
  34.     type = auth  
  35.     ipaddr = 192.168.1.102  #home server ip地址  
  36.     port = 1812  
  37.     secret = myProxyServer_2   #密码(client和server间的)  
  38.     require_message_authenticator = no  
  39.     response_window = 20  
  40.     zombie_period = 40  
  41.     revive_interval = 120  
  42.     status_check = status-server  
  43.     check_interval = 30  
  44.     num_answers_to_alive = 3  
  45.     coa {  
  46.         irt = 2  
  47.         mrt = 16  
  48.         mrc = 5  
  49.         mrd = 30  
  50.     }  
  51. }  
  52. #配置 home server pool 2  
  53. home_server_pool myProxyPool_2{  
  54.     type = fail-over  
  55.     home_server = myProxyServer_2    
  56.         #指定home_server 可以指定多个  
  57. }  
  58. #配置realm  
  59. realm mydomain2.com {  
  60.     auth_pool = myProxyPool_2  # 指定home_server_pool  
  61.     nostrip  #一定要加上这个,不然server会剪掉域名,导致认证通不过  
  62. }  


注意如果需要本地的帐号也需要转发直接配置一个NULL就可以了

  1. realm NULL {  
  2.     auth_pool = myProxyPool_2  # 指定home_server_pool  
  3.     nostrip  #一定要加上这个,不然server会剪掉域名,导致认证通不过  
  4. }  

 

Realm指向home server pool 
auth_pool  指向home server pool并且pool中的home servertype都必须是auth 
acct_pool   指向home server pool 并且pool中的home servertype必须是acct 
如果pool中的home servertype都是auth+acct,那么可以使用pool参数设置即可
可以直接设置成

  1. #配置realm  
  2. realm mydomain2.com {  
  3.     pool = myProxyPool_2  # 指定home_server_pool  ,表示认证+计费

  4. }  


(2)home server 1 上的设置

 

proxy.conf设置,添加如下

  1. realm mydomain1.com{  
  2. #不需要设置 home_server_pool,因为转发过来的请求需要在本机上处理  
  3. }  

 

client.conf中添加

  1. client 192.168.1.10{  
  2.     secret = myProxyServer_1  
  3.     shortname = myproxy  
  4.     nastype     = other # localhost isn't usually a NAS...  
  5.     require_message_authenticator = no  
  6.       
  7. }  

 

(3) home server 2 的设置

font-family: monospace;">

  1. #client.conf  
  2. client 192.168.192.10{  
  3.     secret = myProxyServer_2  
  4.     shortname = myproxy  
  5.     nastype     = other # localhost isn't usually a NAS...  
  6.     require_message_authenticator = no  
  7.       
  8. }  
  9. #proxy.conf  
  10. realm mydomain2.com{  
  11. }  

 



注意在认证有可能用户名称不对,带域认证的用户需要使用 %{Stripped-User-Name}

1、

 dialup.conf -- MySQL
#sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}"

2、如果需要强制下线,
只需要在网关片开启对代理IP接入请求3799端口就可以了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值