首 页   关 于   联系我们

实验室研究与探索  2017 , 36 (5): 97-100

专题研讨——虚拟仿真实验(45)

虚拟网络环境下域名系统原理综合实验设计

曹雪峰, 于万国, 陈日升

河北民族师范学院 数学与计算机系, 河北 承德 067000

Experimental Design for Principle of DNS Based on Virtual Network Environment

CAO Xuefeng, YU Wanguo, CHEN Risheng

Department of Mathematics and Computer, Hebei Normal University for Nationalities,Chengde 067000, Hebei, China

中图分类号:  TP391.9

文献标识码:  A

文章编号:  1006-7167(2017)05-0097-04

收稿日期: 2016-08-28

网络出版日期:  2017-05-20

版权声明:  2017 《实验室研究与探索》编辑部 《实验室研究与探索》编辑部 所有

基金资助:  国家民委高等教育教学改革研究项目(15114)河北省高等学校科学技术研究项目(ZC2016116)河北民族师范学院科研项目(201406)

作者简介:

作者简介:曹雪峰(1967-),男,河北隆化人,硕士,副教授,研究方向:计算机网络技术。Tel.:18230143496; E-mail:cxf_cd@163.com

展开

摘要

介绍了域名系统(DNS)工作原理,采用GNS3和VirtualBox构建私有根域名系统实验环境,设计了DNS工作原理的实验方案,配置了WWW服务器、接收和发送邮件服务器。利用Wireshark协议分析软件捕获报文,通过对报文进行分析,阐述了DNS中递归查询和迭代查询算法的工作过程,说明了起始授权记录、名称服务器、主机记录和邮件交换等资源记录的作用,并对DNS欺骗的原理进行说明。验证了DNS的工作过程,使学生从理论和实践两方面更好地理解DNS的工作原理,增强了实践动手能力和综合应用能力。

关键词: 域名系统 ; 递归查询 ; 迭代查询 ; 资源记录 ; 域名系统欺骗

Abstract

This paper introduces the principle of the DNS, and uses GNS3 and VirtualBox to build an experimental environment for the domain name system of private service. It also designs the experimental scheme of the DNS, and configures the WWW server and E-mail server. Using Wireshark is used to capture and analyze packets, the principle of the recursive query and iterative query is then introduced, the effects of the SOA record, NS record, A record, MX record and the principle of spoofing DNS are all explained, and the DNS work process is verified. The experiment lets the students better understand the working principle of DNS from both theory and practice. It enhances the practical ability and the comprehensive application ability of students.

Keywords: domain name system (DNS) ; recursive query ; iterative query ; resource record ; spoofing DNS

0

PDF (11572KB) 元数据 多维度评价 相关文章 收藏文章

本文引用格式 导出 EndNote Ris Bibtex

曹雪峰, 于万国, 陈日升. 虚拟网络环境下域名系统原理综合实验设计[J]. , 2017, 36(5): 97-100 https://doi.org/

CAO Xuefeng, YU Wanguo, CHEN Risheng. Experimental Design for Principle of DNS Based on Virtual Network Environment[J]. 实验室研究与探索, 2017, 36(5): 97-100 https://doi.org/

0 引 言

域名系统(Domain Name System, DNS)提供网络访问中域名和IP地址的相互转换,是因特网核心服务之一,对于计算机专业的学生,DNS原理、服务器的构建与维护是必须掌握的[1]。本文利用GNS3并配合GNS3中集成的VirtualBox虚拟机[2-4],在一台计算机上搭建了私有根域名系统仿真实验平台,利用Wireshark分析虚拟网络中捕获的报文[5-7],来学习DNS工作原理,进而掌握规划配置DNS服务器的方法。

1 DNS工作原理

1.1 DNS报文格式

DNS有两种报文:查询报文和响应报文,它们具有相同的格式,如图1所示[8-10]

图1   DNS报文格式

   

各字段含义如下:

(1) 标识符。由发出DNS请求的客户端生成,用于标识该查询,此标识符会被复制到对查询的响应报文中,以便用它来匹配发送的请求和接收到的响应。

