DNS篇之一基础

现在,用户打开一个网站页面只需要输入该网站的网址,而很多用户可能并不知道,在Internet发展的早期,只有通过IP地址才能打开需要浏览的网页。如今大多数情况下,登陆各个网站都不需要用到IP地址,而是通过英文网址,甚至只是部分关键字就可以访问特定的网页。实现这一便捷功能的网络服务就是DNS域名解析服务,他实现了IP地址到域名的对应,使用户能够更加方便、快捷的访问Internet网站。

一、DNS服务概述

DNS(Domain Name System,域名系统),实现IP地址à主机名、主机名àIP地址一一对应的一个分布式数据库。DNS协议运行在UDP和TCP协议之上,使用UDP和TCP的53号端口。

DNS查询过程:

客户端发送域名解析请求-->/etc/host.conf文件查看域名解析的搜索顺序-->查找本地hosts文件 -->查找本地 dns cache --> /etc/resolv.conf 查看DNS server位置--> 使用递归的方法-->DNSserver (cache) 搜索--> DNS server通过/var/named/named.ca 用迭代方法解析域名-->解析结果返回客户端。

DNS服务器类型:主DNS服务器、从DNS服务器、缓存服务器、转发服务器、DNS view等

专业名词介绍:

FQDN :Full Qualified Domain Name (完全合格域名)

二、DNS服务安装配置

DNS服务安装:

#yum –y install bind*

查看系统安装好的DNS服务:

# rpm -qa |grep bind

bind-9.8.2-0.17.rc1.el6_4.6.x86_64 (dns服务包)

bind-dyndb-ldap-2.3-5.el6.x86_64(dns黄页包)

bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64(库文件包)

bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64(dns工具包)

bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64(dns chroot包)

bind-devel-9.8.2-0.17.rc1.el6_4.6.x86_64(dns 开发环境包)

查看DNS服务配置文件安装位置:

# rpm -ql bind

/etc/named.conf(主配置文件)

/var/named/named.ca()

/var/named/named. localhost.arpa(本机反向解析库文件)

/var/named/named. 172.16.249 .zone(172.16.249正向解析库文件)

/var/named/slaves(从DNS服务配置目录)

DNS服务配置:

1、DNS服务结构:

2、主DNS服务器:

配置文件详解:

// named.conf

// Provided by Red Hat bind package toconfigure the ISC BIND named(8) DNS

// server as a caching only nameserver (asa localhost DNS resolver only).

// See /usr/share/doc/bind*/sample/ forexample named configuration files.

#vim /etc/named.conf

