Linux | DNS服务

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的三种查询方式

DNS (Domain Name System)是一个协议,准确的说是一个基于 UDP 的应用层协议。主要用途是将一个域名解析成 IP 地址,这个过程叫做域名解析 (Name resolution)

DNS的三种查询方式:

迭代查询,递归查询,非递归查询

递归查询 (Recursive query)

递归查询是这么一种查询方式,一般发生在 Client 请求 DNS Server。Client 发出一个域名解析的请求,DNS Server 必须返回对应的 IP 地址,或者返回找不到的错误。

迭代查询 (Iterative query)

迭代查询一般发生在 DNS Server 之间,当 Client 发出域名解析的请求后,DNS Server 需要给予最佳答案,这个最佳答案可能是"距离最近"的顶级域名服务器,也能是权威域名服务器。无论如何,Client 需要对返回结果再次发起请求,知道获得最终结果。

非递归查询 (Non-recursive query)

非递归查询发生在 Client 和 DNS Server 之间,指的是,请求的 DNS Server 已经知道答案,直接返回。这里可能有两种情况,一种是 DNS Server 本机缓存了对应的 IP,或者是缓存了对应的域名的权威服务器。第二种情况只需要再发一次请求,即可拿到结果返回。

Linux | DNS服务_第1张图片

你可能感兴趣的:(linux,linux)