FQDN:Full Qualified Domain Name,
完全限定域名,即每个域在全球网络都是唯一的;另外值得提到的一点是域并不是指诸如www.google.com这样的域名,而google.com才是域;
2、域的分类
一、根域(.)13组根域名服务器以英文字母A到M依序命名,域名格式为“字母.root-servers.net”
在/var/named/namd.ca文件中可以查看
二:顶级域
顶级域:顶级域(Top Level Domain,简称TLD)分为三类
1> 通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等
2> 国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(日本) .hk
3> 反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析
三:
二级域
三级域
www.sc.163.com -->顶级域.com -->163.com --> sc.163.com
常用域名解析命令:
安装bind-utils软件包
[root@b named]# yum install bind-utils·
1、ping
[root@b named]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=55 time=15.0 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=55 time=14.3 ms
2、host
[root@b named]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 14.215.177.39
www.a.shifen.com has address 14.215.177.38
3、dig
[root@b named]# dig www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.2 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62633
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 40 IN CNAME www.a.shifen.com.
www.a.shifen.com. 231 IN A 14.215.177.39
www.a.shifen.com. 231 IN A 14.215.177.38
4、nslookup
[root@b named]# nslookup www.baidu.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 14.215.177.39
Name: www.a.shifen.com
Address: 14.215.177.38
[root@scmysql etc]# which dig
/bin/dig
[root@scmysql etc]# rpm -qf /bin/dig
bind-utils-9.11.4-26.P2.el7_9.8.x86_64
[root@scmysql etc]# rpm -ql bind-utils
/etc/trusted-key.key
/usr/bin/delv
/usr/bin/dig
/usr/bin/host
/usr/bin/mdig
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/share/man/man1/delv.1.gz
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/mdig.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz
负载均衡
高可用 避免单点故障
DNS 服务软件: bind
默认端口udp协议 53号端口
修改/etc/hosts 文件
[root@b named]# vim /etc/hosts
[root@b named]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 www.baidu.com baid.com
[root@b named]# ping www.baidu.com
PING www.baidu.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.054 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.054/0.056/0.058/0.001 ms
[root@b named]# ping baid.com
PING www.baidu.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.101 ms
DNS解析过程
1、去找本地dns缓存,如果有则返回结果,没有就进行下一步查找。
linux下域名缓存:nscd服务
缓存会有缓存时间,缓存多久可以指定的
[root@b html]# yum install nscd
[root@b html]# service nscd restart #清除缓存
2、查找本地hosts文件(linux: /etc/hosts),可以解析就直接返回地址。
3、host文件没有找到,就会去请求本地的域名服务器,本地域名服务器有就返回结果。
linux下指定域名解析服务器文件:
/etc/resolv.conf
第一个指定的nameserver 就是首选dns服务器
剩下的都是备选dns服务器
[root@b html]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
#nameserver 8.8.8.8
#nameserver 192.168.0.1
4、本地域名服务器没有找到相应记录,如果设置转发查找,就会去转发的服务器上去查询。如果没有设置转发,或者都没有找到,就会去根域查找。
本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。
本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。
当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机
##########dns服务
1、缓存域名服务器
2、主域名服务器
这上面定义了真正的ip到域名的映射关系
3、从域名服务器
上面的数据域名映射从 主域名服务器来获取
#########域名服务器配置
1、安装
bind
bind-utils
域名解析主程序
[root@b network-scripts]# which named
/sbin/named
2、 配置文件
如果没有安装bind-chroot软件包
主配置文件: /etc/named.conf 数据文件位于: /var/named/ 目录
3、修改配置
1、vim /etc/named.conf
options {
listen-on port 53 { any; }; #将监听地址改成any,设置监听在本机的任意ip上。
...
allow-query { any; }; #将权限设置为any,允许任何人来查询
}
zone "." IN {
type hint; #指定根域
file "named.ca"; #在named.ca里去找 /var/named/named.ca
};
2、域配置文件 /etc/named.rfc1912.zones
添加域配置:
zone "sc.com" IN { #添加sc.com域的解析
type master; #主域名服务器
file "sc.com"; #域名配置存放文件
allow-update { none; };
};
3、配置指定域的解析文件
目录: /var/named
#注意权限, named用户要可读
#注意属组
[root@b named]# cp named.empty sc.com
[root@b named]# pwd
/var/named
[root@b named]# cat sc.com
$TTL 3H #缓存时间
@ IN SOA sc.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
dns A 600 192.168.0.39 ;配置A记录解析 缓存时间为600s
www A 192.168.0.39
* A 192.168.0.123 ;配置泛域名解析
资源记录类型:
(1)A记录(Address)正向解析
A记录是将一个主机名(全称域名FQDN)和一个IP地址关联起来。这也是大多数客户端程序默认的查询类型。
(2)PTR记录(Pointer)反向解析
PTR记录将一个IP地址对应到主机名(全称域名FQDN)。这些记录保存在in-addr.arpa域中。
(3)CNAME记录(Canonical Name)别名
别名记录,也称为规范名字(Canonical Name)。这种记录允许您将多个名字映射到同一台计算机。
(4)MX记录(Mail eXchange)
MX记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。MX记录也叫做邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。
当有多个MX记录(即有多个邮件服务器)时,则需要设置数值来确定其优先级。通过设置优先级数字来指明首选服务器,数字越小表示优先级越高。
(5)NS记录(Name Server)
NS(Name Server)记录是域名服务器记录,也称为授权服务器,用来指定该域名由哪个DNS服务器来进行解析。
将网站的NS记录指向到目标地址,在设置NS记录的同时还需要设置目标网站的指向,否则NS记录将无法正常解析
NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。
DNS (Domain Name System)是一个协议,准确的说是一个基于 UDP 的应用层协议。主要用途是将一个域名解析成 IP 地址,这个过程叫做域名解析 (Name resolution)。
DNS的三种查询方式:
迭代查询,递归查询,非递归查询
递归查询是这么一种查询方式,一般发生在 Client 请求 DNS Server。Client 发出一个域名解析的请求,DNS Server 必须返回对应的 IP 地址,或者返回找不到的错误。
迭代查询一般发生在 DNS Server 之间,当 Client 发出域名解析的请求后,DNS Server 需要给予最佳答案,这个最佳答案可能是"距离最近"的顶级域名服务器,也能是权威域名服务器。无论如何,Client 需要对返回结果再次发起请求,知道获得最终结果。
非递归查询发生在 Client 和 DNS Server 之间,指的是,请求的 DNS Server 已经知道答案,直接返回。这里可能有两种情况,一种是 DNS Server 本机缓存了对应的 IP,或者是缓存了对应的域名的权威服务器。第二种情况只需要再发一次请求,即可拿到结果返回。