设为首页收藏本站

IT技术擎 - 最棒的IT web技术交流社区

 找回密码
 注册为IT技术擎人

QQ登录

只需一步,快速开始

搜索
热搜: php h5 jquery
查看: 12|回复: 0

[未分类] DNS—正、反向解析;委派;主从;子域;转发;智能dns等的实现

[复制链接]
发表于 2017-12-30 19:30:57 | 显示全部楼层 |阅读模式
前言:DNS,耳熟能详的东西,内容太多,小编也不太好讲清,只能写几个实验详解,供大家参考。
一、简单介绍
1、DNS:通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。 端口号:53/udp, 53/tcp 2、等级 根域 :世界有13个ip地址管理,有10个在美国,1个在日本,3个在欧洲,荷兰,瑞典
一级域名:Top Level Domain: tld   com, edu, mil, gov, net, org, int,arpa   三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名
三级域名
最多127 级域名
例如:www.baidu.com.
. 根
com 一级域名,相当于子目录
baidu
www
3、DNS服务器类型
DNS 服务器的类型:

DNS 服务器:管理和维护所负责解析的域内解析库的服务器

DNS 服务器:从主服务器或从服务器"复制"(区域传输)解析库副本
4、资源记录
资源记录:Resource Record, RR
记录类型:

SOA:Start Of Authority ,起始授权记录;一个区域解析库有且仅能有一个SOA 记录,必须位于解析库的第一条记录,同步主从数据
A:internet Address ,作用,FQDN -- > IP(名字到ip)
AAAA: FQDN -- > IPv6

PTR
: PoinTeR ,IP -- > FQDN 全称域名(ip到名字)

NS
: Name Server ,专用于标明当前区域的DNS 服务器,谁是域的服务器

CNAME
:Canonical Name ,别名记录

MX
: Mail eXchanger 邮件5、资源记录定义的格式:(5项,如果下一条和上一天一样,可以继承)
语法:name   [TTL(缓存生存期)]   IN   rr_type   value (5列)
注意:
(1) TTL 可从全局继承 (缓存生存期),例:$TTL 1D 一天 设为变量,下边全部使用
(2)@ 可用于引用当前区域的名字,因为有特殊含义,所以后边不能用,例如邮箱.
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS 服务器会以轮询方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

二、BIND安装及named服务的介绍DNS的实现就是named服务,named服务需要安装bind包
1、BIND 的安装配置:yum install bind -y
dns 服务程序包:bind,unbound(新的)
程序名:named,unbound
程序包:bind
2、主配置文件:/etc/named.conf
(1)介绍
主配置文件:
全局配置:options {};
日志子系统配置:logging {};区域定义:本机能够为哪些zone 进行解析,就要定义哪些zone

  zone"ZONE_NAME" IN {}; 数据库文件最好不写在这个主配置文件,写在/etc/named.rfc1912.zones
原理:就是在配置文件中设置区域定义zone,然后在zone指定的文件中建立数据库,这些文件都放在/var/named下
3、options {};需要改的4个地方
① listen-on port 53 { 127.0.0.1; };端口上只绑定自己ip
改为:listen-on port 53 { localhost; }; 或 // 注释掉
② allow-query { localhost; }; 只允许自己访问
改为:allow-query { any; };也可以不用any,公司内部允许哪些就加哪些,或 // 注释掉 ③ allow-transfer 是安全策略,为了防止任何人传输下载自己的dns信息,只允许自己的从dns同步
改为:allow-transfer { 允许传输的ip;}; ④ 缓存名称服务器的配置:dnssec: 建议关闭dnssec ,设为no,影响委派和转发 dnssec-enable no; dnssec-validation no;
三、测试命令及rndc命令

1、dig

dig [-ttype] name [@SERVER] [query options]     dig 只用于测试dns 系统,不会查询hosts 文件进行解析
查询选项:   +[no]trace程 :跟踪解析过程 : dig +trace magedu.com   +[no]recurse :进行递归解析   测试反向解析:dig-xIP = dig-t ptrreverseip.in-addr.arpa   模拟区域传送:   dig-t axfrZONE_NAME @SERVER
抓区域数据库,可以被allow-transfer  { 192.168.30.106;}; 防止  dig -t axfr magedu.com @10.10.10.11   dig -t axfr 100.1.10.in-addr.arpa @172.16.1.1   dig-t NS. @114.114.114.114  测试邮件记录   dig -t NS . @a.root-servers.net  查根的服务器,13个
2、host,查询没有dig详细

