岗位技能(三) Linux网络服务器配置与管理 项目2 架设DNS服务器
教学目标 能力目标 能配置与管理DNS服务器 能配置DNS客户端(包括Linux 及windows ) 能完成关于DNS服务的故障排除
教学目标 知识目标 掌握DNS服务工作原理
案例引入 某校园网的拓扑结构如下图所示。已申请域名:xqpi.edu.cn,需要保证校内DNS客户端及各FTP、WWW、Email服务器的域名解析
1. DNS系统简介 DNS是基于客户/服务器模型设计的。 整个域名系统以一个大的分布式数据库的方式工作。
域名称空间 根域 net com org 顶级域 nwtraders 二级域 west south east 子域 sales FQDN: server1.sales.south.nwtraders.com 主机: server 1
DNS查询模式 递归查询(Recursive Query) 叠代查询(Iterative Query)
递归查询 “树根” .edu 顶级 域名服务器 dns.com com .com 顶级 域名服务器 edu abc xyz ③ ⑥ ② ⑦ 因特网 abc xyz 本地域名服务器 dns.xyz.com 授权域名服务器 本地域名服务器 dns.abc.com 授权域名服务器 … … x y ⑤ ⑧ ① t.y.abc.com 的 IP 地址是什么? ④ u v w 本地域名服务器 dns.y.abc.com 授权域名服务器 y … … m.xyz.com t.y.abc.com
递归与迭代相结合的查询 根域名服务器 dns.com ③ ② ⑤ ④ 本地域名服务器 dns.y.abc.com 本地域名服务器 dns.abc.com 本地域名服务器 dns.xyz.com ⑥ ⑦ ⑧ IP(t.y.abc.com) = (198.54.23.15) ① IP(t.y.abc.com)=? t.y.abc.com m.xyz.com
2. DNS域名服务器的类型 惟高速缓存服务器(caching-only server) 主域名服务器(primary name server) 辅助域名服务器(secondary name server)
3. 安装BIND域名服务器 # rpm -ivh bind-9.3.3-7.el5.i386. rpm # rpm -ivh bind-chroot- 9.3.3 -7.el5.i386.rpm i表示安装 V表示显示安装得详细信息 H表示人性化地显示安装过程
BIND的启动与停止
查看域名服务器的运行状态
4. DNS服务器配置基础
BIND的主配置文件named.conf vi /etc/named.conf
全局配置语句options 常用语法 例如: options ( directory “path” ; //定义服务器区配置文件的目录 forwarders { IPaddr } ; //定义转发器 ); 例如: ( directory /var/named; forwarders { 202.106.196.115; 202.106.0.20; };
区(zone)声明 常用语法 例如: zone "zone-name" IN { type master|hint|slave ; //说明一个区的类型 file “filename” ; //说明一个区的域信息源数据库信息文件名 masters { IPaddr }; //指定主DNS的IP地址,用于辅助DNS配置 }; 例如:
区(zone)声明举例:
主域 zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; 注意:每个语句的后面都有“;”,最后也有“;”
主域 zone "21php.com" { type master; notify yes; file "21php.com"; };
主域 由一个zone段在/etc/named.conf中宣告 type master; file:存放该zone数据的文件名 必须存在于options段中提及的目录( "/var/named" )之下 文件名可以随意 allow-update:允许动态更新该zone数据的客户机 zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; };
从域 zone “example.org" { type slave; file “db.example.org"; allow-transfer { none; }; masters { 204.150.166.143; }; };
从域 由一个zone段在/etc/named.conf中宣告 type slave; master:指定其主域名服务器 对应的主域名服务器必须承认并存放有该区域的数据 file:本地用于存放zone数据的文件 从域名服务器总是试图与其master联系并获取一份当前数据的副本 zone “example.org" { type slave; file “db.example.org"; allow-transfer { none; }; masters { 204.150.166.143; }; };
反解析域 域的名字必须用.in-addr.arpa来结尾 由一个zone段在/etc/named.conf中宣告 反解析域一般对应到一个具体的IP段 反解析域同样可以配置为从域 许多服务会尝试进行反解析 zone "1.168.192.in-addr.arpa" IN { type master; file “zone.192.168.1"; };
zone "1.168.192.in-addr.arpa" IN { type master; file “zone.192.168.1"; };
根域 根域“.” zone "." IN { type hint; file "named.ca"; };
zone文件 文件通常存放在/var/named目录下 用于存放指定域内的各种资源与数据 第一段资源记录被成为起始授权记录(SOA) 每一个在/etc/named.conf中定义的zone都应该对应一个具体的zone文件
资源记录 SOA:定义起始授权 NS:指定域名服务器 MX:指定邮件服务器 A:将一个域名解析成其后的IP CNAME:将一个域名设置为另一个域名的别名 PTR:将一个IP地址指向一个域名
SOA记录 SOA(Start of Authority):起始授权 这个记录 放在 zone file 一开始的地方, 描述这个 zone 负责的 name server, version number, maintainer资料, 以及当 slave server 要备份这个 zone 时的一些参数 每一个域文件中都应该有一个SOA 段 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum 起始授权段放在每一个域文件的开头,并且定义了一些最基础的参数。 @取代在/etc/named.conf中指定的域名。 SOA段中的数字,分别为:序列号、刷新、重试、过期、生存期 序列号:序列号用于DNS数据库文件的版本控制。每当数据被改变,这个序列号就应该被增加。 刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别。 重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间。 过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期。 生存期:服务器回答 ‘无此域名’ 的间隔时间。 数字的默认单位为秒。否则:W=周、D=日、H=小时、M=分钟。
@ @是什么内容? 如果设定了$ORIGIN(如在/var/named/localhost.zone文件中定义的$ORIGIN localhost. [这个点千万要注意,没有这个点后面表示要加上@代表的内容]),那么@就是这个内容了, 如果没有设定$ORIGIN,那么@跟随上面的设置,就是/etc/named.conf里面的zone名称。
NS记录 NS(name server):域名服务器 @ IN NS server1.example.com. example.com IN NS server1.example.com. 有时,你会见到NS记录的开头什么都没有。这表示自动沿用上一条记录的开头定义。(所以千万要注意格式) 有时,你会见到NS记录的开头什么都没有。这表示自动沿用上一条记录的开头定义。
资源记录 A记录 CNAME记录 PTR记录 用于将主机名对应成IP地址 server 1D IN A 192.168.0.254 用于定义某一个地址的别名 smtp IN CNAME mail pop IN CNAME smtp PTR记录 用于将IP地址对应成一个主机名 254 IN PTR server1.example.com.(千万不要忘记这个点) A记录: server 1D IN A 192.168.0.254 CNAME记录: smtp IN CNAME mail pop IN CNAME smtp PTR记录: 254 IN PTR server1.example.com.
MX与HINFO记录 MX:用于定义某一个域里负责的邮件服务器 HINFO记录提供解析时对一台主机做补充注释 example.com IN MX 5 mail (example.com这个域的邮件服务器由mail这台主机负责,即所有到example.com域的邮件都要转到mail这台主机上去。) HINFO记录提供解析时对一台主机做补充注释 server1 IN HINFO master server
Round Robin 利用复数A记录来均衡数台服务器的访问负载 round robin的关键在于,每一条A记录都不应该被记入cache。 www 0 IN A 192.168.0.3 www 0 IN A 192.168.0.4 www 0 IN A 192.168.0.5 round robin的关键在于,每一条A记录都不应该被记入cache。 round robin的关键在于,每一条A记录都不应该被记入cache。 那么用户每次查询时得到的ip地址不同,尽管域名相同
r n d c 域名服务器控制程序 安全防范,远程控制运行的域名服务器 使用TSIG 安全 例如: [root @stationxx root]# rndc reload rndc 默认只监听本地loopback端口 Rndc reload 重新载入配置文件
BIND语法检查工具 在BIND出错时使用如下工具: named-checkconf 默认检查的配置文件是 /etc/named.comf named-checkzone 检查一个Zone文件的配置 例如: [root @stationxx root] # named-checkconf ~/myconfig/named.conf [root @stationxx root] # named-checkzone wenhua.org /var/named/wenhua.org.zone 另外一种差错的方式是看日志: More /var/log/messages 例如: [root @stationxx root] # named-checkconf ~/myconfig/named.conf [root @stationxx root] # named-checkzone wenhua.org /var/named/wenhua.org.zone 另外一种差错的方式是看日志: /var/log/messages
redhat-config-bind 图形界面下的BIND配置工具 简单清晰地完成BIND配置 可对应多个版本的BIND 配置文件存放在/etc/alchemist/namespace/dns/local.adl
5 DNS主域名服务器配置实例 6 DNS辅助域名服务器配置实例
7 测试DNS服务器 Linux环境下测试DNS服务器 编辑/etc/resolv.conf,然后令其nameserver选项的值为指定DNS服务器的IP地址。 [例10-10]查看IP地址202.127.50.100所对应的域名。 [例10-11] 查看域名www.linux.com所对应的IP地址。
7 测试DNS服务器 Windows下测试DNS服务器 在「首选DNS服务器」中输入配置成功的DNS服务器的IP地址。