DNS服务器的搭建
2015-06-12 13:27
495 查看
域名
域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,由于ipv4,ipv6地址很难记忆,我们在访问互联网时,一般用域名加主机名来进行访问,例如:www.google.com,这个后面省略了点(.),完整的格式应该是www.google.com.,走后面的点表示根域,.com为一级域,.google为二级域,www表示这个域中的某一台主机。我们在使用互联网时,要使用ip地址才能访问某一台主机,DNS服务器就为我们提供这个解析服务,将域名解析成ip(正向解析),也可将ip解析为域名(反向解析)。
注意:域名解析通常有两种方式,一种是/etc/hosts文件中的IP地址和域名的直接映射;一种是通过dns服务器来解析,同一个域名默认是先读取hosts文件来解析,如其中无此记录,再转向dns服务器请求解析,两种解析方式的优先级别在/etc/nsswitch.conf中定义:
DNS
DNS(Domain Name System)的应用程序位bind,监听在TCP/UDP的53号端口,下面就介绍dns的安装配置:
主配置文件:
/etc/named.conf #主配置文件,里面include了下面2个文件
/etc/named.rfc1912.zones #一般除根之外的区域文件定义都在这里完成
/etc/named.root.key
/etc/rc.d/init.d/named #服务启动脚本,在源码安装时,这个文件没有,需要自己手动编写
/etc/rndc.conf #域名服务远程控制工具的配置文件
/etc/rndc.key #域名服务远程控制工具的密钥控制文件
/usr/sbin/named #主程序
/usr/sbin/named-checkconf #检查/etc/named.conf配置文件的工具
/usr/sbin/named-checkzone #检查区域配置文件的工具
/usr/sbin/rndc #域名服务远程控制工具主程序
/usr/sbin/rndc-confgen #域名服务远程控制工具的密钥生成工具
主配置文件 /etc/named.conf :
DNS服务器中域名与IP地址相互转换的映射信息以文本形式存储在区域文件中,每一个区域文件对应一个域名的解析,当然如果需要反解,还需要一个对应的反向区域文件。
先在/etc/named.rfc1912.zones中定义区域:
DNS服务器中域名与ip地址的映射信息以文本文件的形式存在于区域文件中,每一行为一个对应关系,称为一个资源记录(RR Resource recorde),资源记录定义格式:
[name] [ttl] IN type value
name #根据资源类型的不同,取值也不同,取值包括:FQDN(全称域名),当前区域名称(简写为@),也
#可不写(与上一条资源记录的name值相同),根域为"."。
ttl #指定缓存时长,可以不写。可以直接在首行指定$TTL 1800,下面不写,就默认这个值。
IN #固定格式。
value #这个字段的取值也资源记录类型有关
type #资源记录类型
type有下面几个值:
SOA #这个区域的信息汇总,每个区域文件必须包含一个SOA记录,并且必须是第一条记录,这条记
#录中指明了这个区域的主DNS服务器及系统管理员邮箱等。
NS #用于标识负责解析本区域的DNS服务器,如果主从服务器有多个,每一个都需要标明。
MX #用于标识邮件服务器。
A #A记录,主机名至IP地址的映射,正向解析。
AAAA #ipv6主机名至IP地址的映射。
CNAME #别名记录,用于定义A记录的别名。
PTR #IP地址至主机名的记录,反向解析。
这里有2点需要注意:
1、对区域文件改动之后,serial number都需要加1,serial number变动之后,本机的DNS程序会通知从DNS服务器过来同步对应的区域文件。在这个文件中定义了多少条NS记录,程序就回根据这些记录通知指定的DNS从服务器,若没有定义,则不会通知
2、在反向解析文件中,没有mx(邮件服务器)记录,SOA和NS记录跟正向解析文件中的一致,其中的A级记录都转为PTR记录,CNAME(别名)无需反解
SOA记录:
1)named-checkconf #检查配置信息语法错误(/etc/named.conf),或用service named configtest(这个除了检查/etc/named.conf配置文件,也可以检查各区域文件,但是centOS7好像没有),执行命令之后若没有返回结果,则说明配置正确。
2)named-checkzone #检查区域文件是否配置正确。
例如:named-checkzone “localhost” /var/named/named.localhost
#localhost指区域名,/var/named/named.localhost对应的域的解析库文件。输入指令之后若返回OK,则表示配置正确。
最后修改一下区域解析文件的属组和权限:
然后即可启动服务service named start。
客户端测试工具
下面介绍几款客户端的测试工具,在DNS服务器或客户端网络出现故障时,常常使用这些工具来排除故障。
1)host
格式:host -t RRType NAME [SERVER]
-t RRType #指定资源记录类型
NAME #需要解析的主机名或IP地址
SERVER #指定用于解析的DNS服务器
2)nslookup (交互式DNS查询客户端查询命令)
用法:
nslookup
>service x.x.x.x
>set type{A|NS|MX}
>name
3)dig
格式:dig -t type name @server
-t type #指定资源记录类型
NAME #需要解析的主机名或IP地址
@SERVER #指定用于解析的DNS服务器
+trace #开启dns查询跟踪
+notrace #关闭dns查询跟踪
+recurse #开启dns递归查询
+norecurse #关闭dns递归查询
类型可使用:AXFR,AXFR:完全区域传送(测试完全区域传送是否能够正常运行),
例如: dig -t AXFR 小小.com @192.168.0.165
dig -x ip @servier #通过-x来指定反解解析(注意:不是-t PTR)
可用上述介绍的几款工具对自己搭建的DNS服务器进行测试!!!
再介绍一款DNS的控制工具:rndc,rndc是一款远程控制工具,但是全程控制的话不安全,一般仅在本地只用。
rndc命令[name server control utility](可以通过rndc-confgen生成rndc的主配置文件):
reload [zone] #重新载入某个区域文件,用于区域文件的更新
reconfig #重读配置文件
flush #flushes the server's cache 用于缓存过期清理
status #查看服务器状态
域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,由于ipv4,ipv6地址很难记忆,我们在访问互联网时,一般用域名加主机名来进行访问,例如:www.google.com,这个后面省略了点(.),完整的格式应该是www.google.com.,走后面的点表示根域,.com为一级域,.google为二级域,www表示这个域中的某一台主机。我们在使用互联网时,要使用ip地址才能访问某一台主机,DNS服务器就为我们提供这个解析服务,将域名解析成ip(正向解析),也可将ip解析为域名(反向解析)。
注意:域名解析通常有两种方式,一种是/etc/hosts文件中的IP地址和域名的直接映射;一种是通过dns服务器来解析,同一个域名默认是先读取hosts文件来解析,如其中无此记录,再转向dns服务器请求解析,两种解析方式的优先级别在/etc/nsswitch.conf中定义:
#hosts: db files nisplus nis dns hosts: files dns #file指/etc/hosts
DNS
DNS(Domain Name System)的应用程序位bind,监听在TCP/UDP的53号端口,下面就介绍dns的安装配置:
[root@baby-virt-4 ~]# yum install bind
主配置文件:
/etc/named.conf #主配置文件,里面include了下面2个文件
/etc/named.rfc1912.zones #一般除根之外的区域文件定义都在这里完成
/etc/named.root.key
/etc/rc.d/init.d/named #服务启动脚本,在源码安装时,这个文件没有,需要自己手动编写
/etc/rndc.conf #域名服务远程控制工具的配置文件
/etc/rndc.key #域名服务远程控制工具的密钥控制文件
/usr/sbin/named #主程序
/usr/sbin/named-checkconf #检查/etc/named.conf配置文件的工具
/usr/sbin/named-checkzone #检查区域配置文件的工具
/usr/sbin/rndc #域名服务远程控制工具主程序
/usr/sbin/rndc-confgen #域名服务远程控制工具的密钥生成工具
主配置文件 /etc/named.conf :
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { //listen-on port 53 { 127.0.0.1; }; #指定监听的ip,注释后监听所有ip(ipv4) //listen-on-v6 port 53 { ::1; }; #ipv6 directory "/var/named"; #区域文件目录 dump-file "/var/named/data/cache_dump.db"; #缓存存放的地方(猜的) statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; //allow-query { localhost; }; #是否允许查询 //recursion yes; #是否允许递归查询,这个可以在配置了view之后在具体的view中指定 //dnssec-enable yes; //dnssec-validation yes; //dnssec-lookaside auto; /* Path to ISC DLV key */ //bindkeys-file "/etc/named.iscdlv.key"; //managed-keys-directory "/var/named/dynamic"; }; logging { #定义日志存放位置 channel default_debug { file "data/named.run"; severity dynamic; }; }; include "/etc/named.rfc1912.zones"; //include "/etc/named.root.key";配置完成后启动named服务service named start,当前服务器不负责任何域名的解析,是一台DNS缓存服务器。下面介绍区域文件的配置,如果需要反向解析,还需要配置反向区域文件,这些区域文件都需要放置在/etc/named.conf中directory参数指定的目录下(默认是/var/named/目录下)。
DNS服务器中域名与IP地址相互转换的映射信息以文本形式存储在区域文件中,每一个区域文件对应一个域名的解析,当然如果需要反解,还需要一个对应的反向区域文件。
先在/etc/named.rfc1912.zones中定义区域:
zone "xiaoxiao.com" IN { #引号中的是区域名称 type master; #指定服务器类型 file "xiaoxiao.com.zone"; #指定解析库文件,默认在/var/named目录下 allow-update { none; }; #是否允许更新 }; zone "0.168.192.in-addr.arpa" IN { #反向区域定义 type master; file "0.168.192.zone"; allow-update { none; }; }; #type {master|slave|hint|forward}; #master 主DNS服务器 #slave 从DNS服务器 #hint 提示域,所有非本机所负责的区域,都直接转发至这里,用于定义根区域 #forward 转发器
DNS服务器中域名与ip地址的映射信息以文本文件的形式存在于区域文件中,每一行为一个对应关系,称为一个资源记录(RR Resource recorde),资源记录定义格式:
[name] [ttl] IN type value
name #根据资源类型的不同,取值也不同,取值包括:FQDN(全称域名),当前区域名称(简写为@),也
#可不写(与上一条资源记录的name值相同),根域为"."。
ttl #指定缓存时长,可以不写。可以直接在首行指定$TTL 1800,下面不写,就默认这个值。
IN #固定格式。
value #这个字段的取值也资源记录类型有关
type #资源记录类型
type有下面几个值:
SOA #这个区域的信息汇总,每个区域文件必须包含一个SOA记录,并且必须是第一条记录,这条记
#录中指明了这个区域的主DNS服务器及系统管理员邮箱等。
NS #用于标识负责解析本区域的DNS服务器,如果主从服务器有多个,每一个都需要标明。
MX #用于标识邮件服务器。
A #A记录,主机名至IP地址的映射,正向解析。
AAAA #ipv6主机名至IP地址的映射。
CNAME #别名记录,用于定义A记录的别名。
PTR #IP地址至主机名的记录,反向解析。
这里有2点需要注意:
1、对区域文件改动之后,serial number都需要加1,serial number变动之后,本机的DNS程序会通知从DNS服务器过来同步对应的区域文件。在这个文件中定义了多少条NS记录,程序就回根据这些记录通知指定的DNS从服务器,若没有定义,则不会通知
2、在反向解析文件中,没有mx(邮件服务器)记录,SOA和NS记录跟正向解析文件中的一致,其中的A级记录都转为PTR记录,CNAME(别名)无需反解
SOA记录:
@ IN SOA ns.xiaoxiao.com. baby.xiaoxiao.com. ( 10011 ;#serial number,版本号,这个文件改动之后版本号加1。 1H ;refresh time,同步时间间隔。 10M ;retry time,重试时间间隔。 7D ;expire time ,超时时间。 10M ;negative answer ttl,否定回答缓存时长。 ) #name:@表示当前区域名称,就是在/etc/named.rfc1912.zones中定义的zone名称。 #value:主DNS服务器的FQDN和系统管理员的邮箱地址,由于@表示区域名称,所以这里的@用"."表示。NS记录:
@ IN NS ns.xiaoxiao.com. @ IN NS 2ns.xiaoxiao.com. #name:@表示当前区域名称 #value:对应DNS服务器的FQDN,每一个NS记录都得有一个A记录(对于正向解析文件而言)。 #还有FQDN最后面的那个点".",千万不能忘了写。下面的也一样。MX记录:
@ IN MX 10 mail.xiaoxiao.com. #name:@当前区域名称 #value:FQDN,对于MX记录,在value前还需要定义一个优先级(0-99) #这个优先级数字越小,优先级越高,越被优先使用 #每一个MX记录都得有一个A记录(对于正向解析文件而言)。A记录:
ns.xiaoxiao.com. IN A 192.168.0.165 2ns.xiaoxiao.com. IN A 192.168.0.206 mail.xiaoxiao.com. IN A 192.168.0.240 www.xiaoxiao.com. IN A 192.168.0.241 web.xiaoxiao.com. IN A 192.168.0.242 #name:FQDN #value:对应IP地址 #ns.xiaoxiao.com. IN A 192.168.0.165 #2ns.xiaoxiao.com. IN A 192.168.0.206 #mail.xiaoxiao.com. IN A 192.168.0.240 #这3条就是对应上面DNS和MX记录的A记录。cname记录:
ttt.xiaoxiao.com IN CNAME #name:别名 #value:FQDN #需要有对应的A记录PDR记录:
165 IN PTR ns.xiaoxiao.com. 206 IN PTR 2ns.xiaoxiao.com. 241 IN PTR www.xiaoxiao.com. 242 IN PTR web.xiaoxiao.com. #name全为简写,后面会自动补上.(点)和区域名称完成配置之后最好用bind软件包提供的这两个工具检查一下:
1)named-checkconf #检查配置信息语法错误(/etc/named.conf),或用service named configtest(这个除了检查/etc/named.conf配置文件,也可以检查各区域文件,但是centOS7好像没有),执行命令之后若没有返回结果,则说明配置正确。
2)named-checkzone #检查区域文件是否配置正确。
例如:named-checkzone “localhost” /var/named/named.localhost
#localhost指区域名,/var/named/named.localhost对应的域的解析库文件。输入指令之后若返回OK,则表示配置正确。
最后修改一下区域解析文件的属组和权限:
[root@baby-CentOS named]# chmod 640 xiaoxiao.com.zone 0.168.192.zone [root@baby-CentOS named]# chown :named xiaoxiao.com.zone 0.168.192.zone
然后即可启动服务service named start。
客户端测试工具
下面介绍几款客户端的测试工具,在DNS服务器或客户端网络出现故障时,常常使用这些工具来排除故障。
1)host
格式:host -t RRType NAME [SERVER]
-t RRType #指定资源记录类型
NAME #需要解析的主机名或IP地址
SERVER #指定用于解析的DNS服务器
[root@baby-virt-3 ~]# host -t A www.xiaoxiao.com 192.168.0.165 Using domain server: Name: 192.168.0.165 Address: 192.168.0.165#53 Aliases: www.xiaoxiao.com has address 192.168.0.5得到解析结果192.168.0.5!
2)nslookup (交互式DNS查询客户端查询命令)
用法:
nslookup
>service x.x.x.x
>set type{A|NS|MX}
>name
[root@baby-virt-3 ~]# nslookup > server 192.168.0.165 Default server: 192.168.0.165 Address: 192.168.0.165#53 > set type=A > www.xiaoxiao.com Server: 192.168.0.165 Address: 192.168.0.165#53 Name: www.xiaoxiao.com Address: 192.168.0.5
3)dig
格式:dig -t type name @server
-t type #指定资源记录类型
NAME #需要解析的主机名或IP地址
@SERVER #指定用于解析的DNS服务器
+trace #开启dns查询跟踪
+notrace #关闭dns查询跟踪
+recurse #开启dns递归查询
+norecurse #关闭dns递归查询
类型可使用:AXFR,AXFR:完全区域传送(测试完全区域传送是否能够正常运行),
例如: dig -t AXFR 小小.com @192.168.0.165
dig -x ip @servier #通过-x来指定反解解析(注意:不是-t PTR)
可用上述介绍的几款工具对自己搭建的DNS服务器进行测试!!!
再介绍一款DNS的控制工具:rndc,rndc是一款远程控制工具,但是全程控制的话不安全,一般仅在本地只用。
rndc命令[name server control utility](可以通过rndc-confgen生成rndc的主配置文件):
reload [zone] #重新载入某个区域文件,用于区域文件的更新
reconfig #重读配置文件
flush #flushes the server's cache 用于缓存过期清理
status #查看服务器状态
相关文章推荐
- 使用批处理命令设置windows系统的ip地址和dns附图
- 保护DNS服务器的几点方法小结
- DNS的工作原理图解说明
- 计算机名DNS网关IP(大家可以用来学习)
- CMD和vbs修改 IP地址及DNS的实现代码
- linux下如何快速让DNS修改生效
- linux中查询dns示例
- MySQL DNS的使用过程详细分析
- winmydns DNS服务器架设
- Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP
- windows服务器 的DNS服务器备份与还原步骤小结
- 浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
- Linux命令行修改IP、网关、DNS的方法
- 用VBS设置静态IP和DNS服务器地址的代码
- Linux下用dnsmasq做dns cache server的配置方法
- Win7+xp命令行 一键修改IP、DNS
- Windows Server 2008 R2 DNS 服务器迁移方法
- windows2003 DNS服务器配置(图文详解)
- C#实现一键换IP、重置DNS、网关及掩码的方法
- win2003 配置DNS、NAT及搭建IIS网站的方法