什么是DNS
域名
如:www.baidu.com,这是一个主机名, 它实际上有一个明确的定义叫Full Qualified Domain Name,即完全限定域名.这个主机名对应的真正域名是.com和.baidu.com.由此可知,其实域名,是指一定范围内主机名的集合.
Domain Name Service(DNS)名称解析服务, 实际上是在进行名称转换,背后有一个数据查询的过程,以实现两种目标名称的相应转换.而DNS正是这种将FQDN转换成IP地址的服务.如:119.75.213.61 ---> www.baidu.com211.98.71.195 ---> www.bilibili.com
之所以存在主机名和IP地之间名称转换的问题,可以这么理解. 人的思考方式总是与计算机不同的,对于计算机而言,所有的语言最终都不过是数字,因此计算机之间通信用以区分彼此的是IP地址.但人类也需要通过自己能理解的方式去区分主机,用IP地址显然不得记忆,因些人们通过主机名来识别互联网中的每一台主机.
nsswitch框架: /etc/nsswitch.conf是这个框架的具体体现
给名称解析提供一个平台,而实际完成名称解析操作的是具体的一个个的店铺.这个框架依靠linux系统调用库工具帮助具体实现名称解析的程序完成名称解析.这两个库是如下
libnss_files.so
libnss_dns.so
/etc/nsswitch.conf中有一行内容为hosts: files dns
这里的files是libnss_files去/etc/hosts文件,通过这个文件完成主机名称到ip地址的映射关系;dns则是指dns服务.
所以当我们去请求一个主机名时,系统会调用一个库函数实现主机名到ip的转换,这个过程由stub resolvers完成.这个过程可以通过网际协议ping来查看.
➜ ~ ping http://www.bilibili.com/PING http://www.bilibili.com/ (211.98.71.195): 56 data bytes64 bytes from 211.98.71.195: icmp_seq=0 ttl=250 time=3.399 ms64 bytes from 211.98.71.195: icmp_seq=1 ttl=250 time=4.362 ms64 bytes from 211.98.71.195: icmp_seq=2 ttl=250 time=6.390 ms64 bytes from 211.98.71.195: icmp_seq=3 ttl=250 time=6.101 ms64 bytes from 211.98.71.195: icmp_seq=4 ttl=250 time=4.439 ms
早期主机名--->IP的方法,通过hosts文件,这时候的主机较少
IPADDR FQDN Aliases211.98.71.195 www.bilibili.com www
IANA和ICANN
IANA负责维护主机名与IP地址的映射关系.IANA即互联网名称分配机构.IANA通过ftp服务器保存一个hosts文件.所有的主机网络中访问其它主机时,会先去IANA的ftp服务器上下载最新的hosts文件,从而拿到要请求主机对应的IP地址.
周期性任务更新hosts文件
-
Server: 由发送的请求目标主机在服务器端更新,之后将目标主机名对应的IP发送给客户端
当时的条件,请求达到1KW条时,导致服务器不堪重负,查询也慢.
-
分布式数据库
按Level管理域名
自顶向下为: 根,顶级,二级...
上级仅知道其直接下级
下级仅知道根的位置
按Level管理域名
-
TLD(Top Level Domain)
-
组织域: .com, .org, .net, .cc
国家域: .cn, .jp, .hk, .tw, .ca, .iq
反向域: IP--->FQDN
-
但随着互联网中主机数量增大,后来民间成立了一个ICANN替代了IANA的作用.
名称解析分类
正向解析: FQDN--->IP
反向解析: IP--->FQDN
一个IP可以对应多个FQDN
一个FQDN也可以对应多个IP, 这是DNS的高级功能,可能实现负载均衡,提高服务器的负载能力
查询
递归: 只发出一次请求
迭代: 发出多次请求
所有DNS请求都是两段式: 前半段递归,后半段迭代
查询结果会缓存下来
DNS服务器
接受本地客户端的查询请求(递归)
-
外部客户端请求: 请求权威答案的
肯定答案: TTL
否定答案: TTL
外部客户端请求非权威答案: 非权威答案,不给递归查询
根或.com的域不会给任何人递归,安全起见
/etc/resolv.conf
这个文件中的nameserver IP必须是允许递归的服务器地址,而stub resolver又是一个要求必须有应答的递归请求.因些,一旦写成不允许递归的IP, stub resolver将得不到应答.
DNS服务器
不同的域名层级实际就是由一台一台的域名服务器组织起来的.
根服务器
全球一共有A-M排列的13组根服务器,共504台.其中中国北京有四台根镜像.域名格式为a.root-servers.net.
DNS服务器主从结构
如果一台DNS服务器,意味着这个台DNS服务器管理的所有主机都将不可达.这是十分危险的,从而有必要提供安全机制,以防止DNS服务器挂掉后造成不可想象的后果.
MASTER DNS服务器: 数据修改
-
SLAVE DNS服务器: 请求数据同步,只有有需要时才会pull数据
serials number: 版本号
refresh: 多长时间检查一次MASTER的版本号
retry: 重试时间
expire: 认为MASTER挂掉的时间
negative answer TTL: 否定答案缓存时长
缓存DNS服务器
不提供任何权威答案,只负责缓存
转发DNS服务器
不提供权威答案,也不缓存,只将请求转发出去
NOTE:
DNS服务器是由上级在数据库授权的
DNS主机角色
所有域中的主机都有自己的角色,比如有的是邮件服务器,有的是www的服务器等等.
在数据库中的每一个条目叫作一个资源记录,每条记录中的RRT(资源记录类型)字段用以区分这条记录最终要转换成什么.格式:
$TTL 600;NAME TTL(可省略,但必须提供全局变量) IN RRT VALUEwww.baidu.com IN A 1.1.1.11.1.1.1 IN PTR www.baidu.com
资源记录类型RRT
用来表示这条记录要解析的值在DNS内部是什么角色.
A
AAAA
NS
MX
WWW
PTR
@: 用来表示域名zone name
A记录
FQDN ---> IPv4www.baidu.com. ---> 119.75.213.61
AAAA记录
FQDN ---> IPv6www.baidu.com. ---> 2001:503:ba3e::2:30
NS记录
在一个zone内,允许有多台NS服务器,而这些服务器的主从关系是通过配置文件加以区分.
Zone Name ---> FQDNbaidu.com. ---> ns1.baidu.com.(NS记录)ns1.baidu.com. ---> 119.75.213.61(A记录)ZoneName TTL IN RRT VALUE baidu.com. 600 IN NS ns1.baidu.com.ns1.baidu.com.600 IN A 1.1.1.1
SOA:起始授权记录
由于一个zone内,允许有多台NS服务器,主从之间如何同步数据,以及起始授权对象是谁,这个申明通过SOA记录负责完成.这条记录必须出现在数据文件的第一条.
邮箱格式正常为 nora@126.com, 但是在资源记录中要写成nora.126.com.因为在资源记录中这个@是一个通配符,代表zone name.
# MASTER FQDN 是主DNS服务器主机全限定主名称# 主从之间请求的几个参数可以用的单位有: H, M, D, W, 默认是S# serial number最长不能超过10位,一般使用时间戳,数据文件每修改一次,serialnumber也要修改一次# 这个资源数据文件中注释用`;`开头$TTL 600;ZONE NAME IN RRT MASTER FQDN ADMINISTRATOR_MAILBOX ( serial number refresh retry expire negative answer)baidu.com IN SOA ns1.baidu.com. admin.baidu.com. ( 201706241641 ; 版本号 1H 1M 1W 1D )
MX(Mail Exchanger)
最终指向某个域内邮件服务器的主机名,一般会有多台,由优先级字段决定使用中的是哪台.优先级从0-99,数字越小优先级越高. 同时也要像NS一样,要给出这台邮件服务器对应的A记录,以告诉请求者这台服务器的IP地址.
ZONE NAME ---> FQDNZONE NAME TTL IN RRT PRI VALUEbaidu.com. 600 IN MX 10 mail.baidu.com.mail.baidu.com. 600 IN A 1.1.1.1
PTR记录: 反向解析,交换IP转换成FQDN
IP ---> FQDN1.1.1.1 600 IN PTR www.baidu.com
CNAME: Canonical Name 正式名称
FQDN ---> FQDNzone name TTL IN RRT VALUEwww2.baidu.com. 600 IN CNAME www.baidu.com.
还有一些概念
域: Domain是一个逻辑概念.
区域: Zone是一个物理概念.
NOTE:
Zone是一个物理概念.一个域名在DNS解析的过程中依赖解析数据文件,正向解析依赖正向解析文件,反向解析依赖反向解析文件,正向解析文件即正向区域,反向解析文件即反向区域.这两个区域构成的空间即为域.但是域与区域之间没有必然的包含关系.因为域由上级授权,授权通过区域完成,因此域来自于区域文件.同时,正向域与反向域的授权是分开进行的.正向区域的zone name与域名相同,但是反向区域的zone name却是与域名有很大的区别.
# 注册了一个域名 xpercent.com# 又从ICANN获得了一个网段 10.211.55.0/24# xpercent.com域中 域名解析服务器主机为 10.211.55.2# xpercent.com域中 还有一台MX邮件服务器, 主机IP为 10.211.55.3# 从上级获取授权, 写一个授权记录# 授权记录Zone Name IN RRT VALUExpercent.com. IN NS ns1.xpercent.com.ns1.xpercent.com.IN A 10.211.55.2# 正向区域文件Zone Name IN RRT FQDN ADMIN_MAILBOXxpercent.com. IN SOA ns1.xpercent.com. mail.xpercent.com. ( 201706241641 ; 版本号 1H 5M 1W 1D )xpercent.com. IN MX 10.211.55.3www.xpercent.com. IN A 10.211.55.2注意,soa的zone name写成@,@知道自己处于哪个域内,这是通过配置文件实现的.而此后的所有记录zone name都可以将域名去掉后只写前半段.**不可加上`.`**# 反向区域文件# ZONE NAME是网段地址的逆序且加上.in-addr.arpa后缀Zone Name IN RRT VALUE55.211.55.in-addr.arpa. IN SOA 2.55.211.10.in-addr.arpa. IN PTR www.xpercent.com.# 上面的PTR记录zone name可简写为2
-
区域传送的类型
完全区域传送: axfr
增量区域传送: ixfr
-
主从区域类型
主区域: 主DNS服务器 MASTER
从区域: 从DNS服务器 SLAVE
提示区域: 自己找不到的,根据hint找到根的位置 HINT
转发区域: 添加一条可递归的DNS服务器 FORWAR
DNS服务器搭建
规划
注册域名: xpercent.me
网段号: 10.211.55.0/24
搭一台缓冲DNS服务器: 10.211.55.1 负责解析注册域的所有FQDN工作
www.xpercent.me 10.211.55.1, 10.211.55.3
mail.xpercent.me 10.211.55.2
ftp.xpercent.me www.xpercent.me
BIND安装
shell> rpm -qa | grep "^bind"shell> rpm install -y bind-lib, bind-utils, bindshell> rpm -qlv bind # 查看bind最后的安装目录及配置文件等# 文件列表如下drwxr-x--- 2 root named 0 May 9 21:43 /etc/named-rw-r----- 1 root named 984 Nov 20 2015 /etc/named.conf-rw-r--r-- 1 root named 2389 May 9 21:43 /etc/named.iscdlv.key-rw-r----- 1 root named 931 Jun 21 2007 /etc/named.rfc1912.zones-rw-r--r-- 1 root named 487 Jul 19 2010 /etc/named.root.key# 守护进程脚本-rwxr-xr-x 1 root root 7992 May 9 21:43 /etc/rc.d/init.d/named# 守护进程脚本的配置文件-rw-r--r-- 1 root root 1695 May 9 21:43 /etc/sysconfig/named# rndc文件-rw-r----- 1 root named 0 May 9 21:43 /etc/rndc.conf-rw-r----- 1 root named 0 May 9 21:43 /etc/rndc.key# 二进制程序-rwxr-xr-x 2 root root 550744 May 9 21:43 /usr/sbin/named-rwxr-xr-x 1 root root 28464 May 9 21:43 /usr/sbin/named-checkconf-rwxr-xr-x 1 root root 24416 May 9 21:43 /usr/sbin/named-checkzone# 区域数据文件-rw-r----- 1 root named 3171 Jan 11 2016 /var/named/named.ca-rw-r----- 1 root named 152 Dec 15 2009 /var/named/named.empty-rw-r----- 1 root named 152 Jun 21 2007 /var/named/named.localhost-rw-r----- 1 root named 168 Dec 15 2009 /var/named/named.loopback
BIND相关文件
/etc/named
/etc/named.conf BIND进程的工作属性,区域的定义等主配置文件,相当于已经安装caching-server
-
/etc/rndc.key
rndc: 远程域名控制进程
rndc.key: 是远程管理使用的密钥
配置文件其实是: /etc/rndc.conf
/var/named: 区域数据文件存储位置
/etc/rc.d/named: start|stop|restart|reload|status|configtest
/var/log/message: dns运行时日志文件
named: 二进制程序,位于/usr/sbin/named
named-checkconfig: 检查区域配置文件的语法
named-checkzone: 检查区域配置文件的语法
named.ca: 13组根结点
named.localhost: 将localhost解析成127.0.0.1及::1
named.loopback: 本地主机名的正反向解析
DNS监听的端口
UDP 53, 默认的查询请求协议
TCP 53, 从服务器同步数据时用TCP
TCP 953, RNDC监听的端口
数据文件注意事项
格式: 全文所有括号前后有空格,每一个完整语句必须以;
结束.
ZONE "ZONE NAME" IN { type master|slave|hint|forward file "相对option中的directory而言"};
-
options: 全局选项,对每一个zone有效
directory: 定义数据目录,是个相对路径,文件中其它目录都相对这个路径而言
recursion: 是否给所接收的请求进行递归查询
-
ZONE:
根区域: type hint;
主区域: type master;
从区域: type slave;
include:
搭建流程
用到的一些命令及基说明
shell> mv /etc/named.conf /etc/named.conf.backupshell> cp /etc/named.conf.backup /etc/named.conf -pshell> named-checkconfigshell> named-checkzone "." /var/named/named.ca# named-checkzone "zone name" filenameshell> named-checkzone "localhost" /var/named/named.localhostshell> named-checkzone "loopback" /var/named/named.loopbackshell> getenforce # 确认selinux是否开启,开启的话要关闭shell> setenforce 0 # 临时性的关闭selinuxshell> servcie named startshell> tail /var/log/messageshell> netstat -npl#p父进程id/l列表/n以ip:port形式显示进程/t:tcp/u:udpshell> ping www.baidu.com # 能ping能表示服务器搭建成功shell> dig -t "RT" "ZONE NAME"shell> dig -t NS xpercent.meshell> dig -t A www.xpercent.me.shell> dig -t MX mail.xpercent.me.shell> dig -x IP# dig: domain information gropher,在域名服务器系统中查看相关信息shell> dig -t NS . # 查找要域的所有DNS服务器,前提是运行dig进程的主机必须要能访问互联网shell> dig -t NS . @A.ROOT-SERVERS.NET. # 直接通过A.ROOT-SERVERS.NET.这个域查找根域的信息
DNS服务器配置文件/etc/named.conf
options { directory "/var/named";};zone "." IN { type hint; file "named.ca";};zone "localhost" IN { type master; file "named.localhost";};zone "loopback" IN { type master; file "named.loopback";};zone "xpercent.me" IN { type master; file "xpercent.me.zone";};zone "55.211.10.in-addr.arpa" IN { type master; file "10.211.55.zone";};
正向区域文件/var/named/xpercent.me.zone
$TTL 86400;@ IN SOA ns1.xpercent.me. admin.xpercent.me. ( 201706241800 1H 5M 1W 1D ) IN NS ns1 IN MX 10 mailns1 IN A 10.211.55.1www IN A 10.211.55.1mail IN A 10.211.55.2www IN A 10.211.55.3ftp IN CNAME www
反向区域文件/var/named/10.211.55.1.zone
$TTL 86400;@ IN SOA ns1.xpercent.me. admin.xpercent.me. ( 201706241800 1H 5M 1W 1D ) IN NS ns1.xpercent.me. ; 这里的FQDN必须写到`.`,1 IN PTR www.xpercent.me.2 IN PTR mail.xpercent.me.3 IN PTR www.xpercent.me.
/etc/resolv.conf
# 这里的nameserver必须指向一台可以联网的主机nameserver 10.211.55.200
测试一下
# 正向测试[root@os1 named]# dig -t A www.xpercent.me; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A www.xpercent.me;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55993;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:;www.xpercent.me. IN A;; ANSWER SECTION:www.xpercent.me. 86400 IN A 10.211.55.1www.xpercent.me. 86400 IN A 10.211.55.3;; AUTHORITY SECTION:xpercent.me. 86400 IN NS www.xpercent.me.;; Query time: 0 msec;; SERVER: 10.211.55.200#53(10.211.55.200);; WHEN: Sat Jun 24 07:52:18 2017;; MSG SIZE rcvd: 79# 反向测试[root@os1 named]# dig -x 10.211.55.1; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -x 10.211.55.1;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50309;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1;; QUESTION SECTION:;1.55.211.10.in-addr.arpa. IN PTR;; ANSWER SECTION:1.55.211.10.in-addr.arpa. 86400 IN PTR www.xpercent.me.;; AUTHORITY SECTION:55.211.10.in-addr.arpa. 86400 IN NS ns1.xpercent.me.;; ADDITIONAL SECTION:ns1.xpercent.me. 86400 IN A 10.211.55.1;; Query time: 0 msec;; SERVER: 10.211.55.200#53(10.211.55.200);; WHEN: Sat Jun 24 08:48:14 2017;; MSG SIZE rcvd: 105
递归与迭代区别
递归查询
[root@os1 named]# dig -t A www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> -t A www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8910;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5;; QUESTION SECTION:;www.baidu.com. IN A;; ANSWER SECTION:www.baidu.com. 1200 IN CNAME www.a.shifen.com.www.a.shifen.com. 300 IN A 111.13.100.91www.a.shifen.com. 300 IN A 111.13.100.92;; AUTHORITY SECTION:a.shifen.com. 1145 IN NS ns1.a.shifen.com.a.shifen.com. 1145 IN NS ns2.a.shifen.com.a.shifen.com. 1145 IN NS ns3.a.shifen.com.a.shifen.com. 1145 IN NS ns5.a.shifen.com.a.shifen.com. 1145 IN NS ns4.a.shifen.com.;; ADDITIONAL SECTION:ns1.a.shifen.com. 1145 IN A 61.135.165.224ns2.a.shifen.com. 1145 IN A 180.149.133.241ns3.a.shifen.com. 1145 IN A 61.135.162.215ns4.a.shifen.com. 545 IN A 115.239.210.176ns5.a.shifen.com. 1145 IN A 119.75.222.17;; Query time: 45 msec;; SERVER: 10.211.55.200#53(10.211.55.200);; WHEN: Sat Jun 24 09:32:16 2017;; MSG SIZE rcvd: 260
迭代查询
Step1
[root@os1 named]# dig +norecurse -t www.baidu.com;; Warning, ignoring invalid type www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> +norecurse -t www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2486;; flags: qr ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13;; QUESTION SECTION:;. IN NS;; ANSWER SECTION:. 517857 IN NS e.root-servers.net.. 517857 IN NS m.root-servers.net.. 517857 IN NS k.root-servers.net.. 517857 IN NS i.root-servers.net.. 517857 IN NS j.root-servers.net.. 517857 IN NS f.root-servers.net.. 517857 IN NS l.root-servers.net.. 517857 IN NS c.root-servers.net.. 517857 IN NS h.root-servers.net.. 517857 IN NS a.root-servers.net.. 517857 IN NS g.root-servers.net.. 517857 IN NS b.root-servers.net.. 517857 IN NS d.root-servers.net.;; ADDITIONAL SECTION:a.root-servers.net. 517857 IN A 198.41.0.4a.root-servers.net. 517857 IN AAAA 2001:503:ba3e::2:30b.root-servers.net. 517857 IN A 192.228.79.201b.root-servers.net. 517857 IN AAAA 2001:500:200::bc.root-servers.net. 517857 IN A 192.33.4.12c.root-servers.net. 517857 IN AAAA 2001:500:2::cd.root-servers.net. 517857 IN A 199.7.91.13d.root-servers.net. 517857 IN AAAA 2001:500:2d::de.root-servers.net. 517857 IN A 192.203.230.10e.root-servers.net. 517857 IN AAAA 2001:500:a8::ef.root-servers.net. 517857 IN A 192.5.5.241f.root-servers.net. 517857 IN AAAA 2001:500:2f::fg.root-servers.net. 517857 IN A 192.112.36.4;; Query time: 0 msec;; SERVER: 10.211.55.200#53(10.211.55.200);; WHEN: Sat Jun 24 09:34:19 2017;; MSG SIZE rcvd: 508
Step2
[root@os1 named]# dig +norecurse -t A www.baidu.com @a.gtld-servers.net.; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> +norecurse -t A www.baidu.com @a.gtld-servers.net.;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24622;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 5;; QUESTION SECTION:;www.baidu.com. IN A;; AUTHORITY SECTION:baidu.com. 172800 IN NS dns.baidu.com.baidu.com. 172800 IN NS ns2.baidu.com.baidu.com. 172800 IN NS ns3.baidu.com.baidu.com. 172800 IN NS ns4.baidu.com.baidu.com. 172800 IN NS ns7.baidu.com.;; ADDITIONAL SECTION:dns.baidu.com. 172800 IN A 202.108.22.220ns2.baidu.com. 172800 IN A 61.135.165.235ns3.baidu.com. 172800 IN A 220.181.37.10ns4.baidu.com. 172800 IN A 220.181.38.10ns7.baidu.com. 172800 IN A 119.75.219.82;; Query time: 113 msec;; SERVER: 192.5.6.30#53(192.5.6.30);; WHEN: Sat Jun 24 09:35:41 2017;; MSG SIZE rcvd: 201
Step3
[root@os1 named]# dig +norecurse -t A www.baidu.com @dns.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> +norecurse -t A www.baidu.com @dns.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17196;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5;; QUESTION SECTION:;www.baidu.com. IN A;; ANSWER SECTION:www.baidu.com. 1200 IN CNAME www.a.shifen.com.;; AUTHORITY SECTION:a.shifen.com. 1200 IN NS ns5.a.shifen.com.a.shifen.com. 1200 IN NS ns3.a.shifen.com.a.shifen.com. 1200 IN NS ns2.a.shifen.com.a.shifen.com. 1200 IN NS ns1.a.shifen.com.a.shifen.com. 1200 IN NS ns4.a.shifen.com.;; ADDITIONAL SECTION:ns1.a.shifen.com. 1200 IN A 61.135.165.224ns2.a.shifen.com. 1200 IN A 180.149.133.241ns3.a.shifen.com. 1200 IN A 61.135.162.215ns4.a.shifen.com. 1200 IN A 115.239.210.176ns5.a.shifen.com. 1200 IN A 119.75.222.17;; Query time: 7 msec;; SERVER: 202.108.22.220#53(202.108.22.220);; WHEN: Sat Jun 24 09:36:45 2017;; MSG SIZE rcvd: 228
总结
一条命令跟踪整个解析过程.[root@os1 named]# dig +trace -t A www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> +trace -t A www.baidu.com;; global options: +cmd. 517565 IN NS k.root-servers.net.. 517565 IN NS d.root-servers.net.. 517565 IN NS c.root-servers.net.. 517565 IN NS l.root-servers.net.. 517565 IN NS i.root-servers.net.. 517565 IN NS a.root-servers.net.. 517565 IN NS g.root-servers.net.. 517565 IN NS f.root-servers.net.. 517565 IN NS m.root-servers.net.. 517565 IN NS e.root-servers.net.. 517565 IN NS j.root-servers.net.. 517565 IN NS b.root-servers.net.. 517565 IN NS h.root-servers.net.;; Received 508 bytes from 10.211.55.200#53(10.211.55.200) in 5 mscom. 172800 IN NS c.gtld-servers.net.com. 172800 IN NS j.gtld-servers.net.com. 172800 IN NS l.gtld-servers.net.com. 172800 IN NS f.gtld-servers.net.com. 172800 IN NS d.gtld-servers.net.com. 172800 IN NS a.gtld-servers.net.com. 172800 IN NS k.gtld-servers.net.com. 172800 IN NS i.gtld-servers.net.com. 172800 IN NS h.gtld-servers.net.com. 172800 IN NS m.gtld-servers.net.com. 172800 IN NS b.gtld-servers.net.com. 172800 IN NS g.gtld-servers.net.com. 172800 IN NS e.gtld-servers.net.;; Received 491 bytes from 192.33.4.12#53(192.33.4.12) in 3170 msbaidu.com. 172800 IN NS dns.baidu.com.baidu.com. 172800 IN NS ns2.baidu.com.baidu.com. 172800 IN NS ns3.baidu.com.baidu.com. 172800 IN NS ns4.baidu.com.baidu.com. 172800 IN NS ns7.baidu.com.;; Received 201 bytes from 192.48.79.30#53(192.48.79.30) in 116 mswww.baidu.com. 1200 IN CNAME www.a.shifen.com.a.shifen.com. 1200 IN NS ns2.a.shifen.com.a.shifen.com. 1200 IN NS ns1.a.shifen.com.a.shifen.com. 1200 IN NS ns5.a.shifen.com.a.shifen.com. 1200 IN NS ns4.a.shifen.com.a.shifen.com. 1200 IN NS ns3.a.shifen.com.;; Received 228 bytes from 220.181.38.10#53(220.181.38.10) in 17 ms
域名与博客
需求
将xpercent.tech作为博客的访问入口
准备工作
托管在github/coding/远程服务器上的hexo博客
github pages服务, repository中上传CNAME文件,内容为xpercent.tech
coding pages服务, CNAME同上
期望结果
hexo博客 | 域名 | github pages | 码市 pages |
---|---|---|---|
xpercent.tech | noraxie.github.io | xpercent.coding.me | |
xpercent.tech | noraxie.github.io | xpercent.coding.me |
域名解析资源记录表
选用DNSPod域名解析服务器.
区域名(ZONE NAME): xpercent.tech
正向区域文件
ZONE NAME | RRT | IN | TTL | VALUE |
---|---|---|---|---|
@ | CNAME | IN | 600 | noraxie.github.io. |
@ | CNAME | IN | 600 | xpercent.coding.me. |
@ | NS | IN | 86400 | f1g1ns1.dnspod.net. |
@ | NS | IN | 86400 | f1g1ns1.dnspod.net. |
www | CNAME | IN | 600 | noraxie.github.io. |
www | CNAME | IN | 600 | xpercent.coding.me. |
验证域名
➜ ~ dig @f1g1ns1.dnspod.net. xpercent.tech. CNAME; <<>> DiG 9.8.3-P1 <<>> @f1g1ns1.dnspod.net. xpercent.tech. CNAME; (5 servers found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59769;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0;; WARNING: recursion requested but not available;; QUESTION SECTION:;xpercent.tech. IN CNAME;; ANSWER SECTION:xpercent.tech. 600 IN CNAME noraxie.github.io.;; AUTHORITY SECTION:xpercent.tech. 86400 IN NS f1g1ns2.dnspod.net.xpercent.tech. 86400 IN NS f1g1ns1.dnspod.net.;; Query time: 69 msec;; SERVER: 180.163.19.15#53(180.163.19.15);; WHEN: Fri Jun 30 17:59:30 2017;; MSG SIZE rcvd: 126======================================================➜ ~ dig @f1g1ns1.dnspod.net. www.xpercent.tech. CNAME; <<>> DiG 9.8.3-P1 <<>> @f1g1ns1.dnspod.net. www.xpercent.tech. CNAME; (5 servers found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13990;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0;; WARNING: recursion requested but not available;; QUESTION SECTION:;www.xpercent.tech. IN CNAME;; ANSWER SECTION:www.xpercent.tech. 600 IN CNAME xpercent.coding.me.;; AUTHORITY SECTION:xpercent.tech. 86400 IN NS f1g1ns1.dnspod.net.xpercent.tech. 86400 IN NS f1g1ns2.dnspod.net.;; Query time: 63 msec;; SERVER: 180.163.19.15#53(180.163.19.15);; WHEN: Fri Jun 30 18:00:08 2017;; MSG SIZE rcvd: 131