当前位置:   article > 正文

【Linux网络】本地DNS服务器搭建_linux 本机dns新添加一条映射记录视频教程

linux 本机dns新添加一条映射记录视频教程

目录

一、什么是DNS,相关介绍

1、dns是什么:

2、域名的分类:

3、服务器的类型

二、DNS解析的过程

三、DNS的相关配置文件学习

1、本地主机有关的DNS文件学习

2、本地的DNS缓存服务器的文件

3、bind软件的相关配置文件:

4、学习数据库文件的语法 :

四、实操(正向解析+反向解析+主从复制)

第一步:先关闭安全机制和防火墙,两台机器都需要关闭!!!

第二步:主服务器的配置:

1、先修改主服务器的DNS缓存服务器地址,指向本机并重启网络;

2、到配置文件中修改主配置文件;

3、修改区域配置文件,明确域名服务器与数据库文件的对应;

4、创建数据库文件,设置数据库文件中域名与ip的对应关系;

5、启动named服务

第三步:slave服务器配置

1、先修改slave服务器的DNS缓存服务器地址(DNS1指向主,DNS2指向本机),重启网络;

 2、修改主配置文件

3、修改区域配置文件,明确域名服务器与数据库文件的对应;

4、启动named服务

第四步:验证结果

1、先用主服务器解析一下

2、用从服务器解析一下

3、当主服务器down,再检查一下从服务器

4、找来第三台Linux和一台Windows验证一下

五、源代码记录

1、主服务器配置

2、从服务器配置

六、总结(排错思路)

1、是否关闭安全机制与防火墙;

2、明确一下当前本地的DNS服务器是谁!!这与验证结果相关,查看/etc/resolv.conf;最好是DNS1为主,DNS2为从

3、查看一下区域配置文件的文件名与数据库的名称是否一致(标点符号都要一一对应!!)

4、查看数据库文件的属性,需要保留权限从named.local复制;

5、检查一下数据库文件的语法;

6、用好named-checkconf和named-checkzone两个语法检测命令,可以排错一部分,并显示错的行数;

7、最后重启还是不对,请看日志:/var/log/messages


一、什么是DNS,相关介绍

1、dns是什么:

DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构;

每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。

该应用程序的端口,对应:53/udp, 53/tcp

UDP的53端口用于解析(需要速度快)

TCP的53端口用于连接服务器,slave从master服务器中拉取数据(需要可靠)

2、域名的分类:

根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本

根域:用“.”表示

顶级域(一级域):一般代表一种类型的组织机构或国家区域,如.net,.com,.edu等

二级域:用来标明顶级域下面的的一个特定组织,国家顶级域下面的二级域名由国家安全部门统一管理,比如:.com.cn,.net.cn,.edu.cn

三级域(子域):由二级域创建的一般为子域,一般是由各个组织自己申请的

主机:如www和mail等表示主机名称

3、服务器的类型

master域名服务器:一般来说主域名服务器会有自己构建的一部分域名对应数据库,另外还有“.”的信息;是主域名服务器的一种,也称为主服务器、主域名服务器,负责维护一个区域的所有域名信息,这些信息一般存储在文本文件中,如zone文件或hosts文件1。Master域名服务器本身含有域名的数据文件(就是zone),这个配置文件就是设置正解或反解的“数据库”,包含各种记录,所以它本身具有提供查询Internet查询所需的数据。

slave域名服务器:会获取主服务器的数据库信息,放在/var/named/slaves文件夹中加密,当主服务器down的时候,slave服务器可以继续使用;

缓存域名服务器:只提供域名解析的缓存功能,目的是为了可以更高效的查询,但没有域名数据库,是从远程服务器取得每次域名服务器查询的结果,放在高速缓存中,以后查询相同的信息的时候响应更快;远程域名服务器不是权威性服务器

转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

二、DNS解析的过程

域名解析的过程(如图):

递归查询:

本主机向本地域名服务器的查询,一般是采用递归查询;

迭代查询:

本地域名服务器向跟服务器的查询,一般是迭代查询:

 本地正向解析域名的步骤:(以www.baidu.com为例)

