原文地址: http://blog.chinaunix.net/uid-29622064-id-4242123.html

1.DNS服务器简介

域名系统英文Domain Name System,縮寫DNS)是因特网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCPUDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

在dns出现之前,我们把域名和IP的对照存放在/etc/hosts文件里边,但是随着IP的不断增大,使用文件存放显得不够了。而且不利于和其他的主机进行同步,DNS应运而生。

DNS的结构:他是利用树形目录的架构。将主机名的管理分配在不同层级的DNS服务器,让每一层的修改和查找都变得功能单一。

DNS查询主机名的流程:

(1)先在本机有没有记录,没有的话向(.root)查询;
(2)向最顶层的.查询;
(3)然后分层的查询,每次只查询它所对的下一层。
(4)查到之后记录缓存,并且将路径返回给用户。

注:在系统中我们可以通过dig命令进行路径追踪。

工作流程如图所示:

2.搭建DNS服务器

今天我们来自己搭建一个DNS服务器,这样的需求在公司的内部还是有的。

首先我们来查找安装dns的包有那些:

安装dns服务器:

开启服务后看到dns服务开启的端口号是53:

接下来我们要修改配置文件提供相应的服务,这里我们为了安全期间,在/var/named/chroot的目录下修改配置文件,而不直接对/etc/named目录下的文件进行修改,两者是同步的,但是有一个约束条件,前者只有在dns开启成功的情况下才能使用!!!

我们在选项中关闭了ipv6的开放,而且允许任意用户使用。

主配置文件的最后两行分别是副配置文件和我们的dns加密文件:

(1)DNS的正向解析:
我们依次来查看:

我们来设置自己的域名系统,上边的是模板,底下的我们指定了域名配置文件的名称,这个要自己创建,位置在/var/named/chroot/var/named下:

这个目录底下也有域名配置文件的模板,我们拷贝一份并进行设置:

这个是初始模样,请务必记住,并且和修改之后的进行对比:

修改之后的:

注意:这里的@等于example.com. 所以在最后两行,如果没有把域名补全的话,系统会把@所代表的值添加到末尾,并且注意每个com后边还有一个点。

这个时候我们重启服务,并且查看火墙是否已经关闭:

服务端设置好之后,我们在另外一台机子上访问dns服务器。

首先要做的就是修改ifcfg-eth0文件里的DNS1参数为指定DNS服务器的IP:192.168.2.100.然后重新启动network服务:


重新启动network:

我们追踪了一下,发现可以找到www.example.com,并且dns服务器为192.168.2.100这就说明我么之前的dns服务器配置是没有问题的。

上述部分是dns服务器的正向解析,同时我们还知道dns具有反向解析的能力,那如何实现呢,当然还是要修改配置文件了,与正向解析的步骤差别不大。

(2)DNS的反向解析:

回到副配置文件中,在目录/var/named/chroot/etc下:

看到我们IP的书写格式了么,是的,既然是反向解析,IP的书写顺序也是相反的,并且指定了配置文件:

跳转到配置文件目录,首先我们拷贝反向解析配置文件的模板,然后进行编辑:

这个是模板的格式:

我们修改之后的样子:

记住最后一行,它代表的意思是192.168.2.200所对应的域名是ptr.example.com.这个是我们等会检验配置是否正确的标准。

退出保存后重启dns服务:

回到客户机我们来反向解析一下192.168.2.200是什么域名:

小结:

如上所讲,dns的正向解析和反向解析已经完成,但是这样的功能有点单一化,事实上它还有些不使用,比如说如何去同步的修改,如何和dhcp共同协作提供ddns的服务,这些我们在下节讲解。

