企业网络翻译官——DNS
一、DNS简介
(一)、DNS原理
DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写。主要提供域名解析服务。将IP地址转换为相对应的域名,或者将域名解析为相应的IP地址。
(二)、DNS查询
DNS查询分为迭代查询和递归查询两种查询方式。
迭代查询:当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。B访问C、D、E、F、G,都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,D又返回给B提示信息,告诉B应该访问E,依次类推。
递归查询:域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。
以下是两种查询方式的具体示例图:
(三)、DNS的分类
1.主DNS服务器
主DNS服务器拥有最原始的记录,可以修改。
2.辅助DNS服务器
辅助DNS服务器的资源记录主要从主DNS服务器上进行复制。
3.存根DNS服务器
存根DNS服务器主要作用是管理存根区域,它与主DNS服务器之间存在着区域复制。
4.缓存DNS服务器
缓存DNS服务器没有管理任何区域的功能,也不会产生区域复制,它只能缓存DNS名字并且使用缓存的信息来答复DNS客户端的解析请求。缓存DNS服务器可以通过缓存减少DNS客户端访问外部DNS服务器的网络流量,并且可以降低DNS客户端解析域名的时间。
二、DNS其它问题
(一)、DNS区域
1.正向查找区域
正向查找区域主要是提供域名到IP地址的解析服务。正向查找区域包括SOA (授权起始记录)、NS (负责该区域的dns服务器)、A (主机记录)、CNAME(别名)、 MX (邮件交换记录)
2.反向查找区域
反向查找区域主要提供IP地址到域名的解析服务。反向查找区域包括SOA (授权起始记录)、NS (负责该区域的dns服务器)、PTR(指针)。
(二)、DNS资源记录
1.SOA(授权起始记录)
主要表明该区域的主dns服务器、管理员邮箱、刷新策略等。
2.NS (负责该区域的dns服务器)
表明该区域的dns服务器。主要有两行表明NS记录,格式如下:
@ IN NS ns.abc.com.(注意:只能写名称,而且是完全名称)
ns(可以写相对的名称) IN A 1.1.1.1
3.A (主机记录)
记录名称和地址的对应关系。格式如下:
www.abc.com IN A 2.2.2.2
4.CNAME 别名
可以将多个名称映射到某个地址。格式如下:
pop3 IN CNAME mail.abc.com.(要么写相对的,要么写绝对的)
5.MX (该区域的电子邮件服务器)
MX邮件交换机路,指向一个邮件服务器。格式如下:
@ IN MX 10(优先级) mail.abc.com
6.PTR(指针)
它是电子邮件系统中的邮件交换记录的一种,常被用于反向地址解析。格式如下:
若反向区域为:101.168.192.in-addr.arpa.dns
PTR记录:10 IN PTR www.sina.com.
用来表示,地址为192.168.101.10的主机名称为www.sina.com.
(三)、范域名解析
利用通配符 * (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。
例如您的域名是abc.cn:做一个*.abc.cn的次级域名A记录指向222.222.222.222,那么生效后当访问者无论是输入“123.abc.cn”还是“123.123.abc.cn”甚至可以是“!@#.$%$.3ww.a.abc.cn”这样的 任意字符 均可以指向到222.222.222.222这个IP地址。
(四)、DNS重要目录
1、DNS根目录
DNS的根目录主要位于/var/named/chroot/
2、 DNS配置文件
DNS的配置文件主要位于/var/named/chroot/etc
3、区域文件
DNS的区域文件主要位于/var/named/chroot/var
(五)、DNS常用检测工具
1.检测区域文档
named-checkzone 工具可以方便您检测区域文档,您所要遵循的格式为: named-checkzone 域名 区域文档
例如,您所配置的区域为abc.com,那么 named-checkzone abc.com /var/named/chroot/var/named/abc.com.db
2.检测主配置文档
named-checkconf工具可以方便您去检测主配置文档。您可以参照以下模式:
named-checkconf /var/named/chroot/etc/named.conf
3.使用日志
当您使用以上两种方式无法解决问题时,您可以求助系统日志。日志位于/var/log/messages
(六)、DNS常用解析工具
1.nslookup工具
nslookup工具可以很方便的为您提供解析工作。您可以在命令行模式下直接使用nslookup 名称 ,来解析主机的地址,你也可以直接nslookup后回车,接下来使用set来帮您完成解析工作。如set q=ns之后输入abc.com (只能是区域名称)或者set q=any 之后输入www.abc.com(可以是区域)或者set q=mx (邮件)之后输入 abc.com
2.dig工具
dig工具同样可以帮您完成解析域名工作。您只须遵循以下格式:dig -t(表示查询的记录类型) 类型 区域,如dig -t ns sina.com
3.host工具
host工具同样可以完成域名解析工作。例如:host www.sina.com
三、DNS应用案例1
实验要求:某公司有上海和北京子公司,其中北京和公司总部使用同一台DNS服务器,而上海分公司也有一台DNS服务器。要求,各分公司内部员工可以查询到公司(总公司和分公司)所有的服务器地址。
实验设备:DNS服务器两台(Linux版本2.6.18-164.el5、Windows server 2003)
两台客户端主机(Windows xp sp3)
实验拓扑:
实验步骤:
(一)父域配置
1.安装DNS服务组件
[root@server Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5.i386.rpm (如果已经安装可以跳过此项)
[root@server Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
2.修改主配置文件
[root@server chroot]# ll
drwxr-x--- 2 root named 4096 02-08 02:21 dev
drwxr-x--- 2 root named 4096 02-08 02:22 etc
drwxr-x--- 6 root named 4096 02-08 02:21 var
[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# cp -p named.caching-nameserver.conf named.conf
[root@server etc]# ll
-rw-r--r-- 1 root root 405 02-08 02:08 localtime
-rw-r----- 1 root named 1230 2009-07-30 named.caching-nameserver.conf
-rw-r----- 1 root named 1230 2009-07-30 named.conf
-rw-r----- 1 root named 955 2009-07-30 named.rfc1912.zones
-rw-r----- 1 root named 113 02-08 02:21 rndc.key
[root@server etc]#
[root@server etc]# vim named.conf
[root@server etc]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#
3.修改区域声明
[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# vim named.rfc1912.zones
4.修改文件
[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# cp -p localhost.zone abc.com.db
[root@server named]# vim abc.com.db
5.重启服务
[root@server etc]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#
(二)、北京子域
1.修改区域声明
[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# vim named.rfc1912.zones
2.修改文件
[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# cp -p abc.com.db bj.abc.com.db
[root@server named]# ll
total 44
-rw-r----- 1 root named 278 Feb 8 02:44 abc.com.db
-rw-r----- 1 root named 278 Feb 8 02:44 bj.abc.com.db
drwxrwx--- 2 named named 4096 Feb 8 02:48 data
-rw-r----- 1 root named 198 Jul 30 2009 localdomain.zone
-rw-r----- 1 root named 195 Jul 30 2009 localhost.zone
-rw-r----- 1 root named 427 Jul 30 2009 named.broadcast
-rw-r----- 1 root named 1892 Jul 30 2009 named.ca
-rw-r----- 1 root named 424 Jul 30 2009 named.ip6.local
-rw-r----- 1 root named 426 Jul 30 2009 named.local
-rw-r----- 1 root named 427 Jul 30 2009 named.zero
drwxrwx--- 2 named named 4096 Jul 27 2004 slaves
[root@server named]# vim bj.abc.com.db
3.重启服务
[root@server named]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server named]# rndc reload
server reload successful
(三)、上海子域
1.修改父域文件
[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# vim abc.com.db
2.重启服务
[root@server named]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server named]# rndc reload
server reload successful
3.在上海子域服务器上配置
选择区域类型
填写区域名称
创建文件
修改SOA
修改名称服务器
添加有关记录
(四)、配置转发器
以上操作仅仅只能保证,位于bj.abc.com和abc.com的主机可以进行正常的域名解析,可以解析到www.sh.abc.com,但是,位于sh.abc.com的主机却无法解析到abc.com和bj.abc.com的web服务器。想要解决这个问题,需要在上海域名解析服务器上配置。有两种方法,第一种是将根提示修改成abc.com域DNS服务器地址,第二种方法是配置转发器。笔者采用的是后者。
(五)、测试
使用位于sh.abc.com域的主机进行解析,发现可以正常解析
使用位于bj.abc.com域的主机进行解析,同样可以正常解析。 实验成功!
四、DNS应用案例2
实验目的:某企业使用两种ISP(电信、联通)组件网络。其中在企业电信网中存在一台DNS服务器。出于节省成本和提高服务器利用率的考虑,现要求企业联通内部主机也能使用位于企业联通内部的DNS服务器。
实验拓扑:
实验设备:Linux服务器(版本2.6.18-164.el5)
防火墙(利用Linux(版本2.6.18-164.el5)来做软件防火墙)
两台客户端(Windows xp sp3)
实验步骤:
(一)、在DNS服务器上进行配置
1.安装DNS组件
[root@server Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh bind-utils-9.3.6-4.P1.el5.i386.rpm (如果已经安装可以跳过此项)
[root@server Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
2.修改主配置文档
[root@server etc]# pwd
/var/named/chroot/etc
[root@server etc]# cp -p named.caching-nameserver.conf named.conf
[root@server etc]# vim named.conf
添加acl规则
添加视图
特别注意:
Localhost_resolver视图所匹配的客户端一定要为localhost,不能为any,否则会影响acl规则的应用。
重启服务
[root@server etc]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server etc]# rndc reload
server reload successful
特别说明:由于在name.conf文件中已经定义了域,并且由于域本身就包含了named.rfc1912.zones文件,因此不需要修改域文件。
3.产生数据库文件
产生内网视图所用数据库
[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# cp -p localhost.zone telecom.com.db
[root@server named]# vim telecom.com.db
产生外网视图所用数据库
[root@server named]# pwd
/var/named/chroot/var/named
[root@server named]# cp -p telecom.com.db telecom.com.db1
[root@server named]# vim telecom.com.db1
4.重启服务器
[root@server etc]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@server etc]# rndc reload
server reload successful
[root@server etc]#
(二)、在防火墙上进行配置
1.打开路由转发功能
打开路由转发功能的方法有两种一种是直接将“1”写到文件(echo "1" >/proc/sys/net/ipv4/ip_forward ),另一种是修改配置文件后,再使用sysctl命令。笔者采用的是第二种。
[root@server ~]# vim /etc/sysctl.conf
[root@server ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
[root@server ~]#
2.做DNAT转换
[root@server ~]# iptables -t nat -d 200.200.200.1 -A PREROUTING -p udp --dport 53 -j DNAT --to 192.168.10.2
[root@server ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT udp -- anywhere 200.200.200.1 udp dpt:domain to:192.168.10.2
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@server ~]#
(三)、使用客户端进行测试
1.使用电信内部主机进行测试。
2.使用联通内部主机进行测试。
五、总结
DNS服务器在企业中有着举足轻重的地位,管理好DNS服务器,对企业的生产、安全有着不可估量的作用。
转载于:https://blog.51cto.com/pheonix/797438
相关文章:

【FFmpeg】AVPacket的使用详解
1、AVPacket简介 AVPacket是存储压缩编码数据相关信息的结构体,内部有压缩数据。它通常由解码器导出,或者作为输入传递给解码器,或者传递给muxers。 对于视频,它通常应该包含一个压缩帧。对于音频,它可能包含几个压缩帧。 重要的变量有以下几个: AVBufferRef *buf; 参…

GitHub日收12000星,微软新命令行工具引爆程序员圈!
作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)继上次微软开源计算器刷爆GitHub后,今天凌晨在微软Build大会登场的Windows Terminal,如旋风般目前已登顶GitHub,截至发稿,收获超12000个Star,…

Codeforces 997 C - Sky Full of Stars
C - Sky Full of Stars 思路: 容斥原理 题解:http://codeforces.com/blog/entry/60357 注意当i > 1 且 j > 1,是同一种颜色 代码: #include<iostream> #include<cstdio> #include<queue> #include<deq…

jQuery中文入门指南,翻译加实例,jQuery的起点教程
中文版译者:Keel 此文以实例为基础一步步说明了jQuery的工作方式。现以中文翻译(添加我的补充说明)如下。如有相关意见或建议请 EMAIL 告知。或者在 BLOG中留言。 英文原版:http://docs.jquery.com/Tutorials:Getting_Started_wit…

从Pixel 3a到Android Q,一份谷歌AI能力的“成绩单” | Google I/O全程回顾
作者 | 琥珀出品 | AI科技大本营(ID:rgznai100)当地时间 5 月 7 日上午(北京时间 5 月 8 日凌晨一点),一年一度的 Google I/O 开发者大会如期而至。今年也是 Google 旗帜鲜明推行 “AI First” 战略的第四个年头。让我…
【超越白皮书3】DAG技术解析与实测
本报告由火币区块链研究院出品,作者:袁煜明、胡智威。原文地址 相关报告: 【超越白皮书2】EOS主网上线前夕的实测分析与技术建议 【超越白皮书1】EOSIO程序实测分析与技术建议 火币区块链应用研究院从技术角度对基于有向无环图(DA…

【Live555】liveMedia下载、配置、编译、安装、基本概念
【Live555】live555源码详解系列笔记 一、下载、编译、安装 1、下载 官网地址:http://www.live555.com/ 下载地址:http://www.live555.com/liveMedia/public/ 2、配置、 源码目录下有已经写好的配置文件,如下 config.armlinux、 config.linux 、 config.linux-64bit …

更加安全的存取账户密码
苹果SDK自带的就有密码保护,使用方法很简单,如下: 1、引入Security.frameWork框架。2、引入头文件:SFHKeychainUtils.h.3、存密码:[SFHFKeychainUtils storeUsername:"dd" andPassword:"aa"forSer…

【C++】多态问题:基类调用子类的protected或者private函数
1、问题描述 如果在基类中虚函数是public,子类中重载时标记为protected或者private函数,是否还能访问这个函数? 答案是: 基类指针指向子类时,可以访问,并且访问的是子类重载后的函数; 子类指针…

Java接口对Hadoop集群的操作
Java接口对Hadoop集群的操作 首先要有一个配置好的Hadoop集群 这里是我在SSM框架搭建的项目的测试类中实现的 一、windows下配置环境变量 下载文件并解压到C盘或者其他目录。 链接:http://pan.baidu.com/s/1jHHPElg 密码:aufd 配置环境变量 1.配置HADOOP…

用对方法,开发与部署深度学习原来如此简单……
相信大部分人都会谈癌色变,正如我们所知的一样,晚期癌症患者的生存率低于 20%,而尽管早期患者可以被治愈,且治愈率高达 90% 以上,但因为大部分癌症早期起病隐匿,更重要的原因在于受限于现有医疗水平&#x…

PL/SQL -- INSTEAD OF 触发器
为什么80%的码农都做不了架构师?>>> -- -- PL/SQL --> INSTEAD OF 触发器 -- INSTEAD OF 触发器常用于管理编写不可更新的视图,INSTEAD-OF触发器必须是行级的。 可以用INSTEAD OF触发器来解释INSERT、UPDATE和DELETE语句,并用…

开源!《AI 算法工程师手册》中文教程正式发布!
作者 | 红色石头转载自 AI有道(id:redstonewill)最近红色石头在浏览网页的时候,偶然发现一份非常不错的 AI 资源,就是这本《AI 算法工程师手册》 。本文将给大家推荐这本优秀教材,并作详细的介绍。这本《AI 算法工程师…

shell中的函数shell中的数组告警系统需求分析
2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 格式: 函数名称() {command} 注&am…

【Live555】live555源码详解(一):BasicUsageEnvironment、UsageEnvironment
【Live555】live555源码详解系列笔记 类关系图 1、UsageEnvironment 详解 1.1 BasicUsageEnvironment BasicUsageEnvironment 继承自 BasicUsageEnvironment0,主要增加的功能,使用静态函数 createNew 来创建自己;重载“<<”操作符,用来向标准错误输出(stderr)打…

Web前端开发人员和设计师必读文章推荐【系列七】
这篇文章主要收录了十二月份发布在梦想天空的优秀文章,特别推荐给Web开发人员和设计师阅读。梦天空博客关注前端开发技术,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的网页设计案例,共享精美的…

【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
【Live555】live555源码详解系列笔记 3、BasicHashTable 哈希表 协作图: 3.1 BasicHashTable BasicHashTable 继承自 HashTable 重载 HashTable 接口 Add :添加键值对 Remove :删除键值 Lookup :由“健”查找“值” numEntries :键值对数量重载 HashTable 成员(…

对标英伟达,依图发布AI芯片“求索”
作者 | 一一出品 | AI科技大本营(ID:rgznai100)依图成立 7 年,这次专为芯片召开了第一次产品发布会。5 月 9 日上午,依图科技在上海发布了其首款自研云端视觉推理 AI 芯片“求索”questcore™,以及基于该芯片构建的软硬…

JUC原子类 1
根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, AtomicStampedRerence, AtomicM…

使用ROW_NUMBER 和partition by 解决报表中的查询问题
在报表中遇到一个查询问题: 原始数据如下: Id cust_id call_date call_result 1 1 2012-03-15 09:00:00 fail 2 1 2012-03-15 09:05:00 number error 3 1 2012-03-15 09:10:00 fail 4 1 2012-03-15 09:15:00 success 5 2 2012-03-15 09:01:00 fail …

中国AI开发者真实现状:写代码这条路,会走多久?
2016 年起,人工智能成为中国开发者重点关注的技术领域,以深度学习驱动的计算机视觉、自然语言处理、语音相关技术成为渗透最广的三个 AI 技术领域。然而,在这样的背景下,AI 仍是一个非常前沿的学科,对于中国开发者而言…

linux学习-awk工具
awk是基于列的文本处理工具,它的工作方式是按行读取文本并视为一条记录,每条记录以字段分割成若干字段,然后输出个字段的值,事实上,awk是一种编程语言。awk认为文件都是结构化的,也就是说由单词和各种空白字…

【Live555】live555源码详解(四):Medium媒体基础类
【Live555】live555源码详解系列笔记 7、Media Medai所依赖关系图 依赖Medai关系图 Media和UsageEnvironment关联图

linux中普通文件和块设备文件的区别
1,概述 一直都搞不明白普通文件跟块文件的区别,总觉得一个普通的文件是存放在磁盘块上,那它既属于普通文件又属于块设备文件。刚好下午睡了一个大头觉,比较清醒,集中学习了下普通文件和块设备文件的区别和联系。 本文从…

我的vim配置
我的vim配置 1.通用配置 vimrc 2.自己配置 1.新建.c,.h,.sh,.java文件,自动插入文件头 vim ~/.vim_runtime/my_configs.vim 输入一下内容 """""""""""""""""""&qu…

【Live555】live555源码详解(五):MediaSource、MediaSink、MediaSession、MediaSubsession
【Live555】live555源码详解系列笔记 继承协作关系图 下面红色表示本博客将要介绍的四个类所在的位置: MediaSource、MediaSink、MediaSession、MediaSubsession 8、MediaSource MediaSource 继承自 Medium,下面是MediaSource的协作图 关于 MediaSource 类的继承关系 …

BAT携手清华、复旦、上交齐聚杭州, 和500名开发者干点啥?
2016 年起,人工智能成为中国开发者重点关注的技术领域,以深度学习驱动的计算机视觉、自然语言处理、语音相关技术成为渗透最广的三个 AI 技术领域。然而,在这样的背景下,AI 仍是一个非常前沿的学科,对于中国开发者而言…

MOS2010开发基础和集几种开发模型
基础 基本的部署结构图类似如下 创建新的Web Application的原因: One key reason to create a new web application is to isolate content. Every time a new web application is created, SharePoint creates a new content database. All the data in the sites …

还在用Matplotlib? 又一可视化神器Altair登场 | 技术头条
作者 | Fernando Irarrzaval 翻译 | Monanfei责编 | Jane出品 | Python 大本营(id:pythonnews)【导语】如何将我们的数据以更好的形势呈现出来?擅长不同编程语言的程序员会选择各自技术范畴内成熟、好用的工具包,比如 …

【Live555】live555源码详解(六):FramedSource、RTPSource、RTPSink
【Live555】live555源码详解系列笔记 继承协作关系图 下面红色表示本博客将要介绍的三个类所在的位置: FramedSource、RTPSource、RTPSink 11、FramedSource FramedSource 继承自 MediaSource,下面是实现 FramedSource 的依赖关系图 使用 FramedSource 的关系图