学习情境3:Linux DNS服务器配置与管理 项目背景: 某企业有一个局域网(192.168.1.0/24)该企业中已经有自己的网页,员工希望通过域名来进行访问,同时员工也需要访问 Internet 上的网站。该企业已经申请了域名 linux.com,公司需要 Internet 上的用户通过域名访问公司的网页。为了保证可靠,不能因为DNS 的故障,导致网页不能访问。
学习情境3:Linux DNS服务器配置与管理 项目分析: 本项目对应的工作任务: 1.企业DNS服务器的安装 2.企业主DNS服务器的配置 3.企业辅助DNS服务器的配置 4.企业转发器DNS服务器的配置 5.DNS客户端的配置 6.DNS服务器的故障检测与排除
学习情境3:Linux DNS服务器配置与管理 学习任务: 安装和配置Linux域名服务器 用解析工具nslookup检测DNS配置
DNS简介 域名服务的相关概念 DNS的分层结构 域的委托管理 域名解析过程 域名注册
域名服务的相关概念 主机 域 域名 域名系统 域名服务器 解析器 缓存 生存期 反向域名解析 Bind
域名解析过程 (1)客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 (2)本地的域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。 (3)如果本地的缓存中没有该记录,则本地域名服务器把请求发给根域名服务器,根域名服务器返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。 (4)本地服务器向上一步返回的域名服务器发送请求,接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级域名服务器的地址。 (5)重复第四步,直到找到正确的纪录。 (6)本地域名服务器将结果返回给客户机;同时把返回的结果保存到缓存,以备下次使用。
域名注册 中国的域名体系 在.cn下直接注册二级域名
使用域名服务 /etc/host.conf文件 host.conf文件指定如何解析主机名,Linux通过解析器库来获得主机名对应的IP地址。 /etc/nsswitch.conf文件 nsswitch.conf文件(系统数据库和域名服务转换设置文件)是由SUN公司开发的,用于管理系统中多个配置文件查找的顺序,它比/etc/host.conf文件提供了更多的功能。nsswitch.conf中的每一行或者是注释(以#号开头),或者是一个关键字,后跟冒号和对此关键字的设置。其中对主机名查询的设置关键字为hosts。
安装和配置Linux域名服务器 1 安装Bind9 2 配置惟高速缓存域名服务器 3 配置主域名服务器 4 配置辅域名服务器 2 配置惟高速缓存域名服务器 3 配置主域名服务器 4 配置辅域名服务器 5 配置域名转发器
BIND的安装命令 rpm -Uvh bind-9.2.0-8.i386.rpm 安装BIND9软件包 安装缓存服务器软件包 rpm -Uvh caching-nameserver-7.2-1.noarch.rpm 安装缓存服务器软件包
BIND的安装文件 bind-9.2.0-8.i386.rpm BIND9的安装软件包 caching-nameserver-7.2-1.noarch.rpm 配置缓存服务器需要安装的软件包
BIND的启动与停止 /etc/rc.d/init.d/named BIND的启动脚本 service named start service named stop 停止BIND服务器的命令 service named status 查询BIND服务器状态的命令 service named restart 重新启动BIND服务器的命令
named的配置文件 • 主配置文件: /etc/named.conf • 区文件目录: /var/named/ • 区文件: named.ca named.local localhost.zone
/etc/named.conf options { directory "/var/named"; pid-file "/var/run/named/named.pid"; }; zone "." IN { type hint; file "named.ca"; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; zone "0.0.127.in-addr.arpa" IN { file "named.local";
/var/named/named.ca ………… 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 formerly NS1.ISI.EDU 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 formerly C.PSI.NET 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 formerly TERP.UMD.EDU
/var/named/ named.zone $TTL 86400 @ 1D IN SOA @ root ( 42 ; serial (d. adams) 3H; refresh 15M; retry 1W; expiry 1D ); minimum 1D IN NS@ 1D IN A 127.0.0.1
/var/named/named.local $TTL 86400 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800; Refresh 14400; Retry 3600000; Expire 86400 ); Minimum IN NS localhost. 1 IN PTR localhost.
配置DNS解析器 编辑文件/etc/resolv.conf 在文件中添加 nameserver 192.168.1.112 “192.168.1.112”为DNS服务器的IP地址,最多可以设置三个DNS
配置惟高速缓存域名服务器 在已经安装软件包 的BIND服务器上,DNS服务器默认配置为高速缓存服务器 caching-nameserver-7.2-1.noarch.rpm 的BIND服务器上,DNS服务器默认配置为高速缓存服务器 文件/var/named/named.ca是DNS根区域的数据库文件
高速缓存DNS服务器配置解析 /etc/named.conf文件中对DNS根服务器的配置部分: zone "." IN { type hint; file "named.ca"; }; zone "."表示此段定义为根区域属性 type hint:只有根区域的类型为“hint” file "named.ca"表示根区域的数据库文件为"named.ca"
配置主域名服务器 在文件/etc/named.conf中添加区域“test.com”的定义: zone "test.com" { type master; file "/var/named/test.com.hosts"; };
建立正向区域文件 建立正向区域文件,并在其中添加记录: A记录 NS记录 CNAME记录 MX记录
正向区域文件实例 建立正向区域文件/var/named/test.com.hosts如: $ttl 38400 test.com. IN SOA ns1.test.com. root.localhost. ( 1035860240 10800 3600 604800 38400 ) test.com. IN NS ns1 hosta.test.com. IN A 192.168.1.11 ns1.test.com. IN CNAME hosta.test.com test.com. IN MX 10 mail mail.test.com. IN A 192.168.1.12
创建反向主服务器 在文件/etc/named.conf中添加区域“192.168.1”的定义: zone "1.168.192.in-addr.arpa" { type master; file "/var/named/192.168.1.rev"; }; “/var/named/192.168.1.rev”是该区域的区域文件
建立反向区域文件 建立反向区域文件,并在其中添加记录: PTR记录 NS记录 CNAME记录
反向区域文件实例 建立反向区域文件/var/named/192.168.1.rev如: $ttl 38400 1.168.192.in-addr.arpa. IN SOA ns1.test.com. root.localhost. ( 1035861490 10800 3600 604800 38400 ) 1.168.192.in-addr.arpa. IN NS ns1.test.com. 11.1.168.192.in-addr.arpa. IN PTR hosta.test.com.
配置辅域名服务器 在另一台Linux服务器上建立DNS从服务器,在文件/etc/named.conf中添加区域“test.com”的定义: zone "test.com" { type slave; file "/var/named/test.com.hosts"; masters { 192.168.1.10; }; }; 类型为“slave”代表此区域是从服务器 “192.168.1.10”是DNS主服务器的IP地址
配置辅域名服务器 在DNS从服务器上建立反向解析区域,在文件/etc/named.conf中添加区域“test.com”的定义: zone "1.168.192.in-addr.arpa" { type slave; file "/var/named/192.168.1.rev"; masters { 192.168.1.10; }; }; 类型为“slave”代表此区域是从服务器 “192.168.1.10”是DNS主服务器的IP地址
配置域名转发器 转发器是在named.conf文件中的options区段设置的。主要用到两个配置选项: forwarders:指定要把查询请求转发到的远程域名服务器的IP地址。 forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] } forward:启用域名转发功能。 forward only
DNS转发 在/etc/named.conf中可以在options段中使用forwarders和forward指令设置DNS转发: 192.168.1.110; 192.168.1.112; }; forward first;
forwarders forwarders { DNS_IP_1; DNS_IP_2; };
forward forward first | only; forward指令用于设置DNS转发的工作方式: forward first设置优先使用forwarders DNS服务器做域名解析,如果查询不到再使用本地DNS服务器做域名解析。 forward only设置只使用forwarders DNS服务器做域名解析,如果查询不到则返回DNS客户端查询失败。
用解析工具nslookup检测DNS配置 在本域内解析外部的域名 在本域内解析域内域名 在域内反向解析域内IP (1)设置解析类型为PTR (2)输入本地主机的IP地址 在域外解析域内的域名 在域外反向解析域内的IP
nslookup命令行 # nslookup hosta.test.com Server: 192.168.1.10 Address: 192.168.1.10#53 Name: hosta.test.com Address: 192.168.1.11 #
nslookup交互方式 # nslookup > hosta.test.com Server: 192.168.1.10 Address: 192.168.1.10#53 Name: hosta.test.com Address: 192.168.1.11 > 192.168.1.11 11.1.168.192.in-addr.arpa name = hosta.test.com. >
设置Linux中的DNS客户 Linux客户端的DNS服务器设置文件是/etc/resolv.conf
BIND的帮助资源 BIND的主站点: http://www.isc.org/products/BIND/ 文档目录: /usr/share/doc/bind-9.2.0/ 参考手册: man named.conf