DNS作用
正向解析:域名-->IP
反向解析:IP-->域名
DNS管理
IANA 分配ip地址和域名
ICANN 互联网名称与数字地址分配机构
A.通过文件管理:hosts
从文件服务器下载,覆盖/etc/hosts里的内容(设置的有定时任务)
B.搭建域名服务器:DNS
降低了客户端的操作的复杂难度
加重了服务器端的维护难度
C.分布式DNS:
优点:减轻单台服务器压力
缺点:时间过长;管理麻烦
解决方案:每级服务器只管理直连下级、允许重名
域名管理
域名等级划分:
顶级域名:com cn
二级域名:sina itxdl
三级域名:www blog
工作模式:
(1)客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
(2)客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。
(3)将请求转发本地DNS服务器。
(4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。
(5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
(6)向全球13个根域服务器发起DNS请求,根域返回org域的地址列表。
(7)使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
(8)使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机。
递归查询:压力在服务器端
迭代查询:压力在客户端
软件:
bind
服务:
named
端口:
UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
/etc/named.conf 主配置文件 服务器运行参数
/etc/named.rfc1912.zones 区域文件 服务器解析的区域配置
/var/named/xx.xx 数据文件 主机名和IP地址的对应关系
安装部署
[root@localhost ~]# yum -y install bind
[root@localhost ~]# vi /etc/named.conf
options {
listen-on port 53 { 192.168.1.211; }; #声明服务器监听的哪个端口(客户端通过哪个端口访问服务器)
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"; #数据文件。
allow-query { any; }; #允许哪些客户端访问。
recursion yes;
配置区域文件(/etc/named.rfc1912.zones)
[root@localhost ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
[root@localhost ~]# vi /etc/named.rfc1912.zones
zone "ljj.com" IN { #指明要增加的DNS域名称。
type master; #指明增加的是DNS主域
file "ljj.localhost" #设置实现正向解析的区域文件名。
allow-update { none; }; #设置DNS不允许动态更新。
};
zone "1.168.192.in-addr.arpa" IN { #指明该区域为反向查找区域。
type master; #指明反向查找区域为主要区域。
file "named.empty"; #设置实现反向解析的区域文件名。
allow-update { none; }; #设置DNS不允许动态更新。
};
配置数据文件/var/named/
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost ljj.localhost
[root@localhost named]# cp -p named.loopback ljj.empty
[root@localhost named]# vi ljj.localhost
[root@localhost named]# vi ljj.localhost
$TTL 1D
@ IN SOA ljj.com. rname.invalid. (
(表示当前的DNS域) 0 ; serial #序列号
1D ; refresh #更新时间。
1H ; retry #重试时间。
1W ; expire #过期时间。
3H ) ; minimum #缓存时间。
NS dns.ljj.com.
dns A 192.168.1.211
www A 192.168.1.220
[root@localhost named]# vi ljj.empty
$TTL 1D
@ IN SOA ljj.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.ljj.com.
211 PTR dns.ljj.com.
220 PTR www.ljj.com.
[root@localhost named]# service named restart
停止 named:[确定]
启动 named:[确定]
测试
[root@localhost ~]# nslookup
> www.ljj.com
Server: 192.168.1.211
Address: 192.168.1.211#53
Name: www.ljj.com
Address: 192.168.1.220
> dns.ljj.com
Server: 192.168.1.211
Address: 192.168.1.211#53
Name: dns.ljj.com
Address: 192.168.1.211
从DNS服务器
[root@localhost ~]# yum -y install bind
[root@localhost ~]# vi /etc/named.conf
options {
listen-on port 53 { 192.168.1.220; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
但有一点需要注意:主DNS的区域配置文件中allow-updata参数添加从服务器IP地址。
[root@localhost ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
[root@localhost ~]# vi /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
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
zone "ljj.com" IN {
type slave;
masters { 192.168.1.211; };
file "slaves/lyn.localhost";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.1.211; };
file "slaves/lyn.empty";
allow-update { none; };
};
[root@localhost ~]# service named restart
停止 named:[确定]
启动 named:[确定]
客户端测试把DNS的IP地址修改为从DNS的IP地址。
DNS缓存服务器
[root@localhost ~]# yum -y install dnsmasq
domain=ljj.com #需要解析的域名
server=192.168.1.211 #主DNS服务器IP
cache-size=15000 #声明缓存条数
[root@localhost ~]# service dnsmasq restart
测试:
在测试机上填写DNS为缓存服务器的ip地址