DNS:Domain Name Service,linux上的DNS服务是基于一种软件BIND实现的。BIND: Berkeley Internet Name Domain。
- 数据库中的每一个条目称作一个资源记录(Resource Record,RR)
- 资源记录的格式:
- NAME [TTL] IN(关键字) RRT(资源记录类型) VALUE
- 如:
- www.hulunbeier.com. IN A 172.16.0.1
- 172.16.0.1 IN PTR www.hulunbeier.com
- 资源记录类型:
- SOA(Start OF Authority):起始授权记录(第一条必须是此记录)
- ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
- serial number:可理解为版本号
- refresh:检查时间周期
- retry:重试时间
- expire:过期时间
- nagative answer TTL:否定答案缓存时间 )
- 时间单位:M(分钟)、H(小时)、D(天)、W(周),默认为秒
- 邮箱格式:[email protected] --写为--->admin.hulunbeier.com
- 如:
- hulunbeier.com. 500 IN SOA ns1.hulunbeier.com. admin.hulunbeier.com. (
- 2013040101
- 1H
- 5M
- 1W
- 1D )
- NS(Name Server):DOMAIN NAME-->FQDN :名称服务器(任何一个NS记录都有一个A记录与其相随)
- 如:
- hulunbeier.com. 500 IN NS ns1.hulunbeier.com.
- ns1.hulunbeier.com. 500 IN A 172.16.0.1
- MX(Mail eXchanger):ZONE NAMA-->FQDN :邮件交换器
- ZONE NAME TTL IN MX pri VALUE
- 优先级:0-99,数字越小级别越高
- 如:
- hulunbeier.com. 500 IN MX 10 mail.hulunbeier.com.
- mail.hulunbeier.com. 500 IN A 172.16.0.10
- A(address):FQDN-->IPv4
- AAAA:FQDN-->IPv6
- PTR(pointer):IP-->FQDN :指针记录
- CNAME(Canonical NAME):Alias-->FQDN :别名记录
- www2.hulunbeier.com. IN CNAME www.hulunbeier.com.
- ftp IN CANME www
- TXT
- CHAOS
- SRV
- 正向区域文件格式为:
- hulunbeier.com. IN NS FQDN
- www.hulunbeier.com. IN A 192.168.0.1
- 第二行可简写为:
- www IN A 192.168.0.1
- 反向区域文件:
- 0.168.192.in-arpa. IN SOA FQND
- 如:
- 1.0.168.192.in-arpa. IN PTR www.hulunbeier.com.
- 可简写为:
- 1 IN PTR www.hulunbeier.com.
- bind97安装后会生成如下几个目录:
- /etc/named.conf #这是主配置文件,里边包含有BIND进程的工作属性的定义和区域的定义。
- /var/named/* #这个目录下是所有区域数据文件存放的地方。在该目录下包含这样两个文件:
- /var/named/named.localhost
- /var/named/named.loopback #这两个文件是本地主机名的正反解析文件。
- /etc/rc.d/init.d/named,这个是服务,我们可使用如下几个命令来开启、关闭服务等。
- {start|stop|restart|status|reload}
- bind安装完成后,在修改配置文件及添加区域数据文件时,常使用如下两个命令,对其进行检查。
- named-checkconf:检查配置文件有没有语法错误
- named-checkzone:检查区域文件有没有错误
- dig:Domain Information Gropher ,该命令一定要熟记,是查询DNS的主要命令。下面使用时我们跟边使用边介绍其用法。这里先说两个简单命令。
- dig -t NS . :可查看根域名服务器信息(前提是本机必须可以上网)
- dig -t NS . @host :表示通过host主机查看根域名服务器信息
- 区域的定义:/etc/named.conf配置文件
- zone "ZONE NAME" IN { #定义区域名称,其中IN是关键字
- type [master|slave|hint|forward]; #指定区域类型
- file "ZONE_DATA_FILENAME"; #指定区域数据文件保存地文件
- masters { MASTER_IP; }; #指明主服务器地址,该定义只在从服务器上使用
- };
- options { #定义全局选项,在所有区域中均有效,如果区域中对某一项有定义,则使用区域中定义的,否则使用此处已定义好的
- listen-on port 53 { 127.0.0.1; }; #指定BIND侦听的DNS查询请求的本机IP地址和端口
- listen-on-v6 port 53 { ::1; }; #同上,但只用在IPv6版本中
- directory "/var/named"; #指定区域配置文件所保存的路径
- dump-file "/var/named/data/cache_dump.db"; #当执行rndc dumpdb命令时,DNS服务器存放数据库文件的路径名
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
- allow-query { localhost; }; #指定接受DNS查询请求的客户端
- recursion yes; #是否允许递归
- dnssec-enable yes;
- dnssec-validation yes;
- dnssec-lookaside auto;
- bindkeys-file "/etc/named.iscdlv.key";
- };
- logging { #指定BIND服务的日志参数
- channel default_debug { #日志通道,用于指定日志发送目标,default_debug是通道名称
- file "data/named.run"; #记录的日志保存到指定路径下的的文件中
- severity dynamic; #指定日志的级别
- };
- };
- zone "." IN { #指定区域配置参数
- type hint; #根
- file "named.ca"; #指定保存数据文件的路径,这里是相对路径,即相对上边的/var/named
- };
- include "/etc/named.rfc1912.zones"; #该配置文件中其他区域定义在该文件中,这里使用该命令将该配置文件包含进来
- dig -t RT(资源记录类型) NAME [#IP] #当记录类型不同时,其后所跟的名称也不同
- dig -t NS ZONE_NAME #通过区域名查询
- dig -x IP:根据IP查找FQDN
- #在使用该命令时,系统会返回给我们很多信息,我们主要看ANSWER SECTION这个选项的信息,这才是我们想要的答案,其他选项不做介绍
- dig +norecurse -t A FQDN @HOST #通过host主机不递归查询该FQDN,默认情况使用递归查询
- dig +trace -t A FQDN @HOST #通过host主机追踪查询该FQDN的查询过程
- host -t RT NAME:查询名称的解析结果
- 如:# host -t RT www.mageedu.com
- nslookup #交互式查询界面,与windows下的该命令类似
- nslookup>
- server IP
- seT q=RT
- set q=A
- NAME
- 临时性关闭SELinux:
- getenforce #表示查看SELinux是否启用,输入该命令如果显示Enforcing,则需要关闭
- setenforce 0 #关闭SELinux服务
- setenforce 1 #开启该服务
- 永久关闭,可编辑/etc/selinux/config文件修改SELinux=Permissive
- options {
- directory "/var/named" ;
- };
- zone "." IN {
- type hint;
- file "named.ca"; #默认情况下该文件是存在的,可去/var/named目录下查看
- };
- zone "localhost" IN { #该区域和下边的区域定义可实现本机的正反向解析
- type master; #指定主服务器
- file "named.localhost"; #默认情况下该文件是存在的,可去/var/named目录下查看
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.loopback"; #默认情况下该文件是存在的,可去/var/named目录下查看
- };
- 配置好以上几个,缓存服务器建立好
- service named start #重启服务即可生效
- vim /etc/resolv.conf #编辑本机的dns服务器指向指定
- search example.com
- nameserver 172.16.32.100 #要换成本主机的域名服务器地址
- 要想下次开机启动,可用如下命令:
- # chkconfig named on