Linux学习笔记——DNS与BIND

DNS简介

DNS(Domain Name System),即域名系统。它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统。DNS采用CS架构,服务器端工作在UDP协议端口53和TCP协议端口53上。FQDN(Fully Qualified Domain Name)完全限定域名,它是使用DNS的树状层级结构的完全路径域名来表示一个准确位置对应的主机,提供正向解析(FQDN-->IP)和反向解析(IP-->FQDN)的功能。目前DNS已经成为了互联网通讯的基础服务。

正向解析:根据主机名称(域名)查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

DNS域名称空间:它指定用于组织名称的域的层次结构

资源记录(RR):它将DNS域名映射到特定类型的资源信息,以供在名称空间中注册或解析名称时使用。在Linux系统中,通常“名称解析库(文本文件,位于/var/named/)”中的每一行称作一个资源记录。

DNS服务器:它存储和应答资源记录的名称查询

DNS客户端(解析程序):它查询从服务器来的搜索及将名称解析为查询中指定的资源记录类型

DNS系统的分布式数据结构如下

顶级域:由两三个字母组成的名称,用于指示国家(地区)或使用名称的单位的类型。如:

组织域(.net, .com, .org, .mil, .edu, .gov, .cc, .mobi)国家域(.jp, .tw, .hk, .iq, .ir, .cn, .uk,

.us)

  全球13个根节点

  A INTERNIC.NET(美国,弗吉尼亚州) 198.41.0.4

  B 美国信息科学研究所(美国,加利弗尼亚州) 128.9.0.107

  C PSINet公司(美国,弗吉尼亚州) 192.33.4.12

  D 马里兰大学(美国马里兰州) 128.8.10.90  

  E 美国航空航天管理局(美国加利弗尼亚州) 192.203.230.10

  F 因特网软件联盟(美国加利弗尼亚州) 192.5.5.241

  G 美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4

  H 美国陆军研究所(美国马里兰州) 128.63.2.53  

  I Autonomica公司(瑞典,斯德哥尔摩) 192.36.148.17

  J VeriSign公司(美国,弗吉尼亚州) 192.58.128.30  

  K RIPE NCC(英国,伦敦) 193.0.14.129  

  L IANA(美国,弗吉尼亚州) 198.32.64.12

  M WIDE Project(日本,东京) 202.12.27.33

DNS服务器解析的客户端数据原理图

DNS查询方式:递归查询(大多数客户机向DNS服务器解析域名的方式)、迭代查询(大多数DNS服务器向其他DNS服务器解析域名的方式)

以下是简要描述

  客户端发起对www.baidu.com的解析请求

 (1)客户端首先查看查找本地hosts文件,如果有则返回,否则进行下一步

 (2)客户端查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。

 (3)将请求转发本地DNS服务器。

 (4)查看域名是否本地解析,是则本地解析返回,否则进行下一步。

 (5)本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。

 (6)向全球某一个根域服务器发起DNS请求,根域返回com域的地址列表。

 (7)使用某一个com域的IP地址,发起DNS请求,com域返回shifen域服务器地址列表。

 (8)使用某一个shifen域IP地址,发起DNS请求,shifen域返回www.a.shifen.com主机的IP地址,本地DNS服务收到后,返回给客户机。

DNS的分类

主DNS服务器:就是一台存储着原始资料的DNS服务器。

从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。

缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。

转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

DNS服务器的主从协调工作,主要包含一下参数:

区域数据文件有版本号(序列号): serial

刷新时间(检查周期):refresh

重试时间(重试周期): retry

过期时间(失效时长): expire

否定应答的TTL值

域和区域

域(domain):例如北京市是一个大域

区域(zone):例如朝阳区是一个区域

区域解析数据库

资源记录:resource record(rr)  资源记录类型:resource record type  SOA: Start Of Authority,起始授权记录;一个区域文件有且只能一个SOA记录;SOA还必须是第一条资源记录;

资源记录的定义格式

语法:name[ttl] IN rr_type  value

例如:test.com. 60 IN   SOA

