DNS搭建经验

近来闲着没事搭建了一个dns服务玩玩算是折腾折腾RHCE的课外内容。

说真的,这玩意有的时候还真的不太好弄,毕竟这是我配置的RHCE阶段的服务中,反复次数最多的一个,不为别的,只因为过去很多时候真的不认真。

首先是dig这个工具,真心的非常好用,dig +trace 域名,这个格式就可以追踪性的去查询域名信息,dig -x 域名,可以查询域名的反解,dig -t 域名类型 域名可以针对于不同的类型进行查询。

安装过程极为简单,主要是bind、bind-chroot和bind-utils这三个包,用途不多废话。

默认情况下,RHEL6需要只要启动named这个服务,即可,RHEL7需要多启动一个named-chroot服务,用来进行chroot,修改chroot目录的配置文件在/etc/sysconfig/named中,但是好像RHEL7不需要修改这个文件就可以进行chroot,具体的还需要仔细研究一下。要看chroot是否成功,只要mount 看一下就知道了,在部分RHEL6中,df -lh命令是看不到挂载的迹象的。由于RHEL6开始,chroot改为挂在模式,故不需要再进入chroot子目录里进行修改配置文件。

这里我不想再说RHEL5了,当年暑期实训的时候,在RHEL5上搭建,总是失败,最后没办法,只能用修改/etc/hosts文件的方式去糊弄老师。说真的,到现在还感觉有点对不起当初的实训老师——苗强老师和曾经给我讲Linux系统管理的老师,学生当年真的是太丢人了。

言归正传,bind服务,或者说dns服务,默认情况下有两种非常特殊的情况,一种为cache-only DNS,另一种为 forwardingDNS,这两种我都是只看了书,没有配置,毕竟虚拟机里环境不允许。前者为之保留一个“.”数据库,用来将收到的请求直接扔给13个根域名服务器,将请求来的结果作为缓存,存到本地,超时自动释放,用来进行加速处理,而forwarding方式为就是连“.”数据库都没有,只保留一个forwarding服务器纪录,用来进行转发,目的是将所有的请求扔到该纪录所指向的服务器进行请求,然后缓存该纪录,直到超时。

配置cache-only服务,按照我的理解就是空配,服务起来就好。而配置Forwarding服务就是空配+删除“.”数据库+在/etc/named.conf的全局中加入如下内容:

forwrad only;

forwarders{

forwarding服务器1;

forwarding服务器2;

};

具体配置信息(注意,每一行都的结尾都有;,每一个子项之间,与{、}之间都有空格):

listen-on port 43 { any; };           这个位置是表示监听哪个网络接口默认是localhost,此处改为any。

directory “/var/named”;            指定服务器的工作目录

dump-file、statistics-file、memstatistics-file用来进行 统计数据,可以用来进行大数据分析。

allow-query { any; };                   指定哪些客户端可以进行访问,默认localhost,这里此处改为any。

forward only;                               用来表明该服务器仅有转发功能。

forwarders { 192.168.101.11; 192.168.101.12; };    指定需要进行转发的服务器。

在该配置文件中添加一行:

zone “plus7.cn” IN {
type master;
file “named.admin.cn”;
allow-transfer { 2.2.2.2; };
};

之后,在/var/named/下面建立相应的named.域名的文件

$TTL 1D
@       IN SOA   tin3w5.plus7.cn. tin3w5.126.com (
20160326       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
IN NS dns1.admin.cn.
IN NS dns2.admin.cn.
dns1                            IN A            1.1.1.1
dns2                            IN A            2.2.2.22
nss                             IN A            3.3.3.3
www                             IN CNAME        nss.admin.cn.

反解这里就不配置了,毕竟不适用于公网……

dns同步:奴隶端:配置文件:

/etc/named.conf:

加入如此一行即可:zone “plus7.cn” IN {
type slave;
file “slaves/named.admin.cn”;
masters { 2.2.2.2; };

总的看起来好像也不难,呵呵,貌似是这样,遇到问题再说吧!

嗯,遇到了防治放大反弹ddos攻击的问题,解决方案:

iptables -A INPUT -p udp –dport 53 -m recent –set –name dnslimit
iptables -A INPUT -p udp –dport 53 -m recent –update –seconds 60 –hitcount 11 –name dnslimit -j DROP

静等问题了。

此条目发表在未分类分类目录。将固定链接加入收藏夹。