DNS( Domain Name System,域名系统)。 82.1DNS概述 DNS包含域名服务器和解析器两个部分 域名服务器:存储和管理授权区域内的域名数据,提供接口供客户机检索数据 解析器:即客户机,向域名服务器递交査询请求,翻译域名服务器返回的结果并递交给 高层应用程序。 1.DNS域名空间的分层结构 Internet上的顶级域名有两种:机构域和地理域。 (1)机构域 种是将域名空间按功能分成几大类,分别表示不同的组织,称为机构域,比如:com (商业组织)、cdu(教育机构)、org(政府机构)、net(网络提供者)、int(国际实体)、mil (军事机构)、org(其他组织)等 (2)地理域 另一种象cn(中国)这样的按照地理位置划分的国别代码,通常用两个字符表示,称 为地理域 机构域 地理域 希腊 江子 中国教育网 icrosoft com redhat. com whitehouse 计算机系 电子工程系 图8-5 Internet域名的层次 2.域名解析过程 DNS的工作原理及过程分为下面几个步骤: (1)客户机提出域名解析请求,并将该请求发送给本地的DNS服务器。 (2)当本地的DNS服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本 地的域名服务器就直接把查询的结果返回 (3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务 器,然后根域名服务器再返回给本地DNS服务器一个所查询域(根的子域)的主域名服务 器的IP地址 (4)本地DNS服务器再向上一步返回的域名服务器发送请求,然后接受请求的DNS 服务器查询自己的缓存,如果没有该记录,则返回相关的下级DNS服务器的IP地址。 (5)重复(4),直到找到正确的记录 (6)本地DNS服务器把返回的结果保存到缓存,以备下一次使用,同时将结果返回给
DNS(Domain Name System,域名系统)。 8.2.1 DNS 概述 DNS 包含域名服务器和解析器两个部分。 域名服务器:存储和管理授权区域内的域名数据,提供接口供客户机检索数据; 解析器:即客户机,向域名服务器递交查询请求,翻译域名服务器返回的结果并递交给 高层应用程序。 1.DNS 域名空间的分层结构 Internet 上的顶级域名有两种:机构域和地理域。 (1)机构域 一种是将域名空间按功能分成几大类,分别表示不同的组织,称为机构域,比如:com (商业组织)、edu(教育机构)、org(政府机构)、net(网络提供者)、int(国际实体)、mil (军事机构)、org(其他组织)等。 (2)地理域 另一种象 cn(中国)这样的按照地理位置划分的国别代码,通常用两个字符表示,称 为地理域。 图8-5 Internet域名的层次 2.域名解析过程 DNS 的工作原理及过程分为下面几个步骤: (1)客户机提出域名解析请求,并将该请求发送给本地的 DNS 服务器。 (2)当本地的 DNS 服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本 地的域名服务器就直接把查询的结果返回。 (3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务 器,然后根域名服务器再返回给本地 DNS 服务器一个所查询域(根的子域)的主域名服务 器的 IP 地址。 (4)本地 DNS 服务器再向上一步返回的域名服务器发送请求,然后接受请求的 DNS 服务器查询自己的缓存,如果没有该记录,则返回相关的下级 DNS 服务器的 IP 地址。 (5)重复(4),直到找到正确的记录。 (6)本地 DNS 服务器把返回的结果保存到缓存,以备下一次使用,同时将结果返回给
DNS客户机 822实例一设置DNS服务器 妒实例83通过GUI设置DNS服务器 下面介绍在桌面环境下对DNS的配置过程 第1步:复制 named root文件 cp /usr/share/doc/bind-933/sample/var/named/named root /var/named/chroot/var/named/namedroot named root文件的内容如图8-6所示。在DNS数据库中, named root文件列出了所有根 DNS服务器的地址。当一个DNS的请求不在该DNS服务器所管理的域时,DNS服务器会 将该请求发送给一个根DNS服务器 妒实例84通过创建和修改(配置)文件来设置DNS服务器 下面介绍通过编辑文件的方式对DNS服务器进行配置的过程: 第1步:复制 named root文件 cp/usr/share/doc/bind-933/sample/var/namednamed root /var/named/chroot/var/named/namedroot named root文件的内容如图8-6所示 在/usr/ share/doc/bind-9.3.3/ sample下面有 named. conf文件和正向/逆向解析区文件的范 例文件,读者可以将他们分别复制到相应的目录,然后根据实际需求进行修改即可。 第2步:修改 named. conf文件 修改主DNS服务器的/ar/ named/ chroot/etc/named. conf文件,内容如下: directory"/ ar/named";∥定义服务器区配置文件存放的目录,由于使用了choo功能 /区配置文件存放的实际目录是/ar/amed/ chroot/yar/named statistics-flle "/var/named/data/named stats. txt match-destinations any, j ∥对内网用户开启DNS的递归查询 zone.168. 192 in-addr. arpa. "IN i 定义逆向解析区声明,in- addr. arpa是固定写法 type master,,∥注意:书写反向地址解析时,与通常书写的ψ地址顺序相反,如:0.l68.192
DNS 客户机。 8.2.2 实例—设置 DNS 服务器 实例 8-3 通过 GUI 设置 DNS 服务器 下面介绍在桌面环境下对 DNS 的配置过程: 第 1 步:复制 named.root 文件 # cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named/named.root named.root 文件的内容如图 8-6 所示。在 DNS 数据库中,named.root 文件列出了所有根 DNS 服务器的地址。当一个 DNS 的请求不在该 DNS 服务器所管理的域时,DNS 服务器会 将该请求发送给一个根 DNS 服务器。 实例 8-4 通过创建和修改(配置)文件来设置 DNS 服务器 下面介绍通过编辑文件的方式对 DNS 服务器进行配置的过程: 第 1 步:复制 named.root 文件 # cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named/named.root named.root 文件的内容如图 8-6 所示。 注意: 在/usr/share/doc/bind-9.3.3/sample 下面有 named.conf 文件和正向/逆向解析区文件的范 例文件,读者可以将他们分别复制到相应的目录,然后根据实际需求进行修改即可。 第 2 步:修改 named.conf 文件 修改主 DNS 服务器的/var/named/chroot/etc/named.conf 文件,内容如下: options { directory "/var/named"; //定义服务器区配置文件存放的目录,由于使用了chroot功能, //区配置文件存放的实际目录是/var/named/chroot/var/named dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; }; view "internal" { match-clients { any; }; match-destinations { any; }; recursion yes; //对内网用户开启DNS的递归查询 zone "0.168.192.in-addr.arpa." IN { //定义逆向解析区声明,in-addr.arpa是固定写法 type master; //注意:书写反向地址解析时,与通常书写的ip地址顺序相反,如:0.168.192
file"192.1680db" ∥逆向解析区文件名,名称可以任意取 } zone"test.edu. cn "IN ∥定义正向解析区声明,如果不写IN,那么默认就是ⅣN类 file "tested cn. db 正向解析区文件名,名称可以任意取 zone"." IN ∥定义根区声明 type hint; ∥/选择type为hint(""专用) fle" named root";/默认文件名 named root,有时也可能是 named. ca ∥在DNS数据库中, named root文件列出了所有根DNS服务器的地址 zone localhost. IN 定义 localhost的正向解析区声明 flle"localhost.z0 allow-update( none,i: zone 0.0. 127 in-addr. arpa."IN t 定义 localhost的逆向解析区声明 file"named local odate i none,i: ∥定义 localhost的逆向解析区声明(Pv6) zone"0.0.0.0.0.00.00.0.00.0.0.0.0.0.0.00.0.0.0.00.0.0.0.0.00.p6apa"IN{ type master, file "named. p6. local allow-update( none: 1 include "/etc/rndc. key", 包含 /etc/rndc. key文件 下面对主配置文件 named. conf的语法进行介绍 1)配置语句 named. conf的配置语句及其功能见表8-3 表8-3 named. conf的配置语句及其功能 配置语句 controls 定义mdc命令使用的控制通道,若省略此句,则只允许经过 rndc. key认证的12700.1的 dc控制 将其他文件包含到该配置文件中 定义授权的安全密钥 logging 定义日志的记录规范
file "192.168.0.db"; //逆向解析区文件名,名称可以任意取 }; zone "test.edu.cn." IN { //定义正向解析区声明, 如果不写IN,那么默认就是IN类 type master; file "test.edu.cn.db"; //正向解析区文件名,名称可以任意取 }; zone "." IN { //定义根区声明 type hint; //选择type为hint("."专用) file "named.root"; //默认文件名named.root,有时也可能是named.ca }; //在DNS数据库中,named.root文件列出了所有根DNS服务器的地址 zone "localhost." IN { //定义localhost的正向解析区声明 type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa." IN { //定义localhost的逆向解析区声明 type master; file "named.local"; allow-update { none; }; }; //定义localhost的逆向解析区声明(IPv6) zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." IN { type master; file "named.ip6.local"; allow-update { none; }; }; }; include "/etc/rndc.key"; //包含/etc/rndc.key 文件 下面对主配置文件 named.conf 的语法进行介绍。 1)配置语句 named.conf 的配置语句及其功能见表 8-3。 表 8-3 named.conf 的配置语句及其功能 配置语句 功能 acl 定义 IP 地址的访问控制列表 controls 定义 rndc 命令使用的控制通道,若省略此句,则只允许经过 rndc.key 认证的 127.0.0.1 的 rndc 控制 include 将其他文件包含到该配置文件中 key 定义授权的安全密钥 logging 定义日志的记录规范
定义全局配置选项 设置每个服务器的特有的选项 为服务器定义 DNSSEC加密密钥 定义域名空间的一个视图 定义一个区(域) 2) options语句 named. conf文件中全局配置语句的语法为: 配置子句; 配置子句; 常用的全局配置子句及其功能见表8-4 表84全局配置子句及其功 directory 定义服务器区配置文件的存放目录,默认为∧ ar/named notify yes/no 若 named是主服务器,当区数据库变化时将自动通知相应区的从服务器,默 是否使用递归式DNS服务器,默认值为ves transfer -format 设置从主服务器向从服务器复制数据的方式,使用在主域名服务器上,是否 one-answer/many- answer允许在一条消息中放入多条应答信息,默认值为 one-answer forwarders{ ADdrs}设置全局转发器,列出要用作转发器的服务器IP地址 forward only/first 若值为only,则服务器缓存数据并查询转发器,但从不查询其他的任何服务 器,若转发器不能响应查询则查询失败:若值为frst,则在转发查询失败或 没有查到结果时,会在本地发起正常查询。默认为frst )区声明 named. conf文件中最重要的部分是区声明,zone语句的语法为: type子句 file子句; 其他子句; ); 常用的区声明子句及其功能见表8-5 表8-5区声明子句及其功能 功能 pe master/slave/hint/forward说明一个区的类型。 master说明一个区为主域名服务器;save说明一个 区为辅助域名服务器:hint说明一个区为根服务器的索引: forward说明 个区为转发区 fle“ filename” 指定一个区的信息数据库文件名,既区文件名,区文件定义了一个区的域 名信息 4)view指令 在实际的网络应用中,有时希望能够根据来自不同IP地址的请求,对同一个域名解析 到不同的P地址,比如:一所高校的校园网有两个出口:教育网和公网(网通、电信等), 希望来自教育网的用户通过教育网接口访问,来自公网的用户通过公网接口访问,另外,还 要对校内用户提供域名解析服务。此时可以通过BⅠND9提供的vew指令实现该功能(BIND8 没有vew指令),加快用户的访问速度
options 定义全局配置选项 server 设置每个服务器的特有的选项 trusted-key 为服务器定义 DNSSEC 加密密钥 view 定义域名空间的一个视图 zone 定义一个区(域) 2)options 语句 named.conf 文件中全局配置语句的语法为: options( 配置子句; 配置子句; ); 常用的全局配置子句及其功能见表 8-4。 表 8-4 全局配置子句及其功 子句 功能 directory 定义服务器区配置文件的存放目录,默认为/var/named notify yes/no 若 named 是主服务器,当区数据库变化时将自动通知相应区的从服务器,默 认为 yes recursion yes|no 是否使用递归式 DNS 服务器,默认值为 yes transfer-format one-answer|many-answer 设置从主服务器向从服务器复制数据的方式,使用在主域名服务器上,是否 允许在一条消息中放入多条应答信息,默认值为 one-answer forwarders {IPaddrs} 设置全局转发器,列出要用作转发器的服务器 IP 地址 forward only/first 若值为 only,则服务器缓存数据并查询转发器,但从不查询其他的任何服务 器,若转发器不能响应查询则查询失败;若值为 first,则在转发查询失败或 没有查到结果时,会在本地发起正常查询。默认为 first 3)区声明 named.conf 文件中最重要的部分是区声明,zone 语句的语法为: zone “zone-name” IN( type 子句; file 子句; 其他子句; ); 常用的区声明子句及其功能见表 8-5。 表 8-5 区声明子句及其功能 子句 功能 type master/slave/hint/forward 说明一个区的类型。master 说明一个区为主域名服务器;slave 说明一个 区为辅助域名服务器;hint 说明一个区为根服务器的索引;forward 说明 一个区为转发区 file “filename” 指定一个区的信息数据库文件名,既区文件名,区文件定义了一个区的域 名信息 4)view 指令 在实际的网络应用中,有时希望能够根据来自不同 IP 地址的请求,对同一个域名解析 到不同的 IP 地址,比如:一所高校的校园网有两个出口:教育网和公网(网通、电信等), 希望来自教育网的用户通过教育网接口访问,来自公网的用户通过公网接口访问,另外,还 要对校内用户提供域名解析服务。此时可以通过 BIND9 提供的 view 指令实现该功能(BIND8 没有 view 指令),加快用户的访问速度
view可以看成zone的集合,如果在配置文件 named. conf中一个vew都没有,那么所 有的zone默认属于一个 (1)修改配置文件 named. conf,主要内容如下 /创建一个访问控制列表 127.0.0.1;211.68.0.0/16;211.84.00/16; ∥2700.是本机,21168.00/16和218400/6表示教育网,注意:在此仅仅是示例, ∥如果实际应用,读者要获得教育网地址列表 127.0.0.1;192.1680.0024;10.10.0.0/16; ∥27001是本机,211680.0/16和218680016表示校园内网,读者要根据自己的 ∥网络环境获得校园网地址列表 view"jaoyuwang"i match- -clients{" Jlaoyuwang ip range";};此视图对教育网用户提供视图内定义的DNS服务 recursion no 把递归关掉,这台DNS服务器忽略外来用户的非本地域名请求 zone"." IN type hint; file"name. root" zone "xinx edu. cn fle" jiaoyuwang/xinx. edu. cn. db";/针对教育网用户的正向解析区文件 view"inside"i match- clients{" an ip range";};视图对内网用户提供视图内定义的DNS服务 recursion yes, ∥对内网用户开启DNS的递归查询 zone type hint; file "name. root" zone 0. 168. 192, in-addr. arpa"IN( fle"o.168.192 .in-addr. arpa. db";l对内网用户的逆向解析区文件
view 可以看成 zone 的集合,如果在配置文件 named.conf 中一个 view 都没有,那么所 有的 zone 默认属于一个 view。 (1)修改配置文件 named.conf,主要内容如下: acl "jiaoyuwang_ip_range"{ //创建一个访问控制列表 127.0.0.1; 211.68.0.0/16; 211.84.0.0/16; //127.0.0.1是本机,211.68.0.0/16和211.84.0.0/16表示教育网,注意:在此仅仅是示例, //如果实际应用,读者要获得教育网地址列表 }; acl "lan_ip_range"{ 127.0.0.1; 192.168.0.0/24; 10.10.0.0/16; //127.0.0.1是本机,211.68.0.0/16和218.68.0.0/16表示校园内网,读者要根据自己的 //网络环境获得校园网地址列表 }; view "jiaoyuwang" { match-clients { "jiaoyuwang_ip_range"; }; //此视图对教育网用户提供视图内定义的DNS服务 recursion no; //把递归关掉,这台DNS服务器忽略外来用户的非本地域名请求 zone "." IN { type hint; file "name.root"; }; zone "xinx.edu.cn" { type master; file "jiaoyuwang/xinx.edu.cn.db"; //针对教育网用户的正向解析区文件 }; }; view "inside" { match-clients { "lan_ip_range"; }; //此视图对内网用户提供视图内定义的DNS服务 recursion yes; //对内网用户开启DNS的递归查询 zone "." IN { type hint; file "name.root"; }; zone "0.168.192.in-addr.arpa" IN { type master; file "0.168.192.in-addr.arpa.db"; //针对内网用户的逆向解析区文件
zone" xinx.edu. cn"i type master, fle" xinx. edu. cn. db";∥对内网用户的正向解析区文件 view"gongwangqita"4 ∥地址列表也可以用any、nne、 localness和 localhost. any是指任何主机, /hone不匹配任何主机, localness是指本地网络的所有主机, localhost是指本地主机。 将此视图放在 Jlaoyuwang和 inside视图之后,对除了教育网用户和内网用户以外的 所有用户提供视图内定义的DNS服务 recursion no ∥把递归关掉,这台DNS服务器忽略外来用户的非本地域名请求 pe hint file"name. root zone"xinx. edu.cn "i file"gongwangqita/db. caterpillar. com. outside", 川针对除了教育网用户和内网用户以外的所有用户的正向解析区文件 (2)创建文件/ar/ named/chroot/var/named/jiaoyuwang/xinx. edu. cn. db jiaoyuwang/xinx. edu. cn.db正向解析区文件对教育网用户提供DNS服务,内容如下 STTL IH SOA dns xinx. edu.cn. root xinx. edu.cn. 3H: Refresh IH. Ro IH), Minimum In ns dns xinx edu. cn.;Ns( Name Server)后面的主机管理整个“ xinx edu. cn.”域 INA192.168.0.5 NA211.68.5822 ;与教育网相连的网络接口的公共IP地址 (3)创建文件/ar/ amed/chroot/var/ named/xinx. edu. cn. db
}; zone "xinx.edu.cn" { type master; file "xinx.edu.cn.db"; //针对内网用户的正向解析区文件 }; }; view "gongwangqita" { match-clients { any; }; //地址列表也可以用any、none、localnets和localhost。any是指任何主机, //none不匹配任何主机,localnets是指本地网络的所有主机,localhost是指本地主机。 //将此视图放在jiaoyuwang和inside视图之后,对除了教育网用户和内网用户以外的 //所有用户提供视图内定义的DNS服务 recursion no; //把递归关掉,这台DNS服务器忽略外来用户的非本地域名请求 zone "." IN { type hint; file "name.root"; }; zone "xinx.edu.cn " { type master; file "gongwangqita/db.caterpillar.com.outside"; //针对除了教育网用户和内网用户以外的所有用户的正向解析区文件 }; }; (2)创建文件/var/named/chroot/var/named/jiaoyuwang/xinx.edu.cn.db jiaoyuwang/xinx.edu.cn.db 正向解析区文件对教育网用户提供 DNS 服务,内容如下: $TTL 1H @ SOA dns.xinx.edu.cn. root.xinx.edu.cn. ( 2 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1H ) ; Minimum IN NS dns.xinx.edu.cn. ; NS(Name Server)后面的主机管理整个“xinx.edu.cn.”域 dns IN A 192.168.0.5 www IN A 211.68.58.22 ;与教育网相连的网络接口的公共 IP 地址 (3)创建文件/var/named/chroot/var/named/xinx.edu.cn.db
xinx. edu. cn. db正向解析区文件对内网用户提供DNS服务,内容如下 STTL IH a SoA dns xinx. edu. cn. rootxinx. edu.cn. 3H. Refresh IH); Minimum In ns dns xinx. edu. cn. NS( Name Server)后面的主机管理整个“ xinx edu. cn”域 INMX10 dns test.edu. cn.;MX( Mail exchanger)指定邮件转发服务器,接收 从 ,Internet.上来的邮件,然后再转发给相应的主机 NA192.1680.5 INA192168022 与内网相连的网络接口的IP地址 (4)创建文件/ar/ named/chroot/var/ named/ gongwangqita/xinx. edu. cn. db gongwangqita/xinx. edu. cn. db正向解析区文件对除了教育网用户和内网用户以外的所有 用户提供DNS服务,内容如下: soa dns xinx edu. cn. root xinx edu.cn 3H: Refresh Iw, Expire IH), Minimum IN Ns dns xinx. edu. cn.;Ns( Name Server)后面的主机管理整个“ xinx. edu. cn.”域 INA192.1680.5 WWW IN A5832.5.78 与电信网相连的网络接口的公共IP地址 以上示例仅用来帮助读者理解vew指令的使用。 第3步:创建正向/逆向解析区文件 在主DNS服务器/ ar/named/chroot/var// named/目录创建正向解析区文件 test edu. cn. db 文件内容如下,正向解析文件主要由一系列A资源记录(RR, Resource record)组成,使 得DNS服务器能够将域名解析成IP地址。 STTL IH a SoA dns test. edu.cn, root test. edu. cn. IH); Minimum IN Ns dns test. edu. cn. NS( Name Server)后面的主机管理整个“ test edu. cn.”域
xinx.edu.cn.db 正向解析区文件对内网用户提供 DNS 服务,内容如下: $TTL 1H @ SOA dns.xinx.edu.cn. root.xinx.edu.cn. ( 2 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1H ) ; Minimum IN NS dns.xinx.edu.cn. ; NS(Name Server)后面的主机管理整个“xinx.edu.cn.”域 IN MX 10 dns.test.edu.cn. ; MX(Mail eXchanger)指定邮件转发服务器,接收 ;从Internet上来的邮件,然后再转发给相应的主机 dns IN A 192.168.0.5 www IN A 192.168.0.22 ;与内网相连的网络接口的 IP 地址 (4)创建文件/var/named/chroot/var/named/gongwangqita/xinx.edu.cn.db gongwangqita/xinx.edu.cn.db 正向解析区文件对除了教育网用户和内网用户以外的所有 用户提供 DNS 服务,内容如下: $TTL 1H @ SOA dns.xinx.edu.cn. root.xinx.edu.cn. ( 2 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1H ) ; Minimum IN NS dns.xinx.edu.cn. ; NS(Name Server)后面的主机管理整个“xinx.edu.cn.”域 dns IN A 192.168.0.5 www IN A 58.32.5.78 ;与电信网相连的网络接口的公共 IP 地址 以上示例仅用来帮助读者理解 view 指令的使用。 第 3 步:创建正向/逆向解析区文件 在主 DNS 服务器/var/named/chroot/var/named/目录创建正向解析区文件 test.edu.cn.db, 文件内容如下,正向解析文件主要由一系列 A 资源记录(RR,Resource Record)组成,使 得 DNS 服务器能够将域名解析成 IP 地址。 $TTL 1H @ SOA dns.test.edu.cn. root.test.edu.cn. ( 2 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1H ) ; Minimum IN NS dns.test.edu.cn. ; NS(Name Server)后面的主机管理整个“test.edu.cn.”域
INMX10 dns test. edu. cn.;MX( Mail eXchanger)指定邮件转发服务器,接收 从 Internet上来的邮件,然后再转发给相应的主机 A192.168.0.5 WWw IN A192.168.0.10 NA192.168020 www有两个P地址 IN CNAME dns 指定主机别名 在主DNS服务器/ar/ named/ chroot/var/ named/目录创建逆向解析区文件192.1680db, 文件内容如下,逆向解析文件由一系列PTR资源记录(RR, Resource record)组成,使得 DNS服务器能够将IP地址反向解析成域名 STTL IH a SoA dns test. edu. cn. root test. edu. cn. O 3H. Refresh IH); Minimum ns dns test. edu. cn 5 PtR dns test. edu. cn 10Ptrwww.test.edu.cn .0Ptrwww.test.edu.cn 对DNS服务器的配置其实就是对 named.conf文件、正向解析文件、逆向解析文件的修改。 下面对正向/逆向解析区文件的语法进行介绍 每个区文件都是由区文件指令和若干条资源记录(RR, Resource record)组成 1)区文件指令 在区文件中使用的区文件指令及其功能见表8-6 表8-6区文件指令及其功能 区文件指令 SINCLUDE 读取一个外部文件 SGENERATE创建一组NS, CNAME或PIR类型的资源记录 SORIGIN STTL TIL( Time to live)跟清除 cache的时间有关,单位是秒,定义向外查询的记录可以 2)SOA记录 SOA( Start of Authority)记录表示一个授权区的开始,其格式如下 zone(ui@) [IN] SOA Hostname Contact( Expire Minimum
IN MX 10 dns.test.edu.cn. ; MX(Mail eXchanger)指定邮件转发服务器,接收 ;从Internet上来的邮件,然后再转发给相应的主机 dns IN A 192.168.0.5 www IN A 192.168.0.10 IN A 192.168.0.20 ; www有两个IP地址 dns2 IN CNAME dns ;指定主机别名 在主 DNS 服务器/var/named/chroot/var/named/目录创建逆向解析区文件 192.168.0.db, 文件内容如下,逆向解析文件由一系列 PTR 资源记录(RR,Resource Record)组成,使得 DNS 服务器能够将 IP 地址反向解析成域名。 $TTL 1H @ SOA dns.test.edu.cn. root.test.edu.cn. ( 2 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1H ) ; Minimum NS dns.test.edu.cn. 5 PTR dns.test.edu.cn. 10 PTR www.test.edu.cn. 20 PTR www.test.edu.cn. 注意: 对 DNS 服务器的配置其实就是对 named.conf 文件、正向解析文件、逆向解析文件的修改。 下面对正向/逆向解析区文件的语法进行介绍。 每个区文件都是由区文件指令和若干条资源记录(RR,Resource Record)组成。 1)区文件指令 在区文件中使用的区文件指令及其功能见表 8-6。 表 8-6 区文件指令及其功能 区文件指令 功能 $INCLUDE 读取一个外部文件 $GENERATE 创建一组 NS,CNAME 或 PTR 类型的资源记录 $ORIGIN 设置管辖源 $TTL TTL(Time To Live)跟清除 cache 的时间有关,单位是秒,定义向外查询的记录可以 在 DNS 服务器的 cache 中保存多长时间 2)SOA 记录 SOA(Start of Authority)记录表示一个授权区的开始,其格式如下: zone(或@) [IN] SOA Hostname Contact ( Serial Refresh Retry Expire Minimum )
@表示在named.conf文件中由zone定义的区的名称,比如:zone"test.edu.cn"IN{}, 在 test. edu. cn. db文件中的@就表示“ test. edu. cn”。 在SOA后面有两个部分: Hostname和 Contact Hostname是主机名称( dns test edu.cn.), ontact是管理员的电子邮箱地址,因为@在资源记录中有特殊的意义,所以用点“.”代替 这个符号。root@test.edu.cn应写为roottest.edu.cn,注意后面的“."。 小刮号中有五个数字,除了 Minimum与TL有关之外,其他四个的都跟主/从DNS服 务器的同步有关。SOA记录中的数据字段及其功能见表8-7 表8-7SOA记录中的数据字段及其功能 数据字段 这个数字用来做为主( Master)、辅助(Save)域名服务器之间的同步的参考数值,也就 是说,当 Slave的 Serial小于 Master的 Serial时,那么 Slave要根据 Master的内容来更新 自己的信息。每次改变信息文件时都应该使这个数加 Refresh Slave进行主动更新的时间间隔,Slve在试图检查Mstr的SOA记录之前应等待的秒数 Retry 如果到了 Refresh的时间,但是 Slave却无法连接到 Master时,那么在多久之后, Slave 会再次的主动尝试与主机联系 Expire 如果Save一直无法与 Master连接上,那么经过多久的时间之后, Slave不要再连接 Master Minimum该字段其实就是TL,如果没有定义T,那么T的值就以该值为准 3)标准资源记录(RR, Resource record) DNS标准资源记录的格式是: [domain] ttl][class] type rdate 各个字段之间用空格或制表符分隔,这些字段的含义见表8-8。可以包含一些特殊字符: ‘@”表示当前域、“O”允许数据跨行,通常用于SOA记录、“;”引出注释、“*”仅用 于 domain字段的通配符, domain字段说明资源记录引用的对象名,可以是一台单独的主机 也可以是个域名 表8-8资源记录中各字段的含义 domain资源记录引用的域对象名。它可以是单台主机,也可以是整个域。作为 domain输入的字串 除非不是以一个点结束,否则就与当前域有关系。如果该 domain字段是空的,那么该记录适 于最后一个带名字的域对象 生存时间字段。以秒为单位,定义该资源记录中的信息存放在高速缓存中的时间长度。通常省 略该字段,表示使用位于文件开始处的$TIL语句所指定值 cass指定网络地址类型,TCPP网络使用IN( Internet tpe标识这是哪一类资源记录,常用的资源记录类型见表89 rdata 与这个资源记录有关的数据,这个值是必要的,数据字段的格式取决于类型字段的内容 表8-9资源记录类型 A( Address)记录用于将主机名(域名)转换为IP地址 CNAME| CNAME( Canonical NAME)是指别名记录,用于设置主机的别名 HINFO描述主机的硬件和操作系统 KEY KEY( Public Key)安全记录,存储了一个关于DNS名称的公钥 ⅨXMX( Mail eXchanger)邮件交换记录,控制邮件的路由 格式为:zone毗 tl]In MX preference host,其中 preference是优先级字段,数值越小优 先级越高 me server)标识一个区的域名服务器以及授权子域 PIR( Pointer)将地址转换为主机名(域名) SIG 区信息,细节见RFC2535 SO^ASOA( Start Of Authority)记录表示一个投权区定义的开始,告诉域名服务器,它后面跟着的 所有资源记录是控制这个域的 SRV sR( Services)指出知名网络服务的信息
@表示在 named.conf 文件中由 zone 定义的区的名称,比如:zone "test.edu.cn." IN {}, 在 test.edu.cn.db 文件中的@就表示“test.edu.cn.”。 在 SOA 后面有两个部分:Hostname 和 Contact。Hostname 是主机名称(dns.test.edu.cn.), Contact 是管理员的电子邮箱地址,因为@在资源记录中有特殊的意义,所以用点“.”代替 这个符号。root@test.edu.cn.应写为 root.test.edu.cn.,注意后面的“.”。 小刮号中有五个数字,除了 Minimum 与 TTL 有关之外,其他四个的都跟主/从 DNS 服 务器的同步有关。SOA 记录中的数据字段及其功能见表 8-7。 表 8-7 SOA 记录中的数据字段及其功能 数据字段 功能 Serial 这个数字用来做为主(Master)、辅助(Slave)域名服务器之间的同步的参考数值,也就 是说,当 Slave 的 Serial 小于 Master 的 Serial 时,那么 Slave 要根据 Master 的内容来更新 自己的信息。每次改变信息文件时都应该使这个数加一 Refresh Slave 进行主动更新的时间间隔,Slave 在试图检查 Master 的 SOA 记录之前应等待的秒数 Retry 如果到了 Refresh 的时间,但是 Slave 却无法连接到 Master 时, 那么在多久之后,Slave 会再次的主动尝试与主机联系 Expire 如果 Slave 一直无法与 Master 连接上,那么经过多久的时间之后,Slave 不要再连接 Master Minimum 该字段其实就是 TTL,如果没有定义 TTL ,那么 TTL 的值就以该值为准 3)标准资源记录(RR,Resource Record) DNS 标准资源记录的格式是:[domain] [ttl] [class] type rdate 各个字段之间用空格或制表符分隔,这些字段的含义见表 8-8。可以包含一些特殊字符: “@”表示当前域、“()”允许数据跨行,通常用于 SOA 记录、“;”引出注释、 “*”仅用 于 domain 字段的通配符,domain 字段说明资源记录引用的对象名,可以是一台单独的主机 也可以是个域名。 表 8-8 资源记录中各字段的含义 字段 含义 domain 资源记录引用的域对象名。它可以是单台主机,也可以是整个域。作为 domain 输入的字串, 除非不是以一个点结束,否则就与当前域有关系。如果该 domain 字段是空的,那么该记录适 用于最后一个带名字的域对象 ttl 生存时间字段。以秒为单位,定义该资源记录中的信息存放在高速缓存中的时间长度。通常省 略该字段,表示使用位于文件开始处的$TTL 语句所指定值 class 指定网络地址类型,TCP/IP 网络使用 IN(Internet) type 标识这是哪一类资源记录,常用的资源记录类型见表 8-9 rdata 指定与这个资源记录有关的数据,这个值是必要的,数据字段的格式取决于类型字段的内容 表 8-9 资源记录类型 类型 含义 A A(Address)记录用于将主机名(域名)转换为 IP 地址 CNAME CNAME(Canonical NAME)是指别名记录,用于设置主机的别名 HINFO 描述主机的硬件和操作系统 KEY KEY(Public Key)安全记录,存储了一个关于 DNS 名称的公钥 MX MX(Mail eXchanger)邮件交换记录,控制邮件的路由。 格式为:zone [ttl] IN MX preference host,其中 preference 是优先级字段,数值越小优 先级越高 NS NS(Name Server)标识一个区的域名服务器以及授权子域 PTR PTR(PoinTeR)将地址转换为主机名(域名) SIG SIG(Signatrue)指出带签名和身份认证的区信息,细节见 RFC 2535 SOA SOA(Start Of Authority)记录表示一个授权区定义的开始,告诉域名服务器,它后面跟着的 所有资源记录是控制这个域的 SRV SRV(Services)指出知名网络服务的信息
TXT TXT(注释或非关键的信息 在正向逆向解析区文件中,资源记录的书写顺序是: SOA RR应该放在最前面,通常 NSRR紧跟在 SOA RR之后,其他记录的顺序无关紧要 第4步:检查配置文件的语法 执行 named- checkconf命令,可以检査/etc/ named. conf文件是否有语法错误,如果执行 named- checkconf命令后没有任何输出,说明letc/ named. conf文件没有语法错误。 none: 0: open: /etc/named. conf: file not found 此时可以建立对/a/ named/chroot/etc/ named. conf文件的符号链接/etc/ named. conf [root@localhost -]#In-s/var/named/chroot/etc/named. conf /etc/named. conf [root @localhost -)#Is-I/etc/named. conf Irwxrwxrwx I root root 32 05-18 12: 46/etc/named. conf ->/var/named/chroot/etc/named. conf [root @localhost - ] named-checkconf [root @localhost 第5步:测试 修改/etc/ resolv. conf文件,将 nameserver行改写为 nameserver192.1680.5。 执行# service named restart命令重启DNS服务器,或者执行# rndc reload命令,重新加载 配置文件。 执行#nslookupwww.test.edu.cn命令测试DNS的正向解析功能。 执行# nslookψp1921680.10命令测试DNS的反向解析功能。 将第2步的 named. conf文件中的 match- clients{any,};修改为math- clients{none,}; 执行#nslookupwww.test.edu.cn命令,结果如图8-22所示,读者分析这是为什么? 823实例一设置DNS客户机 在 Linux系统中,需要配置两个文件:letc/ host conf和/etc/ resolv. conf
TXT TXT(Text)注释或非关键的信息 在正向/逆向解析区文件中,资源记录的书写顺序是:SOA RR 应该放在最前面,通常 NS RR 紧跟在 SOA RR 之后,其他记录的顺序无关紧要。 第 4 步:检查配置文件的语法 执行 named-checkconf 命令,可以检查/etc/named.conf 文件是否有语法错误,如果执行 named-checkconf 命令后没有任何输出,说明/etc/named.conf 文件没有语法错误。 [root@localhost ~]# named-checkconf none:0: open: /etc/named.conf: file not found 此时可以建立对/var/named/chroot/etc/named.conf 文件的符号链接/etc/named.conf。 [root@localhost ~]# ln -s /var/named/chroot/etc/named.conf /etc/named.conf [root@localhost ~]# ls -l /etc/named.conf lrwxrwxrwx 1 root root 32 05-18 12:46 /etc/named.conf -> /var/named/chroot/etc/named.conf [root@localhost ~]# named-checkconf [root@localhost ~]# 第 5 步:测试 修改/etc/resolv.conf 文件,将 nameserver 行改写为 nameserver 192.168.0.5。 执行#service named restart 命令重启 DNS 服务器,或者执行#rndc reload 命令,重新加载 配置文件。 执行#nslookup www.test.edu.cn 命令测试 DNS 的正向解析功能。 执行#nslookup 192.168.0.10 命令测试 DNS 的反向解析功能。 将第 2 步的 named.conf 文件中的 match-clients { any; };修改为 match-clients { none; };, 执行#nslookup www.test.edu.cn 命令,结果如图 8-22 所示,读者分析这是为什么? 8.2.3 实例—设置 DNS 客户机 在 Linux 系统中,需要配置两个文件:/etc/host.conf 和/etc/resolv.conf