第一步:先去问/etc/hosts文件,有就直接回复;

第二步:再去问本地dns缓存服务器,有就直接回复;

第三步:再去问根域名服务器,根域名服务器(.只能解析x.中的x,也就是说根只能解析出顶级域名.com),知道顶级域后,再去顶级域服务器(顶级域只能解析x.com.中的x为baidu),再去二级域服务器,最终查到权威服务器,就可以查询到主机名为www,最终获得到www.baidu.com的ip地址,获取到最终的域名地址,告诉缓存服务器;(看上面的流程图。类似)

第四步:缓存服务器最后告诉客户端,dns会把解析服务器会缓存结果,递归查询结束;

三、DNS的相关配置文件学习

1、本地主机有关的DNS文件学习

  1. /etc/hosts
  2. ##记录了本地个性化设置的ip地址域主机名的映射关系,包括相关主机名的别名
  3. ##只对当前主机有效
  4. ##好处:可以减少DNS的查询过程,可以加快速度
  5. ##这个文件的优先级高于DNS服务器,是由/etc/nsswitch.conf文件规定的
  6. [root@localhost ~]#vim /etc/nsswitch.conf
  7. 39 hosts: files dns myhostname

 Windows中的hosts文件位置:

2、本地的DNS缓存服务器的文件

  1. /etc/resolv.conf
  2. ##该文件是本地DNS缓存服务器
  3. ##该文件的内容是与网卡中的DNS配置相关的,注意主和从的配置
  4. ##该文件需要网卡修改后重启网络生效,建议不要单独修改该文件

3、bind软件的相关配置文件:

bind是软件名,named是服务名

  1. /etc/named.conf ##主配置文件
  2. /etc/named.rfc1912.zones ##区域配置文件,记录域名与数据文件的对应关系
  3. /var/named/ ##区域数据配置文件(区域数据库文件夹),这个文件一定要注意权限

关于数据库文件夹的产生:

因为在安装bind软件的时候,系统会自动创建一个名为named的用户,然后程序用户的家目录在/var/named

根非常强大,可以解析所有,不用知道为什么,反正就是可以 

4、学习数据库文件的语法 :

  1. $TTL 1D表示缓存时间为一天
  2. @表示代替域名本身(比如我现在是xuexin.com.)
  3. IN:表示互联网
  4. SOA:表示开始权限记录,这个一定要有
  5. xueyin.com.处写主域名服务器名称,也可以是@,还可以是master
  6. admin.xueyin.com.处写区域文件管理员的邮件地址,随便写,也可用“.”代替,但是不能不写
  7. 括号内参数:0 表示serial——更新序列号,标记新旧程度,可以是10位以内的整数
  8. 1D 表示refresh——刷新时间
  9. 1H 表示retry ——重试时间,连接不上时多长时间重试一次
  10. 1W 表示expire——失效时间,如果一直重连接不上,多长时间后就不再连接
  11. 3H 表示minimum——无效解析记录的缓存时间
  12. 几种记录的作用:
  13. SOA:表示起始权限记录,这个一定要有
  14. NS:表示域名服务器的名字,每一个NS后面要加一个A对应;
  15. CNAME:别名,访问news.xueyin.com时,允许将news替换为mail
  16. A :正向解析ipv4地址
  17. PTR :表示反向解析
  18. MX:表示邮件交换记录,后面写数字和接收邮件的服务器主机名字(10数字表示优先级,范围0-50,越小优先级越高)(可以不管,一般不用)
  19. 几种特殊符号的作用:
  20. * 代表泛域名
  21. @ 代表自己

四、实操(正向解析+反向解析+主从复制)

第一步:先关闭安全机制和防火墙,两台机器都需要关闭!!!

第二步:主服务器的配置:

1、先修改主服务器的DNS缓存服务器地址,指向本机并重启网络;

2、到配置文件中修改主配置文件;

3、修改区域配置文件,明确域名服务器与数据库文件的对应;

  1. [root@localhost named]#vim /etc/named.conf
  2. [root@localhost named]#vim /etc/named.rfc1912.zones
  3. [root@localhost named]#named-checkconf ##检查一下语法

