DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。
DNS利用类似于树形目录的结构,将主机名的管理分配在不同层级的DNS服务器中,并进行分层管理。
DNS使用TCP与UDP的53端口。
DNS的相关概念有:
FQDN(full qualified domain name):中文为完整主机名。由主机名与域名组成。
以www.baidu.com为例,www是主机名,baidu.com是域名
TLD顶级域名或一级域名:常见的顶级域名有.com\.net\.org\.edu等,树形结构图如下:
全球共有十三台根域名服务器,存储在/var/named/namad.ca这个文件中: . 518400 IN NS a.root-servers.net. . 518400 IN NS b.root-servers.net. . 518400 IN NS c.root-servers.net. . 518400 IN NS d.root-servers.net. . 518400 IN NS e.root-servers.net. . 518400 IN NS f.root-servers.net. . 518400 IN NS g.root-servers.net. . 518400 IN NS h.root-servers.net. . 518400 IN NS i.root-servers.net. . 518400 IN NS j.root-servers.net. . 518400 IN NS k.root-servers.net. . 518400 IN NS l.root-servers.net. . 518400 IN NS m.root-servers.net.
DNS服务器的分类:有主服务、从服务、缓存服务器与转发服务器
缓存服务器:只有缓存的功能,本身没有任何域名区域的配置,缓存的结果完全由用户请求解析—-》根域名返回的结果。
转发服务器:把用户的请求转发给上一层的解析服务器,起到中转的功能。分有全局转发与局部转发
linux系统上,dns的主配置文件是/etc/named.conf,域名区域的配置是/etc/named.rif1912.zones
DNS有正解与反解的概念:
正解:把FQDN——(解析)—》IP
反解:把IP—–(解析)—》FQDN
区域解析库:由众多RR组成
DNS的资源记录:Recsource Record ,简称为RR,资源记录的类型有A、CHAME、PTR、SOA、NS、MX。
SOA:start of authority 起始授权记录:一个资源解析库有且只能有一个SOA记录,且必须 为解析库的第一条。 A:internet address,作用:FQDN--->IP AAAA:PQDN--->IPV6 RTP:PoinTeR(指针),作用IP---->FQDN NS:Name Server,专用于标明当前区域的DNS服务器 CHAME:Canonical name 别名记录 MX:Mail eXchanger 邮件交换器
SOA: name:当前区域的名称,例如“163.com” value:有多部分组成 (1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字 (2)记录当前区域管理员的邮箱地址,但地址不能使用@符号,一般用.(点号)替换,例如linuxedu.magedu.com (3) (主从服务器协调属性的定义以及否定答案的统一TTL)默认单位是S(秒),其中有H(小时)、D(天)、M(月)、W(周)
NS: name:当前区域的名字 value:当前区域的某DNS服务器的名字,例如ns.magedu.com; 一个区域可以多个NS记录 例如:magedu.com. (TTL可省略) IN NS ns1.magedut.com. 或 magedu.com. (TTL可省略) IN NS ns2.magedut.com. 注意: (1)相邻的两个资源记录的name相同时,后续的可省略 (2)对NS记录而言,任何一个NS记录后面服务器名字,都应该在后续有一个A记录
MX记录: name:当前区域的名字 value:当前区域的某邮箱服务器(smtp服务器)的主机名;value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小优先级越高。一个区域内,可有多个MX记录 例如:magedu.com IN MX 10 mx1.magedu.com. 或 magedu.com IN MX 20 mx2.magedu.com. 注意:对MX记录而言,任何一个NS记录后面服务器名字,都应该在后续有一个A记录
A记录 name:某主机的FQDN,例如www.magedu.com vulue:主机对应的主机IP地址 例如:www.magedu.com. IN A 1.1.1.1 或 www.magedu.com. IN A 1.1.1.2
PTR: name: ip,有特定格式,把IP地址反过来写,1.2.3.4 要写成 4.3.2.1; 而有特定后缀:in-addr.arpa. 所以完整写法为4.3.2.1.in-addr.arpa. value:FQDN 例如:4.3.2.1.in-addr-arpa. IN RTP www.magedu.com 可以简写为 4 IN RTP www.magedu.com 注意:网络地址及后缀可省略,主机地址需要反着写
CHAME name:别名的FQDN value:正式名字的FQDN 例如:web.magedu.com. IN CHAME www.magedu.com
DNS的基本配置
使用bind这个程序,安装完成后,区域文件存储在/var/named/目录下
1、配置为缓存服务器,修改/etc/named.conf这个文件
完成上面的配置后,service named start启动服务,并查看53端口是否已经被监听,若在监听,则启动缓存成功,把电脑的DNS指向此服务,便可正常正解析
2、配置DNS正解。测试使用域名为teset123.com,ns1(192.168.1.11),ns2(192.168.1.9)。正解中不需要配置RTP
在/etc/named.rfc1912.zones配置文件上配置区域
在/var/named/目录下创建test123.com.zone文件,并配置。完成配置后,需要把文件的权限改为640、属组为named
检测zone配置文件及主配置文件是否正确,若正确,重新载入配置文件rndc reload
使用dig -t A test123.com @192.168.1.11测试是否能解析,以下解析成功。
3、DNS反解配置
配置/etc/named.rfc1912.zone
说明:测试的www.test123.com解析的IP是192.168.1.254 。反解时是通过IP地址解析出对应的域名。在配置进反解的区域名称是反写IP地址.in-addr.arpa,本例中192.168.1.254是24位掩码,192.168.1.是固定不变的,因此写成1.168.192.in-addr-arpa
在/var/named/目录下创建 1.168.192.in-addr.arpa.zone文件,并配置。反解时主要配置RTP便可
使用named.checkzone、named.checkconf、rndc reload命令检测及重载配置文件后,测试
4、从服务器配置
在上面的配置,ns2 的IP地址是192.168.1.9,把此服务器配置为从服务器。注意:从服务器一定要在主服务器上通过ns 体现出来,否则更新配置时,主服务无法主动通知从服务器。
从服务器不需要区域文件,只要在named.rfc1912.zone文件中配置区域,指定为slave ,并指定masters的IP地址便可。同步成功后,自动会在/var/named/slaves/目录下创建区域的文件
以下为正解从服务器配置
通过查看日志文件 /var/log/messages,是否同步成功,以下已成功同步
反解从服务器的配置,思路与正解一样,只需要配置/etc/named.rfc1912.zone便可
查看日志
查看从服务器同步过来的区域配置文件
子域授权
子授权的配置要点:
在没有认证的时间下,父域与子域要关闭dnssec dnssec-enable no; dnssec-validation no; 在父域的zone配置文件中,指定子域的ns A记录 为了子域以最理想的路径解析父域,需要配置全局转发或局部转发功能,并指上一层为父域的NS ip地址
本次实验中,父域是test123.com,NS是192.168.1.11,www主机192.168.1.254;子域是test.test123.com,NS是192.168.1.9,www主机是192.168.1.253。
父域的配置
主配置文件的配置:通过forward启用全局转发,转发给上层192.168.1.1。如果,此父域能够访问根域服务器,此可配可不配。
zone配置文件中添加授权子域
子域的配置:
关于转发的配置,如果子域想依赖父域解析,可以做全局转发配置,并转发给父域。若只是把父域的域名转发给父域,而其他的仍由根域解析,则可配置局部转发。
测试
父域测试子域
子域测试父域
bind编译安装
本次安装版本的是 bind-9.6.1.tar.gz
1、解压后,指明安装路径、配置文件路径及其他参数并进行编译安装
./configure --prefix=/usr/local/bind9 --sysyconfdir=/etc/named --disable-ipv6 --disablie-chroot --enable-threads \\安装路径是/usr/lcoal/bind9,配置文件是/etc/named,关闭ipv6与根切换,开启多线程功能 make make install
2、编辑环境变量、库文件、头文件及帮助文档。
编辑变量,在/etc/profile.d目录下创建named.sh脚本,输入以下内容,并执行一个。 export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH 完成后: [root@localhost profile.d]# echo $PATH/usr/local/bind9/bin:/usr/local/bind9/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 编辑库文件 在/etc/ld.so.conf.d目录创建named.conf,并在文件中输入/usr/local/bind9/lib 然后ldconfig ,重新生成动态库文件 生成链接include文件 ln -sv /usr/local/bind9/include/ /usr/include/named 编辑/etc/man.conf
2、创建并配置/etc/named/named.conf的主配置文件、以及/var/named目录下多个文件
在/etc/named/目录下创建 named.conf并完成如下配置
使用dig -t ns . @192.168.1.1 >> /var/named/named.ca自动生成根域名的文件,192.168.1.1是我网络里的路由器,.(点号)代表根,自动把结果保存到named.ca文件中。
在/var/named目录下创建named.loopback named.localhost与named.com.zone文件,并完成如下配置
3、递归修改/usr/local/named/var目录的属组为named,并给named写与执行的权限。若不修改此项,在使用named -u named -f -g -d 3是会有如下提示
4、使用named -u named 运行后,查看及测试是否成功
已运行成功!
5、使用 rndc-confgen,生成rndc的配置文件,完成后便可使用rndc命令管理bind了
便可正常使用rndc命令了
原创文章,作者:Net20-deamon,如若转载,请注明出处:http://www.178linux.com/18137