DNS服务器的功能
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据IP地址查找对应的注册域名。在安全领域常用,比如查询邮件是否是真正的域名持有人发出的,验证邮件的源IP和域名是否相符
FQDN(Full Qualified Domain Name)完全合格主机名
站点名.域名后缀
站点名.三级域.二级域.一级域
IANA(Internet Assigned Numbers Authority)互联网数字分配机构
整个域名系统的最高权威机构,管理DNS根,.int,.arpa等国际化域名资源
CNNIC(China Internet Network Information Center )
主管国家顶级域.cn
BIND(Berkeley Internet Name Daemon)伯克利Internet域名服务
执行程序:/usr/bin/named
系统服务:named
默认端口:53/tcp、53/udp。正常解析时用udp协议,主从同步之间用tcp协议传输配置文件信息
运行时的虚拟根环境:/var/named/chroot
安装包:bind、bind-chroot
帮助文件:/usr/share/doc/bind-9.9.4/sample/
named的主配置文件。指定负责解析的域名是什么。
//、#表示注释单行,/....../里面的内容表示多行注释
listen-on port 53 { 127.0.0.1; };#表示仅监听本机
要监听所有ip地址有两个方法
方法1:listen-on port 53 { any; };
方法2:把该行删除,就会默认监听所有ip地址
options {
directory "/var/named";#地址库文件路径为/var/named
recursion no;#默认值为yes,手动设置no来禁止递归查询
allow query { any; };#允许任何客户机查询
};
zone "负责解析的域名" IN {
type 类型;#类型为master、slave、forward、hint
file "区域文件";标准的格式为解析的域名.zone
例子:
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
2.3 /var/named/
named区域数据文件目录,存放多个区域文件,区域文件的内容为主机名与ip地址的对应关系。
;为注释符,只有单行注释,没有多行
域名必须以.结尾,如果没有加.的话系统会自动补全,补全什么呢?补全的是主配置文件中定义该区域数据文件解析的是哪个域名,这里是tedu.cn+"."
cp -p /var/named/named.localhost /var/named/tedu.cn.zone#加-p选项保证named用户对该文件有读权限,也可以用chown,chmod等方式赋予读权限
目前先修改最后两行
格式:
负责解析的域名+"." NS DNS服务器的FQDN主机名+"."
DNS服务器的FQDN主机名+"." A DNS服务器的IP地址
复杂写法:
tedu.cn. NS svr7.tedu.cn.
svr7.tedu.cn. A 192.168.4.7
简单写法:
@ NS svr7 #@表示在主配置文件中定义的负责解析主机名+"."。这里是tedu.cn.
svr7 A 192.168.4.7#两行的svr7可以更换为其他字符,只要相同即可
$TTL 生存时间
SOA 授权信息开始
nameserver 192.168.4.7
host www.qq.com '192.168.4.7'
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases:
www.qq.com has address 1.1.1.1
更专业的DNS查询测试命令
dig www.qq.com @192.168.4.7
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.qq.com @192.168.4.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55516
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.qq.com. IN A
;; ANSWER SECTION:
www.qq.com. 86400 IN A 1.1.1.1
;; AUTHORITY SECTION:
qq.com. 86400 IN NS ns.qq.com.
;; ADDITIONAL SECTION:
ns.qq.com. 86400 IN A 192.168.4.7
;; Query time: 0 msec
;; SERVER: 192.168.4.7#53(192.168.4.7)
;; WHEN: 五 11月 17 02:59:29 EST 2017
;; MSG SIZE rcvd: 88
zone "qq.com" IN {
file "qq.com.zone";
cd /var/named
cp -p tedu.cn.zone qq.com.zone
vim qq.com.zone
增加内容:
qq.com. NS ns.qq.com.
ns.qq.com. A 192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
重启服务
指定192.168.4.7为DNS服务器来解析域名
默认就是轮询方式。
在地址库文件里面增加多条主机名相同、ip地址不同的解析记录即可
匹配本域内未定义的的任何主机地址
以"*"匹配,放在区域文件中最后一行,一般用在正向区域文件中
stu1.tedu.cn.------192.168.10.1
stu2.tedu.cn.------192.168.10.2
......
stu60.tedu.cn------192.168.10.60
一条记录即可。因为区域文件有函数可以生成连续范围的数字:$GENERATE
$GENERATE 1-60 stu$.tedu.cn. A 192.168.10.$
DNS服务器与其他DNS服务器交互,最终将解析结果带回来交给客户端的过程
客户端对首选DNS服务器的查询是递归查询。互联网上DNS服务器都会禁止递归查询
DNS服务器不提供解析结果,只告诉查询客户端应该找另外一个DNS服务器去查询
首选DNS服务器对其他DNS服务器的查询是迭代查询
父域:www.tedu.cn 父域的DNS负责解析tedu.cn
子域:www.bj.tedu.cn 子域的DNS负责解析bj.tedu.com
-父域的DNS服务器,能够解析tedu.cn结尾(父域)的主机名
-子域的DNS服务器,能够解析bj.tedu.cn结尾(子域)的主机名
-父域的DNS服务器,也能够解析bj.tedu.cn结尾(子域)的主机名,这个就是子域授权
-子域的DNS服务器,也能够解析tedu.cn结尾(父域)的主机名,称之为子域转发
192.168.4.7上操作:
vim
bj.tedu.cn. NS pc207.bj.tedu.cn.#增加一条
pc207.bj.tedu.cn. A 192.168.4.207#增加对应一条
192.168.4.207上验证:
nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Non-authoritative answer:#非权威回答,找权威服务器查询得知的
Name: www.bj.tedu.cn
Address: 1.2.3.4
192.168.4.207上操作:
vim /etc/named.conf
增加:
zone "bj.tedu.cn" IN {
type forward;#类型为转发
forwarders { 192.168.4.7; };#注意前后的空格、分号等
内存要比较大,因为查询结果都是放在内存中。不需要管理任何DNS区域,但是能够代替客户机查询,并且通过缓存、复用查询结果来加快速度
企业内网DNS
ISP公用DNS
将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务
依次向根域、一级域、二级域等的DNS,请求迭代服务
当收到客户机的DNS查询请求的时候,区分客户机的来源地址,来为不同类别的客户机提供不同的解析结果(IP地址)
访问压力大的网站,需要购买CDN提供的内容分发服务。内容分发服务就使用了这个技术,
CDN供应商在全国都有镜像服务节点,针对不同的客户机就近提供离客户最近的服务器
cd /var/named/
cp -p tedu.cn.zone tedu.cn.zone.lan
cp -p tedu.cn.zone tedu.cn.zone.other
sed -i s#1.1.1.1#192.168.4.100#g tedu.cn.zone tedu.cn.zone.lan
acl列表定义要单独一个格式段,不能放在option格式段里面
acl "mylan" {
192.168.4.207;
192.168.4.254;
view视图匹配的规则是从上到下,匹配即停止。
一但启用了view视图,所有的zone必须在view格式段里面,而且多个view里面的zone的数量必须相同
主配置文件里面只能有两个view格式段
view "lan" {
match-clients { mylan; };#匹配acl,名字为mylan
file "tedu.cn.zone.lan"
view "other" {
match-clients { any; };#匹配任意地址
file "tedu.cn.zone.other"
本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068820,如需转载请自行联系原作者