您的位置  > 互联网

DNS申请的域名是二级域名吗?申请域名有什么用

DNS(Name)域名系统是将某个URL解析为IP的服务。 对于私有云解决方案,可以自己搭建一个DNS服务器,这样所有的配置文件都可以以域名的形式存在并自动部署。 那么就不需要因为IP地址不同而改变太多的环境变量了。 是不是很方便呢?

当然,这样一来,如果你更换别人首选的DNS服务器,转发部分网站流量,制作一个假网站来欺骗别人的密码,那不是很好吗?

PS:如果本节有不懂的名词,可以拉到最后。

DNS 基本概念

如果您已经了解本节中的概念,可以直接跳至

其实无论是开发还是运维,大家都在一定程度上接触过DNS。 域名是这样的,每次点击一个域名,最多四个域名。 使用域名(字符串)来标记URL的方式是为了让人们更容易记住。 ,计算机不在乎是IP还是域名!

顶级域名可以分为三类:

通用顶级域名(.com 商业组织、.org 非营利组织、.net 网络服务组织等) 国家顶级域名(.cn 中国、.uk 英国、.us 美国、.jp 日本) 反向域名(基础设施顶级域名,.arpa)

如果我们自己注册域名,就不用担心使用哪个顶级域名。 让别人知道你的网站可能用来做什么,这只是一个潜规则。 我们通常通过ICP申请的域名都是二级域名。 申请后,可以随意自己添加三级、四级域名,因为很多人拥有相同的顶级域名,而申请二级域名。 然后你可以自己添加所有三级、四级域名,它们都属于你了。 根据这个逻辑域名系统就像一棵树

任何人都可以申请一个域名并用它建立一个网站,只需几十块钱。 比如我在腾讯云申请的域名一年费用是60元。

域名解析流程

域名解析有多种类型。 www、@、*、邮件、二级域名、手机网站对应不同的用法。

您可以在腾讯云上看到提示。 通常www前缀为主域名,但输入比较麻烦。 我将其重定向到 ,即 @ 方法。 各自的功能如上图所示。

记录类型分为以下几种:

常用的是A类型,直接指向服务器的IP,以及CNAME类型,指向另一个域名。 例如,我们可以利用提供给我们的快递建站服务,搭建一个免费博客,并提供域名进行转让。 我们还可以使用您自己的域名来解析MX类型,构建您自己的后缀邮件服务器。

下面是详细的域名解析流程,重点突出!这里有考试

如上图所示,

在浏览器中输入域名,操作系统会首先检查其本地的hosts文件是否有这个URL映射关系。 如果有,就会先调用IP地址映射来完成域名解析。 如果hosts中没有该域名的映射,则搜索本地DNS解析器缓存,查看是否存在该URL的映射关系。 如果有则直接返回完成域名解析。 如果主机与本地DNS解析器缓存之间没有对应的URL映射关系,则首先查找TCP/IP参数中设置的首选DNS服务器。 这里我们称之为本地DNS服务器。 当本服务器收到查询时,如果查询的域名包含在本地配置区资源中,则将解析结果返回给客户端,完成域名解析。 这个决议具有权威性。 如果要查询的域名没有被本地DNS服务器区域解析,但服务器缓存了URL映射关系,则调用该IP地址映射来完成域名解析。 这个决议并不具有权威性。 如果本地DNS服务器的本地区域文件和缓存解析无效,则根据本地DNS服务器的设置(是否设置转发器)进行查询。 如果不使用转发方式,本地DNS会将请求发送到“根DNS服务器”、“根DNS服务器”、“根DNS服务器”。 “DNS服务器”收到请求后,会判断谁授权管理这个域名(.com),并返回一个负责顶级域名服务器的IP。 本地DNS服务器收到IP信息后,会联系负责.com域的服务器。 负责.com域的服务器收到请求后,如果无法解析,就会寻找管理.com域的下级DNS服务器地址(),交给本地DNS服务器。 当本地DNS服务器收到这个地址后,就会查找域服务器,重复上述动作,进行查询,直到找到主机。 如果采用转发方式,DNS服务器会将请求转发给上级DNS服务器,由上级DNS服务器进行解析。 如果上层服务器无法解析,则要么查找根DNS,要么将请求转发给上层服务器进行解析。 这个循环。

不管是本地DNS服务器使用的、转发的、还是root的,结果最终都会返回给本地DNS服务器,由DNS服务器返回给客户端。

DNS查询方法包括递归和迭代,解析方法包括正向解析和反向解析。 原理知道了,我们来实践一下吧!

设置本地 DNS 服务器

如果你使用它来部署服务,它的 kube-dns 组件会自动进行域名解析,允许服务使用服务之间特定的名称规则自动完成服务发现。

DNS只是一个协议,真正的服务是bind软件,所以现在安装它:

sudo yum install bind-utils bind bind-chroot

安装后有几个目录或文件需要记住:

了解了这些重要的配置文件和目录之后,我们就开始配置吧。 让我们尝试劫持流量。

修改配置文件之前的一个重要习惯就是先制作一份副本,这样一旦出错就可以轻松恢复。