4、创建数据库文件,设置数据库文件中域名与ip的对应关系;

  1. [root@localhost named]#cd /var/named/
  2. [root@localhost named]#ls
  3. data dynamic named.ca named.empty named.localhost named.loopback slaves xueyin.com.zone
  4. [root@localhost named]#cp -a named.localhost xueyin.com.zone
  5. [root@localhost named]#vim xueyin.com.zone
  6. $TTL 1D
  7. @ IN SOA master admin.xueyin.com. (
  8. 1 ; serial
  9. 1D ; refresh
  10. 1H ; retry
  11. 1W ; expire
  12. 3H ) ; minimum
  13. NS master
  14. master A 192.168.20.10
  15. NS slave
  16. slave A 192.168.20.18
  17. www A 192.168.20.5
  18. mail A 192.168.20.4
  19. test CNAME www
  20. * A 192.168.20.5
  21. @ A 192.168.20.10
  22. 5 PTR www.xueyin.com.
  23. 4 PTR mail.xueyin.com.
  24. [root@localhost named]#named-checkzone xueyin.com /var/named/xueyin.com.zone
  25. zone xueyin.com/IN: loaded serial 1
  26. OK
  27. [root@localhost named]#

5、启动named服务

  1. ##启动服务有两种方法,都可以
  2. [root@localhost named]#systemctl restart named
  3. [root@localhost named]#rndc reload
  4. server reload successful

第三步:slave服务器配置

1、先修改slave服务器的DNS缓存服务器地址(DNS1指向主,DNS2指向本机),重启网络;

 2、修改主配置文件

  1. [root@localhost slaves]#vim /etc/named.conf
  2. [root@localhost slaves]#vim /etc/named.rfc1912.zones
  3. [root@localhost slaves]#systemctl restart named

3、修改区域配置文件,明确域名服务器与数据库文件的对应;

4、启动named服务

第四步:验证结果

1、先用主服务器解析一下

2、用从服务器解析一下

3、当主服务器down,再检查一下从服务器

4、找来第三台Linux和一台Windows验证一下

 

五、源代码记录

