您的位置:首页 > 运维架构 > Linux

linux 第62,63天 DNS

2018-09-28 14:12 369 查看

linux 第62,63天 DNS

时间: 20180924

时间: 20180925


目录

DNS (Domain Name Service)

一次完整的查询请求经过的流程

资源记录

主从DNS名称服务器

转发服务器

bind中ACL

bind view (实现CDN的一种方式)

/etc/namd/namd.conf 配置文件选项解析

测试DNS命令dig

rndc

总结



DNS (Domain Name Service) 

c/s 53 tcp udp


BIND (Bekerley Internat Name Domain)

ISC (www.isc.org)


一次完整的查询请求经过的流程:

Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) 

--> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS...


资源记录

区域解析库: 由从多RR(Resource Record)组成

资源记录: RR(Resource Record)

记录类型: A, AAAA, PTR, SOA, NS, CNAME, MX

SOA (Start Of Authority) 起始授权记录 一个区域解析库只能有一个此条目

SOA记录,必须位于解析库的第一条记录

A internet address FQDN --> IP

AAAA FQDN-->IPv6

PTR PinTeR, IP-->FQDN

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

CNAME Canonical Name 别名记录 一条记录可以将一个域名解析的库跳转至另外一个上边

MX Mail eXchanger 邮件交换器


注意:

(1) TTL可从全局继承

< 5b4 p> (2) @可用于引用当前区域的名字

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;

此仅表示通过多个不同的名字可以找到同一个主机


SOA 记录

winthcloud.com. 86400 IN SOA ns.winthcloud.com. nsadmin.winthcloud.com. (

2015042201 ;序列号

2H ;刷新时间

10M ;重试时间

1W ;过期时间

1D ;否定答案的TTL值

)


反向解析区域

区域名称:网络地址反写.in-addr.arpa.

172.16.100. --> 100.16.172.in-addr.arpa.

定义区域

zone "ZONE_N 4fc0 AME" IN {

type {master|slave|forward};

file "网络地址.zone"

};

反向记录

11 IN PTR ns1.winthcloud.com.

11 IN PTR www.winthcloud.com.

12 IN PTR mx1.winthcloud.com.


子域授权如.com给winthcloud.com区域授权

IN NS dns1

winthcloud IN NS dns2

dns1 IN A 192.168.31.2

dns2 IN A 192.168.69.1


主DNS名称服务器

在主配置文件中定义区域

zone "ZONE_NAME" IN {

type {master|slave|hint|forward};

file "ZONE_NAME.zone";

};

主配置文件语法检查:

named-checkconf

解析库文件语法检查:

named-checkzone "winthcloud.com" /var/named/winthcloud.com.zone



转发服务器

注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行

(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器

Options {

forward first|only;

forwarders { ip;};

};

(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高

zone "ZONE_NAME" IN {

type forward;

forward first|only;

forwarders { ip;};

};

注意:关闭dnssec功能:

dnssec-enable no;

dnssec-validation no;


bind中ACL

bind中基础的安全相关的配置:

acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用

格式:

acl acl_name {

ip;

net/prefix;

……

};

示例:

acl mynet {

172.16.0.0/16;

10.10.10.10;

};

bind有四个内置的acl:

none: 没有一个主机

any: 任意主机

localhost: 本机

localnet: 本机的IP同掩码运算后得到的网络地址

注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面


bind view (实现CDN的一种方式)

CDN: Content Delivery Network内容分发网络

view:视图 实现智能DNS:

一个bind服务器可定义多个view,每个view中可定义一个或多个zone

每个view用来匹配一组客户端

多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件


注意:

(1) 一旦启用了view,所有的zone都只能定义在view中

(2) 仅在允许递归请求的客户端所在view中定义根区域

(3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表


格式:

view VIEW_NAME {

match-clients { testacl; };

zone "winthcloud.com" {

type master;

file "winthclou.com.zone"; 

};

include "/etc/named.rfc1912.zones";

};



/etc/namd/namd.conf 配置文件选项解析

recursion yes|no; 是否给客户请求做递归

访问控制的指令:

allow-query {}: 允许查询的主机;白名单

allow-transfer {}:允许区域传送的主机;白名单

allow-recursion {}: 允许递归的主机,建议全局使用

allow-update {}: 允许更新区域数据库中的内容





测试DNS命令dig

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

dig -t axfr winthcloud.com @10.10.10.11

dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1

dig -x IP 反向解析

dig -t NS . @114.114.114.114

dig -t NS . @a.root-servers.net


rndc

rndc --> rndc (953/tcp)

rndc COMMAND

COMMAND:

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

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

retransfer zonename: 手动启动区域传送,而不管序列号是否增加

notify zonename: 重新对区域传送发通知

reconfig: 重载主配置文件

querylog: 开启或关闭查询日志文件/var/log/message

trace: 递增debug一个级别

trace LEVEL: 指定使用的级别

notrace:将调试级别设置为 0

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


总结

1. recursion yes|no; 此项如果设置为no可以查询记录但是只能查询至其下一级不给再往下

查询如向.查询www.winthcloud.com时,他会给你只返回.com的NS记录在哪里,然后只能

你自己再去一级一级查询.

2. name.conf里的配置有几项很关键allow-query {}; 后边一般直接跟网段,如果只根主机

地址只会使相应的主机可进行查询其它主机则不可查询。

3. allow-transfer {}; 用来限制给哪些提供区域转发功能,一般只给从服务器提供

allow-recursion {}; 允许给哪些网段递归,一般只为内部网络递归,除非你是互联网上

的DNS。

4. allow-update {}; 即远程控制域服务器,可以添加域等操作,一般不使用

5. acl acl-name { IP or net;}; 将远程IP归类,可以为后期做查询记录时为不同的客户端

提供不同的dns解析

6. view { match-clients { aclname; ip; net; }; };此里边可以添加zone,注意如果

dns服务器准备做view时所有的区域必须包含在内,只在准备为其做递归的view中使用

根区域


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dns linux