host [-t type] name [SERVER]
host -t NSmagedu.com 172.16.0.1
host -t soa magedu.com
host -t mx magedu.com
host -t axfr magedu.com
host 1.2.3.4
3、nslookup
: (windows和linux都有这个命令)
命令: nslookup [-option] [name | -] [server] 交互式模式:   nslookup >  server IP: 指明使用哪个DNS server 进行查询   set q=RR_TYPE: 指明查询的资源记录类型   NAME: 要查询的名称

4、rndc 命令

rndc:   rndc -- > rndc (953/tcp)   rndc COMMAND
COMMAND:

  reload: 重载主配置文件和区域解析库文件


  reload zonename: 重载区域解析库文件

  retransfer zonename: 手动启动 区域传送, 而不管序列号是否增加
  notify zonename: 重新对区域传送发通知,当主从同步过程发生意外时,
    例:rndc notify magedu.com

  reconfig: 重载主配置文件


  querylog: 开启或关闭查询日志文件/var/log/message
(默认不启用日志),排错的时候才开启,要不访问一条加一条记录,量太大了;关闭,执行同样的命令
    tail -f /var/log/messages 动态查询日志
  trace: 递增debug 一个级别
  trace LEVEL: 指定使用的级别,日志级别,日志的详细程度
  notrace:为将调试级别设置为 0

  flush
清空DNS服务器的所有缓存记录

实验:

实验一:建立正向解析数据库,实现域的解析,如:magedu.com
1、yum install bind  安装包
systemctl start named  centos 7开启服务 service named start
  centos 6开启服务
2、vim/etc/named.conf 修改总配置文件
listen-on port 53 { localhost;};
allow-query {any ;};
3、vim/etc/named.rfc1912.zones(最好在这个文件中修改,也可在/etc/named.conf总配置文件中修改)

zone "magedu.com" {


type master;


file "magedu.com.zone";


};

4、vim/var/named/magedu.com.zone 建立修改数据库文件(这个文件名一定要和上边的对应,可以自己写,也可以复制模板)
$TTL 1D
@   IN   SOAdns1 mail.magedu.com. ( 2017100901 ; serial
                1D ; refresh
                1H ; retry
                1W ; expire
                3H ) ; minimum
@  NS dns1
dns1 A  192.168.37.107
www  CNAME websrv 设置的别名
websrv A 192.168.37.106 下面都是记录的例子:
[websrv A 192.168.37.107] 可以加多个,访问时随机,平衡负载
@ MX 10 mailsrv1 也可以加邮件记录
@ MX 20 mailsrv2
mailsrv1 A 192.168.30.100
mailsrv2 A 192.168.30.200C
$GENERATE 1-100 server$ A 1.1.1.$
@ A 192.168.30.102 解决前面不输入东西的问题,例:mage.com
* A 192.168.30.101 泛域名解析,电商前面输错了ww.taobao.com,也能进淘宝网页
注意:chgrp named /var/named/magedu.com.zone 如果不是cp -p 模板的,要注意修改权限

named-checkzone
magedu.com /var/named/magedu.com.zone 检查这个数据库文件有没有错
5、rndc reload 重新加载配置文件
6、测试ping、dig、host、links...都行
dig websrv.magedu.com @192.168.30.107
dig -t mx magedu.com @192.168.30.107 检查邮件记录
host adaf23.magedu.com 192.168.30.107 检测泛域名记录
dig magedu.com @192.168.30.107 实验二:建立反向解析数据库(配置文件中都有例子)
1、2、同上
3、vim/etc/named.rfc1912.zones
zone "30.168.192.in-addr.arpa" IN { (倒过来写,反过来读)
type master;
file "192.168.30.zone";
};
4、vim /var/named/192.168.30.zone
$TTL 1D
@ IN SOA dns1 rname.invalid. (
              0 ; serial
              1D ; refresh
              1H ; retry
              1W ; expire
              3H ) ; minimum
NS dns1
dns1 A 127.0.0.1
107 PTRdns1.magedu.com.
106 PTR websrv.magedu.com.
100.30.168.192.in-addr.arpa.PTR dbsrv 5、rndc reload 重新加载配置文件
6、检测

dig -x
192.168.30.107 实验三:建立主从服务器
1、vim/etc/named.conf 修改总配置文件
主:只允许从传输数据
listen-on port 53 { localhost; };
allow-query { any ;};

allow-transfer { 从DNS服务器IP;};

从:不允许任何人传输数据
listen-on port 53 { localhost; };
allow-query { any ;};

allow-transfer { none;};

