前言:上一章和拐友们讲了DHCP,这章我们来了解一下DNS,DNS可以使用户更加方便的访问互联网,而不用再去记住能够被机器直接读取的IP数串,简单来说就是将域名转换为IP地址(或者将IP地址转换为相应的域名)
目录
一.系统的作用以及类型
1.DNS的概念
1.2.DNS的使用的协议以及端口号
1.3域名体系结构
1.4DNS服务器系统类型
1.5DNS查询的方式
1.6.DNS的解析过程
二.构建DNS域名解析服务器步骤
1.BIND软件安装
2.1配置正向解析
2.2修改主配置文件
2.3修改区域配置文件,添加正向区域配置
2.4配置正向区域数据文件
2.5启动服务,关闭防火墙
2.6在客户端的域名解析配置文件中添加DNS服务器地址
2.7测试DNS解析
3.DNS反向解析实验
3.1修改区域配置文件,添加正向区域配置
3.2 备份指定区域数据配置文件,然后编辑指定区域数据配置文件
3.3打开dns域名解析服务
4.主从服务器(ps:需要再开一台虚拟机当从服务器)
4.1修改主配置文件
4.2修改区域配置文件
4.3配置区域数据文件
4.4以客户机身份指定从服务器dns地址
4.5 重启服务并查看是否完成配置
4.1.1从服务器配置步骤(新开的虚拟机)
4.1.2.安装bind服务
4.1.3.编辑主配置文件
4.1.4编辑区域配置文件
4.1.5验证从服务器是否已经将主服务器的区域数据配置文件备份过来了
4.1.6指定从服务器的dns
4.17关掉主服务器,验证从服务器
五.DNS服务器分离解析
5.1.安装bind服务
5.2为网关服务器多配一张网卡
5.3配置网卡并重启网卡
5.4xshell掉线,进入终端查看网卡
5.6修改区域配置文件(将主配置文件)
5.7配置区域数据配置文件
5.8重启服务 并验证结果
六.总结
DNS域名系统(Domain Name System缩写DNS,Domain,Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
ps:(另外全世界目前只有13台根域名服务器,一个主根服务器,12个辅根服务器)
1.DNS的默认端口为53。 DNS端口分为TCP和UDP。
其中DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。
TCP是用来做区域传送,多用于主从同步在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNSs数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。
UDP是用来做DNS解析的域名:通常由一个完全合格域名(FQDN)标识。FQDN全称 Fully Qualified Domain Name,它能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用"."分隔,对于DNS域google来说,其完全正式域名(FQDN)为google.com。
举个例子:google为 com域的子域,其表示方法为google.com,而 ww 为 google域中的子域,可以使用wwrw .google.com.表示。
ps:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z2和减号(-)。点号(.)只允许在域名标志之间(例如"google.com")或者FQDN的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域即全域名:同时带有主机名和域名的名称FQDN = Hostname + DomainName
如:www .baidu . com.(最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上:www.abc.com=w .abc.com.)
ps:IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
举个例子:
1 http://www.sina.com.cn./
2 http://主机名.子域.二级域.顶级域 根域/
根域 | 位于域名空间最顶层,一般用一个“.” 表示。 |
顶级域 | 一般代表一种类型的组织机构或国家地区; (如.net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育结构)、.gov(政府部门)、.cn(中国国家域名) |
二级域 | 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理, (如.cn顶级域名下面设置的二级域名: .com.cn、.net.cn、.edu.cn) |
子域 | 二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名 |
主机名 |
主机位于域名空间最下层,就是一台具体的计算机 域名与IP地址之间是多对一的关系,一个IP地址不一定只对应一个域名,且一个域名只可以对应一个IP地址 (如 www、mail都是具体的计算机名字,可用www.sina.com.cn.、 mail.sina.com.cn.来表示,这种表示方式称为FQDN(完全合格域名),也是这台主机在域名中的全名) |
组织域:.com .org .net .cc
国家域: .cn .tw(台湾).hk (香港) .iq .ir .jp (日本)
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
8.8.8.8是GOoGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
223.5.5.5和223.6.6.6:阿里云DNS
1.主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
2.从域名服务器
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
3.缓存域名服务器
只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
4.转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
1.递归查询
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
递归查询:
主机向本地域名服务器的查询一般都是采用递归查询。所谓归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的1P地址,那么本地域名服务。就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
2.迭代查询
DNS服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。
总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反。
迭代查询:
本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点,当根域名服务器收到本地域名服务器发出的迭代查询请求指文时,要么给出所要查询的IP地址,要么告诉本地服务器:"你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,那么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。
另外我们可以从递归和迭代查询可以看出:
1.客户端-本地DNS服务器:这部分属于递归查询
2.本地DNS服务器-外网:这部分属于迭代查询
3.递归查询时,返回的结果只有两种:查询成功或查询失败
4.迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址。
递归:客户端只发一次请求,要求对方给出最终结果。
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表。
客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
授权回答:向dna服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
1.先查本机的缓存记录。
2.查询hosts文件。
3.查询dns域名服务器,交给dns域名服务器处理。
以上过程成为递归查询:我要一个答案你直接会给我结果。4.这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步。
5.求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器。
6.求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器。
7.求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器。
8.本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端。
BIND(Berkeley internet Name Daemon)是应用最广泛的DNS服务器程序
官方站点:https://www.isc.org/
主要执行程序:/usr/sbin/named
默认监听端口:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named
yum -y install bind
1.rpm -qc bind #查询bind软件配置文件所在路径
2./etc/named.conf #主配置文件
3./etc/named/rfc1912.zonrs #区域配置文件
4./var/named/named.localhost #区域数据配置文件
1.vim /etc/named.conf
2.options {
3. listen-on-v6 poet 53 { 192.168.75.10; }; #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
4.# listen-on-v6 port 53 { : :1; }; #ipv6行如不使用可以注释掉或者删除
5. directory "/var/named"; #区域数据文件的默认存放位 置
6. dump- file "/var/ named/data/cache_ dump . db"; #域名缓存数据库文件的位置
7. statistics-file "/var/named/data/named stats.txt"; #状态统计文件的位置
8. memstatistics-file "/var/named/data/named_ mem_ stats. txt"; #内存统计文件的位置
9. allow-query { any; }; #允许使用本DNS解析服务的网段,也可用any代表所有
10.zone "." IN { #正向解析“. "根区域
11. type hint; #类型为根区域
12. file "named.ca"; #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};13.wq保存退出
1.vim /etc/named.rfc1912.zones #可在文件里有模版,可复制粘贴后修改
2.zone "ln. com" IN { #正向解析"lic.com"区域
type master; #类型为主区域
3. file "ln. com. zone"; ps:指定区域数据文件为ln. com. zone
4.allow-update { none; };
};5.wq保存退出
1.cd /var/named/
2.cp -p named.localhost ln.com.zone #保留源文件的权限和属主的属性复制
3.vim /var/named/lic.com.zone
4.$TTL 1D #设置缓存解析结果的有效时间
5. @ IN SOA ln.com. admin.lic.com. (
0; serial .
1D; refresh
1H; retry
1W; expire
3H ) ; minimum
NS ln.com. #记录当前区域的DNS服务器的名称
A 192.168.75.10 #记录主机IP地址
IN MX 10 mail.lic.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.75.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.75.19
ftp IN CNAME www #CNAME使用别名,ftp是www的别名
* IN A 192.168.75.20 #泛域名解析,“*"代表任意主机名
1.systemctl start named
2.systemctl stop firewalld
3.setenforce 0
4.tail -f /var/log/ message #如果服务启动失败,可以查看日志文件来排查错误
5.named-checkconf -z /etc/name.conf #查看配置文件有没有出错
6.rndc-confgen -r /dev/urandom -a #如果服务启动卡住,可以执行此命令解决
第一种方法
1.vim /etc/resolv.conf #修改完后立即生效
2.nameserver 192.168.75.10第二种方法
1..vim /etc/ sysconfig/network- scripts/ ifcfg-ens33 #修改完后需要重启网卡
2.DNS1=192.168.75.10
3.systemctl restart network
host www.ln.com
nslookup www.ln.com
nslookup ftp.ln.com
1.vim /etc/named. rfc1912. zones #文件里有模版,可复制粘贴后修改
2.zone "75.168.192. in-addr.arpa" IN { #反向解析的地址倒过来写,代表解析 192.168.100段的地址
3. type master;
4. file "ln.com.zone.local"; #指定区域数据文件为ln.com.zone.local
allow-update { none; } ;
5.wq保存退出
1.cd /var/ named/
2.cp -p named.localhost ln.com.zone.local
3.vim /var/named/ln.com.zone.local
4.$TTL 1D
5.@ IN SOA ln.com. admin.ln.com. ( #这里的“@"代表192.168.80段地
0 ; serial
1D ; refresh
1H ; retry
1W ; expi re
3H ) ; minimum
6. NS ln.com.
7. A 192.168.75.10
8.100 IN PTR WWW.lic.com.
9.200 IN PTR mail.ln.com
#PTR为反向指针,反向解析192.168.80.200地址结果为www.lic.com.
邮箱地址为mail.lic.com10.wq保存退出
systemctl restart named
host 192.168.100.100
ns1ookup 192.168.100.100
host 192.168.200.200
ns1ookup 192.168.200.200
(ps:就是我们现在再用的这台服务器)
1.vim /etc/named.rfc1912.zones
2.zone "lic.com" IN {
3. type master; #类型为主区域
4. file "lic.com.zone";
5. allow-transfer { 192.168.75.10; }; #允许从服务器下载正向区域数据,这里添从服务 器的IP地址
};
6.zone "100.168.192.in-addr.arpa" IN {
7. type master;
8.file "lic.com.zone.local";
9.allow-transfer { 192.168.75.10; };
};
1.vim /etc/ named.rfc1912.zones
2.zone "ln.com" IN {
3.type slave; #类型为从区域
4.masters { 192.168.75.10; } ; #指定主服务器的IP地址
file "slaves/ln.com.zone"; #下载的区域数据文件保存到slaves/目录下
};
5.zone "100.168.192.in-addr.arpa" IN {
6.type slave;
7.masters { 192.168.75.10; } ;
8.file "slaves/ln.com.zone.local" ;};
9.wq保存退出
分离解析:同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址
分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址的客户机请求解析同一域名时,为其提供不同的解析结果。
配置网关服务器搭建DNS分离解析
实验环境:CentOS7、虚拟机win10
在网关服务器搭建DNS分离解析,
局域网主机解析www.ln.com 为192.168.75.10,
外网主机解析 www.ln.com 为。
1.vim /etc/named.rfc1912.zones
2.view "lan" { #定义内网view,view代表容器分割
3.match-clients { 192.168.20.0/24; }; #匹配内网网段
4zone "benet.com" IN { #设置要解析的区域
type master;
file "benet.com.zone.lan"; }; #数据配置文件
5。zone "." IN { #可将根域配置从主配置文件剪切过来,dd+p
6. type hint; #hint是根区域类型
7. file "named.ca"; };
};
8.view "wan" { #定义外网view
9.match-clients { any; }; #匹配除了内网网段以外的任意地址
10.zone "long.com" IN {
11. type master;
12. file " benet.com.zone.wan"; };
1、DNS 正向 反向
2、DNS工作原理包含递归、迭代查询原理
3、主从原理(主服务器宕机,从服务器顶替工作)
4、缓存原理(缓存每次域名服务器查询的结果,查询相同的信息时用它予以响应)
5、分离解析(外网与内网共用一个域名)
6、服务配置文件
6.1 bind服务主配置文件
6.2bind服务区域配置文件
6.3 bind服务区域数据配置文件