热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Debian服务器设置---用Bind配置DNS

文章标题: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

推荐阅读
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 新新于2005-09-1415:02:23发表:利用chbg程序动态制作屏保XScreenSaver是一个开放的框架,就像一个服务器,任何一个可以在根窗 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • 你知道GPL吗?GPL 没落了吗?
    不久之前我看到了RedMonk的StephenOGrady发了一个关于开源协议的有趣的推特,那个推特里面有这张图。RedmonkBlackDuckLicensing ... [详细]
  • i3 处理器_旧机型安装 Linux_64位操作系统
    1.确认CPU是否支持64位首先确认CPU为64位cpu,intelcpu应支持EM64T指令集,amdcpu应支持x86-64指令集; ... [详细]
author-avatar
SP_Club
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有