首页 随笔正文

linux服务管理之dns服务配置教程

sykasiz 随笔 2019-01-13 2443 0

一、dns相关知识

什么是dns服务器?

dns,即domain name system,域比如名服务器,实现域名和ip地址对应的解析。将www.baidu.com 转换成某个ip地址,或者将某个ip映射成www.baidu.com。
这里有个小疑问,没有域名服务器是否可以可以正常上网?答案是当然可以。我们可以使用ip地址,但是输入域名无法访问。根域是一个点(.),下面还有子域,比如熟知的com、net、cn、net、org,某个子域,比如com之下,又有163、baidu……,baidu下又有zhidao、wenku……。根域服务器,全球有13台,亚洲有一台在日本。dns是怎么解析的呢?有两种方式,第一是递归查询:本级不知道,上一级知道,然后沿路返回;第二是迭代查询:上一级给你信息,自己查询。本机配置dns成功后不被认可,即不能在公网上跑,需要被上一级管理才行。
 
常用的dns服务器
bind:最流行的dns服务器 (公司用)
mydns:和数据库进行集成(域名提供商,发便用户注册),写到数据库里
 
下面讲解dns的用法,包括dns正解配置、dns配置mail服务器、dns——配置别名、dns——通配符、dns做负载均衡、dns配置——反解、dns转发、dns主从服务器、子域授权、dns高级视图、/etc/named.conf:41: open: /etc/named.acl.dx:file not found解决。