更改主配置文件named.conf,找到对应的配置位置,改成我的。

listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query     { any; };
recursion yes;

这意味着开放53端口用于任意地址的监控,允许所有主机访问我们,拒绝递归查询方式,采用迭代查询方式来提高资源利用率。

滚动到底部可以看到这个配置文件,您可以在其中定义正解(反解)区域。

include "/etc/named.rfc1912.zones";

在 /etc/named..zones 底部添加以下内容。

zone "baidu.com" IN {           //一级域名为.com、二级域名为.baidu
         type master;               //类型为主DNS服务器
         file "named.baidu.com";    //指向正解文件为/var/named/named.baidu.com
};

修改/var/named/文件如下,其中127.0.0.1 IP可以改为你想要的。

$TTL 600 ;定义下列所有记录缓存在客户端的时间
@       IN SOA dns.yu.com. root.localhost (
                                         0       ; serial       #序列号,用于主从dns中判断是否为最新版本
                                         1H      ; refresh      #一小时更新一次
                                         15M     ; retry        #若连接不上,等待15分钟后重新尝试连接
                                         1W      ; expire       #超过一周仍无法下载便放弃下载
                                         3D )    ; minimum      #客户端找服务端做dns解析时,否定答案的缓存时间为3天
@       IN      NS      dns.baidu.com.           ; NS记录表明了dns服务器的SDQN为dns.baidu.com.
dns.baidu.com.     IN      A       127.0.0.1     ; 下面三条A记录表明了域内主机的IP地址
www.baidu.com.     IN      A       127.0.0.1
ftp             IN      A       127.0.0.1

重启服务,检查并启用防火墙的dns服务

systemctl restart named  #重启服务
setenforce 0   #关闭SELinux
firewall-cmd --add-service=dns #开启防火墙的dns服务

修改DNS服务器指向

在Linux中,DNS服务器指向的配置有一个固定的文件。 以下文件有一个主服务器和一个备份服务器。 DNS 服务器设置后将修改此文件。

$ cat /etc/resolv.conf
nameserver 192.168.3.1
nameserver 114.114.114.114

测试

ping www.baidu.com
PING www.baidu.com (127.0.0.1) 56(84) bytes of data.
64 bytes from VM-0-11-centos (127.0.0.1): icmp_seq=1 ttl=64 time=0.006 ms
64 bytes from VM-0-11-centos (127.0.0.1): icmp_seq=2 ttl=64 time=0.021 ms
^C
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.006/0.013/0.021/0.008 ms

它还可以用于检查域名的解析。 如果新的DNS服务器位置发生变化,可以使用该命令进行查询。

$ nslookup coding3min.com
Server:  192.168.3.1
Address: 192.168.3.1#53
Non-authoritative answer:
coding3min.com canonical name = coding3min.com.cdn.dnsv1.com.
coding3min.com.cdn.dnsv1.com canonical name = 6yucorit.dispatch.spcdntip.com.
Name: 6yucorit.dispatch.spcdntip.com
Address: 112.67.251.116
Name: 6yucorit.dispatch.spcdntip.com
Address: 113.105.165.183
Name: 6yucorit.dispatch.spcdntip.com
Address: 113.96.98.77
Name: 6yucorit.dispatch.spcdntip.com
Address: 125.78.252.121

DNS协议运行在UDP协议之上,因此使用端口53。 当无法查询到完整信息时,会使用TCP协议再次查询。 因此,防火墙需要释放TCP和UDP的53端口。 端口号您可以在 /etc/ 文件中看到:

cat /etc/services  | grep domain
domain          53/tcp                          # name-domain server
domain          53/udp
domaintime      9909/tcp                # domaintime
domaintime      9909/udp                # domaintime

词汇表

DNS服务器:运行存储DNS数据库信息的DNS服务器程序的计算机。

DNS缓存:当DNS服务器解析客户端的域名请求时,如果本地没有该域名的记录,则会询问其他DNS服务器。 当其他域名将解析结果返回给DNS服务器时,DNS会将相应的记录保存在本地。 生成DNS缓存,以便下次客户端再次请求时,DNS服务器可以直接使用缓存中的DNS记录。

DNS查询方式:递归查询和迭代查询

递归查询:当客户端向DNS服务器发起域名解析请求时,DNS服务器首先检查自己的DNS记录。 如果没有DNS记录,则会向其他DNS服务器发起解析请求。 迭代查询:当客户端向DNS服务器发起域名解析请求时,DNS服务器不会为客户端解析地址,而是告诉客户端另一台DNS服务器,客户端再向这台DNS服务器发起地址解析请求服务器。

正向解析和反向解析 正向解析:指域名解析为IP地址的解析过程。 反向解析:指IP地址到域名的解析过程。

课后提问

这里我只是对带www前缀的域名做了A记录的正确解决方案。 您可以自己实施其他一种吗? 比如A记录的@分析,试试吧!

引用

**新年到了,这是一张3天免费试用卡,一个人只能使用一次。 欢迎加入体验,长按二维码识别加入,即可下载【知识星球】APP接收更新通知**