单庆元,阎丕涛,南 峰
(大连工业大学 网络信息中心,辽宁 大连 116034)
多出口环境下高校DNS服务器优化探讨
单庆元,阎丕涛,南 峰
(大连工业大学 网络信息中心,辽宁 大连 116034)
本文通过分析DNS服务器的数据流特征,将DNS服务器对解析请求的回复和非授权域名递归解析的数据流分离开来,单独进行选路。将源IP地址为校内DNS服务器的地址、源端口为53的TCP和UDP数据包——这些数据包为DNS服务器对校外客户机解析请求的回复——固定从教育网线路发送出去。源IP地址为校内DNS服务器的地址、目标端口为53的TCP或者UDP数据包——这些数据包为DNS服务器对客户机的非授权域名递归解析请求的解析过程——可以根据校园出口线路的带宽和特定需求进行选路。合理地设置DNS服务器数据流的选路,能够提高校园网出口的利用率和校园网用户的外网访问体验。
智能DNS;策略路由;DNS递归解析;DNS数据流
为了提升互联网用户的网络访问体验,大多数的网站都针对不同运营商的网络用户做了智能DNS的解析,随着出口费用的降低和运营商参与校园网的建设,大多数高校都有多条属于不同运营商的出口线路。由于高校的DNS服务器需要进行对外发布域名,所以一般网络设置都是将校园网DNS服务器的数据通过教育网线路发送。但由于学校的DNS服务器为校内的网络用户提供非授权域的解析服务,因而校园网用户得到的域名解析结果是针对教育网优化过的,如果校园网用户访问外网使用的是非教育网出口,那么用户访问网络的体验会变差。为了解决这个问题,许多高校采用了对校内用户发布的互联网运营商的本地DNS服务器,这样做所带来的问题就是:①学校对校内网络用户DNS解析控制权的丢失。②当校园的网络出口出现故障中断的时候,用户访问校内网站在某些网络环境下会有问题。③而且如果DNS授权域实施了智能DNS解析,那么校内用户访问内网资源不能使用最优路径。在多出口线路环境下,需要对DNS服务器的配置及数据流转发进行优化,包括授权域名解析的优化和非授权域名解析的优化。曾有文献探讨了DNS授权域优化方法,根据属于不同运营商的IP地址段配置访问控制列表,实现对不同运营商的客户机返回不同域名解析结果,以此来实现校园内网服务器的多线路访问,提高校外用户访问校园内网服务的体验。[1-5]还有文献探讨了运营商本地DNS服务器的非授权DNS解析优化,一般是通过DNS服务器的缓存和递归功能分离来减轻DNS服务器的负担,通过实时探测服务器的性能,将最优资源的IP地址返回给解析客户机。[6-8]这些技术有些是可以应用到校园网DNS服务器优化上的。通过分析DNS服务器的组成结构和递归解析过程,对于同时承担授权DNS解析和非授权DNS递归解析的高校DNS服务器的优化,可将DNS服务器对客户机的解析响应和DNS服务器对非授权域名的解析数据流分离开来,分别设置路由,对非授权域名的解析数据流选择最优路径转发,用来提高校园网出口利用率和提升校园网络用户访问体验。[9-12]
在校园网建立的初期,大部分高校都申请了属于自己的域名和DNS服务器,这时候校园网内的上网用户还不多,也建立了不多的对外宣传网站。此时DNS服务器既负责发布授权域名的信息(作为授权DNS服务器)又为学校为数不多的上网客户端提供DNS递归解析(作为本地DNS服务器)。随着网络的发展,学校建立的网络服务多了,上网客户端也多了起来,但DNS服务器依旧同时作为授权DNS和本地DNS服务器使用。对于一般学校,DNS服务器这样使用也没什么问题。
1.授权域名服务器功能
教育网申请域名的时候,通常需要指定两个IP地址作为申请域名的授权域名服务器,一个是主DNS服务器,另外一个是辅DNS服务器。例如大连工业大学申请的域名为DLPU.EDU.CN,指定的两个授权域名服务器的域名及IP地址的对应关系如表1所示:
表1 学校的授权域名服务器列表
教育网其它学校域名的相关资料可以到教育网的网络信息中心网站上查询。网址为:http://www.nic.edu.cn/ cgi-bin/reg/member/otherobj,不过需要用配置教育网IP的客户机才能查询。在对DLPU.edu.cn的授权域名服务器进行查询的时候,edu.cn.授权域名服务器在回复中同时给出这两个DNS服务器,但是每次的前后排序是随机的。在使用dig www.dlpu.edu.cn@202.112.0.35进行了60次的查询测试,NS1在前的为31次,NS2在前的为29次,基本平均分布。其中IP地址202.112.0.35为.edu.cn.域名的授权域名服务器IP地址之一,域名为DNS.EDU.CN.,所以对上述的查询命令只给出了DLPU.edu.cn.域的授权域名服务器,解析客户端可以据此进行下一步的查询。
2.本地域名服务器的功能及发布
学校上网客户端都使用学校的DNS服务器作为本地DNS服务器。由于学校的DNS服务器都是教育网的地址,授权域名都是.edu.cn.的后缀,所以DNS服务器只能使用教育网的出口线路才能正常对外发布授权DNS的信息。由于DNS服务器同时为校园网网络客户机提供递归解析服务,对于开启了智能DNS发布的网站,客户机获得的域名解析结果必然是针对教育网优化过的。如果由于各种原因(教育网带宽不足),客户机使用其它出口线路访问上述网站,访问速度必然会受影响。而且,在CDN网络中,容易造成访问失败。
随着互联网出口线路租费的降低和运营商参与高校网络建设,学校的网络出口多了起来,通常是一条教育网出口线路再加上一个或者多个互联网运营商 (联通、移动、电信)的网络出口线路。同时学校向校园网用户发布DNS服务器的策略也有了变化,通常分成四种:①仅发布属于学校的授权域名服务器。发布本校的授权域服务器作为网络用户的首选DNS服务器和备用DNS服务器。由于授权域名服务器是教育网的IP地址,通常的做法就是将授权域名服务器的所有数据都从教育网出入,这样DNS服务器解析的结果都是针对教育网优化过的,客户机通过教育网的出口线路访问外网,效果是最好的。由于985院校的经费充足,而且是教育网的主干节点,所以985院校的出口一般是一条带宽很大的教育网出口,教育网的出口已经足够学校使用,所以给校园网用户发布的通常就是自己的授权域DNS服务器。②混合发布,校园网的授权域名服务器优先。即首选DNS服务器发布的是本校的授权域DNS服务器,备用DNS服务器使用的是互联网运营商的本地DNS服务器。一般情况下,客户机优先使用首选DNS服务器进行域名解析,在首选DNS服务器出现故障的情况下,才使用备用DNS服务器。而DNS服务器出故障的概率很小,所以这种发布方式效果与第一类相差不多,就是客户机通过教育网的出口线路访问外网,效果是最好的。③混合发布,互联网运营商的本地DNS服务器优先。即首选DNS服务器发布的是互联网运营商提供的本地DNS服务器,备用DNS服务器使用的是本校的授权域DNS服务器。由于绝大多数的上网时间内,首选DNS服务器在工作,网络用户获得的DNS解析结果是针对该互联网运营商优化过的,因此通过该互联网运营商的出口线路访问外网效果最好。④仅发布互联网运营商的本地DNS服务器。即首选DNS服务器和备用DNS服务器均为运营商的本地DNS服务器。此时,用户通过互联网运营商的出口线路访问外网效果最好。
下面分别就授权域名的解析和非授权域名的递归解析过程对DNS服务器的数据流进行分析:
1.与学校授权域名相关的解析数据包
表2 校内客户机的解析请求
表3 校外客户机的解析请求,该客户机的DNS服务器配置为校园网DNS服务器
表4 校外本地DNS服务器的解析请求
校内客户机对授权域的查询和DNS服务器的响应(表2的1、2)只使用校内的线路,不涉及出口线路,比较简单,不需要在出口路由上做任何设置。由于学校的域名是以.edu.cn.结尾的,该域授权服务器的IP地址是教育网的IP,所以校外客户端,无论该是属于移动、联通、电信,还是国外的IP地址,发送给DNS服务器的请求都会经由教育网线路进入最终到达DNS服务器 (表3的1,表4的1)。服务器对上述请求的响应(表3的2,表4的2)必须从教育网线路返回,解析才能完成。这些响应数据包共同的特征就是:源IP地址都是校内DNS服务器的地址,源端口都是53端口,通过在出口路由器上设置策略路由,有上述特征的数据包都通过教育网发送出去。
2.与非授权域名相关的解析(以2级域名为例)
在非授权域名的解析过程中,校内DNS服务器承担本地DNS服务器的角色。在非授权域的查询过程中(表5的2、4、6和表6的2、4、6)都是校园网DNS服务器给其它域授权服务器(如根域、一级域、所查域名的授权域)发送的递归标志位为0的迭代解析请求。这些都是校内DNS服务器主动发起的,可以选择发送所使用的校园网出口线路,是DNS优化的重点。通过不同的出口线路发送,则可以得到不同解析结果。这些数据包共同的特征就是:源IP地址是校内DNS服务器的IP地址,目标端口是53。数据包在经过校园网的边界进入各个互联网服务商的网络之前要做NAT(网络地址转换),转换成属于各个互联网服务商的IP地址。而从教育网发送出去,由于服务器的IP地址是属于教育网,则不需要转换。由于大多数的商业网站的DNS授权域名服务器都做了智能解析,所以DNS服务器从不同出口线路发送解析请求,得到的解析结果是不同的。以www.sohu.com的域名为例,查询结果如表7所示:
另外在DNS服务器给校外的客户端发送解析结果(表6的第8行)必须使用教育网线路。
3.DNS数据流分类总结
综上所述,校园网DNS服务器通过校园网的出口线路发送的数据包分为两类,如表8所示。
表5 校内客户端的解析请求
表6 校外客户端的解析请求,该客户机的DNS服务器配置为校园网DNS服务器
1.策略路由
DNS服务器经过出口发出的数据包分类完成之后,为了能够使用这些属性优化网络,还需要策略路由的配合。正常的数据包选路是仅根据目标IP地址来查找路由器的默认路由表,选择合适的转发路径。而策略路由可以根据数据包中其它字段进行路由,通常使用源IP、目标IP、协议、源端口、目标端口的五元组来实现。当然也可以根据除此之外的其它字段进行转发,例如数据包长度、TOS等等。值得注意的是,并不是每个品牌的路由设备都支持上面所说的五元组来实现策略路由,例如:有声称支持策略路由的设备只能按照源IP路由,或者不能根据数据包源端口来选择路由。策略路由在juniper路由器中也称之为基于过滤器的转发(Filter-Based Forwarding)。
由于DNS服务器的解析响应和非授权域查询的数据包的目标地址不固定,所以不能根据目标地址进行路由。
2.学校的拓扑示意图
学校供校园网用户外访使用的线路总共两条,一条是100M的教育网线路,另外一条是600M的移动线路,如图1所示,其中访问教育网的流量使用教育网出口线路,其它流量使用移动600M线路。学校还有一条50M的联通线路由服务器专用,所以就不在图中表示了。
表8 DNS服务器数据包的分类
图1 校园网拓扑示意图
3.在juniper路由器的实现
在Juniper路由器中策略路由称为基于过滤器的转发(Filter-Based Forwarding),配置如下:
set routing-instances route-to-cernet instance-type forwarding routing-options static route 0.0.0.0/0 next-hop 210.30.19.81
注:设置名为“route-to-cernet”的路由实例,将默认的下一跳设为教育网的出口网关。
set routing-instances route-to-mobile instance-type forwarding routing-options static route 0.0.0.0/0 next-hop 172.16.16.1
注:设置名为“route-to-mobile”的路由实例,将默认的下一跳设为移动NAT服务器。
set routing-options rib-groups policy-server importrib route-to-cernet.inet.0
set routing-options rib-groups policy-server importrib route-to-mobile.inet.0
set routing-options rib-groups policy-server importrib inet.0
注:创建名为“policy-server”的rib-groups,并将上面创建的路由实例和IPV4的单播路由表inet.0关联进来。
set routing-options interface-routes rib-group inet policy-server
注:将相关的路由表关联到硬件接口中,Juniper路由器是使用硬件转发的。
set firewall filter route-policy-server term DNS-RESPONSE from protocol tcp source-port 53 source-address 210.30.48.7
set firewall filter route-policy-server term DNS-RESPONSE from protocol udp source-port 53 source-address 210.30.48.7
set firewall filter route-policy-server term DNS-RESPONSE from protocol tcp source-port 53 source-address 210.30.48.8
set firewall filter route-policy-server term DNS-RESPONSE from protocol udp source-port 53 source-address 210.30.48.8
set firewall filter route-policy-server term DNS-RESPONSE then routing-instance route-to-cernet
注:创建名为“route-policy-server”的filter,其中名为“DNS-RESPONSE”的表项设置对来自校内DNS服务器的TCP和UDP源端口为53的数据包,使用到教育网的默认路由。
set firewall filter route-policy-server term DNS-REQUEST from protocol tcp destination-port 53 source-address 210.30.48.7
set firewall filter route-policy-server term DNS-REQUEST from protocol udp destination-port 53 source-address 210.30.48.7
set firewall filter route-policy-server term DNS-REQUEST from protocol tcp destination-port 53 source-address 210.30.48.8
set firewall filter route-policy-server term DNS-REQUEST from protocol udp destination-port 53 source-address 210.30.48.8
set firewall filter route-policy-server term DNS-REQUEST then routing-instance route-to-mobile
注:filter中名为“DNS-REQUEST”的表项设置对于来自校内DNS服务器的TCP和UDP目的端口为53的数据包,使用到移动NAT的默认路由。
set interfaces unit 0 family inet filter input route-policyserver
注:将filter应用到出口路由的内联接口的input方向。
4.实验结果
教育网100M线路的流量如图2所示:
图2 教育网100M线路流量周统计图
由于星期天下午13:30左右教育网的线路故障,导致DNS解析无法正常进行,在出口路由器上,将校园网DNS的非授权域名的查询请求路由到移动600M线路上,保障了校内用户外网访问的正常。在星期天18:00左右教育网线路恢复正常之后,依然保持校园网DNS的非授权域的查询从移动600M线路转发,在接下来的几天之内,教育网的流量有很大程度上的减少。同一时间段移动600M线路的流量如图3所示:
图3 移动600M线路流量周统计图
通过图2和图3的对比可以发现,在DNS调整之前,教育网的100M线路在晚上高峰时间,饱和运行,DNS调整之后,教育网的流量有了较大的空余,移动600M线路的流量有所上升。另外,移动600M线路在每天23:00点之后,流量一个突增,是因为在每天晚上23: 00至次日07:00放开视频和P2P流量的限制。
通过将DNS服务器数据流进行分类并单独路由的方法,保持了对校内用户DNS解析的控制权,在更改DNS递归解析数据流的方向时,对用户是透明的,不需要对用户重新发布DNS服务器地址,用户无感知。由于用户使用的是校内的DNS服务器,出口线路的中断不影响用户对校内资源的访问。当某一条出口线路中断时,可以将DNS服务器的递归解析数据流和用户数据流同时切换出口线路,从而保证了内网用户正常访问外网资源。DNS服务器的其它与DNS解析无关的数据可以在校园网出口处禁止外网转发或者使用其它非教育网的线路,此时DNS服务器可以正常进行外网访问,而外网主动发起的对DNS服务器非DNS服务的访问是无法进行的,可以最大化地保证DNS服务器的安全。在DNS智能解析的网络环境下,DNS递归解析数据流的合理选路对提升校园网多出口的利用率和用户的网络体验很重要,本文阐述的是静态地设置DNS服务器的解析数据流的选路方法,如果能够根据出口线路的负载情况,动态地进行DNS非授权域名的解析数据流的选路会更好,当然这不是一件容易做到的事情。另外DNS服务器BIND的VIEW、ACL和FORWARDER功能的配合使用也能对DNS递归解析数据流进行优化。
[1]李海明,苏开宇.智能DNS在校园网多链路控制的应用[J].中国计量学院学报,2011(1):59-63,94.
[2]池水明.互联网站点实现来自不同ISP用户的快速访问——智能DNS解决方案[J].电子工程师,2008(5):25-28.
[3]王子荣,胡浩,尹绍锋,王宇科.基于策略DNS和HTTP Proxy的多宿主网络服务部署的研究[J].计算机工程与科学,2014(2):238-243.
[4]李洋.DNS解析路由在多链路网络中的应用研究[J].实验科学与技术,2010(1):72-74.
[5]秦臻,周帆,李乐民.DNS对CDN流媒体服务质量的影响[J].电子科技大学学报,2013(4):577-580.
[6]王允昕.DNS“缓存递归”分离架构[J].电信技术, 2014(3):46-47.
[7]孙银青.组合型智能DNS系统在电信运营中的应用探讨[J].电信工程技术与标准化,2013(1):87-91.
[8]周亮.电信行业智能DNS实现负载均衡[J].价值工程,2010(16):167.
[9]Microsoft TechNet,DNS Architecture[DB/OL]. https://technet.microsoft.com/en-us/library/dd197427(v= ws.10).aspx
[10]MicrosoftTechNet,DNSProtocol[DB/OL]. https://technet.microsoft.com/en-us/library/dd197470(v= ws.10).aspx
[11]吴海涛,郭丽红.DNS协议分析与安全检测[J].计算机安全,2009(4):24-27.
[12]Paul Albitz C L.DNS and BIND,5th Edition[M]. O'Reilly,2001.
(编辑:王天鹏)
TP393
:A
:1673-8454(2017)07-0089-05