Linux:DNS服务

DNS服务 C/S

DNS:Domain Name Service 应用层协议
服务器端口:C/S,53/udp, 53/tcp
BIND:Bekerley Internat Name Domain
ISC (www.isc.org)bind官网

本地名称解析配置文件:
/etc/hosts

hosts文件和dns优先顺序:
/etc/nsswitch.conf

windows:
/system32/drivers/etc/hosts

分散式:配置每个主机的hosts文件
集中式:NIS服务名词解析,集中存放在一个服务器上
分布式:DNS解决方案

www.dushan.com 全称域名(主机名|别名+域名)
www            主机名或别名
dushan.com     域名

DNS域名

根域
一级域名:Top Level Domain: tld
        com, edu, mil, gov, net, org, int,arpa
        三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名 
三级域名 www.sina.com.cn
最多127级域名

ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用*域名(gTLD)以及国家和地区*域名(ccTLD)系统的管理、以及根服务器系统的管理

Linux:DNS服务
上级域知道下级域IP
下级域不知道上级域IP

大概流程:
用户通过小区DNS服务器想访问www.dushan.com这个网站,
小区DNS不知道www.dushan.com是哪的地址,需要找到权威的DNS服务器去问,
可是又不知道谁是,小区DNS就会去问根域。根一看是com的就会告诉他去找.com的问。
com也不知道,但是会告诉他去找dushan的问。直到找到权威的服务器。找到之后缓存到
自己的机器上然后告诉用户主机解析这个网站。

基于名字访问所以用到DNS解析服务。
QQ不依赖于DNS,因为内置IP地址。所以有时候QQ能上,网站打不开。

DNS查询类型:

递归查询:自己去一级级问,最终交给用户
迭代查询:推荐去哪级查,让用户自己去查

名称服务器:域内负责解析本域内的名称的主机
根服务器:13组服务器
IPV4一共13个根域服务(10个在美国,1个在荷兰,1个在瑞典,1个在日本)
IPV6一共25个根域服务(中国有1个主3个从,主在北京,从在上海,成都,广东)

解析类型:
FQDN --> IP 正向解析
IP --> FQDN 反向解析 arpa域:反向解析域
注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

www.baidu.com回车后发生了什么
DNS方面:

hosts文件
DNS Service Local Cache 缓存  win:缓存 ipconfig/displaydns  清缓存 ipconfig/flushddns
interation(迭代)-->根-->*域名DNS-->二级域名DNS...找到

bind服务器

服务脚本和名称:/etc/rc.d/init.d/named /usr/lib/systemd/system/named.service
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
解析库文件:/var/named/ZONE_NAME.ZONE

根服务器路径名:/var/named/named.ca

[[email protected] ~]#grep -v '^;' /var/named/named.ca    (-V排除;注释)

.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
.                       518400  IN      NS      c.root-servers.net.
.                       518400  IN      NS      d.root-servers.net.
.                       518400  IN      NS      e.root-servers.net.
.                       518400  IN      NS      f.root-servers.net.
.                       518400  IN      NS      g.root-servers.net.
.                       518400  IN      NS      h.root-servers.net.
.                       518400  IN      NS      i.root-servers.net.
.                       518400  IN      NS      j.root-servers.net.
.                       518400  IN      NS      k.root-servers.net.
.                       518400  IN      NS      l.root-servers.net.
.                       518400  IN      NS      m.root-servers.net.

a.root-servers.net.     3600000 IN      A       198.41.0.4              IPV4正向解析A记录
a.root-servers.net.     3600000 IN      AAAA    2001:503:ba3e::2:30     IPV6正向AAAA记录
b.root-servers.net.     3600000 IN      A       192.228.79.201
b.root-servers.net.     3600000 IN      AAAA    2001:500:84::b
c.root-servers.net.     3600000 IN      A       192.33.4.12
c.root-servers.net.     3600000 IN      AAAA    2001:500:2::c
d.root-servers.net.     3600000 IN      A       199.7.91.13
d.root-servers.net.     3600000 IN      AAAA    2001:500:2d::d
e.root-servers.net.     3600000 IN      A       192.203.230.10
e.root-servers.net.     3600000 IN      AAAA    2001:500:a8::e
f.root-servers.net.     3600000 IN      A       192.5.5.241
f.root-servers.net.     3600000 IN      AAAA    2001:500:2f::f
g.root-servers.net.     3600000 IN      A       192.112.36.4
g.root-servers.net.     3600000 IN      AAAA    2001:500:12::d0d
h.root-servers.net.     3600000 IN      A       198.97.190.53
h.root-servers.net.     3600000 IN      AAAA    2001:500:1::53
i.root-servers.net.     3600000 IN      A       192.36.148.17
i.root-servers.net.     3600000 IN      AAAA    2001:7fe::53
j.root-servers.net.     3600000 IN      A       192.58.128.30
j.root-servers.net.     3600000 IN      AAAA    2001:503:c27::2:30
k.root-servers.net.     3600000 IN      A       193.0.14.129
k.root-servers.net.     3600000 IN      AAAA    2001:7fd::1
l.root-servers.net.     3600000 IN      A       199.7.83.42
l.root-servers.net.     3600000 IN      AAAA    2001:500:9f::42
m.root-servers.net.     3600000 IN      A       202.12.27.33
m.root-servers.net.     3600000 IN      AAAA    2001:dc3::35

