DNS

DNS&DDNS

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53

主机名到IP地址的映射有两种方式:

1)  静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用,手工建立域名和IP地址之间的对应关系。当用户使用域名进行某些应用(如telnet应用)时,系统查找静态域名解析表,从中获取指定域名对应的IP地址。

清除PC静态DNS表:ipconfig /flushdns

2)  动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

1.递归查询: 
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机; 
2.迭代查询(反复查询): 
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;

 

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。由于动态域名解析需要域名服务器(DNS server)的配合,会花费一定的时间,因此可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

动态域名解析通过向域名服务器(两种常用的域名服务器www.pubyun.comwww.dns0755.net)查询域名和IP地址之间的对应关系来实现将域名解析为IP地址。动态域名解析过程如下:

(1)     当用户使用域名进行某些应用时,用户程序首先向DNS客户端中的解析器发出请。

(2)     DNS客户端收到请求后,首先查询本地的域名缓存。如果存在已解析成功的映射项,就将域名对应的IP地址返回给用户程序;如果未发现所要查找的映射项,就向域名服务器发送查询请求。

(3)     域名服务器首先从自己的数据库中查找域名对应的IP地址。如果判断该域名不属于本域范围,就将请求交给其他域名服务器处理,直到完成解析,并将解析的结果返回给DNS客户端。

(4)     DNS客户端收到域名服务器的响应报文后,将解析结果返回用户程序。

其中解析器缓存构成DNS客户端。用户程序、DNS客户端在同一台设备上,而DNS客户端和域名服务器一般分布在两台设备上。

动态域名解析支持缓存功能。每次动态解析成功的域名与IP地址的映射均存放在DNS客户端的动态域名缓存区中,当下一次查询相同域名的时候,就可以直接从缓存区中读取,不用再向域名服务器进行请求。缓存区中的映射在一段时间后会老化而被删除,以保证及时从域名服务器得到最新的内容。老化时间由域名服务器设置,DNS客户端从域名服务器的应答报文中获得老化时间。

抓包


用PC ping  h3c.com 的过程(抓wan口的包),首先会进行域名解析,得到h3c.com的IP地址,然后PC再发送ICMP报文。

DNS代理

DNS代理(DNS proxy)用来在DNS client和DNS server之间转发DNS请求和应答报文。局域网内的DNS client把DNS proxy当作DNS server,将DNS请求报文发送给DNS proxy。DNS proxy将该请求报文转发到真正的DNS server,并将DNS server的应答报文返回给DNS client,从而实现域名解析。

使用DNS proxy功能后,当DNS server的地址发生变化时,只需改变DNS proxy上的配置,无需改变局域网内每个DNS client的配置,从而简化了网络管理。

DNS代理的工作过程如下:

(1)     DNS client把DNS proxy当作DNS server,将DNS请求报文发送给DNS proxy,即请求报文的目的地址为DNS proxy的IP地址。

(2)     DNS proxy收到请求报文后,首先查找本地的静态域名解析表和动态域名解析缓存表,如果存在请求的信息,则DNS proxy直接通过DNS应答报文将域名解析结果返回给DNS client。

(3)     如果不存在请求的信息,则DNS proxy将报文转发给DNS server,通过DNS server进行域名解析。

(4)     DNS proxy收到DNS server的应答报文后,记录域名解析的结果,并将报文转发给DNS client。DNS client利用域名解析的结果进行相应的处理。

只有DNS proxy上存在域名服务器地址,并存在到达域名服务器的路由,DNS proxy才会向DNS server发送域名解析请求。

DNS spoofing(DNS欺骗)

DNSspoofing(DNS欺骗)主要应用于如图所示的拨号网络。在该网络中:

Device通过拨号接口连接到PSTN/ISDN(公共交换电话网络)等拨号网络。只有存在通过拨号接口转发的报文时,才会触发拨号接口建立连接。

Device作为DNS proxy(代理人)。在Host上将Device指定为DNS服务器;拨号接口建立连接后,Device通过DHCP等方式动态获取DNS服务器地址。

