SUSE平台DNS缓存方案
一.方案背景
目前,SUSE平台在***产品广泛应用,但SUSE底层实现域名解析的函数gethostbyname()时,未设置系统缓存,导致***对DNS的冲击较大。
二.方案原理
在SUN平台,系统启动/usr/sbin/nscd进程在DNS查询时进行缓存处理,而在SUSE平台没有此进程进行DNS缓存处理。
但是在SUSE平台的named进程作为DNS Server,在进行DNS解析时具有缓存功能。因此在SUSE平台我们配置为查询本地的DNS Server,在本地启用named进程处理DNS查询请求。
三.具体实施
1.配置named服务
1) 配置/etc/named.conf文件
在文件中打开forwarders的options:
forwarders { 192.0.2.1; 192.0.2.2; };
在大括号中配置正确的DNS服务器地址
2) 配置OS自动启动named子系统
# chkconfig -a named
显示如下
named 0:off 1:off 2:off 3:on 4:off 5:on 6:off
2.配置守护脚本
1) 将本方案附件中的守护脚本”mon_named.ksh”安装在”/opt/huawei/DNS”目录;
2) 检查脚本的可执行性;
3) 设置root用户的定时任务:
使用如下命令进入vi界面,编辑root用户的定时任务:
crontab –e
在最后添加如下内容:
# for named monitor
* * * * * /opt/huawei/DNS/mon_named.ksh 1>/dev/null 2>/dev/null
上述内容表示每分钟执行一次mon_named.ksh脚本,对named服务进行监控。
保存后退出。
3.配置域名服务器地址
编辑”/etc/resolv.conf”文件,在文件中添加如下内容:
nameserver 127.0.0.1
nameserver DNS1
nameserver DNS2
4.重启http进程
修改”/etc/resolv.conf”文件后要重启进程,以防http进程缓存resolv.conf文件。四.方案验证
a) 通过使用tcpdump工具抓取DNS消息包;
b) 使用nslookup进行域名查询;
c) 进行抓包结果验证:是否在TTL时间内没有向DNS服务起再次发起请求;是,则
说明缓存方案生效,否则说明没有生效,需要对照此指导书进行操作步骤及配置的检查。
说明:抓包验证时注意查看TTL是否为0,这样的域名第二次也会去查询。
五.注意事项
DNS缓存方案实施后,需要重启wapgw_http进程才能够对应用生效。
六.附件