1. 配置DNS服务器准备
DNS简介:DNS服务器是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。
DNS服务器配置和测试需要的工具:
(1)基于Linux的unbantu(18.04.1)操作系统
(2)BIND简介
BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括
* 域名服务器 (named)
* DNS解析库函数
* DNS服务器运行调试所用的工具
是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,按照ISC的调查报告,BIND是世界上使用最多最广泛的域名服务系统。不论你的邮件服务器,WEB服务器或者其他的services如何的安全可靠,DNS的故障会给你带来用户根本无法访问这些服务。BIND,也是我们常说的named,由于多数网络应用程序使用其功能,所以在很多BIND的弱点及时被发现。主要分为三个版本:v4(古老)、v8(广泛)、v9(最新)。
(3)测试项目
测试域名:
ruixincode.cn
测试ip:
192.168.243.129 主域名服务器
182.92.70.229 测试客户机
2. 配置FTP服务器的命令、含义及其截图
创建主域名服务器
① 在192.168.243.129机器上安装bind9(重点)
命令:sudo apt-get install bind9
② 使用编辑器,比如vi,编辑配置文件/etc/bind/named.conf【注:在ubuntu中还有一个 /etc/bind/named.conf.local (效果相同)】(重点)
加入如下内容:
zone "ruixincode.cn" {
type master; //定义此区为主服务器
file "/etc/bind/db.ruixincode.cn"; //指定区资源文件的位置
};
zone "243.168.192.in-addr.arpa" {
type master; //定义此区为主服务器
file "/etc/bind/db.192"; //指定区资源文件的位置
};
图 28 加入内容
③ 创建区资源文件:(重点)
创建区资源文件/etc/bind/db.ruixincode内容如下:
;
; BIND data file for local loopback interface
;
$TTL 604800
$ORIGIN ruixincode.cn.
@ IN SOA ruixincode.cn. root.ruixincode.cn. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns
@ IN MX 0 mail.ruixincode.cn.
@ IN A 192.168.243.129
ns IN A 192.168.243.129
www IN A 192.168.243.129
webserver IN CNAME www
mail IN A 192.168.243.129
ftp IN A 192.168.102.48
ns2 IN A 192.168.102.48
ns3 IN A 192.168.102.49
解释:
第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周。
第二行是$ORIGIN设定,说明下面的记录出自何处,留意最后的一个小小数点"."。
第三行,是一个SOA记录的设定,在这里我们看到一个特殊字符@ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN ruixincode.cn. 的内容,您可以写成 ruixincode.cn. 也可以用 @ 来代替。假如这个文件前面没有定义 $ ORIGIN 的话, 那这个 @ 的值就以 named.conf 里的 zone 。
接 着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"ruixincode.cn." 和"root.ruixincode.cn."。我们平时使用的信箱通常是“user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 "root@ruixincode.cn."。
接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料:
Serial: 其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!
Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。
Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。
Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期(
expired )。
Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。
请注意:SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在注解符号 “ ;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ; )开头,也不在 SOA 的 “ ( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几 行用空白或 Tab 来缩排就可以了。
NS表明负责ruixincode.cn这个域的Name Server是ruixincode.cn这台主机。
MX记录标明发往ruixincode.cn域的邮件由mail.ruixincode.cn这台服务器接收。
A记录标明了IP地址和域名之间的对应关系。
④ 接下来创建该区的反向映射资源文件(重点)
/etc/bind/db.192内容如下:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ruixincode.cn. root.ruixincode.cn. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ruixincode.cn.
47 IN PTR mail.ruixincode.cn.
47 IN PTR http://www.ruixincode.cn.
47 IN PTR ns.ruixincode.cn.
48 IN PTR ftp.ruixincode.cn.
48 IN PTR ns2.ruixincode.cn.
49 IN PTR ns3.ruixincode.cn.
解释:
其中PTR记录用来解析IP地址对应的域名,也就是反向域名解析。
⑤ 重启DNS服务
命令:sudo /etc/init.d/bind9 restart
注:DNS服务只对该服务启动前本机的ip地址有效,具体状况可通过 sudo netstat -atnpl 查询(端口53)
此时查看系统日志,可了解BIND的启动情况,比如如下输出,则说明引导正常。
命令:tail /var/log/syslog
⑥ 在客户机上的设置
# cat /etc/resolv.conf
search ruixincode.cn
nameserver 192.168.243.129
每次重启计算机之后这个文件都会被自动改写,所以每次重启后需要手动设置此文件。
⑦ 测试:
a. 使用nslookup 测试:
tonybox2:~# nslookup
> set type=any
> ruixincode.cn
Server: 192.168.243.129
Address: 192.168.243.129#53
ruixincode.cn
origin = ruixincode.cn
mail addr = root.ruixincode.cn
serial = 2006080801
refresh = 604800
retry = 86400
expire = 2419200
minimum = 604800
ruixincode.cn nameserver = ns.ruixincode.cn.
ruixincode.cn mail exchanger = 0 mail.ruixincode.cn.
Name: ruixincode.cn
Address: 192.168.243.129
b. 使用dig测试:
tonybox2:~# dig @192.168.243.129 ruixincode.cn
; <<>> DiG 9.3.2 <<>> @192.168.243.129 ruixincode.cn
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41793
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;ruixincode.cn. IN A
;; ANSWER SECTION:
ruixincode.cn. 604800 IN A 192.168.243.129
;; AUTHORITY SECTION:
ruixincode.cn. 604800 IN NS ns.ruixincode.cn.
;; ADDITIONAL SECTION:
ns.ruixincode.cn. 604800 IN A 192.168.243.129
;; Query time: 31 msec
;; SERVER: 192.168.243.129#53(192.168.243.129)
;; WHEN: Mon Aug 14 09:16:27 2006
;; MSG SIZE rcvd: 79
tonybox2:~# dig @192.168.243.129 ftp.ruixincode.cn
; <<>> DiG 9.3.2 <<>> @192.168.243.129 ftp.ruixincode.cn
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63890
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;ftp.ruixincode.cn. IN A
;; ANSWER SECTION:
ftp.ruixincode.cn. 604800 IN A 192.168.102.48
;; AUTHORITY SECTION:
ruixincode.cn. 604800 IN NS ns.ruixincode.cn.
;; ADDITIONAL SECTION:
ns.ruixincode.cn. 604800 IN A 192.168.243.129
;; Query time: 22 msec
;; SERVER: 192.168.243.129#53(192.168.243.129)
;; WHEN: Mon Aug 14 09:16:41 2006
;; MSG SIZE rcvd: 83
c. 反向查询:
tonybox2:~# dig @192.168.243.129 -x 192.168.243.129
; <<>> DiG 9.3.2 <<>> @192.168.243.129 -x 192.168.243.129
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21885
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;129.243.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
129.243.168.192.in-addr.arpa. 604800 IN PTR http://www.ruixincode.cn.
129.243.168.192.in-addr.arpa. 604800 IN PTR mail.ruixincode.cn.
129.243.168.192.in-addr.arpa. 604800 IN PTR ruixincode.cn.
;; AUTHORITY SECTION:
102.168.192.in-addr.arpa. 604800 IN NS ruixincode.cn.
;; ADDITIONAL SECTION:
ruixincode.cn. 604800 IN A 192.168.243.129
;; Query time: 33 msec
;; SERVER: 192.168.243.129#53(192.168.243.129)
;; WHEN: Mon Aug 14 09:17:00 2006
;; MSG SIZE rcvd: 138