2、vim /etc/named.rfc1912.zones
主:
zone "magedu.com" {
type master;
file "magedu.com.zone";
};
从:
zone "magedu.com" IN {type slave;masters { 192.168.30.107;};file "slaves/magedu.com.zone.slave";
};
3、vim /var/named/magedu.com.zone
主:加一条NS记录
NS dns1
NS dns2
dns1 A 192.168.30.107
dns2 A 192.168.30.106
从:不用创建这个文件,重新加载数据会在/var/named/slaves 自动生成一个文件,内容和主dns一样
4、rndc reload 重新加载配置文件
5、检测
dig www.magedu.com @192.168.30.106 实验四:建立子域
(1)主dns加A记录充当子域,访问量特别小
子域访问量不大,主dns可以帮它管理,在主数据库加一条A记录,实际不是建立子域,只是用户当做子域
1、vim /etc/named.conf 修改总配置文件
listen-on port 53 { localhost; };
allow-query { any ;};
2、vim/etc/named.rfc1912.zones
zone "magedu.com" {
type master;
file "magedu.com.zone";
};
3、vim /var/named/magedu.com.zone
加两条A记录:
www.henan A 2.2.2.2
mail.henan A 3.3.3.3
4、rndc reload 重新加载配置文件
5、检测 dig www.henan.magedu.com @192.168.30.107 (2)在自己的建立独机器上立的域,当子域
1、同上
2、vim/etc/named.rfc1912.zones
zone "henan.magedu.com" IN {
type master;
file "henan.magedu.com.zone";
};
3、vim /var/named/henan.magedu.com.zone 复制模板,自己写都行
cp -p /var/named/magedu.com.zone /var/named/henan.magedu.com.zone
自己写注意修改权限
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
2017100901 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1
dns1 A 192.168.30.107
www CNAME websrv
websrv A 5.5.5.5
4、5同上
(3)委派给其他机器(106)的域管理子域,访问量大的时候
在本机上:父域主机
1、vim /etc/named.conf
关闭dnssec 功能:
dnssec-enable no;
dnssec-validation no
2、vim /var/named/magedu.com.zone
@ NS dns1
henan NS dns2
dns1 A 192.168.30.107
dns2 A 192.168.30.106
在另一个机器6上:子域主机创建henan.magedu.com的master区域
3、vim /etc/named.conf
关闭dnssec 功能:
dnssec-enable no;
dnssec-validation no
4、vim /etc/named.rfc1912.zones
zone "henan.magedu.com" IN {
type master;
file "henan.magedu.com.zone";
};
5、vim/var/named/henan.magedu.com.zone
$TTL 86400 ; 1 day
@ IN SOA dns1 mail.magedu.com. (
2017100901 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1
dns1 A 192.168.30.106
www CNAME websrv
websrv A 6.6.6.6
6、rndc reload 重新加载配置文件
7、检测 dig www.henan.magedu.com @192.168.30.107 因为是委派,所以直接测107 实验五:服务器转发 原理:要访问www.qq.com,beijing的dns服务器给zhengzhou、shanghai转发
在6上建立qq.com的数据库
1、vim /etc/named.rfc1912.zones
zone "qq.com" IN {
   type master;
   file "qq.com.zone";c
};
2、vim /var/named/qq.com.zone 自己写(改权限)或cp -p一个模板
$TTL 86400 ; 1 day
@ IN SOA dns1 mail.magedu.com. (
                2017100901 ; serial
                86400 ; refresh (1 day)
                3600 ; retry (1 hour)
                604800 ; expire (1 week)
                10800 ; minimum (3 hours)
)
NS dns1
dns1 A 192.168.30.106
www CNAME websrv
websrv A 6.6.6.6
在7上设置转发
3、vim /etc/named.conf 设置全局转发
forward only ;
forwarders {192.168.30.106;};
named-checkconf 写完可以检测总配置文件的语法
或设置特定区域转发
vim /etc/named.rfc1912.zones
zone "qq.com" IN {
type forward;
forward first
forward { 192.168.30.106;};
};
4、rndc reload 重新加载配置文件
5、检测
dig www.qq.com @192.168.30.107
dig www.baidu.com @192.168.30.107 only的情况下,如果6的数据库没有记录,就不再询问根;first的情况下,如果6的数据库没有记录,7自己去询问根 实验六:包含子域、主从、委派的模拟dns整个过程的实验

注意
:做实验之前需:关闭防火墙,关闭selinux
vim /etc/named.conf 注释两项或改两项
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

listen-on port 53 { localhost; };
allow-query { any; };
改两个no
dnssec-enable no;
dnssec-validation no;
1、从107 magedu 主 开始:
① vim /etc/named.con 主配置文件加一条
allow-transfer { 192.168.30.103;};
注释或修改两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
② vim /etc/named.rfc1912.zones 数据库配置文件
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
③ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
2017100901 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1 NS dns2
dns1 A 192.168.30.107

dns2 A 192.168.30.103

www CNAME websrv
websrv A 192.168.30.106
④ rndc reload
⑤ 测试
dig www.magedu.com @192.168.30.107
2、103 magedu.com 从:

① vim /etc/named.conf
注释或修改2行
allow-transfer { none;}; 为了安全,不允许任何人传输信息
② vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type slave;masters { 192.168.30.107;};file "slaves/magedu.com.zone";
};
③ rndc reload
④ 测试
dig www.magedu.com @192.168.30.103 3、102 com:是被根委派,委派magedu的主107、从103
① vim /etc/named.conf
注释或修改2行
为了不影响转发、委派:改两个no
dnssec-enable no;
dnssec-validation no;
② vim /etc/named.rfc1912.zones
zone "com" IN {
type master;
file "com.zone";
};
③ vim /var/named/com.zone
$TTL 1D
@ IN SOA dns1 rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1
magedu NS dns2
magedu NS dns3
dns1 A 127.0.0.1
dns2 A 192.168.30.107
dns3 A 192.168.30.103
④ rndc reload
⑤ 检测
dig www.magedu.com @192.168.30.102 4、101 根:委派com
① vim /etc/named.conf
注释或修改2行
为了不影响转发、委派:改两个no
dnssec-enable no;
dnssec-validation no;
自己当根:
zone "." IN {
type master;
file "root.zone";
};
② vim /var/named/com.zone
$TTL 1D
@ IN SOA dns1 rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1
com NS dns2
dns1 A 192.168.30.101
dns2 A 192.168.30.102
③ rndc reload
④ 检测
dig www.magedu.com @192.168.30.101 5、104 第一个dns服务器:委派
① vim /etc/named.conf
注释或修改2行
为了不影响转发、委派:改两个no
dnssec-enable no;
dnssec-validation no;
② vim /var/named/named.ca 修改根服务器数据库
删除其他的根记录,留一个101的根A记录
A.ROOT-SERVERS.NET. 3600000 A 192.168.30.101
③ rndc reload
④ 检测
dig www.magedu.com @192.168.30.104
6、105 客户端:
① 修改网卡配置,dns指向192.168.30.104
DNS1=192.168.30.104
② 重启网络服务
service network restart
③ 检测
dig www.magedu.com
links www.magedu.com
实验全部结束!!!
实验七:智能dns

原理:ACL的实现,和view视图来匹配acl中的设置和zone数据库信息

1、vim /etc/named.conf
在总配置文件中,加2条acl设置,acl设置要

acl
henannet {
192.168.30.0/24;
192.168.31.1/24;
};
acl beijingnet {
172.17.0.0/16;
172.18.0.0/16;
};
2、vim /etc/named.conf 还是在主配置文件中,设置view关联:acl和zone区域
有两种方法:
方法一:直接就在主配置文件中设置好zone数据库
方法二:在主配置文件中指向/etc/named.rfc1912.zones中,在这个文件中设置zone数据库

view
henanview {
match-clients { henannet;};
zone "magedu.com" {
type master;
file "magedu.com.zone.henan";
};
zone "." IN { //加个根zone,是为了能访问外网
type hint;
file "named.ca";
};
};
view beijingview {
match-clients { beijingnet;};
include "/etc/named.rfc1912.zones.beijing";
zone "." IN {
  //加个根zone,是为了能访问外网
type hint;
file "named.ca";
};
};
view otherview { //加一个other,不在那两个view的也要能访问
match-clients {any;};
include "/etc/named.rfc1912.zones";
};
3、若2采用了方法二,则需:

vim /etc/named.rfc1912.zones.beijing

zone "magedu.com" IN {
type master;
file "magedu.com.zone.beijing";
};
若有other,需:
vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
4、在数据库中随便配置点设置,为了试验测试结果明显,可以把三个解析的地址写为不同的
vim /var/named/magedu.com.zone
vim /var/named/magedu.com.zone.henan
vim /var/named/magedu.com.zone.beijing
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
2017100903 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1
dns1 A 192.168.30.107
www CNAME websrv
websrv A 6.6.6.6
5、测试,测试的解析不一样
dig www.magedu.com @192.168.30.107 测试henan
dig www.magedu.com @172.17.252.107 测试beijing
dig www.magedu.com @127.0.0.1 测试other
实验有点多,中间也会有很多错误,如果有什么不懂可以留言~



上一篇:方便阅读Web源代码 Gentoo下lxr配置方法
下一篇:安卓界面基本组件------计时器
该用户未在地球留下任何的痕迹

本版积分规则

QQ|小黑屋|帮助|IT技术擎 ( 沪ICP备15054863号  

GMT+8, 2018-1-21 07:02

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表