linux服务之DNS
DNS:Domain Name Service 应用层协议 ,域名解析服务,接下来让我们一起来认识一下dns服务吧!
一、DNS基本介绍
1、dns域名结构
• 根域
• 一级域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .jp)地区域(.hk, .tw)、反向域
• 二级域名
• 三级域名
• 最多127级域名
2、dns解析
•DNS查询类型:
递归查询
迭代查询
• 名称服务器:域内负责解析本域内的名称的主机 根服务器:13组服务器,1个为主根服务器在美国。其余12个均为辅根服务器,其中9个在美 国,欧洲2个,位于英国和瑞典,亚洲1个位于日本
• 解析类型: FQDN --> IP IP –> FQDN
• 注意:正反向解析是两个不同的名称空间,是两棵不同的解析树
3、dns服务器类型
• DNS服务器的类型:
主DNS服务器
从DNS服务器
缓存DNS服务器(转发器)
• 主DNS服务器:管理和维护所负责解析的域内解析库的服务器
• 从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 序列号:解析库版本号,主服务器解析库变化时,其序列递增 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
• “通知”机制:主服务器解析库发生变化时,会主动通知从服务器
4、dns解析
解析答案分为肯定答案,否定答案;应答分为权威应答和非权威应答。
肯定答案: 一个肯定答案有返回结果
否定答案:请求的条目不存在等原因导致无法返回结果
权威答案: 客户端从指定的dns直接获取的解析
非权威答案:客户端通过指定的dns从其他渠道获得的解析
5、资源记录
区域解析库:由众多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,邮件交换器
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值
)在zone文件里,“;”表示注释
NS记录
• name: 当前区域的名字
• value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
• 注意:一个区域可以有多个NS记录
例如: magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
• 注意: (1) 相邻的两个资源记录的name相同时,后续的可省略
(2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录
(3) 空格和@都代表当前zone名,如果自己手写注意以 “.” 结束。
A记录
• name: 某主机的FQDN,例如www.magedu.com.
• value: 主机名对应主机的IP地址
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 2.2.2.2
*.magedu.com. IN A 5.5.5.5
注意:一般NS记录后必须跟一个A记录;A记录前主机名后跟ip地址;*代表泛域名
PTR
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:inaddr.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.
• 注意:网络地址及后缀可省略;主机地址依然需要反着写
二、dns实验操作
实验一:在centos7上部署dns实现对magedu.com的正向解析及对192.168.248的反向解析
1、安装bind
[root@localhost(wsy) ~]# yum -y install bind
2、修改etc下named.conf文件
[root@localhost(wsy) ~]#vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
……
include "/etc/named.magedu.zones";
3、修改etc下关于域名的文件
[root@localhost(wsy) ~]#cp -p /etc/named.rfc1912.zones /etc/named.magedu.zones -p 表示权限不变 [root@localhost(wsy) ~]#vim /etc/named.magedu.zones zone "magedu.com" IN { type master; file "magedu.com.zone"; }; zone "248.168.192.in-addr.arpa" IN { type master; file "192.168.248.zone"; };
4、启动named服务
[root@localhost(wsy) ~]#named-checkconf
5、进入var目录并修改相应zone文件
[root@localhost(wsy) ~]#cd /var/named/
[root@localhost(wsy) ~]#cp -p named.localhost magedu.com.zone
[root@localhost(wsy) ~]#vim magedu.com.zone
$TTL 1D
@ IN SOA @ admin.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
magedu.com. NS ns1.magedu.com.
ns1.magedu.com. 3600 IN A 192.168.248.7
www A 192.168.248.6
[root@localhost(wsy) ~]#cp -p magedu.com.zone 192.168.248.zone
[root@localhost(wsy) ~]#vim 192.168.248.zone
$TTL 1D
@ IN SOA magedu.com. admin.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns1.magedu.com.
7 PTR ns1.magedu.com.
6 PTR www.magedu.com.
[root@localhost(wsy) ~]#named-checkzone magedu.com /var/named/magedu.com.zone
zone magedu.com/IN: loaded serial 0
OK
[root@localhost(wsy) ~]#named-checkzone 153.168.192.in-addr.arpa /var/named/192.168.248.zone
zone 248.168.192.in-addr.arpa/IN: loaded serial 0
OK
[root@localhost(wsy) ~]#rndc reload
6、客户端测试
[root@localhost(wsy) ~]#dig -t ns magedu.com @192.168.248.7
实验二:动态dns更新
1、进入etc目录下named.conf文件修改配置文件,允许更新。
[root@localhost(wsy) ~]#vim /etc/named.conf
Allow-update {any;};
[root@localhost(wsy) ~]#chmod770 /var/named
[root@localhost(wsy) ~]#setsebool -P named_write_master_zones on
[root@localhost(wsy) ~]#nsupdate
>server 127.0.0.1
>zone magedu.com
>update add ftp.magedu.com 88888 IN A 8.8.8.8
>send
>update delete www.magedu.com A
测试:
[root@rhel5 ~]#dig ftp.magedu.com @127.0.0.1
[root@localhost(wsy) ~]#ll /var/named/magedu.com.zone.jnl
实验3:DNS的主从
1、安装bind
[root@localhost(wsy) ~]#yum -y install bind
2、修改etc下配置文件
[root@localhost(wsy) ~]#vim /etc/name.conf
allow-transfer { 192.168.248.6; };
3、配置从dns
[root@rhel5 ~]#vim /etc/name.rfc1912.zones
zone "magedu.com" IN {
type slave;
masters { 192.168.248.7; };
file "slaves/magedu.com.ZONE";
};
4、重启服务
[root@localhost(wsy) ~]#service named restart
5、测试设置是否成功
[root@rhel5 ~]#dig -t axfr magedu.com @192.168.248.7
实验四:子域委派,部署magedu.com zz.magedu.com bj.magedu.com
子域委派一般分为三种方式:
1.子域和父域在一个文件里。
2.子域和父域在同一个机器上。不用委派,直接创建
3.子域和父域不在同一个机器上,要子域委派
在这里以第三种方式来做实践操作。
1、在父dns上做委派
[root@localhost(wsy) ~]#vim /etc/named.conf
dnssec-enable no;
dnssec-validation no;
2.修改var/named下文件里边部署
[root@localhost(wsy) ~]#vim /var/named/magedu.com.zone
zz NS ns.zz.magedu.com.
bj NS ns.bj.magedu.com.
ns.zz A 192.168.248.6
ns.bj A 172.18.250.42
3、在zz对应主机上修改相应配置
[root@centos6(wsy) ~]#vim /etc/named.rfc1912.zones zone "zz.magedu.com" IN { type master; file "zz.magedu.com.zone"; }; [root@centos6(wsy) ~]#vim /var/named/zz.magedu.com.zone $TTL 1D @ IN SOA ns.zz.magedu.com. admin.zz.magedu.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.zz.magedu.com. ns A 192.168.153.6 www A 2.2.2.2 [root@centos6(wsy) ~]#service named restart
4、在bj对应主机上配置
[root@centos6(wsy) ~]# vim /etc/named.rfc1912.zones
zone "bj.magedu.com" IN {
type master;
file "bj.magedu.com.zone";
};
[root@rhel5 ~]#cp -p named.localhost bj.magedu.com.zone
[root@rhel5 ~]#vim bj.magedu.com.zone
$TTL 1D
@ IN SOA ns.bj.magedu.com. admin.bj.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.bj.magedu.com.
ns A 172.18.251.125
www A 3.3.3.3
[root@rhel5 ~]#service named restart
实验五:设置转发dns
only: 本机有的结果优先,本机查不到,则交给转发。转发也查不到,则结束,报告查不到。
first: 本机有的结果优先,本机查不到,则交给转发。转发查不到(包含转发自己的以及转发迭代的),则本机再迭代。
1、全局转发
[root@localhost(wsy) ~]#vim /etc/named.conf
options {
……
forward only|first;默认是first
forwarders { x.x.x.x; };
……
};
2、特定区域转发
zone "mage.com" {
type forward;
forwarders { 192.168.248.12; };
};
实验六:设置不同区域记录返回不同结果view(设置view时需要把zone文件写出来)
1、修改配置文件
[root@localhost(wsy) ~]#vim /etc/named.conf
view bjview {
match-clients { beijing; };
include "/etc/named.bj.zones";
};
view zzview {
match-clients { zhengzhou; };
include "/etc/named.zz.zones";
};
2、分别编辑对应的域文件
[root@localhost(wsy) ~]#vim /etc/named.bj.zones
zone "example.com" IN {
type master;
file "example.com.zone";
};
[root@localhost(wsy) ~]#vim /etc/named.zz.zones
zone "example.com" IN {
type master;
file "example.com.ZONE";
};
3、编辑var下zone文件
[root@localhost(wsy) ~]#vim /var/named/example.com.zone
$TTL 1D
@ IN SOA ns.example.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.example.com.
ns A 192.168.248.110
www A 100.100.100.100
[root@localhost(wsy) ~]#vim /var/named/example.com.ZONE
$TTL 1D
@ IN SOA ns.example.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.example.com.
ns A 192.168.248.110
www A 200.200.200.200
其实dns相关的实验操作还有很多,不过基本操作也就大致如此,我们可以基于这些基本操作实现多台机器之间主从设置,以及子域父域等相关操作,这里我就不做过多展示了。