- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Red Hat Linux上使用BIND建立DNS服务器由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
尽管Linux在桌面计算的世界中还没有取得引人注目的进展,但作为网络服务器它已经小有名气了。由于其出色的可靠性,我们可以放心地在Linux上运行当今Internet时代所必需的各种重要服务程序。由此,Linux最普遍的一些用途包括用作邮件服务器、Web服务器以及DNS服务器.
下面我们将研究怎样在Red Hat Linux上使用BIND建立一个DNS服务器。BIND(Berkeley Internet Name Domain)是一个在UNIX/Linux系统上实现的域名解析服务软件包。我们将学习在Linux上建立和运行一个DNS服务器所需的安装、初始配置以及系统设置等步骤.
在本文中我们用Red Hat作为示例,所以你也许希望使用BIND的RPM版本,可以通过搜索www.rpmfind.net找到它,因为使用RPM形式的发行包是安装BIND最简便的方法。下载了BIND的RPM之后,比如bind-9.1.0-10.i386.rpm,需要以超级用户的身份执行rpm -ivh bind-9.1.0-10.i386.rpm命令。在RPM安装BIND时要注意检查任何能够导致安装失败的缺失的依赖关系.
如果你更愿意从源码包安装的话,在下载如 bind-9.1.3.tar.gz这样的文件之后需要以超级用户身份运行tar xvfz bind-9.1.3.tar.gz命令对它进行解压。就本例而言会生成一个名为bind-9.1.3的目录,它包含了进行安装所必需的所有文件。下一步,进入这个新创建的目录然后执行./configure命令,在脚本程序完成所有配置工作后,运行make,接着运行make install完成安装过程。现在在你的系统中应该已经安装好了基本配置的BIND,接下来要根据需要对它进行调整.
配置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是否已经运行,这个命令会列出当前所有进程的清单.
最后此篇关于Red Hat Linux上使用BIND建立DNS服务器的文章就讲到这里了,如果你想了解更多关于Red Hat Linux上使用BIND建立DNS服务器的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
谁能解释一下 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"之间的区别\") 和 Server.MapPath("/")? 最佳答案
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我已经通过 WHM 在我的一个域上安装了 ssl 证书。网站正在使用 https://xyz.com . 但是它不适用于 https://www.xyz.com .我已经检查了证书,它也适用于 www
我已经使用 WMI 检测操作系统上是否存在防病毒软件,itz 正常工作并通过使用命名空间向我显示防病毒信息,例如 win xp 和 window7 上的名称和实例 ID:\root\SecurityC
我们有 hive 0.10 版本,我们想知道是否应该使用 Hive Server 1 或 Hive Server2。另一个问题是连接到在端口 10000 上运行的 Hive 服务器,使用 3rd 方工
我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。 (我不想要客户端 S
我写了一个非常基本的类来发送电子邮件。我用 smtp 服务器对其进行了测试,它工作正常,但是当我尝试使用我公司的交换服务器时,它给出了这个异常: SMTP 服务器需要安全连接或客户端未通过身份验证。服
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
我有一个 Tomcat 服务器和一个 Glassfish4 服务器。我的 Servlet 在 Tomcat 服务器上启动得很好,但在 Glassfish4 服务器上给我一个“HTTP Status 4
我在 vmware 上创建了一个 ubuntu 服务器。我用它作为文件服务器。如果我通过托管虚拟机的计算机进行连接,则可以访问它。我无法从同一网络上的其他计算机执行此操作。提前致谢! 最佳答案 首先确
如何重启 Rails 服务器?我从 开始 rails server -d 所以服务器是分离的 我知道的唯一方法就是去做ps 辅助 | grep rails 并 kill -9关于过程#但是像这样杀死进
我实际上正在尝试找到编写一个简单的 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的服务器。我只关心XMPP的核心功能(状态、消息传递、群组消息传递)。目前还在学习 XMPP 协议(proto
我实际上正在尝试找到编写简单 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的方法。我只关心 XMPP 的核心功能(统计、消息、组消息)。目前也在学习 XMPP 协议(protocol),所以
我们正在尝试从 Java JAX-RS 适配器访问 SOAP 1.1 Web 服务。 我们正在使用从 WSDL 生成的 SOAP 客户端。 但是当解码 SOAP 故障时,我们得到以下异常: ... C
目前,我和许多其他人正在多个平台(Windows、OS X 和可能的 Linux)上使用 Python HTTP 服务器。我们正在使用 Python HTTP 服务器来测试 JavaScript 游戏
我有一个连续运行的服务器程序(C#/.NET 2.0 on Linux with mono),我想从 PHP 脚本连接到它以在网站上显示状态信息。 目的是创建一个(某种)实时浏览器游戏(无 Flash
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
我们刚刚将测试 Web 服务器从 Server 2008 升级到 Server 2012 R2。我们有一个部署我们网站的批处理脚本。当它将站点推送到服务器时,它现在失败了。奇怪的是,我可以使用相同的发
建议一些加载SpagoBI服务器的方法,我尝试了所有方法来解析spagobi服务器。在 Catalina 中,错误是 - * SEVERE: Unable to process Jar entry [
当我们点击应用程序服务器(apache tomcat)时,它会创建一个线程来处理我们的请求并与 tomcat 连接,建立连接,tomcat 创建另一个线程来处理请求并将其传递给连接,连接线程将其传递给
我是一名优秀的程序员,十分优秀!