二、dns配置——正解

  1. #dns配置——正解(域名转换成ip地址)  

  2.    

  3. #serv01:dns服务器  

  4. #Serv02:测试用  

  5.         

  6. --第一步,serv01安装bind  

  7. #安装bind  

  8. [root@serv01~]# yum install bind* -y  

  9.    

  10. --第二步,修改配置文件named.conf  

  11. [root@serv01~]# /etc/named.conf  

  12. #查询  

  13. [root@serv01~]# rpm -qa|grep bind  

  14. [root@serv01~]# rpm -ql bind|less  

  15.         

  16. #编辑文件  

  17. [root@serv01~]# vim /etc/named.conf  

  18.    

  19. options {  

  20.           #监听端口 IP地址  

  21.           #listen-onport 53 { 127.0.0.1; };  

  22. #监听任何IP地址  

  23. listen-on port 53 { any; };  

  24.         listen-on-v6 port 53 { ::1; };  

  25.                #指定根目录  

  26.         directory       "/var/named";  

  27.                #对Cache进行备份  

  28.         dump-file      "/var/named/data/cache_dump.db";  

  29.                #静态文件  

  30.         statistics-file"/var/named/data/named_stats.txt";  

  31.                #内存静态文件  

  32.         memstatistics-file"/var/named/data/named_mem_stats.txt";  

  33.                #允许查询的IP地址  

  34.         #allow-query     { localhost; };  

  35.                #允许查询所有的IP地址进行查询  

  36.         allow-query     { any; };  

  37.                #默认递归查询  

  38.         recursion yes;  

  39.                #安全相关的  

  40.         dnssec-enable yes;  

  41.         dnssec-validation yes;  

  42.         dnssec-lookaside auto;  

  43.    

  44.         /* Path to ISC DLV key */  

  45.         bindkeys-file "/etc/named.iscdlv.key";  

  46. };  

  47.        #根域服务器  

  48.        zone "." IN {  

  49.         type hint;  

  50.         file "named.ca";  

  51. };  

  52.    

  53. #区域文件  

  54. include"/etc/named.rfc1912.zones";  

  55. [root@serv01~]# ls /var/named/  

  56. chroot  data dynamic  named.ca  named.empty named.localhost named.loopback  slaves  

  57.    

  58.    

  59. #根域服务器的相关信息  

  60. [root@serv01~]# cat /var/named/named.ca  

  61. ;<<>> DiG 9.5.0b2 <<>> +bufsize=1200 +norec NS .@a.root-servers.net  

  62. ;; globaloptions:  printcmd  

  63. ;; Gotanswer:  

  64. ;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34420  

  65. ;; flags:qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 20  

  66.    

  67. ;; OPTPSEUDOSECTION:  

  68. ; EDNS:version: 0, flags:; udp: 4096  

  69. ;;QUESTION SECTION:  

  70. ;.                          IN    NS  

  71.    

  72. ;; ANSWERSECTION:  

  73. .                    518400  IN    NS   M.ROOT-SERVERS.NET.  

  74. .                    518400  IN    NS   A.ROOT-SERVERS.NET.  

  75. .                    518400  IN    NS   B.ROOT-SERVERS.NET.  

  76. .                    518400  IN    NS   C.ROOT-SERVERS.NET.  

  77. .                    518400  IN    NS   D.ROOT-SERVERS.NET.  

  78. .                    518400  IN    NS   E.ROOT-SERVERS.NET.  

  79. .                    518400  IN    NS   F.ROOT-SERVERS.NET.  

  80. .                    518400  IN    NS   G.ROOT-SERVERS.NET.  

  81. .                    518400  IN    NS   H.ROOT-SERVERS.NET.  

  82. .                    518400  IN    NS   I.ROOT-SERVERS.NET.  

  83. .                    518400  IN    NS   J.ROOT-SERVERS.NET.  

  84. .                    518400  IN    NS   K.ROOT-SERVERS.NET.  

  85. .                    518400  IN    NS   L.ROOT-SERVERS.NET.  

  86.    

  87. ;;ADDITIONAL SECTION:  

  88. #13台根域服务器  

  89. A.ROOT-SERVERS.NET.      3600000       IN    A     198.41.0.4  

  90. A.ROOT-SERVERS.NET.      3600000       IN    AAAA     2001:503:ba3e::2:30  

  91. B.ROOT-SERVERS.NET.      3600000       IN    A     192.228.79.201  

  92. C.ROOT-SERVERS.NET.      3600000       IN    A     192.33.4.12  

  93. D.ROOT-SERVERS.NET.     3600000       IN    A     128.8.10.90  

  94. E.ROOT-SERVERS.NET.      3600000       IN    A     192.203.230.10  

  95. F.ROOT-SERVERS.NET.       3600000       IN    A     192.5.5.241  

  96. F.ROOT-SERVERS.NET.       3600000       IN    AAAA     2001:500:2f::f  

  97. G.ROOT-SERVERS.NET.     3600000       IN    A     192.112.36.4  

  98. H.ROOT-SERVERS.NET.     3600000       IN    A     128.63.2.53  

  99. H.ROOT-SERVERS.NET.     3600000       IN    AAAA     2001:500:1::803f:235  

  100. I.ROOT-SERVERS.NET.       3600000       IN    A     192.36.148.17  

  101. J.ROOT-SERVERS.NET.       3600000       IN    A     192.58.128.30  

  102. J.ROOT-SERVERS.NET.       3600000       IN    AAAA     2001:503:c27::2:30  

  103. K.ROOT-SERVERS.NET.      3600000       IN    A     193.0.14.129  

  104. K.ROOT-SERVERS.NET.      3600000       IN    AAAA     2001:7fd::1  

  105. L.ROOT-SERVERS.NET.      3600000       IN    A     199.7.83.42  

  106. M.ROOT-SERVERS.NET.    3600000       IN    A     202.12.27.33  

  107. M.ROOT-SERVERS.NET.    3600000       IN    AAAA     2001:dc3::35  

  108.    

  109. ;; Querytime: 147 msec  

  110. ;;SERVER: 198.41.0.4#53(198.41.0.4)  

  111. ;; WHEN:Mon Feb 18 13:29:18 2008  

  112. ;; MSGSIZE  rcvd: 615  

  113.    

  114. #本地域名的解析  

  115. [root@larrywen0808]# ping localhost.localdomain  

  116. PINGlocalhost (127.0.0.1) 56(84) bytes of data.  

  117. 64 bytesfrom localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms  

  118. 64 bytesfrom localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.026 ms  

  119. 64 bytesfrom localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.025 ms  

  120. 64 bytesfrom localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.027 ms  

  121. 64 bytesfrom localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.026 ms  

  122. 64 bytesfrom localhost (127.0.0.1): icmp_seq=6 ttl=64 time=0.026 ms  

  123. ^C  

  124. ---localhost ping statistics ---  

  125. 6 packetstransmitted, 6 received, 0% packet loss, time 5624ms  

  126. rttmin/avg/max/mdev = 0.024/0.025/0.027/0.005 ms  

  127.    

  128. --第三步,修改配置文件named.rfc1912.zones  

  129. [root@serv01~]# tail -n5 /etc/named.rfc1912.zones  

  130. zone"jbxue.com" IN {  

  131.        typemaster;  

  132.        #域名和IP地址的对应关系的存放文件  

  133.        file"jbxue.com.zone";  

  134.        #不允许更新  

  135.        allow-update{none;};  

  136. };  

  137.    

  138. #保持属性保持一致(所属组)  

  139. [root@serv01named]# cp named.localhost jbxue.com.zone -a  

  140. [root@serv01named]# ll named.localhost jbxue.com.zone  

  141. -rw-r-----.1 root named 152 Jun 21  2007jbxue.com.zone  

  142. -rw-r-----.1 root named 152 Jun 21  2007 named.localhost  

  143.    

  144. --第四步,拷贝文件,修改jbxue.com.zone文件  

  145. $TTL 1D  

  146. #注意后面有点  

  147. @    IN SOA dns.jbxue.com. root.jbxue.com. (  

  148.                                    0     ; serial  

  149.                                    1D   ; refresh  

  150.                                    1H   ; retry  

  151.                                    1W  ; expire  

  152.                                    3H )       ; minimum  

  153.        #和前面的DNS保持一致  

  154.        NS   dns.jbxue.com.  

  155. dns  IN A       192.168.1.11  

  156. www      IN A       192.168.1.88  

  157.    

  158. #文件配置项解析  

  159. [root@serv01~]# cat /var/named/named.localhost  

  160. $TTL 1D  

  161. #@:域名 jbxue.com  

  162. #rname.invalid:出了问题,发送邮件地址  

  163. @    IN SOA   @rname.invalid. (  

  164.                                    #序列号,主从服务器更新需要。版本号,文件修改的次数  

  165. 0         ;serial  

  166. #从服务器更新刷新的时间  

  167.                                    1D   ; refresh  

  168.                                    #没有刷新成功,重试时间  

  169.                                    1H   ; retry  

  170.                                    #如果还没成功,失效的时间  

  171.                                    1W  ; expire  

  172.                                    #有效时间:三个小时  

  173.                                    3H)       ; minimum  

  174.        #和前面保持一致  

  175.        NS   @  

  176.        A     127.0.0.1  

  177.        AAAA     ::1  

  178.    

  179. #最终配置结果  

  180.    

  181.    

  182. #/etc/named.conf配置文件  

  183. options {  

  184.         listen-on port 53 { any; };  

  185.        listen-on-v6 port 53 { ::1; };  

  186.        directory       "/var/named";  

  187.        dump-file      "/var/named/data/cache_dump.db";  

  188.        statistics-file "/var/named/data/named_stats.txt";  

  189.        memstatistics-file "/var/named/data/named_mem_stats.txt";  

  190.         allow-query     { any; };  

  191.        recursion yes;  

  192.    

  193.        dnssec-enable yes;  

  194.        dnssec-validation yes;  

  195.        dnssec-lookaside auto;  

  196.    

  197.        /* Path to ISC DLV key */  

  198.        bindkeys-file "/etc/named.iscdlv.key";  

  199. };  

  200.    

  201. #/etc/named.rfc1912.zones配置  

  202. zone "jbxue.com" IN {  

  203.        type master;  

  204.         file "jbxue.com.zone";  

  205.        allow-update {none;};  

  206. };  

  207.    

  208. #/var/named/jbxue.com.zone 配置  

  209. $TTL 1D  

  210. #注意后面有点  

  211. @    INSOA dns.jbxue.com. root.jbxue.com. (  

  212.                                    0     ; serial  

  213.                                    1D   ; refresh  

  214.                                    1H   ; retry  

  215.                                    1W  ; expire  

  216.                                    3H)       ; minimum  

  217.        #和前面的DNS保持一致  

  218.        NS   dns.jbxue.com.  

  219. dns  INA       192.168.1.11  

  220. www      INA       192.168.1.88  

  221.    

  222. --第五步,重启服务  

  223. [root@serv01 named]# /etc/init.d/namedrestart  

  224. Stopping named:     [  OK  ]  

  225. Starting named:     [  OK  ]  

  226.    

  227. --第六步,使用dig测试,查看是否配置成功  

  228. [root@serv01 named]# dig www.jbxue.com  

  229.    

  230. ; <<>> DiG9.7.3-RedHat-9.7.3-2.el6 <<>> www.jbxue.com  

  231. ;; global options: +cmd  

  232. ;; Got answer:  

  233. ;; ->>HEADER<<- opcode: QUERY,status: NOERROR, id: 61132  

  234. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1,AUTHORITY: 1, ADDITIONAL: 1  

  235.    

  236. ;; QUESTION SECTION:  

  237. ;www.jbxue.com.                   IN    A  

  238.    

  239. ;; ANSWER SECTION:  

  240. www.jbxue.com.             86400    IN    A     192.168.1.88  

  241.    

  242. ;; AUTHORITY SECTION:  

  243. jbxue.com.        86400    IN    NS   dns.jbxue.com.  

  244.    

  245. ;; ADDITIONAL SECTION:  

  246. dns.jbxue.com.         86400    IN    A     192.168.1.11  

  247.    

  248. ;; Query time: 0 msec  

  249. ;; SERVER: 127.0.0.1#53(127.0.0.1)  

  250. ;; WHEN: Thu Aug  8 18:40:12 2013  

  251. ;; MSG SIZE rcvd: 82  

  252.    

  253. #查看简短的信息  

  254. [root@serv01 named]# dig www.jbxue.com+short  

  255. 192.168.1.88  

  256.    

  257. --第七步,serv01能ping通域名  

  258. #不能ping通  

  259. [root@serv01 named]# ping www.jbxue.com  

  260. ping: unknown host www.jbxue.com  

  261. #不能ping通  

  262. [root@serv01 named]# ping dns.jbxue.com  

  263. ping: unknown host dns.jbxue.com  

  264.    

  265. #在resolv.conf文件中加入nameserver  

  266. [root@serv01 ~]# vim /etc/resolv.conf  

  267. [root@serv01 ~]# cat /etc/resolv.conf  

  268. nameserver 192.168.1.11  

  269. #现在可以ping了,可以解析对应的IP地址  

  270. [root@serv01 ~]# ping www.jbxue.com  

  271. PING www.jbxue.com (192.168.1.88) 56(84)bytes of data.  

  272. ^C  

  273. --- www.jbxue.com ping statistics ---  

  274. 2 packets transmitted, 0 received, 100%packet loss, time 1161ms  

  275.    

  276. #可以ping通dns服务器  

  277. [root@serv01 ~]# ping dns.jbxue.com  

  278. PING dns.jbxue.com (192.168.1.11) 56(84)bytes of data.  

  279. 64 bytes from 192.168.1.11: icmp_seq=1 ttl=64time=0.020 ms  

  280. 64 bytes from 192.168.1.11: icmp_seq=2 ttl=64time=0.071 ms  

  281. 64 bytes from 192.168.1.11: icmp_seq=3 ttl=64time=0.039 ms  

  282. 64 bytes from 192.168.1.11: icmp_seq=4 ttl=64time=0.041 ms  

  283. ^C  

  284. --- dns.jbxue.com ping statistics ---  

  285. 4 packets transmitted, 4 received, 0% packetloss, time 3316ms  

  286. rtt min/avg/max/mdev = 0.020/0.042/0.071/0.019ms  

  287.    

  288. --第八步,server02测试  

  289. [root@serv02 ~]# echo "nameserver192.168.1.11" > /etc/resolv.conf  

  290. [root@serv02 ~]# cat /etc/resolv.conf  

  291. nameserver 192.168.1.11  

  292. [root@serv02 ~]# yum install bind-utils -y  

  293. [root@serv02 ~]# dig www.jbxue.com +short  

  294. 192.168.1.88  

  295. [root@serv02 ~]# nslookup www.jbxue.com  

  296. Server:          192.168.1.11  

  297. Address:       192.168.1.11#53  

  298.    

  299. Name:   www.jbxue.com  

  300. Address: 192.168.1.88  

  301.    

  302. --第九步,增加其他的解析  

  303. [root@serv01 named]# vim/var/named/jbxue.com.zone  

  304. [root@serv01 named]# /etc/init.d/namedrestart  

  305. Stopping named: .   [  OK  ]  

  306. Starting named:     [  OK  ]  

  307. [root@serv01 named]# cat/var/named/jbxue.com.zone  

  308. $TTL 1D  

  309. @    INSOA dns.jbxue.com. root.jbxue.com. (  

  310.                                    0     ; serial  

  311.                                    1D   ; refresh  

  312.                                    1H   ; retry  

  313.                                    1W  ; expire  

  314.                                    3H)       ; minimum  

  315.        NS   dns.jbxue.com.  

  316. dns  INA       192.168.1.11  

  317. www      INA       192.168.1.88  

  318. ftp   INA       192.168.1.89  

  319. #或者这样  

  320. ftp.hongiy.com.   IN A       192.168.1.89  

  321. hongiy.com.  INMX 5 mail  

  322. mail   IN A      192.168.1.90  

  323. [root@serv01 named]# dig ftp.jbxue.com+short  

  324. 192.168.1.89  


评论