(2) 标志。标志字段中含有若干标志,其中:① QR(查询/响应),定义报文类型。值为0是查询报文,为l是响应报文。② OpCode(操作代码),定义了查询或响应的类型,值为0是标准查询,值为1是反向查询,值为2是服务器状态请求。③ AA(授权回答),表示授权回答,当它置为1时表示名字服务器是授权服务器。只用在响应报文中。④ TC(截断),表示可截断的,当它置为1时表示响应已超过512 B,并已截断为512 B。⑤ RD(要求递归),表示期望递归,值为1时表示客户希望得到递归回答。⑥ RA(递归可用),表示可以使用递归,值为1时,表示可得到递归响应。它只能在响应报文中置位。⑦ rCode(返回码),表示在响应中的差错状态。

(3) 查询问题。包含了一个或多个问题记录。它在查询报文和响应报文中都要出现。

(4) 回答信息。包含了一个或多个资源记录。它只在响应报文中出现,内容是从服务器到客户的回答记录数。在查询报文中它的值为0。

(5) 授权信息。包含了一个或多个资源记录。它只在响应报文中出现。这部分为该查询给出一个或多个授权服务器的相关信息(域名)。在查询报文中它的值为0。

(6) 附加信息。包含了一个或多个资源记录。它只在响应报文中出现。

1.2 DNS服务器

DNS采用分布式设计方案,整个DNS以一个大的分布式数据库的方式工作。DNS使用大量按照域名的层次来安排的DNS服务器,每个DNS服务器都只对域名体系中的一部分进行管辖。根据域名服务器作用,可以把域名服务器分为以下4种不同类型:

(1) 本地域名服务器。当一个主机发出DNS查询报文时,这个查询报文就首先被送往该主机的本地域名服务器,可以转发请求到层次结构中。

(2) 根域名服务器。根域名服务器知道所有顶级域名服务器的域名和IP地址,是最重要的域名服务器。当一个本地域名服务器不能立即回答某个主机的查询时,该本地域名服务器就以DNS客户的身份向就近的某一个根域名服务器查询。

(3) 顶级域服务器。负责管理该顶级域名服务器下注册的所有二级域名。收到DNS查询请求时,给出相应的回答。

(4) 授权域名服务器。在因特网上每个组织机构的公共可访问主机域名和IP地址的映射关系保存在相应的授权域名服务器中,因此授权域名服务器总是能够将其管辖的主机域名转换为对应的IP地址。

1.3 资源记录

区域是域名空间中连续的一部分,域名服务器管辖区域中主机的名字到IP地址的映射关系,并保存在 “区域文件”中,区域文件内的每一条信息被称为是 “资源记录”。每条记录包括3个元素:域名、记录类型、值。常见的资源记录类型见表1

表1   常见资源记录类型

   

记录类型记录名称说 明
SOA起始授权记录定义该区域哪个名称服务器是授权域名服务器,标识DNS服务器管理的起始位置
NS名称服务器记录该资源记录指明包含该域的域名服务器。创建新区域时,该资源记录被自动创建
A主机记录建立主机域名与IP地址之间的映射关系
CNAME别名记录仅仅是主机的另一个名字
MX邮件交换记录用于邮件服务器发送邮件时,根据收信人的地址后缀解析接收方邮件服务器的IP地址
PTR指针记录该资源记录将IP地址映射到DNS反向区域中的主机名,用来实现反向查询

新窗口打开

1.4 DNS查询算法

(1) 递归查询(Recursive Query)。客户发送查询请求后,DNS服务器必须告诉客户正确的数据(IP地址)或通知客户找不到其所需数据。如果DNS服务器内没有所需要的数据,则DNS服务器会代替客户向其他的DNS服务器查询。客户只需向DNS服务器提出一次查询请求,就可得到所需的结点的IP地址。

(2) 迭代查询(Iterative Query)。客户发送查询请求后,若该DNS服务器中不包含所需数据,它会告诉客户另外一台DNS服务器IP地址,使客户自动转向另外一台DNS服务器查询,依此类推,直到查到所需数据,否则由最后一台DNS服务器通知客户查询失败。

