DNS

/etc/resolv.conf hotes解析
DNS (域名)
解决问题:
易于记忆:人们更容易记住“example.com”这样的名称,而不是“192.0.2.1”这样的IP地址。
稳定性:即使网站的IP地址变更,域名仍然保持不变,用户不需要知道背后的IP地址变化。
组织性:域名提供了一种组织互联网资源的方式,例如不同的顶级域名(如.com、.org、.gov)可以代表不同类型的组织或目的。
国际化:域名支持国际化字符,允许使用各种语言的字符,这使得全球用户都能使用自己的语言来访问互联网。

DNS查询
主机通过根服务器或本地dns服务器去寻找域名,而每个根服务器地址背后都有多个服务器节点在全球不同地点运行。

递归查询:当一个客户端向 DNS 服务器请求解析一个域名时,如果这个 DNS 服务器没有缓存结果,
它会代表客户端向其他 DNS 服务器进行查询,直到获取到结果或者确定无法解析。在这个过程中,客户端只需要发送一次请求,然后等待最终结果1。
迭代查询:在这种查询中,DNS 服务器不会代替客户端进行查询。相反,如果 DNS 服务器没有缓存结果,
它会告诉客户端下一个可以查询的 DNS 服务器的地址。客户端随后会向这个新的 DNS 服务器发送查询请求。这个过程会重复进行,直到找到答案或者所有路径都已尝试过。
简单来说,递归查询是一种端到端的查询,客户端发出请求后,由 DNS 服务器负责整个查询过程。而迭代查询则需要客户端参与多次查询,每次都是向不同的 DNS 服务器请求信息,直到找到最终结果。在实际应用中,这两种查询方法可能会结合使用。

bind (named 53)
/etc/named.conf dns配置
{
listen -on port 53{localhost} #配置监听的端口 可以直接//
allow-query{localhost;} #配置允许访问的端口 可以直接//

zone "zz.org"{
type master;
file "zz.org.zone";
}# 将zz.org域的对应关系和数据库存放位置(最好不要写这)
#/etc/named.rfc1912.zones(可以放这)

}

/etc/named.rfc1912.zones文件
例子:

主dns:
zone "zz.org"{
  type master;
  file "zzchongxin.org.zone";   
}
副dns:
zone "zz.org"{
  type slave;
  masters {192.168.1.130}
  file "slaves/zzchongxin.org.zone";
  #不需要将主dns服务器复制到副dns服务器slave里边,会自动cp
}
反向解析:
zone "0.0.10.in-addr.arpa"{
type master;
file "10.0.0.zone"
}

反向
{反向也需要zone文件,格式也需要SOA和NA;区别需要添加反向解析格式:
100 PTR www.zz.org
200 PTR www.a.com
}
 dnssec-enable no;#局域网内不需要启用
dnssec-validation no;#局域网内不需要启用

dns转发缓存:
forwarders{10.0.0.1;};
forward first;#优先转发10.0.0.1,没有才自己查dns(优先转发会自己去根找,如果自己也没有)
#forward only;如果转发没找到,直接返回未找到
}

/var/named/ #数据库文件
数据库文件(named-checkzone 文件 #检查格式)

$TTL 86400 #保存时间
@   IN  SOA  primary-ns  hostmaster-email (
			serial-number      ; 序列号

判断是否进行了推拉操作的记录 #推拉 主从服务器的互相交换数据 主推到从服务器数据;主服务器将从服务器拉上来;假设从服务器无法在时间内更新,那么就判断从服务器无法作为dns服务器使用

			refresh-time       ; 刷新时间
			retry-time         ; 重试时间
			expire-time        ; 过期时间
			minimum-TTL )      ; 最小生存时间
例子:@            IN  SOA dns admin.zz.com. (202405111458 10M 5M 1D 1W)
#@:代表当前区域的起始点(根域名)。
#IN:表示数据类型为 Internet 类型。
#SOA:表示这是一个 SOA 记录。
#primary-ns:指定了该区域的主要(主)域名服务器的 FQDN(Fully Qualified Domain Name),即管理该区域的服务器。
#hostmaster-email:指定了该区域的管理员的电子邮件地址。
#serial-number:序列号,用于标识 zone 文件的版本号,通常是一个递增的整数。当区域信息发生变化时,需要更新该值,以便通知 DNS 服务器更新缓存的区域信息。
#refresh-time:刷新时间,指定了其他 DNS 服务器应该多久检查一次主服务器以获取区域数据的更新。
#retry-time:重试时间,指定了当刷新失败时,其他 DNS 服务器应该多久重新尝试刷新区域数据。
#expire-time:过期时间,指定了其他 DNS 服务器应该多久丢弃区域数据并停止回答有关该区域的查询。
#minimum-TTL:最小生存时间,指定了其他 DNS 服务器可以缓存有关该区域的资源记录的最短时间。
  domain.com.  IN  NS  ns1.domain.com.
               IN  NS  ns2.domain.com.
  gx           IN  NS  gxns #子域解析
#domain.com.:表示当前区域的域名。
#IN:表示数据类型为 Internet 类型。
#NS:表示这是一个 NS 记录。
#ns1.domain.com. 和 ns2.domain.com.:分别指定了两个域名服务器的 FQDN(Fully Qualified Domain Name),它们是负责管理当前区域的主要和次要域名服务器
例子:  NS  dns1
dns1             A   10.0.0.100
www.zz.org   IN  A   10.0.0.1 
#普通格式 将www.zzorg 用A格式保存 ip为10.0.0.1
gxdns            A    10.0.0.111 #子域dns 
{子域只需要加上NS 和其dns的ip格式,还有子域主机上作为一个dns服务器来使用,就可以让用户通过dns去找子域,dns主服务器委派子域的主机去查询返回}
www              CNAME websrv #别名
websrv           A    2.2.2.2
www.gg           A    1.1.1.1 #子域

CDN(内容分发网络)

chmod 640 zz.org.zone
chgreo named zz.org.zone #更改权限属性让其他人无法访问,只有root修改和named读取
rndc reload #更新生效dns服务
named-checkzone;named-checkconf;
nscd 缓存软件
dns的缓存 :pull 和push

posted @ 2024-05-12 19:43  TestAL4193  阅读(3)  评论(0编辑  收藏  举报