Device上未开启DNS spoofing功能时,Device接收到Host发送的域名解析请求报文后,如果不存在对应的域名解析表项,则需要向DNS server发送域名解析请求。但是,由于此时拨号接口尚未建立连接,Device上不存在DNS server地址,Device不会向DNS server发送域名解析请求,也不会应答DNS client的请求。从而导致域名解析失败,且没有流量触发拨号接口建立连接。

DNS spoofing功能可以解决上述问题。使能DNS spoofing功能后,即便Device上不存在DNS server地址或到达DNS server的路由,Device也会利用指定的IP地址作为域名解析结果,应答DNS client的域名解析请求。DNS client后续发送的报文可以用来触发拨号接口建立连接。

如图所示网络中,Host访问HTTP server的报文处理流程为:

(1) Host通过域名访问HTTPserver时,首先向Device发送域名解析请求,将HTTP server的域名解析为IP地址。

(2)Device接收到域名解析请求后,如果拨号接口尚未建立连接,Device上不存在DNS server地址,或者设备上配置的DNS server地址均不可达,则Device利用DNS spoofing中指定的IP地址作为域名解析结果,应答DNS client的域名解析请求。该域名解析应答的老化时间为0并且,应答的IP地址满足如下条件:Device上存在到达该IP地址的路由,且路由的出接口为拨号接口。

(3) Host接收到Device的应答报文后,向应答的IP地址发送HTTP请求。

(4)Device通过拨号接口转发HTTP请求时,触发拨号接口建立连接,并通过DHCP等方式动态获取DNS server的地址。

(5)域名解析应答老化后,Host再次发送域名解析请求。

(6)之后,Device的处理过程与DNSproxy工作过程相同。

(7) Host获取到正确的HTTPserver地址后,可以正常访问HTTP server。

DDNS

利用DNS可以将域名解析为IP地址,从而实现使用域名来访问网络中的节点。但是,DNS仅仅提供了域名和IP地址之间的静态对应关系,当节点的IP地址发生变化时,DNS无法动态地更新域名和IP地址的对应关系。此时,如果仍然使用域名访问该节点,通过域名解析得到的IP地址是错误的,从而导致访问失败。

DDNS(Dynamic Domain Name System,动态域名系统)用来动态更新DNS服务器上域名和IP地址之间的对应关系,保证通过域名解析到正确的IP地址。

目前,只有IPv4域名解析支持DDNS,IPv6域名解析不支持DDNS,即只能通过DDNS动态更新域名和IPv4地址之间的对应关系。

 

设备通过PPPoE或动态获取IP地址上网时,获取到的IP地址通常不固定,这给想访问内网服务器的因特网用户带来很大的不便,DynamicDNS(DDNS)可以很好的解决这个问题。

本设备在DDNS服务器上会建立一个IP与域名(需要预先注册)的关系表,当WAN口IP变化时,本设备会自动向指定的DDNS服务器发起更新请求,DDNS服务器上更新域名与IP地址的对应关系。保证了无论本设备的WAN口IP地址如何改变,因特网上的用户仍可以通过域名对其进行访问。

 

 

 

DDNS典型组网图

DDNS的典型组网环境如图所示,DDNS采用客户端/服务器模式:

·DDNS客户端:IP地址变化时,需要在DNS服务器上动态更新其域名和IP地址对应关系的设备。Internet用户通常通过域名访问提供应用层服务的服务器,如HTTP、FTP服务器。为了保证IP地址变化时,仍然可以通过域名访问这些服务器,当服务器的IP地址发生变化时,服务器将作为DDNS客户端,向DDNS服务器发送更新域名和IP地址对应关系的DDNS更新请求

· DDNS服务器:负责通知DNS服务器动态更新域名和IP地址之间的对应关系。接收到DDNS客户端的更新请求后,DDNS服务器通知DNS服务器重新建立DDNS客户端的域名和IP地址之间的对应关系。从而保证即使DDNS客户端的IP地址改变,Internet用户仍然可以通过同样的域名访问DDNS客户端。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值