概述:
任何主机要想在网络上通信都要借助IP地址来实现,IP地址是以数字的形式出现,如:202.202.96.39,但是人们使用网络时难于记忆这样的数字,这给网络的发展带来了不便,后来人们想出了一个办法:用具有实际意义的名字来代替IP地址,这就与网络通信相矛盾了?必须要设计出一种能在名字与IP地址相互转换的机制,DNS(域名解析系统)就是在这样的一个需求环境下出现的。当我们在浏览器地址栏里输入
任何主机要想在网络上通信都要借助IP地址来实现,IP地址是以数字的形式出现,如:202.202.96.39,但是人们使用网络时难于记忆这样的数字,这给网络的发展带来了不便,后来人们想出了一个办法:用具有实际意义的名字来代替IP地址,这就与网络通信相矛盾了?必须要设计出一种能在名字与IP地址相互转换的机制,DNS(域名解析系统)就是在这样的一个需求环境下出现的。当我们在浏览器地址栏里输入
www.wudionline.com时,它会主动查询DNS服务器索要www.wudionline.com的IP地址,然后根据返回的IP地址找寻找相应的网页,再把浏览结果回传给客户端浏览器。
DNS(Domain Name System)域名系统将主机名解析成IP地址使用了一个层次结构的分布式数据库系统,数据库层次性允许将域名空间划分成独立的管理区域,这样各域名服务器可以实现独立的管理,它是以点分的形式出现,通常划分时按照地址域和通用域划分,如:cn代表中国、tw代表台湾、hk代表香港、com代表商业机构、edu代表教育机构、org代表非利组织等,完整的域名像一模倒挂的树,由点来分隔,最右边代表根域(实际上当点出现在最右边时常常省略掉),从后面起第一个区域名叫顶级域、第二个区域名叫二级域...,协议后第一个名称叫主机名。如
DNS(Domain Name System)域名系统将主机名解析成IP地址使用了一个层次结构的分布式数据库系统,数据库层次性允许将域名空间划分成独立的管理区域,这样各域名服务器可以实现独立的管理,它是以点分的形式出现,通常划分时按照地址域和通用域划分,如:cn代表中国、tw代表台湾、hk代表香港、com代表商业机构、edu代表教育机构、org代表非利组织等,完整的域名像一模倒挂的树,由点来分隔,最右边代表根域(实际上当点出现在最右边时常常省略掉),从后面起第一个区域名叫顶级域、第二个区域名叫二级域...,协议后第一个名称叫主机名。如
www.wudionline.com www是主机名,wudionline叫二级域、com叫顶级域
工作原理:
1、客户端提出请求并将请求发送给本地域名服务器
2、本地域名服务器收到请求后,先查询本地缓存是否有客户端请求的记录地址,如果有就直接把查询结果返回给客户端
3、如果本地缓存没有相应的记录,则本地服务器直接把请求发送给根域名服务器
4、根域名服务器根据查询的记录返回一个所查询域(子域)的IP地址,直到查询到该域服务器
5、该域服务器根据请求的主机名返回该主机对应的IP地址
6、本地域名服务器收到返回的IP地址后将其存入本地缓存中,备下次使用不用再重复上述过程
7、把结果返回给客户端
常用的域名服务器软件为BIND(Berkeley Internet Name Domain),一般分为三种类型的服务器:唯缓冲服务器(caching-forward)、主域名服务器(server)、辅助域名服务器(second server)
唯缓存服务器:唯缓存服务器有一块缓存空间用来缓存DNS的对应记录,当接收到请后先是查看自己的缓存空间是否有对应的记录,如果有就直接返回,如果没有就转发到指定的服务器查询,自己就相当于一台DNS客户端,每次都将查询的结果保留一份到缓存空间里,以便下次不用再重复查询,适当设置唯缓存服务器可以减少网络的负担和提高访问速度(唯缓存服务器不具有权威性)
主域名服务器:主域名服务器负责查询本区域域名解析服务(它是最权威的服务器)
辅助域名服务器:辅助域名服务器负责本区域主域服务器的备份工作,当主域名服务器遇到故障时辅助服务器可以代替主域服务器工作
NDS在Linux下的守护进程名称叫named,它开放tcp、udp53端口,如果开启了防火墙就要允许tcp、udp53端口,开启端口方法:
iptables -A FORWARD --dport 53 -j ACCEPT
iptables -A FORWARD --dport 53 -j ACCEPT
安装DNS的包文件:
bind-9.3.3-7.el5 主程序文件
ypbind-1.19-7.el5
bind-libs-9.3.3-7.el5
bind-chroot-9.3.3-7.el5 牢笼程序,可以把BIND限制在笼子里,加强安全
bind-utils-9.3.3-7.el5 所需的单元文件
bind-sdb-9.3.3-7.el5
caching-nameserver-9.3.3-7.el5
安装好后所涉及的文件:
主程序文件/etc/rc.d/init.d/named
named.conf主配置文件
named.caching-nameserver.conf
named.ca指明根域名服务器IP地址
named.local回送文件
启动named:
1、service named start
2、/etc/rc.d/init.d/named start
查看是否启动成功:
1、service named status 查看运行状态
2、netstat -anp |grep named 查看开启端口号
开机自动启动:
chkconfig --level 345 named on 如果要取消开机自启动把on改成off即可
ntsysv
配置文件:
配置文件存放在/etc目录下,如果安装了牢笼(chroot)的支持,配置文件放在/var/named/chroot/etc目录下,区域文件(区域数据库)存放
工作原理:
1、客户端提出请求并将请求发送给本地域名服务器
2、本地域名服务器收到请求后,先查询本地缓存是否有客户端请求的记录地址,如果有就直接把查询结果返回给客户端
3、如果本地缓存没有相应的记录,则本地服务器直接把请求发送给根域名服务器
4、根域名服务器根据查询的记录返回一个所查询域(子域)的IP地址,直到查询到该域服务器
5、该域服务器根据请求的主机名返回该主机对应的IP地址
6、本地域名服务器收到返回的IP地址后将其存入本地缓存中,备下次使用不用再重复上述过程
7、把结果返回给客户端
常用的域名服务器软件为BIND(Berkeley Internet Name Domain),一般分为三种类型的服务器:唯缓冲服务器(caching-forward)、主域名服务器(server)、辅助域名服务器(second server)
唯缓存服务器:唯缓存服务器有一块缓存空间用来缓存DNS的对应记录,当接收到请后先是查看自己的缓存空间是否有对应的记录,如果有就直接返回,如果没有就转发到指定的服务器查询,自己就相当于一台DNS客户端,每次都将查询的结果保留一份到缓存空间里,以便下次不用再重复查询,适当设置唯缓存服务器可以减少网络的负担和提高访问速度(唯缓存服务器不具有权威性)
主域名服务器:主域名服务器负责查询本区域域名解析服务(它是最权威的服务器)
辅助域名服务器:辅助域名服务器负责本区域主域服务器的备份工作,当主域名服务器遇到故障时辅助服务器可以代替主域服务器工作
NDS在Linux下的守护进程名称叫named,它开放tcp、udp53端口,如果开启了防火墙就要允许tcp、udp53端口,开启端口方法:
iptables -A FORWARD --dport 53 -j ACCEPT
iptables -A FORWARD --dport 53 -j ACCEPT
安装DNS的包文件:
bind-9.3.3-7.el5 主程序文件
ypbind-1.19-7.el5
bind-libs-9.3.3-7.el5
bind-chroot-9.3.3-7.el5 牢笼程序,可以把BIND限制在笼子里,加强安全
bind-utils-9.3.3-7.el5 所需的单元文件
bind-sdb-9.3.3-7.el5
caching-nameserver-9.3.3-7.el5
安装好后所涉及的文件:
主程序文件/etc/rc.d/init.d/named
named.conf主配置文件
named.caching-nameserver.conf
named.ca指明根域名服务器IP地址
named.local回送文件
启动named:
1、service named start
2、/etc/rc.d/init.d/named start
查看是否启动成功:
1、service named status 查看运行状态
2、netstat -anp |grep named 查看开启端口号
开机自动启动:
chkconfig --level 345 named on 如果要取消开机自启动把on改成off即可
ntsysv
配置文件:
配置文件存放在/etc目录下,如果安装了牢笼(chroot)的支持,配置文件放在/var/named/chroot/etc目录下,区域文件(区域数据库)存放
在/var/named/chroot/var/named目录下,注意:named配置文件权限需要加入named组才能正确运行.为方便我们可以直接复制、修改原来配置文件,不要忘记权限啊:).
cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
打开配置文件:
cd /var/named/chroot/etc
vi named.conf
cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
打开配置文件:
cd /var/named/chroot/etc
vi named.conf
options {
listen-on port 53 { any; }; 监听端口
listen-on-v6 port 53 { ::1; }; 在IP_V6上监听的端口号
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";
query-source port 53; 在ip_V4上查询端口
query-source-v6 port 53; 在ip_V6上查询端口
allow-query { 192.168.2.0/24; }; 允许查询的客户端,一般企业内部用时,为提高安全性通常指定允许范围
version "unsupported on this platform"; 指明DNS版本号,最好别让有心之人知道具体版本号,为提高安全性
};
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"; 这个行本来是有,可以注释掉,加入根域就够了
listen-on port 53 { any; }; 监听端口
listen-on-v6 port 53 { ::1; }; 在IP_V6上监听的端口号
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";
query-source port 53; 在ip_V4上查询端口
query-source-v6 port 53; 在ip_V6上查询端口
allow-query { 192.168.2.0/24; }; 允许查询的客户端,一般企业内部用时,为提高安全性通常指定允许范围
version "unsupported on this platform"; 指明DNS版本号,最好别让有心之人知道具体版本号,为提高安全性
};
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"; 这个行本来是有,可以注释掉,加入根域就够了
zone "." { 指明是根域
type hint;
file "named.ca"; 根域文件名
};
type hint;
file "named.ca"; 根域文件名
};
zone "wudionline.com" IN { 正向解析文件
type master; 区域数据库文件类型
file "wudionline.com.zone"; 区域数据库文件名
allow-update {none;}; 是否允许更新
};
type master; 区域数据库文件类型
file "wudionline.com.zone"; 区域数据库文件名
allow-update {none;}; 是否允许更新
};
zone "2.168.192.in-addr.arpa" IN { 反向解析文件,.in-addr.arpa不要写错啊
type master; 类型
file "192.168.2.zone"; 区域数据库文件名
allow-update {none;}; 是否允许更新
};
};
type master; 类型
file "192.168.2.zone"; 区域数据库文件名
allow-update {none;}; 是否允许更新
};
};
这个是主配置文件,还有两个区域数据库文件,正向区域文件名:wudionline.com.zone,反向区域解析文件名:192.168.2.zone
vi /var/named/chroot/var/named/192.168.2.zone
vi /var/named/chroot/var/named/192.168.2.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
2009053100 ; 同步号
28800 ; 刷新时间
14400 ; 重试时间
3600000 ; 过期时间
86400 ) ; 最小生存时间
IN NS www.wudionline.com.
12 IN PTR wudionline.com.
12 IN PTR www.wudionline.com.
12 IN PTR ftp.wudionline.com.
12 IN PTR mail.wudionline.com.
@ IN SOA localhost. root.localhost. (
2009053100 ; 同步号
28800 ; 刷新时间
14400 ; 重试时间
3600000 ; 过期时间
86400 ) ; 最小生存时间
IN NS www.wudionline.com.
12 IN PTR wudionline.com.
12 IN PTR www.wudionline.com.
12 IN PTR ftp.wudionline.com.
12 IN PTR mail.wudionline.com.
解释:
$TTL 后面跟记录生存时间,是秒为单位
@ IN SOA localhost. root.localhost.
@ 相当于本域名
IN定义记录类型,记录类型可以有SOA、PTR、A、MX,SOA是起始授权记录,PTR是反向域名解析、A是正向域名解析、MX是邮件交换记录
SOA 起始授权记录,任何区域都需要SOA记录,且一般列在第一个资源记录
localhost.是本机完全合格域名,不要忘记后面有个点
root.localhost是管理区域数据文件的管理邮箱地址,为防止与前面的@混淆,特地把@定义成.(点)
2009053100 ; 同步号,同步主、辅助域名服务器的编号,辅助服务器根据编号来确认是否要更新区域数据库内容
28800 ; 刷新时间,每隔2880秒同步一次
14400 ; 重试时间,如果同步失败,则经过14400秒再重试一次
3600000 ; 过期时间,当第一次重试失败后3600000秒,如果仍无法同步主域服务器,则放弃
86400 ) ; 最小生存时间,记录生存时间
$TTL 后面跟记录生存时间,是秒为单位
@ IN SOA localhost. root.localhost.
@ 相当于本域名
IN定义记录类型,记录类型可以有SOA、PTR、A、MX,SOA是起始授权记录,PTR是反向域名解析、A是正向域名解析、MX是邮件交换记录
SOA 起始授权记录,任何区域都需要SOA记录,且一般列在第一个资源记录
localhost.是本机完全合格域名,不要忘记后面有个点
root.localhost是管理区域数据文件的管理邮箱地址,为防止与前面的@混淆,特地把@定义成.(点)
2009053100 ; 同步号,同步主、辅助域名服务器的编号,辅助服务器根据编号来确认是否要更新区域数据库内容
28800 ; 刷新时间,每隔2880秒同步一次
14400 ; 重试时间,如果同步失败,则经过14400秒再重试一次
3600000 ; 过期时间,当第一次重试失败后3600000秒,如果仍无法同步主域服务器,则放弃
86400 ) ; 最小生存时间,记录生存时间
IN NS www.wudionline.com. 说明本区域由www.wudionline.com这台服务器负责,后面有点号
12 IN PTR wudionline.com. 反向解析地址,指明IP地址为192.168.2.12对应的域名是wudionline.com,注意后面的点号
12 IN PTR wudionline.com. 反向解析地址,指明IP地址为192.168.2.12对应的域名是wudionline.com,注意后面的点号
vi /var/named/chroot/var/named/wudionline.com.zone
$TTL 86400
@ IN SOA localhost root (
2009053100 ; 同步号
28800 ; 刷新时间
14400 ; 重试时间
3600000 ; 过期时间
86400 ) ; 最小生存时间
IN NS localhost
wudionline.com. IN A 192.168.2.12
www (也可以写成ftp.wudionline.com.) IN A 192.168.2.12
ftp IN A 192.168.2.12
wudionline.com. IN MX 5 mail.wudionline.com
mail IN A 192.168.2.12
@ IN SOA localhost root (
2009053100 ; 同步号
28800 ; 刷新时间
14400 ; 重试时间
3600000 ; 过期时间
86400 ) ; 最小生存时间
IN NS localhost
wudionline.com. IN A 192.168.2.12
www (也可以写成ftp.wudionline.com.) IN A 192.168.2.12
ftp IN A 192.168.2.12
wudionline.com. IN MX 5 mail.wudionline.com
mail IN A 192.168.2.12
解释:
同上,IN A记录说明是正向解析
wudionline.com. IN A 192.168.2.12,这句说明wudionline.com对应的IP地址是192.168.2.12,当用完全合格域名是请不要忘记域
同上,IN A记录说明是正向解析
wudionline.com. IN A 192.168.2.12,这句说明wudionline.com对应的IP地址是192.168.2.12,当用完全合格域名是请不要忘记域
名后面跟一个点号
www IN A 192.168.2.12当简化域化域名时只写主机名,后面不加点号
还有一种类型:IN CNAME 它是定义别名的写法,格式如下:
别名 IN CNAME 完全合格域名(或主机名)
MX邮件记录:
区域名 IN MX 邮件记录优先级 邮件服务器的完全合格域名
www IN A 192.168.2.12当简化域化域名时只写主机名,后面不加点号
还有一种类型:IN CNAME 它是定义别名的写法,格式如下:
别名 IN CNAME 完全合格域名(或主机名)
MX邮件记录:
区域名 IN MX 邮件记录优先级 邮件服务器的完全合格域名
测试:
测试区域文件的正确性:named-checkzone
测试配置文件的正确性:named-checkconf
如果没有问题的话会显示“OK“字样
测试区域文件的正确性:named-checkzone
测试配置文件的正确性:named-checkconf
如果没有问题的话会显示“OK“字样
把DNB设置为自己的DNS服务器地址
vi /etc/resolv.com
nameserver 192.168.2.12 192.168.2.12是DNS服务器的IP地址
vi /etc/resolv.com
nameserver 192.168.2.12 192.168.2.12是DNS服务器的IP地址
host www.wudionline.com
host ftp.wudionline.com
host -t mx wudionline.com
host 192.168.2.12
host ftp.wudionline.com
host -t mx wudionline.com
host 192.168.2.12
nslookup www.wudionline.com
nslookup ftp.wudionline.com
nslookup ftp.wudionline.com
nslookup
set t=mx
set t=mx