Debian服务器设置---用Bind配置DNS
作者:SP_Club | 来源:互联网 | 2017-06-26 02:14
文章标题:Debian服务器设置---用Bind配置DNS。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用。我是在1998年大学毕业时才听说这个词的。那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,DNS是什么? ——DNS,Domain Name Service,或者Domain Name Server,域名服务/域名服务器。 你在你的浏览器里面输入http://www.linuxsir.com之后,之所以可以上去,就是因为有了DNS。 简单地说,DNS把一串名字,转换成了IP地址。你可能会说:如果我直接使用IP地址,那就不需要DNS了吗?对!不过,请你接着往下看。 2 为什么需要DNS 2.1 互联网需要DNS 现在几乎整个互联网都是基于TCP/IP的。在这个世界里,不管你访问哪个网站、哪台机器,必须得知道它的IP地址才可以。好,我告诉你,202.106.185.203这个地址,是新浪网的IP地址,你每次上网,都得再浏览器的地址栏里面输入http://202.106.185.203才可以访问新浪。你可能会说:没问题,不就一串数字嘛,我记得住!可是,你想一下,在Internet上,有多少台主机啊!你可能会记住其中几台甚至几十台的IP地址,但是你肯定记不住全部。 正是由于IP地址不好记,人们才想了个办法,让你只需要记住名字,然后系统通过这个名字,到数据库里面去查找它的IP地址,然后再把查到的IP地址反馈给你,比如反馈给浏览器,最后,浏览器用这个由DNS给的IP地址去访问你想去的站点。 2.2 局域网需要DNS 那么,在局域网内部呢?需要DNS吗? 太需要了!你不要觉得,单位就这么几台机器,用hosts解析,不也一样吗?你可千万记住这个教训,当公司越来越大,hosts的维护量将大的惊人!我所在的公司,前不久就面临了这种尴尬。所以,一定要有一台DNS,然后在公司内部定义一个规范的主机命名规则,这才是个好网管,呵呵。 3 BIND介绍 Bind是使用最广泛的Domain Name Server,它是Berkeley Internet Name Domain Service的简写,伯克里大学编写的。这个大学可真厉害,写了不少著名程序。原本bind的版本一直在 4.8.x 4.9.x左右,后来一口气跳到8.1.x,是因为大幅度改进了功能,并修复了漏洞。现在bind有两个版本在同时发展,bind 8.x 和 bind 9.x,最新版本是8.3.3和9.2.1。 3 安装 3.1 软件版本 目前debian的sid,同样提供了8版本的bind和9版本的bind,后者的软件包名字叫做bind9.deb,版本是最新的9.2.1版。 3.2 安装 安装过程非常简单: # apt-get install bind9 4 配置 由于我们前面第三章在配置邮件服务器的时候,使用了hosts文件来解析IP地址,现在我们需要把它去掉,让系统通过DNS来解析它所需要的IP地址。 我们制作基本的配置。至于高级功能,我们将在本文的下一个版本里描述。 4.1 去掉hosts信息 如果你阅读过本文第三章,你就会知道,我有两台机器,一台笔记本电脑安装了win2000,名字叫notepad;另一台台式机装了Debian,机器名叫debian。他们都属于test.com这个域,这个域名没有在ISP那里注册,是我们内部用的。我分别编辑win2000机器上的\winnt\system32\drivers\etc\hosts这个文件和debian机器上的/etc/hosts,去掉下面的这些行: 192.1.110.120 debian.test.com debian 192.1.110.122 notepad.test.com notepad 这时你可以在win2000机器上启动Outlook Express,做一下收取邮件的动作,它会说找不到debian.test.com——这就对了,因为hosts文件里面没有指向这个名字的IP地址,而且,我们也没有给win2000指定DNS服务器,所以它肯定找不到debian.test.com。 4.2 在客户机上设置DNS 在我的Win2000机器里面,在桌面上右击“网上邻居”选择属性,在出现的窗口中右击“本地连接”选择属性,然后双击TCP/IP,在右下角的“首选DNS”里面,输入192.1.110.120。这是我的Debian机器在局域网上的IP地址。如果你用的是win98,那么情况差不多,在一个叫做DNS的标签里面设置首选DNS。我很久不用98了,差不多忘了。 如果你是个急性子,你会发现,诶?怎么设上了DNS了,我的Outlook Express还是说找不到debian.test.com?呵呵,别急别急,我们的DNS服务器还没弄好呐! 4.3 在Debian上设置DNS 我们要事先把Debian机器的DNS指向它自己。修改/etc/resolv.conf,修改成: search test.com nameserver 192.1.110.120 你不会把我的IP地址也抄上吧,呵呵。 4.4 配置DNS服务器 4.4.1 应用环境 我们把实验环境重新描述一下。 ◆一个C类网段地址 (本例中假定是192.1.110.0) ◆企业域名为 test.com,没有在ISP注册。(主域名服务器地址 192.1.110.120,主机名为 debian.test.com) ◆企业网通过路由器与Internet连接 假如你的应用环境与上述条件不同,也请往下看,本文会在上述例子的基础上针对以下情况作修正: ◆多个网段 ◆封闭的内部网 ◆只能访问局部公共网的情况(如169网、上海热线等) 我们将使用一个叫做rndc的工具,rndc可以用于启动、中止、重启动、刷新DNS数据、输出DNS数据等多种调试功能。 4.4.2 配置named.conf DNS 服务器的主体是域名服务器进程 named ,named启动后向DNS客户机提供域名解析服务,把域名转换成IP地址。 named 启动时需要读取一个初始化文件,缺省情况下是 /etc/bind/named.conf,这是bind的基本配置文件,不过这里面并不包含DNS数据。 注意,你也许会在网上找到一些教程,这些教程有的是以 bind 4.x为蓝本的,所以它的named.conf里面的注释符号是分号“;”,但是自动bind 8开始,语法变了。下面我们来说一下: ; 这是bind 4.x的注释,前面用分号 //不过从bind 8开始,有三种注释符号可以用: C样式, C++样式, 或者shell样式: /* 这是C样式的注释符号 */ // 这是 C++样式的注释符号 # 这是shell样式的注释符号 请你先把默认的/etc/bind/named.conf备份一下,我将给大家写一个简单的named.conf,用于做Caching-only的DNS配置。 // 指定 named 从 /var/cache/bind 目录下读取 DNS 数据文件。 // 这个目录用户可自行指定并创建,指定后所有的DNS 数据文件都存放在此目录下。 options { directory "/var/cache/bind"; }; // 指定 named 作为 test.com 域的主域名服务器。 // db.test 文件中包含所有 *.test.com 形式的域名转换数据。 zone "test.com" in { type master; file "db.test"; }; // 指定 named 作为 192.1.110 网段地址转换主服务器。 // db.192.1.110 文件中包含了所有 192.1.110.* 形式的地址到域名的转换数据。 zone "110.1.192.in-addr.arpa" in { type master; file "db.192.1.110"; }; // 指定 named 作为127.0.0网段地址转换主服务器。 // db.127.0.0 文件中包含了 127.0.0.* 形式的地址到域名的转换数据。 //(127.0.0网段地址是局域网接口的内部 loopback 地址) zone "0.0.127.in-addr.arpa" in { type master; file "db.127.0.0"; }; // 指定 named 从 db.cache 文件中获得 Internet 的顶层“根”服务器地址。 zone "." in { type hint; file "db.cache"; }; 要注意第二和第三个区域中的网段地址是倒写的,另外,各个区域所使用的数据文件的文件名也是可以自行决定的。 请把上面的内容保存为你的/etc/bind/named.conf。 4.4.3 准备数据文件 上面的那个named.conf,相信你已经看明白了。那里面提到,在/var/cache/bind这个目录下面,应该有DNS数据文件db.test、db.192.1.110、db.127.0.0 还有 db.cache。下面我们就要建立这些文件。 4.4.3.1 建立 db.test 文件 根据 /etc/bind/named.conf 的定义,我们在 /var/cache/bind 目录下建立db.test,其中应该包括所有在 test.com域内的主机节点。但在机器数量较多时,为了调试方便,建议一开始只把几台节点的数据放入文件,待 named 正常工作后再把其他节点的数据补充进去。下面是 db.test的例子: @ IN SOA debian.test.com. root.debian.test.com. ( 200211131 ; serial, todays date + todays serial # 28800 ; refresh, seconds 7200 ; retry, seconds 3600000 ; expire, seconds 86400 ) ; minimum, seconds NS debian.test.com. MX 10 debain.test.com. ; 域名服务器列表 test.com. IN NS debian.test.com. ; 计算机名称和地址 localhost.test.com. IN A 127.0.0.1
推荐阅读
如何将PHP文件上传至服务器及正确配置服务器地址 ...
[详细]
蜡笔小新 2024-10-31 15:32:47
技术日志:Ansible的安装及模块管理详解 ...
[详细]
蜡笔小新 2024-11-03 15:01:47
随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ...
[详细]
蜡笔小新 2024-10-25 23:19:30
本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ...
[详细]
蜡笔小新 2024-12-03 17:33:54
本文详细介绍了MySQL在Linux环境下的主从复制技术,包括单向复制、双向复制、级联复制及异步复制等多种模式。主从复制架构中,一个主服务器(Master)可与一个或多个从服务器(Slave)建立连接,实现数据的实时同步。 ...
[详细]
蜡笔小新 2024-12-02 23:08:49
本文介绍了 Redis,这是一个由 Salvatore Sanfilippo 开发的键值存储系统。Redis 是一款开源且高性能的数据库,支持多种数据结构存储,并提供了丰富的功能和特性。 ...
[详细]
蜡笔小新 2024-12-02 21:28:54
###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ...
[详细]
蜡笔小新 2024-12-02 18:58:45
本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ...
[详细]
蜡笔小新 2024-12-02 17:00:28
数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ...
[详细]
蜡笔小新 2024-11-08 10:55:29
Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ...
[详细]
蜡笔小新 2024-11-07 08:11:57
Canonical与Opera Software近日宣布,基于Chromium的Opera浏览器现已作为Snap包提供给Ubuntu用户,显著提升了在Linux操作系统上的安装便捷性和兼容性。通过Snap,用户可以在Ubuntu系统中轻松安装和更新Opera浏览器,享受更流畅的浏览体验。此外,Snap的容器化特性还确保了应用的安全性和稳定性,为用户提供更加可靠的软件环境。 ...
[详细]
蜡笔小新 2024-10-31 09:30:06
RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ...
[详细]
蜡笔小新 2024-10-28 22:49:28
本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ...
[详细]
蜡笔小新 2024-10-28 13:49:10
Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ...
[详细]
蜡笔小新 2024-10-28 13:45:59
在Linux系统中,特别是Ubuntu和其他发行版中,配置TTY终端字体对于提升用户体验至关重要。本文将详细介绍如何在这些系统中设置TTY字体,并探讨Debian和Ubuntu的默认控制台字体选择。通过合理的字体配置,可以显著改善TTY终端的可读性和美观性。 ...
[详细]
蜡笔小新 2024-10-26 11:55:49