linux网络之DNS

目录

定义

DNS的分布式互联网解析库

DNS使用的端口

DNS的作用

查询方式

查询原理

常见DNS记录类型

解析配置

第一台机子

另一台机子

测试

反向解析

测试

主从复制

主服务器配置

 从服务器

测试

解析命令

dig

host

选项

nslookup

进入交互模式的两种方法

交互模式

 非交互模式


定义

DNS是将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网linux网络之DNS_第1张图片

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

                IPV6根服务器:全球共25个,包括3台主根服务器和22台辅根服务器。主根服务器分别位于中国、美国和日本。中国一主三辅,美国一主二辅,日本一主,其余辅根服务器分布在其他多个国家

DNS的分布式互联网解析库

大型、分布式的互联网DNS解析库
根. 根域名DNS服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商 企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org(团体组织)
.gov (政府部门)
二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu.cn
.com.cn
子域名DNS服务器:专门负责子域名的解析
.sina.com.cn
.pku.edu.cn
主机站点
mail
www

DNS使用的端口

DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS

DNS的作用

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

查询方式

递归查询:一般客户机和本地DNS服务器之间属于递归查询,当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,会向别的服务器查询,并将所得结果交给客户机(不需要自己动手)

迭代查询:一般情况下(有例外)本地服务器向其他DNS服务器的查询属于迭代查询,当对方不能返回权威结果则会多次发起查询直到返回查询的结果为止(需要自己动手)

查询原理

正向解析查询过程

1、先查本机缓存记录

2、查询hosts文件

3、查询DNS域名服务器缓存,有直接返回没有进行下一步

4、求助根域服务器,根域服务器让去找可能知道结果的顶级域服务器

5、求助顶级域服务器,顶级域服务器让去找可能知道结果的二级域服务器

6、求助二级域服务器,二级域把查询到的ip地址返回给权威服务器具体几次根据域名长度有关

7、到达权威DNS服务器,会将结果反馈给缓存服务器,缓存服务器给客户端

常见DNS记录类型

类型 含义
A 地址记录,用来指定域名的ipv4地址,如果需要将域名指向ip地址,就需要添加A记录
AAAA 用来指定主机名或域名对应的ipv6地址
CNAM 如需将域名指向另一个域名,再由另一个域名提供IP地址(别名)
MX 如需设置邮箱,让邮箱能收到邮件
NS 域名服务器记录,如需把子域名交给其他DNS服务器解析,就需添加
SOA 是所有区域性文件中的强制性记录,必须是文件中的第一个记录
TXT 可以写任何东西,长度限制为255,大多数TXT用来做SPF记录(反垃圾邮件)

解析配置

第一台机子

[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件

linux网络之DNS_第2张图片

linux网络之DNS_第3张图片

[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件

需手动添加,也可复制一段模板下来,改动一下

[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost ./kgc.com.zone
[root@localhost named]# ls
data  dynamic  kgc.com.zone  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# vim kgc.com.zone
#修改区域数据文件

linux网络之DNS_第4张图片

[root@localhost ~]# vim /etc/resolv.conf
#nameserver  192.168.247.110  将主机ip设为dns服务器地址
[root@localhost named]# rndc reload
server reload successful
#重新加载DNS服务

另一台机子

[root@localhost ~]# vim /etc/resolv.conf
#nameserver  192.168.247.110     指向域名服务器的ip
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

测试

[root@localhost ~]# nslookup www.kgc.com
Server:		192.168.247.110
Address:	192.168.247.110#53

Name:	www.kgc.com
Address: 192.168.247.111

[root@localhost ~]# nslookup mail.kgc.com
Server:		192.168.247.110
Address:	192.168.247.110#53

Name:	mail.kgc.com
Address: 192.168.247.112

反向解析

[root@localhost named]# vim /etc/named.rfc1912.zones

[root@localhost named]# cp -p kgc.com.zone kgc.com.zone.mjy
[root@localhost named]# vim kgc.com.zone.mjy

linux网络之DNS_第5张图片

[root@localhost named]# rndc reload
server reload successful
#重启服务

测试

[root@localhost named]# nslookup 192.168.247.111
111.247.168.192.in-addr.arpa	name = www.kgc.com.

[root@localhost named]# nslookup 192.168.247.112
112.247.168.192.in-addr.arpa	name = mail.kgc.com.

主从复制

主服务器配置

[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件

linux网络之DNS_第6张图片

[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件

linux网络之DNS_第7张图片

[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost ./kgc.com.zone
[root@localhost named]# ls
data  dynamic  kgc.com.zone  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# vim kgc.com.zone
#修改区域数据文件

linux网络之DNS_第8张图片

[root@localhost named]# cp -p kgc.com.zone kgc.com.zone.mjy
[root@localhost named]# vim kgc.com.zone.mjy

linux网络之DNS_第9张图片

[root@localhost named]# vim /etc/resolv.conf
#亦可进入网卡配置里更改
#将主从的ip地址配置上

linux网络之DNS_第10张图片

 从服务器

[root@localhost ~]# yum install bind bind-utils -y
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
#修改主配置文件

linux网络之DNS_第11张图片

[root@localhost ~]# vim /etc/named.rfc1912.zones
#修改区域配置文件

linux网络之DNS_第12张图片

 

[root@localhost named]# vim /etc/resolv.conf
#亦可进入网卡配置里更改
#将主从的ip地址配置上

linux网络之DNS_第13张图片

[root@localhost named]# systemctl start named

测试

linux网络之DNS_第14张图片

解析命令

dig

dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。
第一部分显示 dig 命令的版本和输入的参数。
第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
第三部分中的 "QUESTION SECTION" 显示我们要查询的域名。
第四部分的 "ANSWER SECTION" 是查询到的结果。
第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。

host

host   选项   参数

选项

  • -a:显示详细的DNS信息
  • -c:指定查询类型,默认值为“IN”
  • -C:查询指定主机的完整的SOA记录
  • -r:在查询域名时,不使用递归的查询方式
  • -t:指定查询的域名信息类型
  • -v:显示指令的详细信息
  • -w:如果域名服务器没有给出应答,则总等待,直到给出应答
  • -W:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出
  • -4:使用ipv4
  • -6:使用ipv6

nslookup

用于从DNS服务器查询域名、ip 或其他DNS记录信息

有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。

进入交互模式的两种方法

1、直接输nslookup,不加任何参数,此时nslookup会连接默认域名服务器(/etc/resolv.conf里的第一个DNS地址);

2、第一个参数是连字符(-),第二个参数是域名服务器的主机名或IP,如 nalookup - server/ip

交互模式

linux网络之DNS_第15张图片

 非交互模式

linux网络之DNS_第16张图片

你可能感兴趣的:(Linux网络,linux,网络,服务器)