赞
踩
DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
域名对应ip www.baidu.com.这个域名--对应IP---183.232.231.174
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。关于域名层次结构如下图:
比如:www.aliyun.com. - DNS里面顶层是: "." 表示根域 ( 一共有十三台根服务器) - “.com”是顶级域名;分类:职能:com域,.org域(非营利机构),edu域名(教育)国家:.cn ,.us , - “aliyun.com”是主域名(二级域),主要指企页名; - “example.aliyun.com”是子域名(也可称为托管三级域名); - “www.example.aliyun.com”是子域名的子域(也可称为托管四级域名)。
域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装有域名系统的主机。域名解析过程涉及4个DNS服务器,分别如下:
每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器 每一级域名服务器都知道下级域名服务器的IP地址,以便于一级一级向下查询
下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步骤: 1.用户在Web浏览器中输入“www.example.com”,浏览器先检查自身缓存中有没有解析过的这个域名对应的ip地址,如果有,解析结束.如果浏览器没有缓存,那么就检查操作系统的hosts文件,称为本地解析,比如windows就是C:\Windows\System32\drivers\etc\hosts文件,linux在/etc/hosts文件中配置。如果命中域名解析结束。如果没有命中域名解析,浏览器会向本地的DNS服务器查询,如果命中域名解析就结束。 2. 如果本地DNS服务器没有命中域名解析,那么本地DNS服务器采用递归查询的方法,向根域名服务器进行查询。 3. 根域名服务器开启迭代查询方法告诉本地域名服务器,下一步应该查询的顶级域名服务器.com TLD的IP地址 4. 本地域名服务器向顶级域名服务器.com TLD进行查询 5. .com TLD服务器告诉本地域名服务器,下一步查询example.com权威域名服务器的IP地址 6. 本地域名服务器向example.com权威域名服务器发送查询 7. example.com权威域名服务器告诉本地域名服务器所查询的主机IP地址 8. 本地域名服务器最后把查询的IP地址响应给web浏览器 - 一旦DNS查询的8个步骤返回了example.com的IP地址,浏览器就能够发出对网页的请求: 9. 浏览器向IP地址发出HTTP请求 10. 该IP处的web服务器返回要在浏览器中呈现的网页
是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。( 根服务器不会开递归查询。会开迭代查询)
是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。
英文全称Top-level domains Server,指顶级域名服务器。
指本地域名服务器,它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。
指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。
DNS支持A、CNAME、AAAA、NS等记录类型
记录类型 功能描述 A ipv4记录,支持将域名映射到ipv4的地址使用 AAAA ipv6记录,支持将域名映射到ipv6的地址使用 CNAME 别名记录, 支持将域名指向另外一个域名 NS 名称服务器记录,支持将子域名委托给其他DNS服务商解析
域名查询工具,可以用来测试域名系统工作是否正常。 功能与 nslookup 类似,建议使用 dig 来取代 nslookup
[root@localhost ~]# yum install bind-utils -y #安装dig命令(包括host、nslookup)
# 解析域名对应的IP地址等信息
- [root@localhost ~]# dig www.baidu.com
-
- ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> www.baidu.com
- ;; global options: +cmd
-
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65304
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
-
- ;; OPT PSEUDOSECTION:
- ; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
- ;; QUESTION SECTION: #展示查询信息
- ;www.baidu.com. IN A
-
- ;; ANSWER SECTION:
- www.baidu.com. 5 IN CNAME www.a.shifen.com.
- www.a.shifen.com. 5 IN A 183.232.231.172
- www.a.shifen.com. 5 IN A 183.232.231.174
-
- ;; Query time: 8 msec
- ;; SERVER: 192.168.153.2#53(192.168.153.2)
- ;; WHEN: 三 8月 05 06:45:14 CST 2020
- ;; MSG SIZE rcvd: 101
HEADER(标题):显示查询的内容有哪些, QUESTION SECTION:展示发起的DNS 请求参数。其中A表示我们默认查询A类型的记录。 ANSWER SECTION:这一部分展示DNS服务的响应流程。 =============================================== IN:代表类别为IP协议,即Internet ==================================================================== 1.www.baidu.com 通过 CNAME 映射到 www.a.shifen.com,但是无法直接访问 www.a.shifen.com 。 2.CNAME (CanonicalName)记录,(alias from one domain name to another)通常称别名指向
解析域名对应的IP地址和别名等信息
- [root@linux-server ~]# yum install -y bind-utils-9.11.4-16.P2.el7_8.3.x86_64 #安装host命令
-
- [root@localhost ~]# host www.baidu.com
- www.baidu.com is an alias for www.a.shifen.com.
- www.a.shifen.com has address 183.232.231.172
- www.a.shifen.com has address 183.232.231.174
- 本机解析:/etc/hosts 默认先使用本机解析
- [root@linux-server ~]# vim /etc/hosts #本机解析文件---添加如下内容
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.246.160 www.soso666.cn
- 表示:cn域下面有一个soso666,soso666下面有一子域名www。仅供本地解析。
- DNS: domain name service
- 客户端设置(指定)DNS:
- # vim /etc/resolv.conf #本地dns配置文件
- # Generated by NetworkManager
- search localdomain
- nameserver 192.168.246.2
- nameserver 114.114.114.114 #新添加
直接把结果给客户端
如果知道结果,把结果告诉客户端,如果不知道结果,会把查询转发到下一台DNS服务器
SOA 记录:起始授权记录 NS 记录:指定管理某一个域的服务器是谁子域授权 A 记录:正向解析,把域名解析成IP PTR 记录:反向解析 MX 记录:指定邮件服务器 CNAME:别名、泛域名解析、负载均衡、主从、只缓存、转发、子域授权、View 视图
服务器3台、系统centos
- yum install -y bind bind-utils bind-chroot
- bind 主包
- bind-utils 客户端测试工具(host 、dig 、nslookup)
- bind-chroot chroot环境 禁锢dns服务器的工作目录
- caching-nameserver(rhel5提供模板文本,缓存服务) rhel6不需要
systemctl stop firewalld && setenforce 0
- # systemctl start named
- 如果启动服务没有工作目录的文件夹
/var/named/chroot/etc 存放主配置文件 /var/named/chroot/var/named
备份配置文件
cp /etc/named.conf /etc/named.conf.backup
修改配置文件:
- [root@wing etc]# vim /etc/named.conf
- options {
- # 监听在主机的53端口上。any代表监听所有的主机
- listen-on port 53 { any; };
- listen-on-v6 port 53 { ::1; };
-
- # 如果此档案底下有规范到正反解的zone file 档名时,该档名预设应该放置在哪个目录底下
- directory "/var/named";
-
- # 下面三项是服务的相关统计信息
- dump-file "/var/named/data/cache_dump.db";
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
-
- # 谁可以对我的DNS服务器提出查询请求。any代表任何人
- allow-query { any; };
-
- /*
- - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- - If you are building a RECURSIVE (caching) DNS server, you need to enable
- recursion.
- - If your recursive DNS server has a public IP address, you MUST enable access
- control to limit queries to your legitimate users. Failing to do so will
- cause your server to become part of large scale DNS amplification
- attacks. Implementing BCP38 within your network would greatly
- reduce such attack surface
- */
- recursion yes;
-
- dnssec-enable yes;
- dnssec-validation yes;
-
- dnssec-lookaside auto;
- forwarders {
- # 指定上层DNS服务器(网关)
- 192.168.1.1;
- };
-
- /* Path to ISC DLV key */
- bindkeys-file "/etc/named.iscdlv.key";
-
- managed-keys-directory "/var/named/dynamic";
-
- pid-file "/run/named/named.pid";
- session-keyfile "/run/named/session.key";
- };
-
- logging {
- channel default_debug {
- file "data/named.run";
- severity dynamic;
- };
- };
-
- zone "." IN {
- type hint;
- file "named.ca";
- };
-
- include "/etc/named.rfc1912.zones";
- include "/etc/named.root.key";
增加zone信息
- vim /etc/named.rfc1912.zones
- zone "baidu.com" IN {
- # 定义要解析主域名
- type master;
- file "baidu.com.zone";
- # 具体相关解析的配置文件保存在 /var/named/baidu.com.zone 文件中
- };
-
- 编辑区域配置文件
- vim /var/named/baidu.com.zone
-
-
- $TTL 1D
- @ IN SOA baidu.com. root (
- 1 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 0 ) ; minimum
-
- IN NS baidu.com.
- IN A 192.168.101.1
- www IN A 192.168.101.244
- test IN A 192.168.101.129
增加权限 并启动服务
chown root:named /var/named/baidu.com.zone systemctl restart named systemctl enable named
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。