DNS域名解析

域名系统

FQDN,全称域名
www.magedu.org
主机名www+域名magedu.com

名称解析服务:将域名解析成ip地址

路径:

Linux: /etc/hosts
windows: %WINDIR%/system32/drivers/etc/hosts

#格式
10.0.0.8 www.baidu.com www

在这里插入图片描述

com:公司
net:网络公司
edu:教育
gov:政府
org:组织,一般指非盈利组织
mil:军事
int:互联网

#根域是点,一般省略不写,顶级域由国际组织管理,二级域申请了有使用权后可自定义主机名,如www

1 访问流程

以www.magedu.com为例

简单化
用户发起访问请求—>DNS服务器解析,没有缓存就帮忙转发查找—>先找根域,再到根域下的.com域,再到.com服务器下的magedu.com域名服务器—>返回DNS解析服务器,存入查询缓存,下次有其他用户访问可直接在缓存查找—>用户正常访问

具体化
Client -->hosts文件 —> Client DNS Service Local Cache本机的缓存 —> 第一个DNSServer (recursion递归) —> 第一个服务器的缓存DNS Server Cache —> 帮忙查找DNSiteration(迭代) —> 根—> 顶级域名DNS—>二级域名DNS… —>返回DNS解析服务器,存入查询缓存,下次有其他用户访问可直接在缓存查找—>用户正常访问

递归查询:负责到底,客户端向第一个dns服务器询问,返回结果

迭代查询:不负责到底,知道就给你,不知道推荐你去问别人,第一个dns服务器再去问别人,不一定返回,会推荐

ping -a 10.0.0.8   #可查看ip地址的计算机名

2 bind软件包,搭建dns服务器

#可节约带宽,提高效率
yum -y install bind bind-utils

#启动服务
systemctl enable --now named        #监听端口53、953,可用ss -ntulp查看

#单个,自己给自己
#指定自己的机器为dns解析服务器,改网卡配置文件即可
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=127.0.0.1

#生效服务
#centos8
nmcli connection reload
nmcli connection up eth0

#centos7
systemctl restart network

