CentOS6.7 DNS配置

简介:

CentOS6.7 DNS配置

 

DNSDomain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数字串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53,服务器之间备份使用TCP

 

1DNS的一些基本概念:

1)、根域 .

根域“.”(点),我们的网站www.qq.com,其实完整的写法是www.qq.com.(最后有一个点),我们都习惯了省略输入,这就是根域。全世界只有13台“根“服务器,1个主根服务器,其他的12台是辅助根服务器,DNS服务器根据使用的角色有:主DNS、从DNS、缓存DNSDNS转发服务器。

 

2)、域名的划分

根域下面就是顶级域或者叫一级域:

有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com.net.等,一种是按国家划分的如cn.jp.,等。

每个域都会有域名服务器,也叫权威域名服务器。

 

51cto.com就是一个顶级域名,而www.51cto.com却不是顶级域名,他是在51cto.com这个域里的叫做www的主机。

一级域之后还有二级域,三级域,只要我买了一个顶级域,并且我搭建了自己BIND服务器(或者其他软件搭建的)注册到互联网中,那么我就可以随意在前面多加几个域了(当然长度是有限制的)。

比如a.www.51cto.com,在这个网址中,www.51cto.com变成了一个二级域而不是一台主机,主机名是a

 

3)、域名服务器

能提供域名解析的服务器,记录类型可以是A(address)记录,NS记录(name server),MXmail),CNAME等。

A记录 又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。

 

4)、域名解析过程

1)、现在我有一台计算机,通过ISP接入了互联网,访问www.51cto.com,首先操作系统会检查本地的hosts文件是否有这个网址的映射关系,如果有,就先调用这个IP地址,完成域名解析。

2)、如果host文件里面没有这个域名映射,则使用本地的ISPDNSISP提供的)解析服务器,如果有这个网址的映射,就会返回,完成域名解析。

3)、如果缓存中没有的话,ISPDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中),

4)、然后像其中一台发起请求。

5)、根服务器拿到这个请求后,知道他是com.这个顶级域名下的,所以就会返回com域中的NS记录,一般来说是13台主机名和IP

6)、然后ISPDNS向其中一台再次发起请求,com域的服务器发现你这请求是51cto.com这个域的,com域的服务器一查发现了这个域的NS,那就返回给51cto.com ip,你再去查。

7)、ISPDNS不厌其烦的再次向51cto.com这个域的权威服务器发起请求,51cto.com收到之后,查了下有www的这台主机,就把这个IP返回给你了.

8)、然后ISPDNS拿到了之后,将其返回给了客户端,并且把这个保存在高速缓存中。

 

 

 

2DNS的安装和配置

 

Linux下的DNS服务器的软件是bind。直接使用yum安装即可。安装后,DNS的服务名称叫named,配置文件存放在/etc/named.conf.

 

yum install bind*        #安装dns软件bind

 

/etc/init.d/named start     #启动 DNS 服务

/etc/init.d/named stop     #关闭 DNS 服务

/etc/init.d/namedre start  #重新启动 DNS 服务

 

 

/var/named/chroot/etc/named.conf    #全局配置文件,

 

vim /var/named/chroot/etc/named.conf         #全局配置文件内容

 

1 //

2 // named.conf

3 //

4 // Provided by Red Hat bind package to configure the ISC BIND named(8)DNS

5 // server as a caching only nameserver (as a localhost DNS resolveronly).

6 //

7 // See /usr/share/doc/bind*/sample/ for example named configurationfiles.

8 //

9

10 options {

11         listen-on port 53 {127.0.0.1; }; #监听的端口的ip(ip可多个,any表示所有)

12         listen-on-v6 port 53 {::1; }             #ipv6的形式

13         directory       "/var/named";     #DNS各域名数据文件默认存放位置

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

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

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

17         allow-query     { localhost; }; #允许dns查询的客户机列表any表示所有

18         recursion yes;                #是否允许客户机进行递归查询

19

20         dnssec-enable yes;

21         dnssec-validation yes;

22         dnssec-lookaside auto;

23

24         /* Path to ISC DLV key*/

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

26

27         managed-keys-directory"/var/named/dynamic";

28 };

