域名系统DNS(四)转发/解析
来源:互联网 发布:培训机构网络推广方案 编辑:程序博客网 时间:2024/06/06 20:11
转发的类型:
(1)无条件转发:转发所有针对非本机负责解析的区域的请求;
#在主配置文件/etc/named.conf的全局选项中添加如下内容:
options {
forwarders { ip; }; -----指明转发器是谁
forward only|first; -----only表示仅转发 ;first表示先进行转发,如果没查询到结果,那么它自己还会根据根提示向外迭代查询
};
(2)条件转发:仅转发对特定区域的请求(即转发域);
#在区域置文件/etc/named.rfc1912.zone中定义转发域:
zone "区域名称" IN {
type forward; #区域的类型为转发
forwarders { ip; }; #指明转发器是谁
forward only|first; #only表示仅转发 ;first表示先进行转发,如果没查询到结果,那么它自己还会根据根提示向外迭代查询
};
Linux DNS之常用工具dig、host
dig工具
#dig [OPTION] [@]SERVER|IP
[OPTION]
-t TYPE 指定资源记录类型
SOA
A
MX
NS
PTR
AXFR ZONENAME 得到指定区域内的全部数据。
IFXR=SERIALNUM 得到序列号为SERIALNUM的增量更新。
-x IP 查找IP地址对应的FQDN,即反向解析。
@ 指定查询服务器,直接向该服务器查询
+[NO]KEYWORD=VALUE 使用或禁用工作特性
KEYWORD
recurse 递归
trace 跟踪解析过程
例如:
#dig -t NS . 从本地服务器查询根域的NS记录
#dig -t NS . @a.root-servers.net. 指定从a.root-servers.net查询根域的NS记录。
#dig -t NS test.com.
#dig -t MX test.com.
#dig -t A www.test.com.
#dig -x 10.0.0.2
#dig +norescures -t A www.baidu.com @10.0.0.2 不使用递归的方式查询。默认情况下dig查询就是递归的。
#dig +trace -t A www.baidu.com @10.0.0.2
#dig -t AXFR test.com @10.0.0.3
#dig -t IXFR=2 @10.0.0.3
host
#host [OPTION] SERVER|IP
[OPTION]
-t TYPE 指定资源记录类型
例如:
#host -t A www.test.com
#host -t NS test.com
#host -t MX test.com
#host -t SOA test.com
#nslookup
1.交互模式
#nslookup
server IP 指定查询服务器的IP
set q=TYPE 设定资源记录类型
ZONENAME|IP 指定区域名称或IP
例如:
#nslookup
server 10.0.0.3
set q=A
www.test.com
10.0.0.2
set q=NS
test.com
ns1.test.com.
10.0.0.3
2.命令行模式
#nslookup [OPTION]
[OPTION]
#centOS 7 设置DNS方法
在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了。和CentOS 6下的设置DNS方法不同,有几种方式:
1、使用全新的命令行工具 nmcli 来设置
#显示当前网络连接
[root@localhost ~]# nmcli con sh
名称 UUID 类型 设备
系统 ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens33
#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识
[root@localhost ~]# nmcli con mod "系统 ens33" ipv4.dns "8.8.8.8 114.114.114.114"
#重启网卡服务
[root@localhost ~]# systemctl restart network
[root@localhost ~]# more /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
2、使用传统方法,手工修改 /etc/resolv.conf
修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:
[main]
plugins=ifcfg-rh
dns=none
NetworkManager重新装载上面修改的配置
# systemctl restart NetworkManager.service
手工修改 /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
补充:BIND安全相关配置(acl)
acl:访问控制列表:把一个或多个地址归并一个命名的集合,随后通过次名称即可对此集全内的所有主机实现统一调用
acl acl_bame {
ip;
net/prelen;
};
示例:
acl mynet {
172.18.0.0/16;
127.0.0.0/8;
};
bind有四个内置的acl
none:没有一个主机;
any:任意主机;
local:本机;
localnet:本机所在的IP所属的网络;
访问控制指令:
allow-query {}; 允许查询的主机;白名单;
allow-transfer {}; 允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;
allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求;
allow-update {}; DDNS,允许动态更新区域数据库文件中内容;
测试:
#修改文件,仅允许172.16.0.0/16网段可查询
# vim /etc/named.rfc1912.zones
acl mynet {
172.16.0.0/16;
127.0.0.0/8;
};
# vim /etc/named.rfc1912.zones
zone "zhaoxin.com" IN {
type master;
file "zhaoxin.com.zone";
acl-query { mynet; };
};
# systemctl restart named
阅读全文