Linux网络服务之DNS服务
一、DNS简介
1.1DNS名词介绍
域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。
实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。
1.2DNS系统的作用
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构:
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
3DNS查询类型及原理
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区):
一级域名 .com (工商企业) .net 网络供应商 .edu (教育机构 .cn 中国国家域名 .org 团体组织 .gov 政府部门 二级DNS服务器:专门负责二级域名的解析
二级域名 .net.cn .edu.cn .com.cn 子域名DNS服务器:专门负责子域名的解析也称为三级域名
三级域名 ina.com.cn .pku.edu.cn 主机站点
主机名 tts9 tts6 mail www
1.3DNS系统类型
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
主域名服务器:管理和维护所负责解析的域内解析库的服务器
从域名服务器
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
1.4本地名称解析配置文件
Linux: /etc/hosts
windows : c/windows/system32/drivers/etc/hosts
[root@localhost ~]#vim /etc/nsswitch.conf
#修改dns的优先级
hosts: files dns myhostname
#修改 files和 dns的先后 优先级就不同。如果files在前面,那么file优先级就比较高
示例:
1.
2.
3.
4.进入/etc/nsswitch.conf,调换优先级
1.5DNS查询方式
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结 果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对 方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起 进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需 要发起多次查询。(需要自己动手)
1.6DNS正向解析查询原理过程
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
二、正向解析资源记录及配置实例
2.1资源记录
2.1.1SOA记录
name: 当前区域的名字,例如"wlw.com."
value: 有多部分组成
注意:
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.wlw.com
主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:$TTL 1D
@ IN SOA master.wlw.com. admin.wlw.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
2.1.2NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
相邻的两个资源记录的name相同时,后续的可省略
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
一个区域可以有多个NS记录
范例:
master IN NS wlw.com.master IN NS wlw.com.
2.1.3 MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
<span style="background-color:#f8f8f8">范例: mail IN MX 10 mx1.wlw.org.IN MX 20 mx2.wlw.org. mx1 A 192.168.59.10 mx2 A 192.168.59.10</span>
2.1.3A记录
name: 某主机的域名解析,例如:www.wlw.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.wlw.com. IN A 1.1.1.1
www.wlw.com. IN A 2.2.2.2
www.wlw.com. IN A 3.3.3.3
www.wlw.com. IN A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@ IN A 6.6.6.6
#代表不需要名字
2.1.4PTR记录
name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN
2.1.5CNAME别名记录
name: 别名的FQDN value: 真正名字的FQDN
ftp.wlw.com. IN CNAME www.wlw.com
2.1.6小贴士
TTL可从全局继承
使用 "@" 符号可用于引用当前区域的域名
同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
2.2正向解析服务器配置方法
**1.安装主软件和配置包管理软件**[root@localhost ~]# yum install bind bind-utils -y**2.关闭防火墙**[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0**3.开启服务并查看是否查看成功**[root@localhost ~]#systemctl start named[root@localhost ~]#netstat -ntap |grep named**4.修改网卡的DNS服务地址并重启网卡**[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=127.0.0.1 [root@localhost ~]#systemctl restart network[root@localhost ~]# cat /etc/resolv.conf**5.ping测试,看是否可以解析出百度的ip**[root@localhost ~]# ping www.baidu.com**6.修改配置文件/etc/named.conf**[root@localhost ~]#rpm -qc bind 查询安装服务的配置文件[root@localhost ~]#vim /etc/named.conf 进入修改配置文件<font color='cornflowerblue'>#可以修改配置,注释,或者删除这两行</font>
listen-on port 53 { any; };
allow-query { any; };**7.重新加载DNS服务**[root@localhost ~]#rndc reload(也可以实验systemctl restart named)server reload successful**8.ping测试,看是否可以解析出百度的ip**[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.11
www.a.shifen.com has address 180.101.49.12**9.编写域名,在配置文件/etc/named.rfc1912.zones下 **[root@localhost named]#vim /etc/named.rfc1912.zones
zone "wlw.com" {
type master;
file "wlw.com.zone";
};**10.切换至named文件夹,拷贝named.localhost变成根域名文件**[root@localhost named]# cd /var/named/[root@localhost named]# cp -p named.localhost ./wlw.come.zone**11.修改成根域名文件**[root@localhost named]# vim wlw.come.zone$TTL 1D
@ IN SOA master.wlw.com. admin.wlw.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS master.wlw.com.
master IN A 192.168.59.100
www IN A 192.168.91.20MX 10 mail1.wlw.com.MX 20 mail2.wlw.com.
mail1 IN A 192.168.59.28
mail2 IN A 192.168.59.30
ftp IN CNAME www*IN A 192.168.59.10 泛指域名解析: **12.重新加载DNS服务并测试**[root@localhost named]# rndc reload 重新加载DNS服务 测试:[root@localhost named]# host mail1.wlw.com 测试
2.3反向解析服务器配置方法
#先修改区域配置文件[root@localhost named]#vim /etc/named.rfc1912.zones zone "59.168.192.in-addr.arpa" IN {type master;file "yxp.com.zone";allow-update { none; };
};
[root@localhost named]#cp -p kgc.com.zone ky15.com.zone#复制正向解析文件[root@localhost named]# cp -p wlw.com.zone yxp.com.zone#修改配置文件[root@localhost named]# vim yxp.com.zone $TTL 1D
@ IN SOA master.yxp.com admin.yxp.com (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS master.yxp.com.
master IN A 192.168.59.100
100 IN PTR www.yxp.com.
88 IN PTR ftp.yxp.com.测试:[root@localhost named]# host 192.168.59.100
2.4主从复制配置示例
#1.首先配置2.2的正向解析,这是作为主服务器###配置从服务器
#2.配置从服务器,首先准备一台服务器,关闭防火墙并安装软件
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install bind bind-utils.x86_64 -y#3./etc/named.conf 文件里两段注释掉
[root@localhost etc]# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };#4./etc/named.rfc1912.zones添加从服务器配置文件
vim /etc/named.rfc1912.zones
zone "wlw.com" IN {type slave;#类型从file "slaves/wlw.com.zone";#文件地址在/var/named/slaves/ 下masters { 192.168.59.102; };#申明主服务器的地址
};5.验证:在从服务器上
[root@localhost named]# dig www.wlw.com @192.168.59.117
192.168.59.117是从服务器的地址6.主服务器修改的内容
[root@localhost named]# vim /var/named/wlw.com.zone
www IN A 192.168.59.11
此时从服务器的刷新还是原来的 192.168.59.107.在主服务器中配置从服务器立刻可以拉取到修改后的地址
[root@localhost named]# vim /var/named/wlw.com.zone1 ; serial
slave IN A 192.168.59.117
1.按照2.2的步骤将正向解析做好。wlw.come.zone中配置如下:
2.准备一台从服务器。关闭防火墙并安装软件,安装软件
3./etc/named.conf 文件里两段注释掉
4./etc/named.rfc1912.zones添加从服务器配置文件
5.验证:在从服务器上
在主服务器上cat wlw.come.zone ,此时都解析出来了
6.
2.5分离解析配置示例
2.5.1实验环境
将linux服务器配置两块网卡,都仅主机模式
ens33:192.168.100.1
ens37:12.0.0.1
win7做为外网: 12.0.0.12 255.0.0.0
win10 作为内网:192.168.100.100
1.开启一台Linux服务器,关闭防火墙并下载软件
2.添加一块网卡,并将两块网卡都设置仅主机模式
3.配置双网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens33
IPADDR=192.168.100.1
NETMASK=255.255.255.0
[root@localhost network-scripts]# ip a
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens38
[root@localhost network-scripts]# vim ifcfg-ens38
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
4.开两台windows
1)开一台win7
2)开一台win10
5.修改Linux中的配置文件
1.修改/etc/named.conf
[root@test5 ~]# vim /etc/named.conf
#修改配置文件
listen-on port 53 { any; };
allow-query { any; };
#删除文件中这段
zone "." IN {type hint;file "named.ca";
};2.修改/etc/named.rfc1912.zones
#编写配置文件
view "lan" {match-clients { 192.168.100.0/24; };#匹配网段zone "wlw.com" IN {type master;file "wlw.com.lan";};zone "." IN {type hint;file "named.ca";};};view "wan" {match-clients { 12.0.0.0/24; };zone "wlw.com" IN {type master;file "wlw.com.wan";};zone "." IN {type hint;file "named.ca";};};3.创建wlw.com.lan和wlw.com.wan
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost wlw.com.lan
[root@localhost named]# vim wlw.com.lan [root@localhost named]# cp -p wlw.com.lan wlw.com.wan
[root@localhost named]# vim wlw.com.wan4.开启服务
[root@localhost named]# systemctl start named5.在window中验证
nslookup www.wlw.com
1.修改/etc/named.conf
2. 修改/etc/named.rfc1912.zones
3.创建wlw.com.lan和wlw.com.wan
4.开启服务
5.在window中验证
Linux网络服务之DNS服务相关推荐
- Linux网络基础之DNS服务
DNS简介 DNS名词介绍 域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务.它在互联网的作用是:把域名转换成网络可以识别的ip地址,在 ...
- linux网络设置与基础服务命令(ifconfig、hostname、route、netstat、ss、ping、traceroute、nslookup、route)
文章目录 linux网络设置与基础服务 前言 查看网络配置 使用ifconfig命令查看网络接口地址 查看指定网络接口信息 使用 hostname命令查看当前主机名称 使用route命令查看路由表条目 ...
- Linux随笔16-主从DNS服务搭建以及智能DNS服务搭建、基于CentOS7.6编译安装MySQL-5.7.32
Contents 1. DNS主从服务器搭建 1.1. DNS简介 1.2. DNS主从服务搭建 1.2.1. 主DNS服务器配置 1.2.2. 从DNS服务器配置 1.2.3. Web服务器准备 1 ...
- Linux网络实战 (一) —— DNS配置详解(安装与使用DNS)
Linux网络实战-- DNS配置 Linux网络实战 (一) -- DNS配置 Linux 本机DNS配置 Linux主机名配置文件 添加一个新的主机名映射 删除一个主机名映射 实例 安装DNS服务 ...
- linux服务篇-DNS服务
DNS(Domain Name System,域名系统),在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务,简单的说,域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的 ...
- 【Linux网络编程】并发服务器之select模型
00. 目录 文章目录 00. 目录 01. 概述 02. I/O复用技术概述 03. select模型服务器实现思路 04. select模型服务器实现 05. 附录 01. 概述 服务器设计技术有 ...
- 【Linux网络编程】并发服务器之多线程模型
00. 目录 文章目录 00. 目录 01. 概述 02. 多线程服务器 03. 多线程服务器实现思路 04. 多线程服务器实现 05. 附录 01. 概述 服务器设计技术有很多,按使用的协议来分有 ...
- 【Linux网络编程】并发服务器之多进程模型
00. 目录 文章目录 00. 目录 01. 概述 02. 多进程并发服务器 03. 多进程并发服务器实现思路 04. 多进程并发服务器实现 05. 附录 01. 概述 服务器设计技术有很多,按使用的 ...
- 【Linux网络编程】循环服务器之TCP模型
00. 目录 文章目录 00. 目录 01. 概述 02. TCP循环服务器实现方法 03. TCP循环服务器模型 04. TCP循环服务器实现 05. 附录 01. 概述 服务器设计技术有很多,按使 ...
最新文章
- 自然语言处理NLP-100例 | 第一篇:如何用Python做情感分析?
- jvm参数调优堆的初始和最大值一定要一致
- 【信息系统项目管理师】常用网络标准与网络协议
- oracle 关闭如何启动,ORACLE启动和关闭实例
- 怀念西电北门的石凳(转载)
- NoSQL和传统数据库的区别
- Reactor网络编程模型
- MySQL安全设置命令mysql_secure_installation
- echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图
- matplotlib 可视化细节,丰富的可选参数
- anaconda下载
- JMP入门官方文档---发现JMP.pdf---中文版
- 快速入门Flink (7) —— 小白都喜欢看的Flink流处理之DataSources和DataSinks(转载)
- m4a怎么转换mp3格式?详细的步骤
- Fits文件在天文方面的应用(数据处理部分)
- 新手看过来----讨厌的运算符
- 2022款联想小新air15和联想小新pro14哪个好
- Fine-Gray检验、竞争风险模型、列线图绘制
- 杰理之linein LAC底噪【篇】
- 第十三章 读取游戏资源文件
热门文章
- P1873 [COCI 2011/2012 #5] EKO / 砍树
- TA 认识 unity shader最基本的代码结构与书写01
- 类同属性不为null 拷贝赋值
- 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32
- 基于PHP+MySQL的高校实验室预约管理系统
- 完犊子了,微软已禁止俄罗斯人下载 Windows
- 为什么国内服务器需要备案?
- Ubuntu 10.10 安装谷歌拼音输入法~
- 关于SQL_Errno1677导致主从复制中断处理
- 16位MS-DOS子系统 NTVDM cpu遇到无效指令