29

30 logging {                                #日志

31         channel default_debug {

32                 file"data/named.run";

33                 severity dynamic;

34         };

35 };

36

37 zone "." IN {                            #根域

38         type hint;    #区域类型。hint为根区域;master为主区域; slave为辅助区

39         file"named.ca";   #对应/var/named/chroot/var/named目录下的配置文件

40 };

41

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

43 include "/etc/named.root.key";


 

 

 

 

配置一个正向解析和反向解析:域名为balichvmip地址为192.168.171.51,步骤:

1)、首先在全局配置文件/var/named/chroot/etc/named.conf增加正向解析的区域,增加内容如下:

 

#balichvm.org正向解析

zone "balichvm.org" IN {

       type master;

       file "balichvm.org.zone";

};

 

#balichvm.org反向解析

zone "171.168.192.in-addr.arpa"IN {

       type master;

       file "192.168.171.zone";

};

 

 

保存配置文件,然后在/var/named/chroot/var/named/目录下下新建balichvm.org.zone的正向解析文件和192.168.171.zone反向解析文件。

 

vim /var/named/chroot/etc/balichvm.org.zone      #编辑正向解析文件

$TTL   86400              #定义生存周期

@      IN      SOA     @      root.balichvm.org. (

                             2015111001      ;serial      #序列号

                             1D             ;refresh  #服务器更新时间

                             1H             ;retry    #重新更新时间

                             1W             ;expire    #失效时间

                             3H)            ;minmun  #缓存时间

@      IN      NS             dns.balichvm.org.      #域名解析记录

@      IN      MX      10    mail.balichvm.org.   #邮件交换

dns       IN      A              192.168.171.51        #主机记录

mail      IN      A              192.168.171.48

www       IN      A              192.168.171.49

bbs       IN      CNAME   www                           #别名记录

 

保存配置文件后,使用named-checkzone命令检查语法是否错误如下:

 

named-checkzone "balichvm.org"/var/named/chroot/var/named/balichvm.org.zone

zone balichvm.org/IN: loaded serial2015111001

OK

 

vim /var/named/chroot/etc/192.168.171.zone        #编辑反向解析文件

$TTL   86400

@    IN    SOA   @    root.balichvm.org. (

                             2015111001      ;serial

                             1D             ;refresh

                             1H             ;retry

                             1W             ;expire

                             3H)            ;minmun

@      IN      NS        dns.balichvm.org.

51     IN       PTR        dns.balichvm.org.      #反向解析

49     IN      PTR        www.balichvm.org.

48     IN      PTR        mail.balichvm.org.

~                                                  

 

保存配置文件后,使用named-checkzone命令检查语法是否错误如下:

 

named-checkzone "171.168.192.in-addr.arpa"/var/named/chroot/var/named/192.168.171.zone

zone 171.168.192.in-addr.arpa/IN: loadedserial 2015111001

OK

 

重启dns服务,然后使用dig命令测试。

 

/etc/init.d/named restart        #重启dns服务

 

测试:

测试过程中,如果有开启防火墙,需要对dns的端口(tcp:53,953udp:53)放行如下:

 

-A INPUT -m state --state NEW -m tcp -p tcp--dport 53 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 953 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp--dport 53 -j ACCEPT

 

保存,退出。然后重启防火墙:/etc/rc.d/init.d/iptables restart

 

 

 

使用dig @dns服务器域名 来找到对应的ip地址,如本机测试:dig@127.0.0.1 www.balichvm.org

 

使用dig @ dns服务器–x ip 来找到对应的域名,如本机测试:dig @127.0.0.1 -x192.168.171.49

 

 

3DNS的转发

 

