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失败、域名解析不了、有防火墙阻挡,有去无回