DNS服务搭建
一、DNS基础
域名系统(DNS)是一个层次化得分布式数据库。存储用于互联网主机名与IP地址相映射的信息,邮件路由信息,及其它互联网应用所用到的数据。DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
客户端通过调用一个解析器库来在DNS 中查找信息,解析器向一个或多个名字服务器发出请求并解释响应。BIND 9软件分发包中包括一个名字服务器,named,和一个解析器库,liblwres。旧的libbind解析器库也可以作为一个单独的下载包从ISC得到。
二、DNS功能
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。
主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
三、域名结构
通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心: 位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC ,负责亚太地区。
四、搭建DNS服务器
环境:CentOS Linux release 7.4.1708 (Core)
关闭iptables和selinux
1)安装(bind主要软件,bind-util提供测试工具,bind-chroot提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录) [root@controller ~]# yum -y install bind bind-chroot bind-util bind-libs 2)DNS配置 #备份 [root@controller ~]# cp /etc/named.conf{,.bak} #修改配置 [root@controller ~]# vim /etc/named.conf // // named.conf // #options 控制全局服务配置和为其它语句设置缺省参数。 options { listen-on port 53 { any; }; #监听端口53,默认监听127.0.0.1,修改为any允许任意主机,注意{}一定要空格 listen-on-v6 port 53 { ::1; }; #监听ipv6的IP地址选项 directory "/var/named"; #DNS的根目录,由于安装了bind-chroot的所致,因此服务的实际工作目录为/var/named/chroot/var/named dump-file "/var/named/data/cache_dump.db"; #缓存转储文件 statistics-file "/var/named/data/named_stats.txt"; #记录了内存使用的统计信息 memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #允许查询的主机,默认为localhost,这里修改为any recursion yes; #开启递归查询 dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; #logging 指定服务器纪录哪些日志,和在哪里纪录日志消息 logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; #zone 定义一个区 zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; #授权 [root@controller var]# chmod 770 /var/named/ #启动服务 [root@controller var]# service named start [root@controller var]# ss -lnt|grep 53 LISTEN 0 10 172.17.0.1:53 *:* 3)客户机测试 修改resolve.conf文件添加dns服务器ip [root@lvs_m ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 192.168.128.169 [root@lvs_m ~]# nslookup > www.baidu.com Server: 192.168.128.169 Address: 192.168.128.169#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 14.215.177.38 Name: www.a.shifen.com Address: 14.215.177.39 4)添加自定义域名 1、修改/etc/named.conf文件添加如下内容 ... zone "www.baidu.com" IN { #正向解析,指定区域 type master; #服务器类型,master为主域名 file "www.baidu.com_zone"; #正向解析区域文件名www.baidu.com_zone,在/var/named目录下创建 allow-transfer {192.168.128.171;}; #从DNS服务器地址 }; zone "128.168.192.in-addr.arpa" IN { #反向解析,ip段为192.168.128.0/24 反写 type master; file "192.168.128.zone"; #反向解析文件名 allow-transfer {192.168.128.171;}; }; #检查语法这点很重要,不然服务会出错。 [root@controller ~]# named-checkconf #创建域文件 $TTL 180 @ IN SOA yxb.qq.com. root.www.baidu.com. ( ; 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 44H ) ; minimum @ IN NS ns1.www.baidu.com. ; ns1.www.baidu.com. IN A 192.168.128.169 www.baidu.com. IN A 192.168.128.211 #添加A纪录可以是多个地址 www.baidu.com. IN A 192.168.128.212 #创建反向解析域文件 [root@controller ~]# cat /var/named/192.168.128.zone $TTL 180 @ IN SOA yxb.qq.com. root.www.baidu.com. ( ; 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 44H ) ; minimum @ IN NS ns1.www.baidu.com. 169 IN PTR ns1.www.baidu.com. 211 IN PTR www.baidu.com. 212 IN PTR www.baidu.com. #检查语法 [root@controller ~]# named-checkzone www.baidu.com /var/named/www.baidu.com_zone zone www.baidu.com/IN: loaded serial 0 OK #重启dns服务 [root@controller ~]# service named restart #客户机测试 [root@lvs_m ~]# dig www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64633 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 180 IN A 192.168.128.212 www.baidu.com. 180 IN A 192.168.128.211 ;; AUTHORITY SECTION: www.baidu.com. 180 IN NS ns1.www.baidu.com. ;; ADDITIONAL SECTION: ns1.www.baidu.com. 180 IN A 192.168.128.169 ;; Query time: 1 msec ;; SERVER: 192.168.128.169#53(192.168.128.169) ;; WHEN: Thu Nov 23 00:52:38 2017 ;; MSG SIZE rcvd: 97 5)DNS从服务器配置,只需配置/etc/named.conf文件不需要添加域文件 软件安装: [root@lvs_m ~]# yum -y install bind bind-chroot bind-util bind-libs #修改配置文件 [root@lvs_m ~]# vim /etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "www.baidu.com" IN { type slave; #类型设置为slave file "www.baidu.com_zone"; masters { 192.168.128.169; }; #主服务器ip }; zone "128.168.192.in-addr.arpa" IN { type slave; file "192.168.128.zone"; masters { 192.168.128.169; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; [root@lvs_m ~]# chmod 770 /var/named/ [root@lvs_m ~]# ll /var/named/ -d drwxrwx---. 6 root named 4096 Nov 23 01:07 /var/named/ [root@lvs_m ~]# named-checkconf [root@lvs_m ~]# service named restart #测试 [root@controller ~]# dig www.baidu.com @192.168.128.171 ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> www.baidu.com @192.168.128.171 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23616 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 180 IN A 192.168.128.211 www.baidu.com. 180 IN A 192.168.128.212 ;; AUTHORITY SECTION: www.baidu.com. 180 IN NS ns1.www.baidu.com. ;; ADDITIONAL SECTION: ns1.www.baidu.com. 180 IN A 192.168.128.169 ;; Query time: 226 msec ;; SERVER: 192.168.128.171#53(192.168.128.171) //成功 ;; WHEN: Thu Nov 23 04:36:22 EST 2017 ;; MSG SIZE rcvd: 108
如对您有帮助,支持下呗!
微信
支付宝