有些域名本地的DNS无法解析,可以把请求转发到上一级的DNS服务器解析,具体的配置是在全局配置文件/var/named/chroot/etc/named.conf 上的  options{} 增加。如下:

 

       forward first;

       forwarders {8.8.8.8;};

 

 

保存,重启DNS服务。

 

4DNS主从配置

 

首先在防火墙上开放dns的端口(TCP:53,953 udp:53):

-A INPUT -m state --state NEW -m tcp -p tcp--dport 53 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 953 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp--dport 53 -j ACCEPT

 

首先在从服务器上安装bind软件:

yum install bind*      #在从服务器上安装dns软件

 

安装DNS软件之后,把主DNS上的配置文件(/var/named/chroot/etc/named.conf)拷贝到从DNS的服务器上。

 

然后编辑:/var/named/chroot/etc/named.conf 修改如下:

 

###balichvm.org正向解析

zone "balichvm.org" IN {

       type slave;          #服务器类型为 slave

       file "slaves/balichvm.org.zone";

       masters { 192.168.171.50; };             #指定masterip地址

};

 

##balichvm.org反向解析

zone "171.168.192.in-addr.arpa"IN {

       type slave;

       file "slaves/192.168.171.zone";

        masters { 192.168.171.50; };

};

 

保存配置文件,然后启动dns服务。在/var/named/chroot/var/named/slaves 目录下生成和主DNS上一样的配置文件。

 

测试:

使用dig @dns服务器域名 来找到对应的ip地址,如本机测试:dig@127.0.0.1 www.balichvm.org

 

使用dig @ dns服务器–x ip 来找到对应的域名,如本机测试:dig @127.0.0.1 -x192.168.171.49

 

 

测试同步:

在主DNS服务上

/var/named/chroot/var/named/balichvm.org.zone

 

blog   IN      A        192.168.171.47                #增加记录

 

同时修改序列号:只能变大,不能变小:2015111001 ——> 2015111002

 

重启DNS服务器:/etc/init.d/named restart

 

然后在到从dns上测试是否同步。

 

 


本文转自 巴利奇 51CTO博客,原文链接:http://blog.51cto.com/balich/1711983

相关文章
|
JavaScript 开发工具 git
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
2293 0
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
|
机器学习/深度学习 自然语言处理 算法
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
|
11月前
|
人工智能 边缘计算 API
2025大语言模型部署实战指南:从个人开发到企业落地全栈解决方案
本文深度解析了针对2025年大语言模型的四大主流部署框架,适用于不同场景的技术选型。从个人开发者使用的Ollama,支持快速本地部署与量化模型管理;到资源受限设备上的llama.cpp,通过极致优化使老旧硬件焕发新生;再到企业级服务的vLLM,提供高并发生产环境解决方案;以及跨平台开发桥接器LM Studio,作为全栈开发者的瑞士军刀。每种方案根据其特点覆盖了从本地调试、边缘计算到大规模生产的应用场景,旨在帮助技术团队精准匹配最适合的大模型部署方案,以实现效率和成本的最佳平衡。随着大模型应用的增长,选择正确的部署策略对于AI工程化落地至关重要。
|
人工智能 自然语言处理 测试技术
在PyCharm中提升编程效率:通义灵码(DeepSeek)助手全攻略(新版)
最近小栈在PyCharm中使用了阿里的 通义灵码 插件还不错,本次就再分享一个好用的AI代码助手,让编码过程更加方便!
7725 23
|
Windows
解决ArcGIS10.3属性表中文乱码问题
问题描述:在10.3刚出为不久,就发现有时属性表会出现中文乱码的问题。 解决方法:在Cmd命令行中输入以下命令: reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.
1754 0
【那些反爬与反反爬】网页中嵌入随机不可见字符的解决方法
【那些反爬与反反爬】网页中嵌入随机不可见字符的解决方法
332 2
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33076 80
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17818 24