1.5 DNS欺骗原理

在进行域名解析时,客户收到DNS 服务器给它发过来的DNS 响应后,将收到报文中的标识符和端口号与自己发送请求报文的进行比较,如果一样则为正确的回答;不一样以及再次接收到同一域名的应答包都会抛弃。由于这一确认机制过于简单,因此使之成为被攻击者利用的漏洞。DNS欺骗技术常见的有内应攻击和序列号攻击两种[11-12]。序列号攻击是指伪装的DNS Server在真实的DNS Server之前向客户端发送应答数据报文,该报文中含有的标识符与客户端向真实的DNS Server发出请求数据包中含有的标识符相同,因此客户端会接收该虚假报文,而丢弃晚到的真实报文,这样序列号攻击成功。客户机得到的虚假报文中提供的域名的IP是攻击者设定的IP,这个IP将把客户带到攻击者指定的站点。

2 搭建虚拟实验环境

2.1 实验拓扑结构

图2所示搭建网络 [13-14]

图2   网络拓扑结构图

   

其中3台路由器是IOU Router,DNS1~DNS4是安装了Windows 2003操作系统的VirtualBox虚拟机,PC1和PC2是安装了Windows XP操作系统的VirtualBox虚拟机。设备端口IP地址分配见表2。PC1和PC2的首选DNS服务器地址分别配置为172.16.10.10和172.16.30.10。

表2   虚拟机及路由器端口IP地址分配表

   

设备端口IP地址默认网关
PC1E1172.16.11.10/24172.16.11.1
PC2E1172.16.31.10/24172.16.31.1
DNS1E1172.16.10.10/24172.16.10.1
DNS2E1172.16.20.10/24172.16.20.1
DNS3E1172.16.21.10/24172.16.21.1
DNS4E1172.16.30.10/24172.16.30.1
R1E0/0172.16.10.1/24
R1E0/1172.16.11.1/24
R1S2/0172.16.12.1/24
R2E0/0172.16.20.1/24
R2E0/1172.16.21.1/24
R2S2/0172.16.32.2/24
R2S2/1172.16.12.2/24
R3E0/0172.16.30.1/24
R3E0/1172.16.31.1/24
R3S2/1172.16.32.1/24

新窗口打开

2.2 设备配置

R2路由器主要配置如下[15]:

R2#configure terminal

R2(config)#interface ethernet 0/0

R2(config-if)# ip address 172.16.20.1 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#interface ethernet 0/1

R2(config-if)#ip address 172.16.21.1 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#interface Serial2/0

R2(config-if)#ip address 172.16.32.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#interface Serial2/1

R2(config-if)#ip address 172.16.12.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#router rip

R2(config-router)#network 172.16.0.0

其他路由器参考R2进行配置。

在DNS1~DNS4上按照表3所示配置DNS服务器,并添加资源记录,搭建私有根域名系统[15-16]

表3   DNS服务器创建(委派)区域及资源记录情况

   

服务器区域FQDN/主服务器类型IP
DNS1edunet001.edu.SOA
DNS1edunet001.edu.NS172.16.10.10
DNS1test.edumail.test.edu.A172.16.11.10
DNS1test.edumail.test.edu.MX
DNS2.(根)net002.root.net.SOA
DNS2.(根)net002.root.net.NS172.16.20.10
DNS2委派comnet003.com.NS172.16.21.10
DNS2委派edunet001.edu.NS172.16.10.10
DNS3comnet003.com.SOA
DNS3comnet003.com.NS172.16.21.10
DNS3委派test.comnet004.test.com.NS172.16.30.10
DNS4test.comnet004.test.com.SOA
DNS4test.comnet004.test.com.NS172.16.30.10
DNS4test.commail.test.com.MX
DNS4test.commail.test.com.A172.16.31.10
DNS4test.comwww.test.com.A172.16.30.10

新窗口打开

