DNS服务器
DNS是Domain Name System,它能够把形如www.lampmaster.cn本站域名转换为219.136.249.93这样的IP地址;没有DNS,浏览www.lampmaster.cn时,就必须用219.136.249.93这么难记的数字来访问。提供DNS服务的就是DNS服务器。
DNS服务器可以分为三种,高速缓存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。
DNS作用:
正向解析:将域名转换成对应的ip地址
反向解析:将ip地址转换成对应的域名
域名解析过程
一次递归多次迭代
DNS使用端口 :
TCP 53
UDP 53
NDS的配置文件:
/var/named/chroot/etc/named.conf # 主配置文件
/var/named/chroot/var/named # 区域文件目录
/var/named/zonefile # 数据文件
/usr/share/doc/bind*/sample/ # 模版文件
/var/log/messages # 日志文件
/var/named/chroot/etc/named.caching-nameserver.conf # 模板
named.conf 配置解析:
- type :类型
- hint :根区域
- master :主区域
- slave :从区域
- forward :转发区域
DNS解析的作用:
正向解析:
- 根据主机名称(域名)查找其对应的IP地址
- 这是最基本,最常用的功能
反向解析:
- 根据IP地址查找其对应的主机名称(域名)
- 反垃圾邮件/安全防护等领域使用
DNS分布式结构:
DNS解析过程:
DNS主配置文件内容解说如下:
[root@localhost ~]# vim /var/named/chroot/etc/named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
// 上面这行是告诉我们模板在那里。
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { localhost; };
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
全局配置文件解释:
options :用于指定BIND服务的参数,
listen-on port :指定BIND侦听的DNS查询请求的本机IP地址及端口。
listen-on-v6 port :指定BIND侦听的DNS查询请求的本机IP地址及端口,只是用与IPv6.。
directory :指定区域配置文件所在的路径,默认是“/var/named”如果是使用了“chroot”该路径会是一个相对的路径,“/var/named/chroot/var/named”
dump-file : 当执行 rndc dumpdb 命令时, DNS服务器存放数据库文件的路径名。
statistics-file : 当执行 rndc stats 命令时,服务器会将统计信息追加到的文件路径名。
memstatistics-file : DNS服务器输出的内存使用统计文件的路径名。
query-source port :指定客户端提交 DNS 查询时必须使用的源端口。
allow-query : 指定接受 DNS 查询请求的客户端。
logging : 用于指定BIND服务的日志参数
view : 用于指定主配置文件存放路径及名称。
match-clients :指定提交DNS客户端的源IP地址范围。
match-destinations : 指定提交DNS客户端的目标IP地址范围。
recursion : 指定 DNS 客户端是否提交递归查询。
include : 指定主配置文件
[root@localhost ~]# vim /var/named/chroot/etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files. # 这个是告诉我们模板的位置。
//
zone "." IN { # 定义根域
type hint; # 类型hint
file "named.ca"; # 根域信息在named.ca
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN { # 本地正解定义
type master; # 类型为master
file "localhost.zone"; # 正解文件名
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN { # 本地反解定义
type master; # 类型为master
file "named.local"; # 反解文件名
allow-update { none; };
};
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; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
DNS区域配置文件:
- $TTL (Time Live 生存时间)
- SOA (Start Of Authority,授权信息开始)
- 分号“.”开始的部分表示注释
1)正向解析格式:
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost ~]# vim localdomain.zone
$TTL 86400 # 有效记录的生存周期
@ IN SOA localhost root (
42 ; serial (d. adams) # 更新序号
3H ; refresh # 刷新时间
15M ; retry # 重试间隔
1W ; expiry # 失效时间
1D ) ; minimum # 无效记录的生存周期
IN NS localhost
localhost IN A 127.0.0.1
注释:
NS : 代表域名服务器(Name Server)记录
A : 代表地址(Address)记录,用在正向解析区域
2)反向解析格式:
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost ~]# vim named.local
$TTL 86400 # 有效记录的生存周期
@ IN SOA localhost root (
42 ; serial (d. adams) # 更新序号
3H ; refresh # 刷新时间
15M ; retry # 重试间隔
1W ; expiry # 失效时间
1D ) ; minimum # 无效记录的生存周期
IN NS localhost.
1 IN PTR localhost.
注释:
PTR :代表指针(Point)记录,用在反向解析区域,第一列指定IP地址中的主机地址部分即可。
泛域名解析:
$ : 代表变量。
$GENERATE 1-200 station$ IN A 192.168.4.$
$GENERATE 1-200 $ IN PTR station$.baidu.com
$GENERATE # 函数
1-200 # 要循环的变量
station$ # 主机名
192.168.4.$ # 对应的IP地址