DNS域和记录
测试命令
-
host
-
dig
-
nslookup
- 这三个是Linux名字解析工具,一般我们使用dig这个命令。
dig
dig命令比较详细,一般使用big命令:
- dig命令解析,将www.magedu.com 解析ip地址

dig [-t type] name [@SERVER] [query options]
dig只用于测试dns系统,不会查询hosts文件进行解析
- 查询选项:
+[no]trace:跟踪解析过程: dig +trace magedu.com
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP =dig -t ptr reverseip.in-addr.arpa
模拟区域传送:
dig -t axfrZONE_NAME @SERVER
dig -t axfrmagedu.com @10.10.10.11
dig –t axfr100.1.10.in-addr.arpa @172.16.1.1
dig -t NS . @114.114.114.114
dig -t NS . @a.root-servers.net
host
host语法格式:
host [-t type] name [SERVER]
host –t NS magedu.com 172.16.0.1
host –t soa magedu.com
host –t mx magedu.com
host –t axfr magedu.com
host 1.2.3.4
nslookup
nslookup命令:nslookup[-option] [name | -] [server]
- 交互式模式:
nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称
创建一个域,数据库
如果你要创建一个域与数据库,首先你要看看cat /etc/named.conf这个文本,内部包含重要配置文件
- 下面假如创建一个magedu.com的域:
- /var/named/magedu.com.zone
数据库放在这里面
(当然后面这个文件你随便创名字都行,因为这里做实验创建magedu,所以文件名也写这个方便记忆)
- 指定magedu.com域的数据库对应是在/var/named/magedu.com.zone这里
vi /etc/named.rfc1912.zones
专门放对应关系的文本
zone "magedu.com"{
type master;
file "magedu.com.zone"
};
将这段代码加入进去

刚刚写了对应关系的文件,现在将文件创建出来
cd 、var/named
cp -p named.localhost magedu.com.zone复制一个范例,命令很复制,直接复制一个模板过来修改一下就好了。
然后打开这个文本:vi magedu.com.zone

-
$TTL 1D 就是一天的缓存时间
-
rr_type 资源记录,类型
-
@ 代表你要配什么域,就代表你当前所配的域
(可以当做变量一样,如果你不想用@可以写成 magedu.com.,后面有个点一定不能省,当然如果你配多个域避免麻烦,还是直接写@好一些)。
- value 就是值的意思
(这个是复制过来,未修改配置)
区域解析库是由众多的RR组成的:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
-
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录
-
A:internet Address,作用,FQDN --> IP
-
AAAA: FQDN --> IPv6
-
PTR: PoinTeR,IP --> FQDN
-
NS: Name Server,专用于标明当前区域的DNS服务器
-
CNAME:Canonical Name,别名记录
-
MX:Mail eXchanger,邮件交换器
-
资源记录定义的格式:
语法:name[TTL]IN rr_type value 主要格式
-
注意:
(1) TTL可从全局继承
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
SOA记录
- name: 当前区域的名字,例如“magedu.com.”
- value: 有多部分组成
(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如linuxedu.magedu.com
(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
例如:
magedu.com. 86400 IN SOA ns.magedu.com.
nsadmin.magedu.com. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
NS记录
-
name: 当前区域的名字
-
value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
-
注意:一个区域可以有多个NS记录
例如:
magedu.com.INNS ns1.magedu.com.
magedu.com.INNS ns2.magedu.com.
- 注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略
(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该
在后续有一个A记录
MX记录
-
name: 当前区域的名字
-
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高 -
例如:
magedu.com. IN MX 10 mx1.magedu.com. IN MX 20 mx2.magedu.com.
-
注意:
(1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
A记录
-
name: 某主机的FQDN,例如www.magedu.com.
-
value: 主机名对应主机的IP地址
-
例如:
www.magedu.com.IN A 1.1.1.1 www.magedu.com.IN A2.2.2.2 mx1.magedu.com. IN A3.3.3.3 mx2.magedu.com. IN A4.4.4.4 $GENERATE 1-254 HOST$ A 1.2.3.$ *.magedu.com. IN A 5.5.5.5 magedu.com.IN A6.6.6.6
-
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
其他记录
- AAAA:
name: FQDN
value: IPv6
- PTR:
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
- 例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
如1.2.3为网络地址,可简写成:
4 IN PTR www.magedu.com.
- 注意:网络地址及后缀可省略;主机地址依然需要反着写
修改完后:

然后检查一下配置文件,是etc下面的配置文件,不是上面这个的的。
named-checkconf
检查数据库文件语法有没有错误
named-checkzone magedu.com /var/named/magedu.com.zone
重启服务
rndc reload
现在可以检查一下能不能对外提供服务,测试一下。(换一台机器)
dig websrv.magedu.com @192.168.xx.xxx
也可以上windos上检查
nslookup
ftpsrv.magedu.com
网友评论