这两天在昆明出差,前天晚上换了认证系统,昨天早上都很正常,下午就出问题了,发现认证接口连接速度非常慢,网络结构是这样的,我们有一台认证系统SE800,一台Radius(使用的mysql数据库),一台管理系统,一台接口服务器。
用户通过SE800进行PPPOE认证上网,SE800连接Radius核对用户名和密码,以及宽带下发属性。
公司员工通过管理系统软件管理用户资料,管理系统软件通过接口服务器访问Radius服务器,管理用户上网的帐号。
去年我们接口服务器就出现问题,其中一台接口服务器速度很快,另外一台接口服务器速度就很慢,服务器操作系统以及接口程序文件都是一模一样的,慢的时候MYSQL进程就出现unauthenticated user,去年一直没有找到原因,昨天昆明也出现了同样问题,接口访问速度超慢,在网上查了一下关于unauthenticated user 的资料,发现mysql有一个BUG,就是外部IP访问mysql的时候,是正向链接,同时mysql会反向查询外部访问的IP地址,当DNS链接有问题,网速很慢的时候,就会出现大量unauthenticated user链接,未通过认证的链接一直在login登录,解决办法是禁止“反向查询”,当禁止反向查询后就只能本地localhost访问了,当然我们现在这种情况是不行的。
另外一种解决办法是修改Radius服务器etc/hosts文件,添加一项 172.18.0.112 inter1 域名解析,172.18.0.112就是要访问MYSQL的服务器IP,这个跟windows下的hosts解析性质一样,就是增加一项本地域名解析,不用通过DNS解析,这样就可以提高访问链接速度,添加以后就再也没有出现过unauthenticated user 问题。