24_linux笔记-DNS服务-爱代码爱编程
文章目录
参考博客
https://blog.csdn.net/loukundeboke/article/details/80012231
知识点1 DNS服务
DNS( Domain Name System) 域名系统
前提:
我们网络中都是使用ip地址通信,无论是访问服务,还是不同主机间进行数据交换
ip地址非常多,如果每个服务都通过ip地址来登录的话,用户就需要记住这些很复杂的ip地址,不方便用户使用
就像保存在手机里的电话号码一样,会有一个备注,通过这个备注 就可以找到正确的相应联系人的电话
那域名解析跟这个实现差不多,在普通用户中,我们用域名来访问服务,域名就通过域名解析来获取到ip地址
dns服务就像电话簿,提供了可以查询的域名到ip地址的映射关系
#注:在浏览器中输入www.taobao.com,敲回车的一瞬间,先去解析域名
1、完全限定域名 FQDN
FQDN:Full Qualified Domain Name,完全限定域名,即每个域在全球网络都是唯一的;另外值得提到的一点是域并不是指诸如www.google.com这样的域名,而google.com才是域
#注:www.music.163.com/ 163.com是域,前面是主机名
安装dns服务软件包bind
[root@cPen_B ~]# yum install bind
#注:安装后,数据存放在/var/named/下
[root@cPen_B ~]# cd /var/named/
[root@cPen_B named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
2、域的分类
一、根域(.) 全球13组根域名服务器以英文字母A到M依序命名,域名格式为“字母.root-servers.net”
在/var/named/name.ca文件中可以查看 # 注:标识为.
二、顶级域
顶级域:顶级域(Top Level Domain,简称TLD)分为三类
1> 通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等
2> 国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(日本) .hk
3> 反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析 # 注:反向查找
#注:正向域:从域名到ip; 反向域:从ip到域名
三、
二级域
三级域
www.sc.163.com --> 顶级域.com -->二级域163.com -->三级域sc.163.com
#注:前面的www是它的主机名
3、DNS解析
正向解析 域名 --> ip
反向解析 ip --> 域名
常用命令域名解析命令:
1、Ping
[root@cPen_A ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=16.3 ms
#注:ping命令只能返回1个ip
2、host
安装bind-utils软件包
yum install bind-utils
[root@cPen_A ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.#注:为www.a.shifen.com取别名www.baidu.com
www.a.shifen.com has address 14.215.177.38 #注:ip地址
www.a.shifen.com has address 14.215.177.39
3、dig #注:看的比较详细,推荐
[root@cPen_A ~]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com. 34 IN CNAME www.a.shifen.com.
www.a.shifen.com. 216 IN A 14.215.177.38
www.a.shifen.com. 216 IN A 14.215.177.39
4、nslookup
[root@cPen_A ~]# nslookup www.baidu.com
www.baidu.com canonical name = www.a.shifen.com. #注:查询的时候会加上根域,平时感觉不到
Address: 14.215.177.38
Address: 14.215.177.39
#注:可以拿DNS实现分流的作用。将新机器的域名地址解析成2个ip
#注:负载均衡:把很多机器当做1台机器使用。DNS可以做到负载均衡,把流量分发的很多机器
#注:高可用:1台机器去服务 它跪掉了,高可用就是这台机器跪掉了,把流量引导其他机器
#注:高可用 避免单点故障
#注:运维思想:备份、高可用。比如系统盘2块,其中1块跪掉了,另外一块还能继续服务
#注:负载均衡和高可用 一般一起存在
DNS服务软件:bind
默认端口 upd协议 53号端口
[root@cPen_A ~]# less /etc/services
domain 53/udp
示例:修改/etc/hosts文件
[root@cPen_A ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@cPen_A ~]# ping localhost #注:解析成127.0.0.1
PING localhost (127.0.0.1) 56(84) bytes of data.
[root@cPen_A ~]# 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@cPen_A ~]# ping www.baidu.com
PING www.baidu.com (127.0.0.1) 56(84) bytes of data. #注:解析成127.0.0.1
[root@cPen_A ~]# ping baid.com
PING www.baidu.com (127.0.0.1) 56(84) bytes of data. #注:解析成127.0.0.1
#注:/etc/hosts文件 解析时 优先级最高
示例:解析网址
[root@cPen_A html]# pwd
/usr/share/nginx/html
[root@cPen_A html]# vim index.html
hello world
cPen
[root@cPen_A html]# ip a
inet 192.168.0.19/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
#Windows机器上
Windows:C:\Windows\System32\drivers\etc\hosts
#注:hosts文件里
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.0.39 www.ldj.com #注:添加这一条
这样在浏览器查找 www.ldj.com 就会访问到linux机器上的网址。www.ldj.com被解析成192.168.0.39
知识点2 DNS解析过程
DNS解析过程:
#注:面试题:当敲入www.baidu.com 发生什么事情
1、先查找本地hosts文件,linux:/etc/hosts; Windows:C:\Windows\System32\drivers\etc\hosts
可以解析就直接返回地址
2、hosts文件不能解析,去看本地缓存。如果有,则返回结果,没有就进行下一步查找
linux下域名缓存:nscd服务
[root@cPen_A html]# yum install nscd
[root@cPen_A html]# service nscd restart #注:清除缓存 (重启服务就是清除缓存)
缓存会有缓存时间,缓存多久可以指定的
#注:设置了DNS服务,但是设置了没有生效,考虑1、缓存 清除缓存和2、/etc/hosts是否写死
3、本地缓存没有找到,就会去请求本地的域名服务器,本地域名服务器有 就返回查询结果
Linux下指定域名解析服务器文件 /etc/resolv.conf (配置本地域名服务器ip地址的文件)
第1个指定的nameserver就是首选dns服务器,剩下的都是备选dns服务器
[root@cPen_A html]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114 #注:可以指定多个ip 去解析ip
nameserver 192.168.0.1 #注:用nameserver指定
[root@cPen_A html]# dig www.baidu.com
;; SERVER: 114.114.114.114#53(114.114.114.114) #注:访问114.114.114.114 53号端口去解析ip
4、本地域名服务器没有找到相应记录,如果设置转发查找,就会去转发的服务器上去查询。如果没有设置转发,或者都没有找到,就会去根域查找 (迭代查找)
本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机
#注:面试题:当敲入www.baidu.com 发生什么事情 (DNS解析流程)
答:DNS解析流程
第1步 先去 本地hosts文件(/etc/hosts)去找 ip和域名的映射关系。有就返回。没有就去
第2步 本地DNS缓存 找…。有就返回。没有就去
第3步 本地的域名服务器 (/etc/resolv.conf)找…。有就返回。没有就
第4步 如果本地域名服务器 设置转发查找,就会去转发的服务器 上找…, 有就返回。
没有找到 或 没有设置 就去 根域查找,先在根域里找到顶级域的服务器ip地址 返回顶级域的ip地址给本地域名服务器
本地域名服务器再去顶级域名服务器 找,没有找到就返回二级域服务器的ip地址,本地域名服务器去二级域里找,没有找到 返回三级域的ip地址给本地域名服务器……迭代查找,直到找到整个域名才返回
或者说 去根域查找,迭代查找, 直到找到为止
知识点3 dns服务的类型
1、缓存域名服务器
2、主域名服务器
这上面定义了真正的ip到域名的映射关系
3、从域名服务器
上面的数据域名映射 从主域名服务器获取
1、缓存域名服务器
也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
3、主域名服务器
特定DNS区域的官方服务器,具有唯一性,权威性
负责维护该区域内所有域名->IP地址的映射记录
3、从域名服务器
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
知识点4 域名服务器配置
1、安装bind、bind-utils
域名解析主程序
[root@cPen_B etc]# which named
/usr/sbin/named
2、配置文件
如果没有安装bind-chroot软件包
主配置文件: /etc/named.conf 数据文件位于:/var/named/目录
[root@cPen_B etc]# less /etc/named.conf
3、修改配置
1、 vim /etc/named.conf # 注:全局配置文件
options {
listen-on port 53 { 127.0.0.1; };
listen-on port 53 { any; }; # 注:将监听地址改成any,设置监听在本机的任意ip上
allow-query { localhost; }; # 注:允许访问服务的主机
allow-query { any; }; # 注:将权限设置为any,允许任何人来查询
zone "." IN { # 注:定义根域
type hint; # 注:指定根域
file "named.ca"; # 注:在named.ca里去找 /var/named/named.ca
};
include "/etc/named.rfc1912.zones"; # 注:定义其他域
include "/etc/named.root.key";
2、域配置文件 /etc/named.rfc1912.zones
添加域配置:
[root@cPen_B ~]# vim /etc/named.rfc1912.zones
zone "sc.com" IN { # 注:添加sc.com域的解析
type master; # 注:主域名服务器
file ""sc.com""; # 注:域名配置存放文件 (域的解析从哪里文件里去找)
allow-update { none; };
};
4、配置指定域的解析文件
目录:/var/named
#注:注意权限, named用户要可读
#注:注意属组
[root@cPen_B named]# cp named.empty sc.com
[root@cPen_B named]# pwd
/var/named
[root@cPen_B named]# vim sc.com
$TTL 3H ; 注:缓存时间
@ IN SOA sc.com. ( ; 注:修改的地方
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
;注:A记录 正向解析记录
dns A 192.168.136.129 ;注:dns服务器的IP地址
www A 192.168.136.129 ;注:www服务器的IP地址
* A 192.168.136.123 ;注:配置泛域名解析
;mail MX 192.168.136.129 ;注:分号注释
;dns IN 600 A 192.168.136.129 ;注:配置A记录解析 缓存时间为600s
[root@cPen_B named]# service named restart # 注:重启服务
[root@cPen_B named]# lsof -i:53 # 注:端口起来了
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
named 1839 named 21u IPv4 42519 0t0 TCP localhost:domain (LISTEN)
named 1839 named 22u IPv4 42521 0t0 TCP cPen_B:domain (LISTEN)
named 1839 named 23u IPv6 42523 0t0 TCP localhost:domain (LISTEN)
[root@cPen_B named]# dig www.sanchuang.com
;; SERVER: 192.168.136.2#53(192.168.136.2)
[root@cPen_B named]# cat /etc/resolv.conf # 注:指定本机的DNS服务器
# Generated by NetworkManager
search localdomain
nameserver 192.168.136.2
[root@cPen_B named]# dig www.sc.com @192.168.136.129 # 注:用192.168.136.129去解析
;; QUESTION SECTION:
;www.sc.com. IN A
;; ANSWER SECTION:
www.sc.com. 10800 IN A 192.168.136.129 # 注:解析成功
;; AUTHORITY SECTION:
sc.com. 10800 IN NS sc.com.
#设置反向域
[root@cPen_B named]# vim /etc/named.rfc1912.zones
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
[root@cPen_B named]# pwd
/var/named
[root@cPen_B named]# less named.loopback
知识点5 资源记录类型
(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记录不生效。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/cPen_web/article/details/110405214