linux杂谈(十八):DNS服务器的配置(一)的更多相关文章

  1. DNS同时占用UDP和TCP端口53——传输数据超过512时候用tcp,DNS服务器可以配置仅支持UDP查询包

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...

  2. Ubuntu 12.04 DNS服务器的配置方法

    Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件, ...

  3. DNS服务器的配置与应用: BIND9 的安装与配置

    3. BIND9 的安装与配置 3.1 bind简介 BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了 ...

  4. Linux系统下搭建DNS服务器——DNS原理总结

    2017-01-07 整理 DNS原理 域名到IP地址的解析过程 IP地址到域名的反向域名解析过程 抓包分析DNS报文和具体解析过程 DNS服务器搭建和配置 这个东东也是今年博主参见校招的时候被很多公 ...

  5. linux系统中的DNS服务器介绍

    http://lq2419.blog.51cto.com/1365130/1172269 DNS:Domain Name Service,linux上的DNS服务是基于一种软件BIND实现的.BIND ...

  6. 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置

    网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...

  7. Linux下快速搭建DNS服务器

    一.术语解释:TTL Time To Live 缓冲保留时间ORIGIN 属于哪个域@ 代指域IN 开头需要空格SOA 一行记录类型的开始参数:forwarders {} 指向自己无法解析的域名跳转到 ...

  8. DNS服务器的配置与管理

    安装DNS服务器: 在"服务器管理器"-"角色"-"添加角色"中安装DNS服务器. 选择DNS服务器 点下一步安装,然后安装 固定服务器IP ...

  9. linux杂谈(十八):DNSserver的配置(一)

    1.DNSserver简单介绍 域名系统(英文:Domain Name System,縮寫:DNS)是因特网的一项服务. 它作为将域名和IP地址相互映射的一个分布式数据库,可以使人更方便的訪问互联网. ...

随机推荐

  1. HDU 5289 Assignment (数字序列,ST算法)

    题意: 给一个整数序列,多达10万个,问:有多少个区间满足“区间最大元素与最小元素之差不超过k”.k是给定的. 思路: 如果穷举,有O(n*n)复杂度.可以用ST算法先预处理每个区间最大和最小,O(n ...

  2. Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版

    我们很高兴宣布MySQL Database on Azure于2015年9月1日在中国地区正式商用.回望过去,从2014年12月对少量用户开放的预览试用,到2015年4月30日对中国用户全面开放的公共 ...

  3. Linux网络相关查询脚本

    1. 查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rnnetstat -n | awk '/^tcp/ {++S[$NF]} ...

  4. db file scattered read 等待事件

    db file scattered read 等待事件: 我们经常会见到db file scattered read  等待事件,在生产环境中,这个等待事件可能更为常见.这个事件表明用户进程正在读数据 ...

  5. 数组乘积--满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出

    数组乘积(15分) 输入:一个长度为n的整数数组input 输出:一个长度为n的整数数组result,满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出). ...

  6. 动态执行linq 语句 NLinq

    using Evaluant.NLinq.Memory;using System.Collections.Generic;using Evaluant.NLinq;using System.Colle ...

  7. bzoj 3207 花神的嘲讽计划Ⅰ(哈希法+主席树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3207 [题意] 给定一个文本串,多次询问K长的模式串是否在文本[l,r]区间内出现. ...

  8. Codeforces Round #365 (Div. 2) C - Chris and Road 二分找切点

    // Codeforces Round #365 (Div. 2) // C - Chris and Road 二分找切点 // 题意:给你一个凸边行,凸边行有个初始的速度往左走,人有最大速度,可以停 ...

  9. C++ 我想这样用(三)

    话接前篇,继续谈在C++环境下使用C风格编程时的注意点: 6.关于原型的声明 在C里,调用一个未声明的函数是允许的,但是在C++里,必须先声明才能调用函数.另外,如果函数的参数是空的,那么在c里面是未 ...

  10. Windwos Server 2008: 当网卡有多个IP地址时,如何指定缺省地址?

    这实际是一个当应用向外发起连接时,协议栈对源IP地址的选择问题.如果你的应用没有显式绑定一个本地地址,协议栈会选择一个"最佳"的本地地址来使用. 从 Vista 之后这个选择策略发 ...