这篇文章主要介绍“如何使用BIND在Linux上建立DNS服务器”,在日常操作中,相信很多人在如何使用BIND在Linux上建立DNS服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用BIND在Linux上建立DNS服务器”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
配置BIND
当系统中安装好BIND之后,你就可以把它配置成多种方式。最常用的两种之一是使用ISP类型的设置,DNS服务器接受并解析来自任何人的请求 (或者一组预先定义的用户);另一种是Web主机方式,服务器只解析对服务域名的请求。当服务器的用途改变时,你也可以随时改变配置的类型。
DNS服务器既可以是主控服务器也可以是辅助服务器。主控服务器也称为主服务器,是判定域名的最终来源。主控服务器同时也是传送到辅助服务器的 区传送(zone transfer)的源头。辅助服务器接收所有来自主控服务器的区信息。一个常见的错误是试图改变二级服务器上的区数据库文件而没有改变主控服务器上的区 数据库文件(zone file)。为什么要两个服务器呢?在任何配置中使用冗余都是一个好主意,这是BIND和DNS的一个原生部分。幸运的是,在机房中增加第二台Linux 机器作为辅助DNS服务器一般来说不会影响你的预算。
要记住当有两种类型的服务器时,主控服务器也可以同时担当其他域的辅助服务器。在大多数ISP环境当中都可以看到这种情形,客户拥有自己的主控 DNS服务器,同时又出于备份的目的把ISP当作二级服务器。这种类型的配置以及BIND中几乎所有的其他配置项都是通过named.conf文件完成 的。这个文件以纯文本的形式存放各服务器信息和区信息。如表A所示。
named.conf 文件示例
options { notify-source 10.0.0.2; pid-file "/var/run/named.pid"; }; zone "." { type master; file "root.db"; }; zone "example.com" { type master; file "/var/named/sample.com.zone"; };
DNS服务器有多种可用的选项,如果你需要某种特殊的安装方式,我建议你通读一遍附带的文档。上面的例子中notify-source指明服务 器把区变动通知(NOTIFY)消息发送到什么地方,当主控服务器检测到区数据库文件发生变动时就会向辅助服务器发出这样的消息。pid-file选项只 是告诉守护进程(daemon)服务器写入ID信息的路径,通常是/var/run/named.pid,但如果你重新设置了目录的布局的话也可以根据需 要对其进行更改。
上面的例子中***个区登记项用来通知BIND在何处定位根服务器的信息。服务器发送和接收的不仅是你自己的域信息同时也包括Internet上所有的域信 息。并不是每个服务器上都有每个域名的登记项,但每个服务器都知道怎样获取信息。当然,由于列表会定期更新,所以也应当定期作记录。
在named.conf示例文件中第二个区登记项是一个"主控"域项,意思是这个DNS服务器保存着example.com的有效信息, Internet上其他所有的DNS服务器都将用它来参照任何与这个域相关的信息。Example.com项引用/var/named /sample.com.zone这个文件。这是一个纯文本文件,它告诉DNS服务器所有有关example.com的信息,包括serial值、刷新 率、所有的DNS纪录以及其他一些项目。表B显示了这个区数据库文件的示例。
DNS区数据库文件示例
@ IN SOA ns1.sample.com. ( 200101111 ;serial 14400 ;refresh after 4 hours 3600 ;retry after 1 hour 604800 ;expire after 1 week 86400) ;minimum TTL of 1 day ; ;Nameservers ; IN NS ns1.sample.com. ; IN NS ns2.sample.com. ; ; ;Domain Mail Handlers ; sample.com. IN MX 10 mail ; ;Hosts in order ; www IN A 212.204.219.71 ftp IN A 212.204.219.71 mail IN A 212.204.219.71 pop IN CNAME mail
SOA是Start of Authority的缩写,所有区文件都要以它打头。顺序号(serial)使服务器能够纪录所进行过的各次更新,守护进程最近一次启动后只要数字出现了 增长,它就会重新把信息读入到数据库中去。举例来说,你可以从0开始然在每次更新之后加让一个数字,也可以使用日期项如200101111。这很有用,因 为它让你能够看最近的一次更新的发生并且看出一天是否发生过多次更新。接下来的四行以秒的形式处理刷新和超时周期,如果BIND数据库没有发生过人工或者 服务器范围的刷新,服务器会自动的重新读入信息。不需要经常改变此处所列出的数值,只有由于某种原因域非常频繁地改变它们的信息时才需要对这些数值进行更 改。接着列出的是域名,这样BIND就会知道是谁控制整个域。
接着列出的是MX纪录,,它使服务器知道当有邮件信息请求sample.com时应当发出什么信息,在本例中,mail.samle.com的优先级是 10。你可以列出多个MX纪录作为邮件服务器的备份。数字越小优先级越高。要注意的是还有一个相应的A纪录给出了mail.sample.com的IP地 址,这是必不可少的,这样DNS服务器就可以知道怎样根据域直接把邮件请求发往何处。一个A纪录仅仅是把IP地址赋给一个子域项,如www、mail、 ftp或者ns,这些都必须用上面的格式录入,而且必须与一个IP地址相关联。比如说,当某个用户请求www.sample.com时,他将会被指向该域所在的Web服务器的IP地址 212.104.219.71。
上面的例子中还有一个CNAME项,CNAME是指canonical name,用于指定IP地址的别名,使用这些别名时还是要回过头参考已经使用过的A纪录。
辅助服务器部分看过name.conf中的主控服务器部分后我们再来看看辅助服务器部分:
zone "sample2.com" { type slave; file "/var/named/sample2.com.zone"; master { 10.0.0.1; };
最主要的两个区别一是type项,它既可以是master也可以使slave,二是IP地址指定的是主控DNS服务器。其他的都和Master 项相同。
启动BIND
用于启动DNS服务的程序是named,读作"name D"。你可以通过执行/etc/rc.d/init.d/named start命令来运行这个程序。如果服务器已经处于运行状态,你可以用restart命令。这个脚本程序应该是在安装时放进正确的目录中的,它在启动时运 行以初始化服务器。你总是应当用ps aux命令检查一下named是否已经运行,这个命令会列出当前所有进程的清单。
到此,关于“如何使用BIND在Linux上建立DNS服务器”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。