设为首页 加入收藏

TOP

DNS—正、反向解析;委派;主从;子域;转发;智能dns等的实现(一)
2017-10-16 18:20:41 】 浏览:8028
Tags:DNS 解析 委派 主从 子域 转发 智能 dns 实现

前言: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 [-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个

 

2、host,查询没有dig详细

host [-t type] name [SERVER]

host -t NS magedu.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 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇编译LNMP之nginx+php-fpm 下一篇Linux 定时任务详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目