options {

//listen-on port 53 { 127.0.0.1; };

directory       "/var/named";

//指定从/var/named目录下读取DNS数据文件

//并创建,指定后所有的DNS数据文件都存放在此目录下

recursion yes;

//是否允许递归查询

logging {

channel default_debug {

file"data/named.run";

severity dynamic;

};

};

//关于日志的定义

zone "." IN {

type hint;

file "named.ca";

};

//指定named从/var/named/named.ca文件中获取internet的根服务器地址

include"/etc/named.rfc1912.zones";

//主配置文件的辅助配置文件

#vim  /etc/named.rfc1912.zones

zone "1.0.0.127.in-addr.arpa" IN{

typemaster;  //主DNS服务器

file"named.loopback";  //解析库文件为named.loopback

};

//指定127.0.0.1区域的反向解析

zone "localhost" IN {

type master;  //主DNS服务器

file "named.localhost"; //解析库文件为named.localhost

};

//指定本地区域的正向解析

解析库资源记录类型详解:SOA、NS、MX、A、AAAA、PTR

格式:name       [ttl]          IN    RRType    value

SOA:Start Of Authority启始授权,任何解析库文件的第一个记录的类型必须是SOA

name:区域名称,通常可以简写为@

value:主DNS服务器的FQDN,也可以当前区域的区域名称;

例如:

@              IN            SOA        ns.whb.com.   admin.whb.com.  (

serialnumber   ;解析库的版本号,例如2014080601

refreshtime    ;更新时间间隔

retrytime      ;重试时间间隔

expiretime     ;过期时间

negativeanswer ttl ;否定答案的统一缓存时长

)

注意:

时间可以使用s(秒)、h(小时)、d(天)、w(周)

NS:name server

name:区域名称

value:DNS服务器的FQDN

例如:@        IN    NS  ns.whb.com.

注意:

如果有多台NS服务器,每一个都必须有对应的NS记录;

对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

MX:Mail eXchanger

name:区域名称

value:邮件服务器的FQDN

例如:

@            IN    MX  10   mail.whb.com.

@                     IN  MX 20   mail2.whb.com.

注意:

如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性

对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

A: Address

name:FQDN

value:IP

例如:

www.whb.com.     IN  A           1.1.1.1

www.whb.com.     IN   A           1.1.1.2

//实现负载均衡

pop3.whb.com.      IN  A           1.1.1.3

AAAA: ipv6 IP

CNAME: Canonical Name别名

name:FQDN

value:FQDN

例如:

www.whb.com.     IN            A    1.1.1.5

web.whb.com.             IN          CNAME   www.whb.com.

PTR: pointer

name:逆向的主机IP地址加后缀in-addr.arpa,

例如:172.16.249./16, 网络地址为172.16, 主机地址为100.7,其name为7.100.in-addr.arpa.

value:FQDN

例如:

7.100.in-addr.arpa.        IN          PTR         www.whb.com.

注意:

区域名称为逆向网络地址加.in-addr.arpa做后缀

3、从服务器:从服务器的三个作用:容错、负载、加速(提供容错能力,减轻主DNS服务器的负担,加快查询速度)

1、  到域名注册商那里添加一个NS记录

zone "whb.com" IN {

typeslaves;

file“slaves/named.localhost.zone”

masters {172.16.249.1}

}

父域的区域解析库中

whb.com.         IN    NS           ns.whb.com.

whb.com.       IN  NS     ns2.whb.com.

ns.whb.com.  IN   A   172.16.249.1

2、编辑本地解析库,配置每个DNS服务器

3、安装从服务器,只配置区域定义即可

4、子域授权:只需要在父域的区域解析库中添加“胶水记录”

格式:

子域名称       IN    NS  子域的名称服务器

ops          IN            NS           ns.ops

ops          IN            NS           ns2.ops

ns.ops    IN             A       172.16.249.7

ns2.ops  IN             A       172.16.249.8

dev          IN             NS           ns.dev

ns.dev  IN               A              172.16.100.88

5、配置转发器:转发所有的非本机负责的区域的请求至某指定的DNS服务器

访问控制:

allow-transfer{};

allow-query{};

allow-update{};

递归白名单:

allow-recursion{};

recursionyes;

格式:

options{

...

forwardonly|first;

forwarders{ IP; };

}

配置转发区域:

zone"whb.com" IN {

typeforward;

fowardonly|first;

forwarders{ IP; };

}

6、DNS view:  又称为视图或脑裂(split-brain),根据客户端来源的不同,将同一个名称解析至不同的值;

格式:

acl telecom {

….

};

aclunicom {

…..

};

使用view注意的事项:

1、通常只为内网客户端提供递归功能,提供根区域等;

2、通过只为外网客户端提供本机所负责的区域的解析;

关于DNS中的 acl:

1、内置的ACL:

none,any, local(本机), localnet(本机所在网络)

2、自定义acl:

格式:

acl ACL_NAME {

ip;

ip;

network;

};

例:

acl localnetwork {

172.16.0.0/16;

192.168.0.0/24;

};

allow-recursion{ localnetwork; };

三、DNS工具:

1、检查语法错误工具

#rndc命令:

reload:重读配置文件

reconfig:检查配置文件语法错误

flush:刷新

status:检查DNS状态

#named-checkconf  检查主配置文件语法错误

# named-checkzone检查区域配置文件语法错误

2、客户端测试工具:host、nslookup、dig

host工具

格式:host -tRRType NAME [SERVER]

例如:host -t NSwhb.com 172.16.249.

Nslookup工具:

格式:     nslookup>

serverIP:

settype={A|SOA|NS|MX}

name

dig工具:

格式:dig -tTYPE name @server

选项:

+trace路由追踪递归

+notrace不路由追踪递归

+recurse 递归查询

+norecurse不递归查询

-x PTR测试反解

例: dig -tAXFR whb.com  @172.16.249.

总结:

当今互联网速度才是王道,网站主页打开时间超过4秒,六成用户将会放弃浏览网站,转向竞争对手网站。所有,DNS服务速度对各门户网站的重要性不言而喻。

DNS篇之一基础

时间: 2024-10-17 18:06:22

DNS篇之一基础的相关文章

Linux基础篇--linux基础和帮助用法

Linux基础篇--linux基础和帮助用法 本章概要 用户登录 终端 Shell介绍 执行命令 简单命令 Tab键补全 命令行历史 bash快捷键 使用gnome-terminal whatis command--help manandinfo 本地帮助文档/usr/share/doc/ 官网在线文档 其它网站和搜索 用户登录 root用户   一个特殊的管理帐户   也被称为超级用户   root已接近完整的系统控制   对系统损害几乎有无限的能力   除非必要,不要登录为root 普通用户

第3篇-JAVA基础

第3篇-JAVA基础 每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程 初学心得: 遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-26| JAVA基础 Ⅱ] 上篇回顾 上篇文章中我们学习了JAVA底层的运行机制与深入剖析以及解释其中JAVA基础代码的含义 本篇文章将JAVA基础Ⅱ全面剖析解释,因为JAVA基础非常重要,务必要牢记知识点!!! 1.JAVA基础语法格式 JAVA采用unicode编码 1

