1.DNS解析
1.1DNS概述
- 域名系统(Domain Name System,DNS)是互联网的一项服务。它作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
- DNS协议运行在UDP协议之上,使用53号端口
1.2域名结构
- DNS系统采用的是分布式的解析方案,整个DNS架构是一种层次树状结构,这个树状结构成为DNS域名空间
- 根域:位于域名空间最顶层,一般用一个‘.’表示
- 顶级域:一般表示一种类型的组织机构或国家地区;如:net、com、org
- 二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理;如:.com.cn、.net.cn
- 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
- 主机:主机位于域名空间最下层,就是一台具体的计算机。如www、mail都是具体的计算机名字;这种表示方式为FQDN(完全合格域名),也是这台主机在域名中的全名
- 平时上网输入的都是FQDN名,如www.baidu.com,其实表示我们要访问"baidu.com"域中一台名为"www"的计算机
1.3DNS解析过程
1.4DNS查询顺序
- 浏览器检查缓存中有没有这个域名对应的解析过的ip地址,如果有该解析过程将会结束。
- 检查本地的hosts文件是否有这个网址映射关系
- 如果hosts种没有这个域名映射,查找本地DNS解析器缓存,如果有直接返回
- 通过首选DNS服务器(本地域名服务器),以递归或循环的方式查询域名对应的ip地址并返回。(顶级域,二级域,三级域)
2.与DNS相关命令以及文件
2.1相关命令
- 需要安装bind-utils包
- yum install bind-utils -y
- nslookup
[root@localhost ~]# nslookup www.baidu.com
Server: 192.168.20.2
Address: 192.168.20.2#53
Non-authoritative answer:
Name: www.baidu.com
Address: 14.215.177.38
Name: www.baidu.com
Address: 14.215.177.39
www.baidu.com canonical name = www.a.shifen.com.
- host
[root@localhost ~]# host www.baidu.com
www.baidu.com has address 14.215.177.38
www.baidu.com has address 14.215.177.39
www.baidu.com is an alias for www.a.shifen.com.
www.baidu.com is an alias for www.a.shifen.com.
- dig
[root@localhost ~]# dig www.baidu.com
; <<>> DiG 9.11.26-RedHat-9.11.26-4.el8_4 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60324
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 5 IN CNAME www.a.shifen.com.
www.a.shifen.com. 5 IN A 14.215.177.38
www.a.shifen.com. 5 IN A 14.215.177.39
;; Query time: 28 msec
;; SERVER: 192.168.20.2#53(192.168.20.2)
;; WHEN: 日 6月 06 16:45:51 CST 2021
;; MSG SIZE rcvd: 90
- 第一部分显示dig命令的版本和输入的参数
- 第二部分显示返回的一些技术详情以及状态
- 第三部分中“QUESIONT SECTION”显示我们要查询的域名
- 第四部分中“ANSWER SECTION”是查询到的结构
- 第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个DNS服务器,在什么时间进行的查询等等
2.2windows相关文件
- C:\Windows\System32\drivers\etc
2.3Linux相关文件
- /etc/resolv.conf
- /etc/sysconfig/network-scripts/ifcfg-ens33
- ifcfg-ens33 文件里的dns服务器里的ip地址会决定/etc/resolv.conf里的nameserver的ip
- 刷新网络时(service network restart (centos7)/ifup ens33(centos8))会将ifcfg-ens33文件里的dns服务器写入/etc/resolv.conf中
- 用户查询域名的时候,只查/etc/resolv.conf
3.DNS相关概念
3.1 dns服务类型
- 缓存域名服务器:通过其他域名服务器查询获得的域名,将域名查询加过缓存到本地,提高重复查询时的速度
- 主域名服务器:特定dns区域的客户服务器,具有唯一性,权威性;负责维护该区域的所有域名
- 从域名服务器:维护的域名、IP地址记录来源于主域名服务器
3.2dns资源记录
- SOA:区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条
- NS:域的授权名称服务器
- MX:域的邮件交换器,要跟着一个优先级值,越小越高
- A:IPV4主机地址
- AAAA:IPV6主机地址
- PTR:解析IP的指针
- CNAME:权威(正式)名称,定义别名记录
4.搭建缓存域名服务器
4.0 环境配置
- 确保两台虚拟机在同一局域网内
- DNS服务器:192.168.20.136
- 客户机:192.168.20.135
4.1安装软件
- yum install bind* -y
4.2启动服务;设置开机自启
- systemctl enable named
- service named start
4.3修改DNS服务器相关配置
- 配置文件
- 修改文件 /etc/named.conf
- 进行更改
- 将本机DNS改为本机IP地址,并且刷新网络进行验证
- 此时named将绑定到192.168.20.136的53号端口上,故可以为本机进行DNS解析;可用netstat命令进行查看。默认情况下绑定在127.0.0.1的53号端口上,若将DNS改为127.0.0.1,也能为本机进行DNS解析
- 使用客户机,将DNS修改为192.168.20.136,验证是否能提供DNS解析
- 修改客户机网络配置
- 验证
- 修改客户机网络配置
5.搭建主域名服务器
5.0 环境配置
- 确保两台虚拟机在同一局域网内
- DNS服务器:192.168.20.136
- 客户机:192.168.20.135
5.1 相关文件
- 弄要给自己的域名数据库:给hello.com提供解析
- 一个域名会有一个配置文件,还有一个数据文件
- /var/named 存放dns域名解析的数据文件
- /etc/named.rfc1912.zones 配置文件
5.2 修改配置文件
- vim /etc/named.rfc1912.zones;添加配置,告诉named为hello.com提供域名解析;任意位置均可
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update { none; };
};
5.3创建数据文件
-
cd /var/named
-
cp named.localhost hello.com.zone
-
hello.com.zone 文件相关信息
-
在hello.com.zone添加所需配置
-
修改权限
- 此时自己创建的数据文件,所属者为root,若不修改,named将无法使用
- 更改文件权限:chown root:named hello.com.zone
- 此时自己创建的数据文件,所属者为root,若不修改,named将无法使用
-
刷新服务 service named restart
-
本机验证
-
客户机验证
-
日志文件 /var/named/data