虚拟机中linux系统DNS服务器搭建

500 阅读3分钟

0 实验环境

(1)VMware WorkStation 9

(2)Linux version 2.6.18-238.el5 (mockbuild@ca-build10.us.oracle.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Tue Jan 4 15:24:05 EST 2011

(3)bind-libs-9.3.6-16.P1.el5 ypbind-1.19-12.el5 bind-chroot-9.3.6-16.P1.el5 bind-utils-9.3.6-16.P1.el5 bind-9.3.6-16.P1.el5

0.5 实验前准备

(1)查看是否安装BIND

rpm -qa | grep bind

(2)资源记录:rr(resource record),有类型的概念;用于此记录解析的属性。

  • A:Address地址 IPv4
  • AAAA:Address地址 IPv6
  • NS:Name Server域名服务器
  • SOA:Start of Authority授权状态
  • MX:Mail Exchanger邮件交换
  • CNAME:Canonical Name规范名
  • PTR:Pointer指针

(3)正向解析反向解析 正向解析:网址 转换为 IP 反向解析:IP 转换为 网址

(4)FQDN (全限定域名)

FQDN由两个部分组成:主机名和域名。因为DNS是逐级管理的,所以在不同的层级中主机名与域名也是不同的;以www.google.com为例 在第二层(google.com) .com就是域名,google就是主机名 而到了第三层(www.google.com).google.com就成了域名,www就成了主机名。 如果有四层(test.example.com.cn).example.com.cn就是域名,test就是主机名

1 配置虚拟路由转发

(1)详情请见其“虚拟机中linux系统实现路由转发功能”→戳这里

(2)配置DNS客户机

vim /etc/resplv.conf

(3)添加配置

  1 ; generated by /sbin/dhclient-script  #原有的话可以不加
  2 search xxxcollege.net  #域名
  3 nameserver 10.10.1.10  #DNS服务器IP地址

2 配置主配置文件

(1)打开主配置文件

vim /var/named/chroot/etc/named.conf

(2)修改下列面几行的大括号内为any

 15     listen-on port 53 { any; };

 27     allow-query     { any; };
 28     allow-query-cache { any; };

3 配置区域配置文件

(1)打开区域配文件

vim /var/named/chroot/etc/named.rfc1912.zones

(2)在区域配文件中找到

//add youself code

(3)在这条语句下方添加 正向解析区域 和 反向解析区域

//正向解析区域
zone "xxxcollege.net" IN {      //xxxcollege.net可替换成想要解析的域名
    type master;             //类型设置为主服务器
    file "xxxcollege.net.zone"; //xxxcollege.net.zone是正向解析文件名,以文件名为准
    allow-update { none; };  //不允许其他主机更新本域的内容
};
    
//反向解析区域
zone "1.10.10.in-addr.arpa" IN { 
//"1.10.10."为IP"10.10.1.x"的网络段"10.10.1."反写
//应替换为作为DNS服务器的IP网络段反写
    type master;                   //类型设置为主服务器
    file "xxxcollege.net.local";      //xxxcollege.net.local是正向解析文件名,以文件名为准
    allow-update { none; };        //不允许其他主机更新本域的内容
};

//vim复制命令,复制第3行与第6行之间的内容,到第9行后
:3,6 co 9

//vim撤销命令
:u

4 建立正向解析文件

(1)进入配置目录

cd /var/named/chroot/var/named

(2)从模板文件复制建立正向解析文件 xxxcollege.net.zone

cp oraclecsg.com.zone xxxcollege.net.zone

(3)打开正向解析文件

vim xxxcollege.net.zone

(4)配置正向解析文件

  1 $TTL    86400     //TTL:资源记录在缓存的存放时间
  2 @       IN SOA  dns.xxxcollege.net.       admin (  //SOA后为域名
  3                     20140305; serial (d. adams)
  4                     3H      ; refresh
  5                     15M     ; retry
  6                     1W      ; expiry
  7                     1D )        ; minimum
  8 //NS记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。至少有一条NS
  9 @       IN NS       dns.xxxcollege.net. 
 10 dns     IN A        10.10.1.10     		//dns服务器映射IP 10.10.1.10(正向)
 11 xxxcollege.net.     IN MX   10  mail.xxxcollege.net.  //为DNS指定邮件交换服务器
 12 mail    IN A        10.10.1.10          //若搭建邮件服务器必须配置11、12
 13 www     IN A        10.10.1.10
 14 dhcp    IN A        10.10.1.10
 15 ftp     IN A        10.10.1.10


// 注意配置文件中的网址结束需要加".",例如"xxxcollege.net."
// @:是一个变量,一般值为本区域,在本例子中为"xxxcollege.net"

5 建立反向解析文件

(1)此时已在配置目录,从模板文件复制建立反向解析文件 xxxcollege.net.local,并打开

cp oraclecsg.com.local xxxcollege.net.local
vim xxxcollege.net.local

(2)配置反向解析文件

  1 $TTL 86400   //TTL:资源记录在缓存的存放时间
  2 @       IN      SOA     dns.xxxcollege.net. admin (  //SOA后为域名
  3         2014030501
  4         1H
  5         60M
  6         1D
  7         1D
  8 )
  9 @       IN      NS      dns.xxxcollege.net. 
 10 10     	IN      PTR     dns.xxxcollege.net. //IP 10.10.1.10映射到DNS服务器(反向)
 11 10      IN      PTR     www.xxxcollege.net.
 12 10      IN      PTR     mail.oraclecsg.com.
 13 10      IN      PTR     dhcp.oraclecsg.com.
 14 10     	IN      PTR     ftp.oraclecsg.com.
 //数字10为IP 10.10.1.10中去掉网络段"10.10.1"的主机段

6 配置三级域解析

(1)若存在三级域,例如"xxx.software.xxxcollege.net",三级域为"software.xxxcollege.net"",配置方法与上相同,下为示例

zone "software.xxxcollege.net" IN {
    type master;
    file "software.xxxcollege.net.zone";
    allow-update { none; };
};
    
zone "1.168.192.in-addr.arpa" IN { 
//应替换为对应服务器的IP网络段反写
    type master;
    file "software.xxxcollege.net.local";
    allow-update { none; };
};

(2)正向解析文件配置示例

  1 $TTL    86400     
  2 @       IN SOA  dns.software.xxxcollege.net.       admin (  //SOA后是三级域名
  3                     20140305; serial (d. adams)
  4                     3H      ; refresh
  5                     15M     ; retry
  6                     1W      ; expiry
  7                     1D )        ; minimum
  8 
  9 @       IN NS       dns.software.xxxcollege.net.
 10 dns     IN A        192.168.1.2     //正向映射
 11 xxx     IN A        192.168.1.2

(3)反向解析文件配置示例

  1 $TTL 86400   //TTL:资源记录在缓存的存放时间
  2 @       IN      SOA     dns.software.xxxcollege.net. admin (  //SOA后是三级域名
  3         2014030501
  4         1H
  5         60M
  6         1D
  7         1D
  8 )
  9 @       IN      NS      dns.software.xxxcollege.net. 
 10 2     	IN      PTR     dns.software.xxxcollege.net. //反向映射
 11 2     	IN      PTR     xxx.software.xxxcollege.net.

7 重启服务并测试

(1)重启named服务

service named restart

(2)使用nslookup查看,都出现结果说明成功了。

nslookup [ip-address]
nslookup [网址]