linux网络dns
1 DNS简介
DNS是一个应用层协议,用来获取域名对应的IP地址。
什么是域名呢?
由于IP地址是一连串的数字,不容易记忆,所以就引入了域名,域名是一串字符,人们更容易记忆。人们可以通过域名代替IP地址来访问对应的主机。
域名的构成
域名服务器是一个分布式层次树状结构。
从上到下分别为根DNS服务器、顶级DNS服务器(一级域名)、权威DNS服务器(二级域名),三级域名服务器等…
比如 zhidao.baidu.com 、translate.goole.cn、csdn.net、space.bilibili.com等
1、 根DNS服务器是最根本的服务器,用来存放 一级域名 的IP地址。 .com 、.cn 、.org、.net等。
根DNS服务器在全世界总共有13台,主要存放260多个一级域名的DNS服务器的IP地址。
2、 顶级DNS服务器 存放 二级域名 的IP地址。
一个顶级服务器都对应着一个 一级域名。
比如 .com 的DNS服务器,存放了baidu、space等 二级域名的DNS服务器的IP地址。
比如.cn的DNS服务器中,存放了 google等 二级域名的DNS服务器的IP地址。
3、 权威DNS服务器 存放 三级域名 的IP地址。
一个权威DNS服务器对应着一个 二级域名。
比如.baidu的DNS服务器中,存放了zhidao等三级域名的IP地址。
DNS查询
拿 baidu.com 为例,我们来看一下DNS的工作流程
1、 客户端 首先向 浏览器缓存中 请求是否存在 baidu.com 对应的缓存,如果存在,就直接返回。
2、 如果浏览器中缓存没有,客户端就向操作系统中请求baidu.com对应的缓存,如果存在就直接返回。
3、 如果操作系统中缓存也没有的话,客户端向本地DNS服务器中发送相关DNS请求,如果存在就直接返回。
4、 如果不存在,本地DNS服务器就向 根DNS服务器 中发送DNS请求,获取 .com 对应的一级域名DNS服务器。 根DNS服务器将 .com 对应的一级DNS服务器的IP地址返回给 本地DNS服务器
5、 本地DNS服务器 向一级域名DNS服务器 .com 发送DNS请求,获取baidu 对应的二级域名DNS服务器的IP地址, 一级域名DNS服务器.com 将 baidu 对应的二级DNS服务器的IP地址返回给本地DNS服务器
6、 本地DNS服务器 向 .baidu二级域名DNS服务器发送 DNS 请求,获取 baidu.com 对应的IP地址,baidu二级域名DNS服务器将缓存表中的ip地址发送给本地DNS服务器。
7、 本地DNS服务器获取到IP地址后,将对应的域名和IP地址缓存起来。然后返回给客户端
8、 客户端获取到IP地址后,也将对应的域名和IP地址缓存起来。
递归DNS和迭代DNS
域名和IP的对应关系
1、 一个域名可以对应多个IP地址
2、 一个IP地址也可以对应多个域名
2 NDS服务程序——BIND
目前使用最为广泛的DNS服务软件是BIND(Berkeley Internet Name Domain),最早由伯克利大学的一名学生编写,现在最新的版本是9,由ISC(Internet Systems Consortium)编写和维护。BIND支持先今绝大多数的操作系统(Linux,UNIX,Mac,Windows)BIND服务的名称为named。2.1 BIND服务简介
BIND(Berkeley Internet Name Daemon)
- BIND是应用最广泛的DNS服务程序
- 官网站点:www.isc.org/
- bind-9.11.4-26.P2.el7_9.9.x86_64
- 主要执行程序:/usr/sbin/named
- 默认监听端口:53
- 主配置文件: /etc/named.conf
- 根域配置文件: /var/named/named.ca
- 区域配置文件: /etc/named.rfc1912.zones
- 保存DNS解析记录的数据文件位于: /var/named/目录下
- systemctl [status|start|stop|restart] named.service
- rndc reload 重新加载DNS服务
2.2 根域配置文件
根域配置文件位于: /var/named/named.ca- 根域配置文件设定根域的域名数据库,包括根域中13台DNS服务器的信息。
- 利用该文件可以让DNS服务器找到根DNS服务器,并初始化DNS的缓冲区。当DNS服务器接到客户端主机的查询请求时,如果在Cache中找不到相应的数据,就会通过根服务器进行逐级查询 。
- 用户不需要进行修改该文件 。
2.3 主配置文件(全局配置文件)
BIND服务的主配置文件位于: /etc/named.conf。- 设置DNS服务器的全局参数
- 包括监听地址和端口、区域数据文件存放的目录等
- 使用 options{......}; 的配置段
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015231406568-514970664.png)
2.4 区域配置文件
区域配置文件位于:/etc/named.rfc1912.zones。
-
设置本服务器提供域名解析的特定DNS区域
-
包括域名、服务器角色、数据文件名等
-
使用 zone "区域名" IN{......}; 的配置段
3、构建主域名服务器之正向解析
实验要求:
架设一台DNS服务器负责yuji.com域的域名解析工作。DNS服务器的IP地址为192.168.72.10,域名为master.yuji.com。要求为以下域名做正向解析工作。
实验思路:
- 关闭防火墙和selinux。
- 确认本机网络地址、主机映射,将DNS服务器改为本机IP。
- 安装BIND软件包。
- 编辑主配置文件named.conf,允许DNS服务器监听所有IP地址,允许所有客户端查询。
- 编辑区域配置文件/etc/named.rfc1912.zones文件,设置正向解析区域。
- 建立正向解析区域数据文件yuji.com.zone。
- 重新启动named服务,或重载配置。验证正向解析是否成功。
![](https://img2022.cnblogs.com/blog/2964616/202210/2964616-20221015231943348-2100611563.png)
4 重点总结
- 一定要关闭防火墙和selinux。
- 编辑配置文件和区域数据库文件时,需要严格注意语法书写,其格式非常严格。
- ”@“是DNS记录中的保留字,表示当前域名。
- 修改配置文件后,一定要重启服务,之后才能生效。
- BIND软件包提供了三个DNS测试工具:nslookup,dig,host。
![](https://common.cnblogs.com/images/loading.gif)