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"; //针对内网用户的逆向解析区文件