Linux下DNS简单部署(主从域名服务器)

一、DNS简介
DNS(Domain Name System),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是就好比生活中的电话簿、114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。

二、DNS功能
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)

根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
1)缓存域名服务器,也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度

2)主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录

3)从域名服务器(通俗一点就是用于备份DNS服务器的)
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)

三、DNS服务环境部署记录

11)安装DNS服务所需要的软件包 2[root@test ~]# yum -y install bind bind-chroot bind-util bind-libs 3------------------------------------------------------------------------------------------------ 4解释: 5bind 提供了域名服务的主要程序及相关文件 6bind-utils 提供了对DNS服务器的测试工具程序(如nslookup、dig等) 7bind-chroot 为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录) 8------------------------------------------------------------------------------------------------ 9 102DNS服务器的配置(服务端要能联网) 11[root@test ~]# cp /etc/named.conf /etc/named.conf.bak 12[root@test ~]# vim /etc/named.conf 13options { 14 listen-on port 53 { any; }; #使用53端口监听,默认监听的是127.0.0.1,这里修改为any(或者直接修改为服务端的ip地址,如服务器ip为192.168.1.2415 listen-on-v6 port 53 { ::1; }; #监听ipv6的IP地址选项 16 directory "/var/named"; #DNS的根目录,由于安装了bind-chroot的所致,因此服务的实际工作目录为/var/named/chroot/var/named 17 dump-file "/var/named/data/cache_dump.db"; #缓存转储文件 18 statistics-file "/var/named/data/named_stats.txt"; #记录了内存使用的统计信息 19 memstatistics-file "/var/named/data/named_mem_stats.txt"; 20 allow-query { any; }; #允许查询的主机,默认为localhost,这里修改为any 21 recursion yes; #可以递归查询 22 23 dnssec-enable yes; 24 dnssec-validation yes; 25 dnssec-lookaside auto; 26 bindkeys-file "/etc/named.iscdlv.key"; 27 managed-keys-directory "/var/named/dynamic"; 28}; 29 30logging { #named服务的日志文件信息 31 channel default_debug { 32 file "data/named.run"; 33 severity dynamic; 34 }; 35}; 36zone "." IN { #根(.)域的配置及信息(也可以通过其它上级域名转发功能来配置缓存域名服务器,可以去了解下) 37 38 type hint; 39 file "named.ca"; 40}; 41 42[root@test ~]# chmod 770 /var/named/ 43[root@test ~]# ls -lh /etc/named.conf 44-rw-r-----. 1 root named 984 Nov 20 2015 /etc/named.conf 45[root@test ~]# /etc/init.d/named start 46Generating /etc/rndc.key: [ OK ] 47Starting named: [ OK ] 48[root@test ~]# ps -ef|grep name 49named 1592 1 0 15:03 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot 50root 1614 32378 0 15:03 pts/0 00:00:00 grep name 51 52[root@test ~]# netstat -tunlp|grep named 53tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1592/named 54tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1592/named 55tcp 0 0 ::1:53 :::* LISTEN 1592/named 56tcp 0 0 ::1:953 :::* LISTEN 1592/named 57udp 0 0 127.0.0.1:53 0.0.0.0:* 1592/named 58udp 0 0 ::1:53 :::* 1592/named 59 603)客户端测试 61将上面服务器的ip地址添加到客户端的/etc/resolv.conf文件里 62[root@test2 ~]# cat /etc/resolv.conf 63nameserver 192.168.1.24 //此处的192.168.1.24是上面DNS服务器的ip地址 64 65[root@test2 ~]# ping www.baidu.com 66PING www.a.shifen.com (119.75.213.51) 56(84) bytes of data. 6764 bytes from 119.75.213.51: icmp_seq=1 ttl=55 time=2.58 ms 6864 bytes from 119.75.213.51: icmp_seq=2 ttl=55 time=2.29 ms 69....... 70 71[root@test2 ~]# dig www.baidu.com 72 73; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.baidu.com 74;; global options: +cmd 75;; Got answer: 76;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55147 77;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 78 79;; QUESTION SECTION: 80;www.baidu.com. IN A 81 82;; ANSWER SECTION: 83www.baidu.com. 1100 IN CNAME www.a.shifen.com. 84www.a.shifen.com. 200 IN A 119.75.213.50 85www.a.shifen.com. 200 IN A 119.75.213.51 86 87;; AUTHORITY SECTION: 88a.shifen.com. 1100 IN NS ns4.a.shifen.com. 89a.shifen.com. 1100 IN NS ns2.a.shifen.com. 90a.shifen.com. 1100 IN NS ns3.a.shifen.com. 91a.shifen.com. 1100 IN NS ns1.a.shifen.com. 92a.shifen.com. 1100 IN NS ns5.a.shifen.com. 93 94;; ADDITIONAL SECTION: 95ns5.a.shifen.com. 1100 IN A 119.75.222.17 96ns3.a.shifen.com. 1100 IN A 61.135.162.215 97ns4.a.shifen.com. 1100 IN A 115.239.210.176 98ns1.a.shifen.com. 1100 IN A 61.135.165.224 99ns2.a.shifen.com. 1100 IN A 180.149.133.241 100 101;; Query time: 1 msec 102;; SERVER: 192.168.1.233#53(192.168.1.233) 103;; WHEN: Wed Jun 21 15:12:20 2017 104;; MSG SIZE rcvd: 260 105 106------------注意事项------------- 107客户端必须要跟服务器端能够通信(能ping通)及关闭selinux 108 109---------------------------------------扩展------------------------------------------- 110上面在/etc/named.conf文件里没有自定义域名去进行解析设置,下面说下自定义域名的设置: 1111) DNS主域名服务器配置 112 113[root@test ~]# cp /etc/named.conf /etc/named.conf2.bak 114[root@test ~]# vim /etc/named.conf #追加下面内容,即添加wangshibo.com域名配置。如果有多个域名,就如下添加多个类似配置。 115...... 116zone "wangshibo.com" IN { #指定区名。正向解析 117 type master; #服务器类别,master为主域名 118 file "wangshibo.com_zone"; #正向解析区域文件名wangshibo.com_zone,在/var/named目录下创建 119 allow-transfer {192.168.1.23;}; #指定从(辅助)域名服务器IP。即DNS从服务器的ip是192.168.1.23 120}; 121zone "1.168.192.in-addr.arpa" IN { #域名对应的ip地址网段为192.168.1.0,此处必须按照相 。反向解析 同的格式写 122 type master; 123 file "192.168.1.zone"; #反向解析文件名192.168.1.zone 124 allow-transfer {192.168.1.23;}; 125}; 126 127[root@test ~]# vim /var/named/wangshibo.com_zone 128$TTL 1D 129@ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. ( 130 2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去 131 1D 132 1H 133 1W 134 3H ) 135@ IN NS ns1.wangshibo.com. #主域名的域名地址。NS是域名服务器 136ns1.wangshibo.com. IN A 192.168.1.24 #主域名的ip地址 137@ IN NS ns2.wangshibo.com. #从域名的域名地址。NS是域名服务器 138ns2.wangshibo.com. IN A 192.168.1.23 #从域名的ip地址 139@ IN MX 10 mail.ww.wangshibo.com. #邮件服务器的域名地址 140mail.www.wangshibo.com. IN A 192.168.1.4 141www.wangshibo.com. IN A 192.168.1.2 142ftp.wangshibo.com IN A 192.168.1.3 143win7.wangshibo.com. IN A 192.168.1.224 144linux.wangshibo.com. IN CNAME ns1.wangshibo.com. 145smb.wangshibo.com. IN CNAME ns1.wangshibo.com. 146dhcp.wangshibo.com. IN CNAME ns1.wangshibo.com. 147 148[root@test ~]# vim /var/named/192.168.1.zone 149$TTL 1D 150@ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. ( 151 2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去 152 1D 153 1H 154 1W 155 3H ) 156@ IN NS ns1.wangshibo.com. 157@ IN NS ns2.wangshibo.com. 15824 IN PTR ns1.wangshibo.com. 15923 IN PTR ns2.wangshibo.com. 160@ IN MX 10 mail.www.wangshibo.com. 1614 IN PTR mail.www.wangshibo.com. 1622 IN PTR www.wangshibo.com. 1633 IN PTR ftp.wangshibo.com. 16423 IN PTR win7.wangshibo.com. 165 166[root@test ~]# /etc/init.d/named restart 167Stopping named: [ OK ] 168Starting named: [ OK ] 169 170在客户端测试 171[root@test2 ~]# cat /etc/resolv.conf 172search wangshibo.com 173nameserver 192.168.1.24 174 175[root@test2 ~]# dig www.wangshibo.com 176 177; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.wangshibo.com 178;; global options: +cmd 179;; Got answer: 180;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29152 181;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 182 183;; QUESTION SECTION: 184;www.wangshibo.com. IN A 185 186;; ANSWER SECTION: 187www.wangshibo.com. 86400 IN A 192.168.1.2 188 189;; AUTHORITY SECTION: 190wangshibo.com. 86400 IN NS ns2.wangshibo.com. 191wangshibo.com. 86400 IN NS ns1.wangshibo.com. 192 193;; ADDITIONAL SECTION: 194ns1.wangshibo.com. 86400 IN A 192.168.1.24 195ns2.wangshibo.com. 86400 IN A 192.168.1.23 196 197;; Query time: 1 msec 198;; SERVER: 192.168.1.24#53(192.168.1.24) #注意这行,说明是主DNS从域名服务器解析的 199;; WHEN: Wed Jun 21 15:39:09 2017 200;; MSG SIZE rcvd: 119 201 202 2031) DNS从域名服务器配置 204从域名服务器的ip为192.168.1.23 205服务的安装过程在上面已介绍,此处省略 206[root@test33 ~]# cp /etc/named.conf /etc/named.conf.bak 207[root@test33 ~]# vim /etc/named.conf 208options { 209 listen-on port 53 { any; }; 210 listen-on-v6 port 53 { ::1; }; 211 directory "/var/named"; 212 dump-file "/var/named/data/cache_dump.db"; 213 statistics-file "/var/named/data/named_stats.txt"; 214 memstatistics-file "/var/named/data/named_mem_stats.txt"; 215 allow-query { any; }; 216 recursion yes; 217 218 dnssec-enable yes; 219 dnssec-validation yes; 220 dnssec-lookaside auto; 221 bindkeys-file "/etc/named.iscdlv.key"; 222 managed-keys-directory "/var/named/dynamic"; 223}; 224 225logging { 226 channel default_debug { 227 file "data/named.run"; 228 severity dynamic; 229 }; 230}; 231zone "." IN { 232 233 type hint; 234 file "named.ca"; 235}; 236 237zone "wangshibo.com" IN { 238 type slave; 239 file "wangshibo.com_zone"; 240 masters {192.168.1.24;}; 241}; 242zone "1.168.192.in-addr.arpa" IN { 243 type slave; 244 file "192.168.1.zone"; 245 masters {192.168.1.24;}; 246}; 247 248[root@test33 ~]# chmod 770 /var/named/ 249[root@test33 ~]# ll /var/named/ -d 250drwxrwx---. 6 root named 4096 Jun 21 15:44 /var/named/ 251 252[root@test33 ~]# service named restart 253Stopping named: [ OK ] 254Generating /etc/rndc.key: [ OK ] 255Starting named: [ OK ] 256 257客户端测试 258[root@test2 ~]# dig @192.168.1.23 www.wangshibo.com 259 260; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> @192.168.1.23 www.wangshibo.com 261; (1 server found) 262;; global options: +cmd 263;; Got answer: 264;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12862 265;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 266 267;; QUESTION SECTION: 268;www.wangshibo.com. IN A 269 270;; ANSWER SECTION: 271www.wangshibo.com. 86400 IN A 192.168.1.2 272 273;; AUTHORITY SECTION: 274wangshibo.com. 86400 IN NS ns2.wangshibo.com. 275wangshibo.com. 86400 IN NS ns1.wangshibo.com. 276 277;; ADDITIONAL SECTION: 278ns1.wangshibo.com. 86400 IN A 192.168.1.24 279ns2.wangshibo.com. 86400 IN A 192.168.1.23 280 281;; Query time: 1 msec 282;; SERVER: 192.168.1.23#53(192.168.1.23) #注意这行,说明是从DNS从域名服务器解析的 283;; WHEN: Wed Jun 21 15:53:47 2017 284;; MSG SIZE rcvd: 119 285 286最后,在客户机的/etc/resolv.conf文件里添加上面主从DNS地址,就可以正常解析上面在/var/named/192.168.1.zone里设置的域名了 287# vim /etc/resolv.conf 288nameserver 192.168.1.24 289nameserver 192.168.1.23 290 291-----------------------------------------注意事项-------------------------------------------- 292a)如果还是无法解析,请返回主域名服务器的/var/named目录给区域配置文件加上权限(单纯是为了练习的话,可以加到最大权限到777) 293b)以上的练习都是在关闭防火墙与seLinux的状态下操作的,如果防火墙开启,可自行去添加规则

最后务必查看下/var/log/messages日志的内容,查看DNS主从是否启动正常,是否实现了同步。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )