赞
踩
前言:DNS,耳熟能详的东西,内容太多,小编也不太好讲清,只能写几个实验详解,供大家参考。
1、DNS:通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
端口号:53/udp, 53/tcp
2、等级
根域 :世界有13个ip地址管理,有10个在美国,1个在日本,3个在欧洲,荷兰,瑞典
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
3、DNS服务器类型
从DNS 服务器:从主服务器或从服务器"复制"(区域传输)解析库副本
4、资源记录
SOA :Start Of Authority ,起始授权记录;一个区域解析库有且仅能有一个SOA 记录,必须位于解析库的第一条记录,同步主从数据
A :internet Address ,作用,FQDN --> IP(名字到ip)
PTR: PoinTeR ,IP --> FQDN 全称域名(ip到名字)
NS: Name Server ,专用于标明当前区域的DNS 服务器,谁是域的服务器
5、资源记录定义的格式:(5项,如果下一条和上一天一样,可以继承)
语法:name [TTL(缓存生存期)] IN rr_type value (5列)
(1) TTL 可从全局继承 (缓存生存期),例:$TTL 1D 一天 设为变量,下边全部使用
(2) @ 可用于引用当前区域的名字,因为有特殊含义,所以后边不能用,例如邮箱.
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS 服务器会以轮询方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
DNS的实现就是named服务,named服务需要安装bind包
1、BIND 的安装配置:yum install bind -y
2、主配置文件:/etc/named.conf
区域定义:本机能够为哪些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;
dig [-t type] name [@SERVER] [query options]
dig 只用于测试dns 系统,不会查询hosts 文件进行解析
+[no]trace程 :跟踪解析过程 : dig +trace magedu.com
+[no]recurse :进行递归解析
测试反向解析:dig -x IP = dig -t ptr reverseip.in-addr.arpa
模拟区域传送:
dig -t axfr ZONE_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个
host -t NS magedu.com 172.16.0.1
3、nslookup: (windows和linux都有这个命令)
命令: nslookup [-option] [name | -] [server]
nslookup>
server IP: 指明使用哪个DNS server 进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称
rndc --> rndc (953/tcp)
rndc COMMAND
retransfer zonename: 手动启动 区域传送, 而不管序列号是否增加
notify zonename: 重新对区域传送发通知,当主从同步过程发生意外时,
querylog: 开启或关闭查询日志文件/var/log/message(默认不启用日志),排错的时候才开启,要不访问一条加一条记录,量太大了;关闭,执行同样的命令
tail -f /var/log/messages 动态查询日志
trace LEVEL: 指定使用的级别,日志级别,日志的详细程度
systemctl start named centos 7开启服务
service named start centos 6开启服务
listen-on port 53 { localhost; };
3、vim /etc/named.rfc1912.zones(最好在这个文件中修改,也可在/etc/named.conf总配置文件中修改)
4、vim /var/named/magedu.com.zone 建立修改数据库文件(这个文件名一定要和上边的对应,可以自己写,也可以复制模板)
@ IN SOA dns1 mail.magedu.com. ( 2017100901 ; serial
5、DNS记录 的例子:
[websrv A 192.168.37.107] 可以加多个,访问时随机,平衡负载
$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 检查这个数据库文件有没有错
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
3、vim /etc/named.rfc1912.zones
zone "30.168.192.in-addr.arpa" IN { (倒过来写,反过来读)
4、vim /var/named/192.168.30.zone
@ IN SOA dns1 rname.invalid. (
100.30.168.192.in-addr.arpa. PTR dbsrv
listen-on port 53 { localhost; };
listen-on port 53 { localhost; };
2、vim /etc/named.rfc1912.zones
file "slaves/magedu.com.zone.slave";
3、vim /var/named/magedu.com.zone
从:不用创建这个文件,重新加载数据会在/var/named/slaves 自动生成一个文件,内容和主dns一样
dig www.magedu.com @192.168.30.106
子域访问量不大,主dns可以帮它管理,在主数据库加一条A记录,实际不是建立子域,只是用户当做子域
listen-on port 53 { localhost; };
3、vim /var/named/magedu.com.zone
5、检测 dig www.henan.magedu.com @192.168.30.107
(2)在自己的建立独机器上立的域,当子域
3、vim /var/named/henan.magedu.com.zone 复制模板,自己写都行
cp -p /var/named/magedu.com.zone /var/named/henan.magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
2、vim /var/named/magedu.com.zone
在另一个机器6上:子域主机创建henan.magedu.com的master区域
4、vim /etc/named.rfc1912.zones
5、vim /var/named/henan.magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
7、检测 dig www.henan.magedu.com @192.168.30.107 因为是委派,所以直接测107
原理:要访问www.qq.com,beijing的dns服务器给zhengzhou、shanghai转发
1、vim /etc/named.rfc1912.zones
2、vim /var/named/qq.com.zone 自己写(改权限)或cp -p一个模板
@ IN SOA dns1 mail.magedu.com. (
named-checkconf 写完可以检测总配置文件的语法
dig www.qq.com @192.168.30.107
dig www.baidu.com @192.168.30.107 only的情况下,如果6的数据库没有记录,就不再询问根;first的情况下,如果6的数据库没有记录,7自己去询问根
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
listen-on port 53 { localhost; };
allow-transfer { 192.168.30.103;};
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
② vim /etc/named.rfc1912.zones 数据库配置文件
③ vim /var/named/magedu.com.zone
@ IN SOA dns1 mail.magedu.com. (
dig www.magedu.com @192.168.30.107
allow-transfer { none;}; 为了安全,不允许任何人传输信息
② vim /etc/named.rfc1912.zones
file "slaves/magedu.com.zone";
dig www.magedu.com @192.168.30.103
3、102 com:是被根委派,委派magedu的主107、从103
② vim /etc/named.rfc1912.zones
@ IN SOA dns1 rname.invalid. (
dig www.magedu.com @192.168.30.102
4、101 根:委派com
@ IN SOA dns1 rname.invalid. (
dig www.magedu.com @192.168.30.101
5、104 第一个dns服务器:委派
② vim /var/named/named.ca 修改根服务器数据库
A.ROOT-SERVERS.NET. 3600000 A 192.168.30.101
dig www.magedu.com @192.168.30.104
原理:ACL的实现,和view视图来匹配acl中的设置和zone数据库信息
1、vim /etc/named.conf 在总配置文件中,加2条acl设置,acl设置要
2、vim /etc/named.conf 还是在主配置文件中,设置view关联:acl和zone区域
方法二:在主配置文件中指向/etc/named.rfc1912.zones中,在这个文件中设置zone数据库
zone "." IN { //加个根zone,是为了能访问外网
include "/etc/named.rfc1912.zones.beijing";
zone "." IN { //加个根zone,是为了能访问外网
view otherview { //加一个other,不在那两个view的也要能访问
include "/etc/named.rfc1912.zones";
vim /etc/named.rfc1912.zones.beijing
file "magedu.com.zone.beijing";
4、在数据库中随便配置点设置,为了试验测试结果明显,可以把三个解析的地址写为不同的
vim /var/named/magedu.com.zone
vim /var/named/magedu.com.zone.henan
vim /var/named/magedu.com.zone.beijing
@ IN SOA dns1 mail.magedu.com. (
dig www.magedu.com @192.168.30.107 测试henan
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。