1、主服务器配置

  1. ##先修改本机的DNS缓存服务器,指向本机
  2. [root@localhost named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. DNS1=192.168.20.18
  4. ##重新启动网络
  5. [root@localhost named]#systemctl restart network
  6. ##检验一下自己的本地DNS服务的文件
  7. [root@localhost named]#cat /etc/resolv.conf
  8. # Generated by NetworkManager
  9. nameserver 192.168.20.10 ##验证成功
  10. ##开始修改named服务的主配置文件
  11. [root@localhost named]#vim /etc/named.conf
  12. 12 options {
  13. 13 listen-on port 53 { any; }; ##这里可以是any,也可以是本服务器自己,也可以是注释删掉
  14. 14 listen-on-v6 port 53 { ::1; }; ##ipv6,无关不用修改
  15. 15 directory "/var/named"; ##表明数据的文件夹位置,同时也是named程序的家目录,不用修改
  16. 16 dump-file "/var/named/data/cache_dump.db";
  17. 17 statistics-file "/var/named/data/named_stats.txt";
  18. 18 memstatistics-file "/var/named/data/named_mem_stats.txt";
  19. 19 recursing-file "/var/named/data/named.recursing";
  20. 20 secroots-file "/var/named/data/named.secroots";
  21. 21 allow-query { any; }; ##这里允许被谁作为解析服务器,再生产环境中就是内网本身网段,这里改为any任意
  22. ##区域配置文件修改,将数据库文件与域名对应起来
  23. [root@localhost named]#vim /etc/named.rfc1912.zones
  24. 13 zone "xueyin.com" IN { ##写明想要解析的域名
  25. 14 type master; ##表明是主服务器
  26. 15 file "xueyin.com.zone"; ##表明数据库的文件在/var/named/xueyin.com.zone
  27. 16 };
  28. 30 zone "20.168.192.in-addr.arpa" IN { ##写明想要反向解析的ip地址
  29. 31 type master; ##表明是主服务器
  30. 32 file "xueyin.com.zone"; ##与正向解析的数据库文件一起记录
  31. 33 };
  32. ##检查一下语法问题
  33. [root@localhost named]#named-checkconf
  34. ##添加数据,先进去named程序用户的家目录
  35. [root@localhost named]#cd /var/named/
  36. [root@localhost named]#ls
  37. data dynamic named.ca named.empty named.localhost named.loopback slaves
  38. ##这里非常重要,一定一定是保留权限复制!!!!
  39. [root@localhost named]#cp -a named.localhost xueyin.com.zone
  40. ##语法前面已经讲过了,参考看吧
  41. [root@localhost named]#vim xueyin.com.zone
  42. $TTL 1D
  43. @ IN SOA master admin.xueyin.com. (
  44. 1 ; serial
  45. 1D ; refresh
  46. 1H ; retry
  47. 1W ; expire
  48. 3H ) ; minimum
  49. NS master
  50. master A 192.168.20.10
  51. NS slave
  52. slave A 192.168.20.18
  53. www A 192.168.20.5
  54. mail A 192.168.20.4
  55. test CNAME www
  56. * A 192.168.20.5
  57. @ A 192.168.20.10
  58. 5 PTR www.xueyin.com.
  59. 4 PTR mail.xueyin.com.
  60. ##语法检测一下
  61. [root@localhost named]#named-checkzone xueyin.com /var/named/xueyin.com.zone
  62. zone xueyin.com/IN: loaded serial 1
  63. OK
  64. ##启动服务,有两种方法,都可以
  65. [root@localhost named]#systemctl restart named
  66. [root@localhost named]#rndc reload
  67. server reload successful
  68. [root@localhost named]#

2、从服务器配置

  1. ##先修改本机的DNS缓存服务器,指向主服务器和本机(从服务器)
  2. [root@localhost /]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. [root@localhost /]#systemctl restart network
  4. [root@localhost /]#cat /etc/resolv.conf
  5. # Generated by NetworkManager
  6. nameserver 192.168.20.10
  7. nameserver 192.168.20.18
  8. ##从服务器的主配置文件修改
  9. [root@localhost ~]#vim /etc/named.conf
  10. 13 // listen-on port 53 { 127.0.0.1; }; ##将13行注释掉,也可以根据自己的需求修改
  11. 21 // allow-query { localhost; }; ##将13行注释掉,也可以根据自己的需求修改
  12. ##从服务器的区域配置文件修改
  13. [root@localhost ~]#vim /etc/named.rfc1912.zones
  14. 13 zone "xueyin.com" IN { ##写明想要解析的域名
  15. 14 type slave; ##表明是从服务器
  16. 15 file "slaves/xueyin.com.zone"; ##表明数据库的文件在/var/named/slaves/xueyin.com.zone
  17. 16 masters { 192.168.20.10; }; ##表明认准主服务器是192.168.20.10
  18. 17 };
  19. 31 zone "20.168.192.in-addr.arpa" IN { ##写明想要反向解析的ip地址
  20. 32 type slave; ##表明是从服务器
  21. 33 file "slaves/xueyin.com.zone"; ##跟正向解析一样,放在一起
  22. 34 masters { 192.168.20.10; }; ##表明认准主服务器是192.168.20.10
  23. 35 };
  24. ##检查一下语法问题
  25. [root@localhost named]#named-checkconf
  26. ##启动服务
  27. [root@localhost named]#systemctl restart named

六、总结(排错思路)

1、是否关闭安全机制与防火墙;

2、明确一下当前本地的DNS服务器是谁!!这与验证结果相关,查看/etc/resolv.conf;最好是DNS1为主,DNS2为从

3、查看一下区域配置文件的文件名与数据库的名称是否一致(标点符号都要一一对应!!)

4、查看数据库文件的属性,需要保留权限从named.local复制;

5、检查一下数据库文件的语法;

6、用好named-checkconf和named-checkzone两个语法检测命令,可以排错一部分,并显示错的行数;

7、最后重启还是不对,请看日志:/var/log/messages

最后,终于写完了,希望感冒快点好,扛不住了!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/656036
推荐阅读
相关标签
  

闽ICP备14008679号