第2篇-JAVA基础

第2篇-JAVA基础 每篇一句 :无论处在任何领域中,即使是在小的事情,都要让每一天有所价值 初学心得: 在学习的过程中,错误是很宝贵的,它一笔"财富",更是一种"价值" (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-24 | JAVA基础] JAVA基础 回顾 在上一篇文章中,最后提到两个问题, 相信读者们已经提前超额完成了"任务" 下面跟着笔者的思路,深入掌握JAVA底层的运行机制 JAVA运行机制 (重中之重) JAV

第4篇-JAVA基础

第4篇-JAVA基础 每篇一句 :世界上本没有完美,但是我们从未放弃追求完美 初学心得: 乐于挥霍的时间,都不能算作浪费 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-01| JAVA基础 Ⅳ] 程序运行流程 (1) 顺序结构 (2) 分支结构 (3) 循环结构 (4) break 与 continue关键字 (5) 数组 (6) 方法 1.顺序结构 如果代码里没有流程控制,程序是至上而下一行一行执行的 一条语句执行完之后继续执行下一条语句,直到程序的最后 2.分支结构 顺

JAVA学习篇--JSTL基础

JSTL是什么 JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库. 为什么要用JSTL 我们JSP用于开发信息展现页非常方便;也可以嵌入java代码(scriptlet.表达式和声明)代码用来实现相关逻辑控制.看下面程序.但这样做会带来如下问题: jsp维护难度增加;出错提示不明确,不容易调试; 分工不明确;(即jsp开发者是美工,也是程序员); 最终增加程序的开发成本; <% if (session.getAttribute(

iOS开发UI篇—Button基础

iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状态 normal(普通状态) 默认情况(Default) 对应的枚举常量:UIControlStateNormal highlighted(高亮状态) 按钮被按下去的时候(手指还未松开) 对应的枚举常量:UIControlStateHighlighted disabled(失效状态,不可用状态) 如

[转]Membership三步曲之入门篇 - Membership基础示例

本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例 Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Provider model Membership三步曲之高级篇 -  从Membership 到 .NET 4.5 之 A

第六篇 模块基础

目录 第六篇 模块基础 一 模块的四种形式 二 import和from...import 三 循环导入问题 四 模块的搜索路径 五 python文件的两种用途 六 包 第六篇 模块基础 一 模块的四种形式 啥是模块 模块是一系列功能的集合体,而函数是某一功能的集合体,因此模块可以看成是一堆函数的集合体.一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块.如果这个py文件的文件名为module.py,模块名则是module. 模块的四种形式 2.1 自定义模块:如果你自己写一个P

第一篇 网站基础知识 第3章 DNS的设置

第3章 DNS的设置 3.1 DNS解析 3.2 Windows 7设置DNS服务器 3.3Windows设置本机域名和IP的对应关系 在自己的电脑里也可以设置域名和IP的对应关系,具体设置是在C:\windows\system32\drivers\etc\hosts文件中,设置的格式是“IP+空格+域名”,一行一条记录(空格可以有多个),比如下面的设置: 127.0.0.1 localhost? 127.0.0.1 www.test.com? 123.123.123.123www.123.co