新闻资讯

Linux 使用nscd构建域名解析缓存 生壳 for linux的安装以及使用

2018-12-6

构建域名解析缓存的必要性

在部署服务器时,很多应用程序都需要调用域名解析服务,一般是通过配置/etc/resolv.conf来指定DNS服务器的IP。但如果程序发起的请求量较大,那么服务器就容易被这些DNS服务器禁止访问;同时每次都去访问外部DNS服务器,会导致延时增大,遇到网络问题时,还会发生解析不成功的现象。这种情况下,需要配置一个透明的DNS解析缓存服务,以达到如下效果:

优化DNS响应速度。通过缓存DNS的服务请求结果,后续相同的DNS请求不再通过访问任何外部网络服务器来获得结果,减少了网络访问的延时。
减少DNS对外部网络的依赖。在缓存周期内,相同DNS请求不再发生网络通信行为,可以减少短暂的外部网络不可用时导致的影响。

NSCD安装配置方法

NSCD(名称服务缓存进程)不需要对应程序或解析器做任何修改,/etc/resolv.conf也不需要做任何变化,对于系统部署的影响最小。
因此NSCD成为Linux环境中最广泛的域名缓存软件。

安装可以使用yum进行安装操作:

[root@ansible ~]# yum -y install nscd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • epel: mirrors.ustc.edu.cn
    Package nscd-2.17-196.el7.x86_64 already installed and latest version
    Nothing to do
    nscd的核心配置文件是:/etc/nscd.conf
    其中核心配置为:

    [root@ansible ~]# sed -n '/hosts/p' /etc/nscd.conf
    #Currently supported cache names (services): passwd, group, hosts, services
    enable-cachehostsyes
    positive-time-to-livehosts 3600
    negative-time-to-livehosts 20
    suggested-sizehosts211
    check-fileshostsyes
    persistenthostsyes
    sharedhostsyes
    max-db-sizehosts33554432
    [root@ansible ~]#
    其中:
    enable-cache:指定对DNS解析进行缓存
    positive-time-to-live:是指对解析成功的DNS结果进行缓存的时间,以秒为单位
    negative-time-to-live:是指对解析失败的DNS结果进行缓存的时间。例如网络故障导致的DNS解析失败或者请求的DNS条目没有配置等。
    suggested-size:NSCD内部的哈希表的大小,如果缓存条目数量远大于默认的211(如果10倍以上,则修改此值)
    check-files:是否检查/etc/hosts文件的变化
    persistent:是否在重启NSCD进程时保留已缓存的条目
    shared:是否允许客户端直接查询NSCD的内存镜像已获得结果。
    max-db-size:DNS的缓存大小,已字节为单位。

花生壳 for linux的安装以及使用

新Linux花生壳(公网)版将大大简化大家的操作,直接选择系统合适的包即可马上使用。

下载列表:
1、RedHat / CentOS / Suse 等……使用RPM包:32位 64位
2、Debian / Ubuntu 等……使用DEB包:32位 64位
3、其他系统,二进制包:32位 64位

=== RPM包安装方法:(32位和64位文件名字,请自行替换) ===

方法一: 使用 yum 的方法安装(推荐)
以root 身份运行下面的命令:yum localinstall -y phddns-2.0.6.el6.i386.rpm
系统会自动解决依赖关系,安装需要的其他rpm包。

方法二:使用rpm命令手动安装
1、首先安装必须的依赖包:yum install -y glibc glibc-common nss-softokn-freebl
2、然后安装花生壳的rpm包:rpm -ivh phddns-2.0.6.el6.i386.rpm

=== DEB包安装方法:(32位和64位文件名字,请自行替换)===
dpkg -i phddns_2.0.6_i386.deb