DNS2为根服务器,不需要配置根提示,配置DNS1、DNS3和DNS4的根提示内容:FQDN为net002.root.net.,IP地址为172.16.20.10。在PC1和PC2上利用第三方邮件服务器软件MDaemon配置邮件服务器,并创建测试用的邮箱账号net01@test.edu和neta@test.com。

3 实验内容

3.1 DNS查询过程分析

在R1-DNS1链路段上执行捕获报文命令,启用Wireshark软件开始抓包;同时在PC1上运行IE浏览器,访问www.test.com网站,捕获的DNS报文如图3所示。12号报文是主机PC1发送给DNS1的DNS请求报文,被查询域名为www.test.com,类型为A,希望查询与域名对应主机的IP地址,标识符字段值为0X2a9a,在DNS1和PC1之间采用递归算法进行查询。DNS1收到此请求报文后,发现不属于自己管理的名字空间,因此直接向根域名服务器DNS2发送15号DNS请求报文,查询域名www.test.com对应的IP地址,DNS2收到此请求报文后,查找管理.com的顶级域名服务器的IP地址,然后发送16号DNS响应报文,授权服务器名称字段中com域的授权服务器名称为net003.com,类型为NS;附加字段域名为net003.com,类型为A,与域名对应主机的IP地址为172.16.21.10,告诉DNS1管理.com的顶级域名服务器的IP地址是172.16.21.10。DNS1收到此响应报文后,向顶级域名服务器DNS3发送17号DNS请求报文,查询域名www.test.com对应的IP地址,DNS3收到此请求报文后,查找管理test.com的二级域名服务器的IP地址,然后发送18号DNS响应报文给DNS1,告诉它管理test.com的二级域名服务器的IP地址是172.16.30.10,DNS1收到此响应报文后,向二级域名服务器DNS4发送19号DNS请求报文,查询域名www.test.com对应的IP地址,DNS4收到此请求报文后,查找域名www.test.com对应的IP地址,然后发送20号DNS响应报文给DNS1,告诉它域名www.test.com对应的IP地址是172.16.30.10,至此迭代查询过程结束。DNS1收到此响应报文后,向PC1发送21号DNS响应报文,标识符字段值为0X2a9a,告诉它域名www.test.com对应的IP地址是172.16.30.10。

图3   访问WWW网站时捕获的DNS报文

   

3.2 MX资源记录的作用

在PC1上运行IE浏览器,访问mail.test.com网站,登录邮箱neta原位复合test.com后,向邮箱 net01原位复合test.edu发送测试邮件。在各链路段执行捕获报文命令,启用Wireshark软件开始抓包,在R3-DNS4链路上捕获的DNS报文如图4所示。

图4   发送邮件时捕获的DNS报文

   

39号报文是发送方邮件服务器要把写好的邮件发送到接收方邮件服务器,想要知道接收方邮件服务器的IP地址,由发送方邮件服务器PC2发送给DNS4的DNS请求报文,被查询域名为收信人邮箱地址后缀test.edu,类型为MX,希望查询与此后缀对应邮件服务器的IP地址。DNS4收到此请求报文后,发现不属于自己管理的名字空间,因此向根域名服务器DNS2发送42号DNS请求报文,被查询邮箱后缀为test.edu,类型为MX,希望查询与此后缀对应邮件服务器的IP地址。DNS2收到此请求报文后,查找管理.edu的顶级域名服务器的IP地址,然后发送43号DNS响应报文,授权服务器名称字段中edu域的授权服务器名称为net001.edu,类型为NS;附加字段域名为net001.edu,类型为A,与域名对应主机的IP地址为172.16.10.10,告诉DNS4管理.edu的顶级域名服务器的IP地址是172.16.10.10。DNS4收到此响应报文后,向顶级域名服务器DNS1发送44号DNS请求报文,被查询邮箱地址后缀为test.edu,类型为MX,希望查询与此后缀对应主机的IP地址。DNS1收到此请求报文后,查找.edu域下的二级域名test.edu,然后发送45号DNS响应报文给DNS4,邮箱地址后缀为test.edu,类型为MX,与此后缀对应主机的域名为mail.test.edu;附加字段域名为mail.test.edu,类型为A,与域名对应主机的IP地址为172.16.11.10,告诉DNS4邮箱地址后缀为test.edu的接收方邮件服务器域名为mail.test.edu,IP地址为172.16.11.10。DNS4发送46号DNS响应报文给PC2(见图4)。