#指定本机为dns解析服务器,改下面的内容或者直接注释掉
vim /etc/named.conf
options {
    listen-on port 53 { localhost; };   #localhost表示本机所有ip,也可注释掉本行,默认是localhost
	......
	allow-query     { any; };           #查询权限,any表示所有都开放,也可写成网段10.0.0.0/24
#注意;符号,格式需要,也可直接注释掉这两行

#其他机器指定设置的服务器为解析器    
yum -y install bind-utils           #工具包,里面的host、dig命令可用于检查解析结果
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=10.0.0.8                       #设置服务器的ip

#生效服务
systemctl restart named
rndc reload               #生产中建议使用该命令,不会断开服务,如不可行再选择重启服务

#清空dns缓存
rndc flush

udp53端口用于提供解析查询作用,tpc53端口用于dns的数据主从同步,都参与复制同步

iptables -F    #打开手动关闭的端口
2.1 dns解析数据库
#路径在/var/named/下
[root@rocky2]#cd /var/named/
touch wei.org.zone
chmod 640 wei.org.zone       #安全起见,需改权限和所属
chgrp named wei.org.zone

#配置文件
[root@rocky2]#vim /etc/named.conf
options {
//    listen-on port 53 { localhost; };   #localhost表示本机所有ip,也可注释掉本行,默认是localhost
	......
//	allow-query     { any; };             #查询权限,any表示所有都开放,也可写成网段10.0.0.0/24
	allow-transfer  { 10.0.0.18;};        #只允许10.0.0.18机器拉取数据库文件同步,用于安全

#格式参考named.localhost文件
[root@rocky2]#vim wei.org.zone             #方便管理启用所需解析域名为文件名,后缀无所谓
$TTL 1D                                    #也可自己行自己定义
@         IN SOA master admin.qq.com. ( 20230503 3H 10M 1D 6H )
             NS  master                    #标明当前域的dns服务器
             NS  ns1                       #从服务器
sz           NS  ns2                       #添加子域
master       A   10.0.0.8                  #所用的解析服务器,需标明ip
ns1          A   10.0.0.18                 #从服务器ip
ns2          A   10.0.0.28                 #管理子域的ip,子域如www.sz.wei.org
www          CNAME websrv                  #别名
websrv       A   10.0.0.200                #所需使用的ip,域名主机
db           A   1.1.1.1                   
@            MX  10 mail                   #MX邮件服务器,接收发送邮件,可多个,10是优先级,
mail         A   10.0.0.11                 #邮件地址
*            A   10.0.0.20                 #除了文件里的主机名,其他所访问的本域名内所有主机的都指向该地址
@            A   10.0.0.8                  #不按www主机名访问域名可指向该地址
#按需选择搭建

#改配置文件,使文件生效,直接添加即可
[root@rocky2]#vim /etc/named.rfc1912.zones
zone "wei.org" {                           #需要解析的域名
	type master;                           #类型主服务器master
	file "wei.org.zone";                    #文件路径       
};

#检查
named-checkconf                                   #语法检查
named-checkzone wei.org /var/named/wei.org.zone   #格式检查,域名加路径

#生效服务
systemctl restart named
rndc reload               #生产中建议使用该命令,不会断开服务,如不可行再选择重启服务

#检查通讯与否
dig  域名     #需下载utils包
curl 域名

#访问需改指向dns解析为所指定的dns解析服务器,改网卡配置文件,win系统可直接改网卡文件
#注意域名尽量不跟互联网上的域名有冲突
2.2 named.localhost文件格式
[root@rocky2  named]#cat named.localhost 
$TTL 1D                                    #统一该文件的缓存时间为一天,后续可省略不写
@	IN SOA	@ rname.invalid. (             #SOA类型必须为第一条记录,@表示当前所需解析的域名、本机的,邮箱、@改成点
					0	; serial           #主从数据同步用版本号,如文件更新需手动加大该值,主推从拉
					1D	; refresh          #从服务器询问主服务器变化更新的周期时间,有更新就拉取        
					1H	; retry            #从服务器拉取更新失败后再次拉取时间,以保证数据同步
					1W	; expire           #从服务器数据有效期,减少数据错误的可能
					3H )	; minimum      #错误记录的缓存时间,节约资源   
	NS	@
	A	127.0.0.1
	AAAA	::1
2.3 rr_type类型
name   [TTL] IN rr_type value
#域名   缓存期  IN固定写法   type类型  值

#各种类型
SOA:Start Of Authority,#起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录
A:internet Address,#作用,FQDN --> IP      域名解析为ip
AAAA:#FQDN --> IPv6
PTR:PoinTeR,#IP --> FQDN                  ip反向解析为域名
NS:Name Server,#专用于标明当前区域的DNS服务器
CNAME : Canonical Name,#别名记录
MX:Mail eXchanger,#邮件交换器
TXT:#对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等,
2.4 备用dns服务器
yum -y install bind

#相关配置
[root@rocky2]#vim /etc/named.conf
options {
//    listen-on port 53 { localhost; };  
	......
//	allow-query     { any; }; 
	allow-transfer  { none;};                #设置不允许拉取数据库文件同步

[root@rocky2]#vim /etc/named.rfc1912.zones
zone "wei.org" {                             #域名跟主服务器一样
	type slave;                              #类型从服务器slave
	masters {10.0.0.8;};                     #主服务器的ip
	file "slaves/wei.org.zone.slave";        #文件路径固定在slave下,文件名没要求,在这里取名为方便区分       
};

#生效服务
systemctl restart named
rndc reload               #生产中建议使用该命令,不会断开服务,如不可行再选择重启服务

#需改所需访问主机网卡配置文件DNS2指向备用DNS服务器的ip地址
#主推从拉,主服务器DNS数据库有更改记得改版本号
2.5 子域搭建
#方法差不多,在根域上添加指向子域的管理ip,然后在该ip上搭建dns服务器即可      如域名 sz.wei.org

3 添加转发

#搭建配置文件一样
#在需设转发的主机上更改
[root@rocky2]#vim /etc/named.conf
options {
	forward   only;  或者first     #only有就有,没有就没有;first如转发后解析不来会自己到根域去查询
	forwarders  {10.0.0.18;};     #指向要转发的主机ip,ip18要是断网后如所对应主机没有缓存会无法解析

	dnssec-enable no;             #更改这两项为no,转发加密的机制
    dnssec-validation no;

#更改转发指向
vim /etc/named/named.ca
.                   518400   IN     NS    a.root-servers.net
#根               访问数值     固定格式     服务器名称,固定写法,根据二十六个字母排序
a.root-servers.net  3600000  IN     A     10.0.0.28        #服务器指向

#后续生效dns服务即可

4 智能dns,就近原则

#原理相同,搭建相关数据库文件,路径在/var/named/下,wei.org.zone.bj
vim /etc/named.conf
acl beijingnet {               #在options前面定义acl的值命名beijingnet,
	10.0.0.0/24;               #定义的网段是属于在beijingnet
}
#将最后的zone根域块切到/etc/named.rfc1912.zones文件里面
#添加区域数据库指引
view beijingview {
	match-clients { beijingnet; };           #网络地域指引
	include "/etc/named.rfc1912.zones.bj";   #指引数据库文件
};

#拷贝/etc/named.rfc1912.zones文件更改命名和里面相关数据库文件指引
[root@rocky2]#vim /etc/named.rfc1912.zones.bj
zone "wei.org" {                         
	type master;                          
	file "wei.org.zone.bj";                 
};

5 简单提升效率

  • 搭建多台主机,共用一个域名,以达到平摊轮换访问数的目的
  • centos/rocky系列在客户端可安装nscd包用于缓存以减少dns服务器的压力,设置开机自启,ubuntu默认有缓存功能

6 反向解析

www.wei.org. --> 10.0.0.8    #正向解析

#反向解析
10.0.0.8 --> www.wei.org.
8.0.0.10.in-add.arpa. --> www.wei.org.      #in-add.arpa根下的路径

#步骤跟正向解析差不多,改类型为PTR反向解析
[root@rocky2]#vim /etc/named.rfc1912.zones
zone "0.0.10.in-add.arpa" {                #需要解析的域名,留意前面的8是主机名,8.0.0.10
	type master;                           #类型主服务器master
	file "10.0.0.zone";                     #文件路径       
};

[root@rocky2]#cp wei.org.zone 10.0.0.org.zone
[root@rocky2]#vim 10.0.0.org.zone
$TTL 1D                                   
@         IN SOA master admin.qq.com (20230503 3H 10M 1D 6H )
             NS  master                   
master       A   10.0.0.8
8            PTR www.wei.org.            #注意最后要加点.
18           pTR db.wei.org.

#检查  
named-checkconf                                                 #语法检查
named-checkzone 0.0.10.in-add.arpa /var/named/10.0.0.org.zone   #格式检查,域名加路径

#生效服务
systemctl restart named
rndc reload               #生产中建议使用该命令,不会断开服务,如不可行再选择重启服务
6.1 bind,bind-utils

工具包,里面的host、dig命令可用于检查解析结果

dig
@ip 访问指定ip地址来解析
-x  反向解析
-t axfr wei.org   可直接拉取域名里的数据库信息,前提是可访问权限 

7 访问失败原因

1、解析失败

2、地址无法访问,网络不通,网站服务没开

ping失败、域名解析不了、有防火墙阻挡,有去无回
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值