test.com.  dns.test.com. (

2015092701  ;serial number

1H

5M

7D

1D )

NS:Name Server,名称服务器(注意:一个区域数据文件可以有多个NS记录)

如:test.com.      IN  NS  dns1.test.com.

IN  NS dns2.test.com.

MX:Mail eXchanger,邮件交换器(注意:一个区域数据文件可以有多个MX记录)

如:@IN MX  10   mx1.test.com.

IN   MX  20   mx2.test.com.

       

A: Address,FQDN-->IPv4  应用于正向区域文件,也称A记录

如:www.test.com. IN  A 1.1.1.1(ip)

AAAA: Address, FQDN-->IPv6

PTR: Pointer,指针,IP-->FQDN,应用于反向区域文件

如:1.1.1.1.in-addr.arpa. IN  PTR www.test.com.

CNAME: Cononical NAME,正式名称

如:web.test.com. IN CNAME  www.test.com.

BIND最为广泛的DNS服务软件,该软件含三个部分:域名服务器、域名解析器库、软件测试工具。可以

使用yum -y install bind,rpm安装软件。

安装成功生成以下主要的目录和文件:

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf

区域解析库文件:/etc/named.rfc1912.zones

服务根目录:/var/named/

BIND的安装和配置

1、安装

可以选择yum安装

yum install bind

2、配置test.com正向解析

配置named.conf配置文件

配置/etc/named.rfc1912.zones

创建区域解析数据库文件

验证

2、配置test.com反向解析

配置/etc/named.rfc1912.zones

区域名称:网络地址反写.in-addr.arpa.

创建区域解析数据库文件

注意:不需要MX和A,以及AAAA记录;以PTR记录为主

重读配置文件,并验证

4、主从DNS解析

主DNS:编辑它的dns主配置文件,定义工作目录,添加两个区域,一个正向解析,一个反向解析

配置正向解析文件test1.com.zone

配置反向解析文件192.168.zone

检查配置文件,并且启动named服务

配置从服务器192.168.2.10,编辑它的主配置文件named.conf

配置从服务器named.rfc1912.zones 文件,增加正反向解析

  主从DNS解析配置完成

时间: 09-30

Linux学习笔记——DNS与BIND的相关文章

马哥Linux学习笔记之四——DNS

1.BIND:Berkeley Internet Name Domain DNS:Domian Name Service 域名解析 2. Http 3.PAM 插入式认证模块 4.SMTP/POP3/IMAP4:Mail Server 5.域名 www.baidu.com这是一个主机名(FQDN,Full Qualified Domain Name,完全限定域名),com是一个域名,baidu.com也是一个域名,域名是好多主机的集合. 域名解析起后面有一个数据库,解析就是一个查询的过程.域名解

Linux学习笔记033_10

网卡命名: eth0,eth1 子接口(一个网卡上多个IP):eth0:1,eth0:2 ifconfig: 查看网卡信息 ifup ethx:开启网卡 ifdown ethx:关闭网卡 配置网卡: 图形 命令: ONBOOT为yes表示启动计算机时通过网卡 全局网络配置: 第一行为开启ipv4,第二行为开启ipv6,第三行为计算机名,注意计算机名在DNS要解析到,如clc.com 可以加一行:GATWAY=192.168.1.254,不过以network-scripts中的网关优先级高 DNS

Linux学习笔记一 磁盘管理常用命令

Linux学习笔记一 磁盘管理常用命令 Linux系统下,一切均是文件,磁盘是一种特殊的块设备文件. 常用的硬盘接口类型 并口:IDE ,SCSI 串口:SATA,SAS 磁盘设备文件设备文件的命令规则: IDE: 设备名为/dev/hda, /dev/hdb-.  (末尾的a ,b-代表不同的IDE硬盘) SCSI:设备名为/dev/sda, /dev/sdb-.(末尾的a,b-代表不用的SCSI硬盘 机械式硬盘: track: 磁道(盘面上由外向里划分成不同的磁道) cylinder: 柱面

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来