3.3 DNS欺骗过程分析

在PC1上利用XCAP软件构造发送到DNS1的DNS请求报文,其标识符为0xa37d,源端口号为1025,连续发送3个请求报文,同时在DNS1上利用XCAP软件构造发送到PC1的DNS响应报文,其标识符为0xa37d,目的端口号为1025,连续发送5个响应报文,在R1-DNS1链路上捕获的DNS报文如图5所示。

图5   捕获的DNS欺骗报文

   

通过对捕获报文分析可以看到,13、15和20号报文是PC1发送给DNS1的3个DNS请求报文,16、20、21、24和26号报文是DNS1发送给PC1的5个DNS响应报文,这5个报文是对PC1进行DNS欺骗的。在PC1收到28号真实的DNS响应报文之前已经收到了DNS欺骗报文,通过比较标识符和端口号都相同,认为DNS欺骗报文就是真实的响应报文,从而丢弃28号真实的DNS响应报文,DNS欺骗成功。

4 结 语

通过实验,验证了DNS递归和迭代查询算法的工作原理,对起始授权记录、名称服务器、主机记录和邮件交换等资源记录的作用进行了详细分析,并对DNS欺骗的原理进行说明。从理论和实践两方面加深了对DNS工作过程的理解。

The authors have declared that no competing interests exist.


参考文献

[1] 谭毓银.

基于PacketTracer软件的DNS服务器实验设计

[J]. 实验技术与管理,2013,30(9):101-103+106.

DOI:10.3969/j.issn.1002-4956.2013.09.028      URL      [本文引用: 1]      摘要

DNS服务器实验是计算机网络课程实验教学的一个重要组成部分,是实现WWW、FT P、E-mail等服务的基础。该实验设计以DNS服务器为核心,了解递归查询和迭代查询工作原理,设计实验拓扑,给出实验参数,使用Packet T racer软件进行仿真,并对实验结果进行了验证和分析。在实验教学中学生反馈良好。
[2] 顾春峰,李伟斌,兰秀风.

基于VMware、GNS3实现虚拟网络实验室

[J]. 实验室研究与探索,2012,31(1): 73-75,100.

DOI:10.3969/j.issn.1006-7167.2012.01.020      URL      [本文引用: 1]      摘要

VMware、GNS3可以分别虚拟计算机与网络设备,它们能各自单独构建子网,完成网络实验。在分析了它们相互连接的原理后,提出一种在单机上实现虚拟网络实验室的方案,该方案通过和宿主机中的虚拟网卡桥接,间接实现GNS3和VMware之间的通信,并构建了1个典型的网络拓扑结构。在该虚拟网络环境下测试了Zebra路由软件包,实现了Linux主机和GNS3虚拟路由器之间的动态路由,验证了利用VMware、GNS3构建虚拟网络实验室的可行性。
[3] 李林林,孙良旭,吴建胜,.

单机环境下路由交换技术综合实验设计

[J]. 实验室研究与探索,2015,34(8): 115-118.

[4] "RedNectar" Chris Welsh. GNS3 Network Simulation Guide[M]. Birmingham:Packt Publishing Ltd.,2013.

[本文引用: 1]     

[5] Sanders C.Wireshark数据包分析实战[M]. 2版.诸葛建伟,陈琳,许伟林译. 北京:人民邮电出版社,2013 .

[本文引用: 1]     

[6] Orebaugh A,Ramirez G,Burke J,et al.Wireshark &Ethereal Network Protocol Analyzer Toolkit[M]. Rockland: Syngress Publishing, Inc.,2007.

[7] 徐慧,王春枝,陈宏伟,.

以协议分析为导向的本科生网络管理能力培养模式

[J]. 计算机教育,2013(14):13-16.

