DNS 域名服务器
最近两天接触到DNS 的相关内容,也做了一些示例,好记性不如烂笔头,随手就写了下来,
希望有等对有需要DNS这块知识的网友们有所帮助,如有不周的地方希望博友们见谅!!并给予批评指导!!
在次先谢过了!!!
废话不所说直切正题!!!
一、基础知识:
DNS 用来做域名称解析,提供双向解析,ip-->域名 , 域名-->ip
域名,www.xxxx.com 严格意义上叫 FQDN
组织域:.com , .org , .net , .cc 等....
国家域:.cn , .tw , .hk , .iq 等...
反向域:IP-->FQDN
正向 FQDN-->IP
查询:
递归:只发出一次请求
迭代:发出多次请求
NDS:是分布式数据库
上级仅知道直属下级
下级仅知道根
二、常见的DNS服务器类型
- 常见DNS服务器类型:
- 缓存DNS服务器: 做DNS本地数据缓存
- 转发服务器 : 对DNS查询请求做转发
- 主DNS : 数据修改
- 辅助DNS : 请求数据同步
- 辅助dns服务器会定期按照设置时间去探测主dns上的数据,依据以下5种属性信息设置
- seral number 版本号,定义版本号
- refresh 刷新时间,定义刷新版本号时间
- retry 重试时间,定义刷新版本号没有响应后的重新刷新时间
- expire 过期时间,定义规定时间内没有反应说明主机当掉
- nagative answer ttl 否定答案的缓存时长
三、资源记录类型:
- 资源记录类型:
- SOA: 起始授权记录, 用于标记一个区域文件的开始
- ZONE NAME TTL IN SOA FQDN mail地址 (5种属性值)
- 5种属性值:seral number,refresh,retry,expire,angative answer ttl
- 时间单位: M分钟,H小时,D天,W周, 默认是秒钟
- mail地址格式: 邮箱地址不能带@ 如
- [email protected] 错误写法
- admin.mageedu.com 正确写法
- 格式如:
- mageedu.com. 600 IN SOA ns.mageedu.com. admin.mageedu.com. (
- 20130401 #版本号
- 1H #刷新时间
- 5M #重试时间
- 1W #过期时间
- 1D ) #否定答案缓存时间
- 或者:
- mageedu.com. 600 IN SOA ns.mageedu.com. admin.mageedu.com. 20130401 1H 5M 1W 1D
- 在换行情况下 5种属性值要加(), 不换行则不用加,中间用空格隔开即可
- NS:(ZONE NAME)区域名-->FQDN 也成为名称服务器
- mageedu.com. 600 IN NS ns.madeu.com.
- ns.mageedu.com. 600 IN A 1.1.1.1
- NS 和 A 记录要 一起出现。
- MX:(ZONE NAME)区域名 ---> FQDN 也称为邮件交换器
- 格式:
- ZONE NAME TTL IN MX pri VALUE
- pri称为优先级: 0-99 数字越小级别越高
- mageedu.com. 600 IN MX 10 mail.magedu.com.
- mail.magedu.com. 600 IN A 1.1.1.1
- A :FQDN--->IPV4
- AAAA: FQDN--->IPV6
- PTR : IP--->FQDN 也成为指针记录
- CNAME: FQDN--->FQDN 也成为别名记录
- 如:
- www2.magedu.com. IN CNAME www.magedu.com. 这行字符意思是www2是www 的别名
- DOMAIN 域: 逻辑概念 理论上一个域里面有多个区域,而区域里面有定义了下一级的域。
- ZONE 区域: 物理概念 区域是真正存在的数据文件,定义了数据文件。
- 区域传送类型:
- 完全区域传送axfr
- 增量区域传送ixfr
- 区域类型:
- 主区域master
- 从区域slave
- 提示区域hint
- 转发区域forward
四、实现DNS功能软件 BIND 和 BIND97
bind97配置文件解析:
- 实现DNS功能软件 BIND 和 BIND97
- bind97配置文件解析:
- /etc/named.conf bind97配置文件 定义BIND进程的工作属性,区域的定义
- /etc/rndc.key 实现让远程工作的秘钥文件
- /etc/rndc.conf rndc的配置文件
- /var/named/xxx 区域数据文件 ,需要管理员手动创建
- /etc/rc.d/init.d/named bind控制文件,接受start|stop|status|reload|
- /etc/rc.d/init.d/named 这两个脚本是rpm包制作者 制作的,如果使用源码包安装bind97
- /etc/sysconfig/named
- BIND 的二进制进程 :named
- DNS 监听端口 53 和rndc 监听的953
- 用户发起请求连接用的是UDP 53 端口
- 从服务器 刷新数据的时候用的 TCP 53 端口
五、配置过程中所用到的额外命令、参数和用法
- 临时性关闭SElinux 在使用bind97的时候要用到 SELinux 所以简单的说一下使用方法。
- getenforce 查看状态
- enforcing 开启状态
- setenforce 0 关闭
- setenforce 1 开启
- 永久关闭selinux
- vim /etc/selinux/config
- SELINUX=enforcing 把此行改为下面内容
- SELINUX=permissive
- 测试DNS所用到的命令:
- dig: 是一个用于询问DNS域名服务器的灵活的工具。他执行DNS搜索,显示从受请求的域名服务器返回的答复。
- 多数DNS管理员利用dig作为DNS问题的故障诊断。
- dig -t <资源记录类型RT> NAME 查询对应RT的FQDNip
- dig -t A FQDN 查询FQDN 的A记录
- dig -t MX FQDN 查询FQDN 域的MX 记录
- dig -x ip 反向查询 ,查询对应ip的FQDN
- dig命令返回信息里面flags项里出现aa 表示权威答案
- host -t RT NAME : 查询名称的解析结果
- nslookup :是一个交互式命令可以在windows上使用,nslookup命令的功能是查询一台机器的IP地址和其对应的域名。
- 它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,
- 就可以用这个命令查看不同主机的IP地址对应的域名。
- 在win的命令提示符里输入nslookup
- >server ip # 指定DNS服务器 查询ip
- >set a=RT # RT指资源记录类型
- >name # 输入想要查找的 域名
六、配置过程:
要求:
域名 mageedu.com
网段 172.16.163.0
1,添加 NS记录
2,实现域名拥有两个ip 172.16.163.1 和 172.16.163.3
3,添加 MX 记录 ip 是172.16.163.2
4,为域名www 添加一个别名 ftp
系统环境: redhat5.8
- 配置过程:
- 1,# rpm -e bind-libs bind-utils
- 2,# yum install bind97 -y
- yum install -y bind97-utils
- 3,# mv /etc/named.conf /etc/named.conf.orgi 重命名配置文件 根据自己需求重新写
- 4,# vim /etc/named.conf
- options {
- directory "/var/named";
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master;
- file "named.localhost";
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.loopback";
- };
- 5,# chown root:named /etc/named.conf
- 6,# chmod 640 /etc/named.conf
- 7,# named-checkzone "." /var/named/named.ca 测试语法错误
- 8,# named-checkzone "." /var/named/named.ca 检查根区
- 如果出现以下提示请继续进行 属于正常情况
- zone ./IN: has 0 SOA records
- zone ./IN: not loaded due to errors.
- 9,# named-checkzone "localhost" /var/named/named.localhost
- 10,# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback
- #####测试以上内容都没有错情况下 可以启动服务了#####
- 11,# service named start
- 12,# vim /etc/resolv.conf
- nameserver 172.16.163.1 这个ip修改为本机ip即可
- 13,# dig -t NS . @A.root-server.net
- 14,# chkconfig named on
- 15,# vim /etc/named.conf
- 添加: 实现解析 mageedu.com
- zone "mageedu.com" IN {
- type master;
- file "magedu.com.zone";
- };
- 16,# named-checkconf /etc/named.conf 检查语法
- 17,# chown root.named mageedu.com.zone
- 18,# chmod 640 mageedu.com.zone
- 19,# vim /var/named/mageedu.com.zone
- $TTL 600
- mageedu.com. IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040201
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1
- IN MX 10 mail
- ns1 IN A 172.16.163.1
- mail IN A 172.16.163.2
- www IN A 172.16.163.1
- www IN A 172.16.163.3
- ftp IN CNAME www
- 20,# named-checkzone "mageedu.com" /var/named/mageedu.com.zone
- 21,# dig -t A www.mageedu.com 查看mageedu.com A记录
- ####### 写反向记录####
- 22,# vim /etc/named.conf
- 最后面加入一下几行
- zone "163.16.172.in-addr.arpa" IN {
- type master;
- file "172.16.163.zone";
- };
- 23,# vim /var/named/172.16.163.zone
- 写入一下反向解析内容
- $TTL 600
- @ IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040201
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.mageedu.com.
- 1 IN PTR ns1.mageedu.com.
- 2 IN PTR mail.mageedu.com.
- 1 IN PTR www.mageedu.com.
- 3 IN PTR www.mageedu.com.
- 24,# named-checkzone "163.16.172.in-addr.arpa" 172.16.163.zone
- 25,# service named restart
- 26,# dig -x 172.16.163.3 查看逆向解析
- dig -x 172.16.163.2
- dig -x 172.16.163.1
- 到此为止配置完成!!!