资源记录

区域解析库:由众多资源记录RR(Resource Record)组成

记录类型:

SOA  :Start Of Authority,起始授权记录;
      一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录
A    :internet Address,作用:FQDN --> IP 名字转换成IP地址
AAAA :FQDN --> IPv6  

PTR  :PoinTeR,IP --> FQDN
NS   :Name Server,专用于标明当前区域的DNS服务器
CNAME:Canonical Name,别名记录
MX   :Mail eXchanger,邮件交换器
TXT  :对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,
       SPF(反垃圾邮件)记录,https验证等
       例:_dnsauth IN TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x

语法:name [TTL] IN rr_type value

名称+生命期+IN+类型+值

注意:

(1) TTL可从全局继承 (放在最前段,不用每行都写)
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
(4) 同一个值也可能有多个不同的定义名字;
    通过多个不同的名字指向同一个值进行定义;
    此仅表示通过多个不同的名字可以找到同一个主机

SOA记录

name: 当前区域的名字,例如dushan.com.(注意一定要带.不写系统则自动补为dushan.com.dushan.com.)
value: 有多部分组成
1、主DNS名称 dns1.dushan.com
2、管理员邮箱 admin.dushan.com (注意@换成.)
3、数据库版本号 10  (每次记得递增)
4、主从同步间隔 1h
5、主从同步重试间隔 10m (注意间隔小于同步间隔)
6、从数据库过期有效时长
7、不存在记录的缓存时长

A记录

name: 某主机的FQDN,例如www.dushan.com.
value: 主机名对应主机的IP地址 例如8.8.8.8

例:
www.dushan.com. IN A 8.8.8.8

NS记录

name:本域的域名dushan.com. 或者@(@表示本域)
value:当前区域的某DNS服务器的名字

例:需配合A记录解析成IP
@ IN NS dns1.dushan.com. 或 @ IN NS dns1
@ IN NS dns2.dushan.com.
dns1.dushan.com. IN A 192.168.32.7
dns2.dushan.com. IN A 192.168.32.17	

CNANME记录

name: 别名的FQDN
value: 真正名字的FQDN

例:需配合A记录解析成IP
www IN CNAME web-nginx01.dushan.com.       (www后面写点自己补后缀)
web-nginx01.dushan.com. IN A 101.200.199.230

MX记录

name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高

例:任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
@ IN MX 10 mail.dushan.com.
@ IN MX 20 mail2.dushan.com.
mail IN A 10 3.3.3.3 (mail等同mail.dushan.com.)
mail IN A 20 6.6.6.6 

开放53端口,修改配置文件,默认为127.0.0.1

vim /etc/named.conf
...
options {
        listen-on port 53 { localhost; };
...
[[email protected] ~]#systemctl reload named
[[email protected] ~]#ss -ntlu
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
...            
udp    UNCONN     0      0      172.20.121.114:53                           *:*                  
udp    UNCONN     0      0      192.168.32.7:53                           *:*                  
..            
tcp    LISTEN     0      10     172.20.121.114:53                           *:*                  
tcp    LISTEN     0      10     192.168.32.7:53                           *:*                  
...

填写dushan.com.zone区域解析库

[[email protected] ~]#vim /etc/named.rfc1912.zones
zone "dushan.com" {                    域
        type master;                   设置类型
        file "dushan.com.zone ";       设置文件名,需手工创建此文件

[[email protected] ~]#cd /var/named
[[email protected] named]#ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[[email protected] named]#cp named.localhost dushan.com.zone -a  复制模板 注意权限
[[email protected] named]#ll
total 20
drwxrwx--- 2 named named   23 Sep 27 03:09 data
-rw-r----- 1 root  named  152 Jun 21  2007 dushan.com.zone
drwxrwx--- 2 named named   60 Sep 27 03:09 dynamic
-rw-r----- 1 root  named 2281 May 22  2017 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx--- 2 named named    6 Apr 13 02:48 slaves

编辑dushan.com.zone文件

[[email protected] named]vim dushan.com.zone 

rndc reload 同步命令
named-checkconf 检查配置文件
named-checkzone dushan.com /var/named/dushan.com.zone 名字+存在位置

/etc/resolv.conf

win清除dns
C:\Users\Dadda>ipconfig/flushdns
win检查dns nslookup

[[email protected] ~]#host www.dushan.com 192.168.32.7
[[email protected] ~]#dig www.dushan.com @192.168.32.7
检查dns

设置192.168.32.6 通过192.168.32.7的DNS解析,访问www.dushan.com网页

192.168.32.6 网卡配置文件,配置DNS为192.168.32.7

[[email protected] network-scripts]vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.32.6
PREFIX=24
ONBOOT=yes
DNS1=192.168.32.7

[[email protected] ~]#service network restart

[[email protected] network-scripts]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.32.7

2、