DOI:10.3969/j.issn.1672-5913.2013.14.004      URL      [本文引用: 1]      摘要

网络管理是网络设计中一个必不可少的功能。针对湖北工业大学网络管理类课程在实际教学过程中面临的问题,提出以协议分析为导向的本科生网络管理能力培养模式,并结合湖北工业大学网络工程专业的教学经验展开探讨,阐述以协议分析为导向的类比教学法和发散教学法在湖北工业大学网络管理类课程教学中的应用实践。
[8] 谢希仁. 计算机网络[M]. (5版) 北京:电子工业出版社,2008.

[本文引用: 1]     

[9] 曹雪峰. 计算机网络原理—基于实验的协议分析方法[M]. 北京:清华大学出版社,2014.

[10] Mockapetris P.

Domain Names - Implementation and Specification

[S]. IETF RFC 1035,1987.

[本文引用: 1]     

[11] 孔政,姜秀柱.

DNS欺骗原理及其防御方案

[J]. 计算机工程,2010,36(3):125-127.

DOI:      URL      Magsci      [本文引用: 1]      摘要

针对DNS欺骗表现出的危害性大、隐蔽性强的特点,通过对DNS ID欺骗攻击及DNS缓存中毒攻击的原理进行剖析,应用概率学理论证明了“生日攻击”的危害,分别给出相应的防御方案。对于不同类型的用户可以根据自身的条件和对信息安全要求级别的高低,采用适合自己的应对方案。
[12] 张红轻,王道顺.

基于DNS缓存中毒的Webmail攻击及防护

[J]. 计算机工程,2009,35(4):125-127.

DOI:10.3969/j.issn.1000-3428.2009.04.044      URL      Magsci      [本文引用: 1]      摘要

针对Webmail的特性,提出一种基于域名系统(DNS)缓存中毒(Cache Poisoning)的Web邮箱(Webmail)攻击技术,并对整个攻击流程进行描述,实现了对当前安全性较高的Live Mail的成功攻击,验证DNS Cache Poisoning潜在的危害性,提出相应的安全防护手段。
[13] Doyle J, Carroll JD.TCP /IP路由技术(第二卷)[M]. 夏俊杰译. 北京:人民邮电出版社,2009.

[本文引用: 1]     

[14] Solie K,Lynch L.CCIE实验指南(第2卷)[M]. 姚军玲,顾彬,梅洪涛等译. 北京:人民邮电出版社,2006.

[本文引用: 1]     

[15] 杨林,杨勇.

高校校园网私有DNS服务器架设研究

[J]. 通信技术,2011,44(1): 118-120.

DOI:10.3969/j.issn.1002-0802.2011.01.044      URL      [本文引用: 2]      摘要

在高校校园网建设中,针对校内 各种网络应用服务系统的不断增多,校园网络用户对内网、外网访问需要有不同的权限控制。非常有必要通过架设私有域名解析服务器(DNS)的方式来实现高校 校园网内、外域名与IP地址的转换,方便师生通过简单易记的层次型域名结构正确地解析到校园网内服务器的IP地址,顺利访问校园网内、外的各种网络应用服 务,实现对不同网络应用服务在速度上、流量控制上有不同的访问控制策略,达到高效、安全的访问目的。
[16] 秦文生,鲜路.

自建私有根域名服务器完成多域电子邮件互发

[J]. 福建电脑,2011,27(7):162,161.

DOI:10.3969/j.issn.1673-2782.2011.07.085      URL      [本文引用: 1]      摘要

在实验室做电子邮件服务器实验时,由于域名是未经正式授权的,各个域之间无法像在互联网上一样互发电子邮件,通过在实验室内部建立根域名服务器,并对各域进行解析授权,可以在实验室内部实验像互联网上一样的多域互发电子邮件。
版权所有:《实验室研究与探索》编辑部
主管单位:中华人民共和国教育部    主办单位:上海交通大学    出版单位:上海交通大学学报编辑部
地址:上海市华山路1954号包图1516号    邮编:200030    电话:(86-21)62932952 62932875

/