基于策略路由和BIND9的校园网快速访问研究
2019-05-27赵建勋
赵建勋
(西安文理学院 信息与现代教育技术中心, 陕西 西安 710065)
0 引言
高校校园网的边界网络拓扑大多是由边界防火墙、出入口链路、DMZ服务器区等组成的,主要用于实现内网用户访问公网、内外网用户校园Web站点访问以及教育网资源共享等[1]。在IPv4下,内网和外网用户数据交互时必须要经过网络地址转换(Network Address Translation,NAT),为了保证校园网资源对外能访问,传统DNS解析的结果都是经过NAT后的公网地址,内网用户访问校园网服务器就必须也要经过NAT,特别是当服务器不在DMZ区时,还要经过一系列路由后再次NAT才能访问。如此过程不仅复杂,而且对校园网带宽带来不必要的负载,易造成网络卡顿。本文结合NAT技术和策略路由,在BIND9技术基础上对西安文理学院校园网资源访问进行优化整合,提升网络访问性能和效率。
1 相关技术简介
1.1 NAT技术
在全球IPv4地址即将枯竭的时候,NAT技术的出现解决了这个燃眉之急。它可以对数据报文的源地址、目的地址甚至是端口进行更改,即用户在园区内可以私有地址访问各类资源,只有当访问外网时才进行NAT,大大节约了公网IP地址。根据对源地址还是对目的地址进行地址转换,NAT[2]技术还可分为SNAT和DNAT,以上两种技术广泛应用于边界网关。
SNAT是对数据报文的源地址进行转换,常将多个私有IP地址转换为公有IP地址,以便于数据包在公网上路由,主要用于私有IP地址的用户访问公网资源;DNAT是对数据报文的目的地址进行转换,常将单个公有IP地址转换为私有IP地址,以便于私有网络里的服务被外网访问,其中报文中目的地址的端口在转换前可以自行定制,主要用于私有IP的资源被公网用户访问。
1.2 策略路由
路由是网络数据包在网络上的转发机制,由多个路由表组成。通过修改路由表可控制网络数据包的可达与否,这种方式称为路由策略,其仅基于数据包里目的地址进行选择其下一跳地址。
基于用户自定义的策略如根据数据报源地址或协议等,再进行网络数据包转发的称之为策略路由,其优先于直连路由、静态路由、动态路由等路由策略[3]。策略路由可以根据用户的IP地址或所访问的协议再精确指定下一跳地址,在边界网关上应用,可实现不同运营商下多出口的流量测量等。
1.3 BIND9
BIND(Berkeley Internet Name Domain)是当前应用最广的开源DNS服务器组件,在类UNIX系统中以名称为named的守护进程存在,当前最新软件版本是第9版。BIND9除了具备传统DNS的功能以外,还可结合ACL(访问控制列表)和VIEW(视图)功能,根据用户的源IP地址将请求的域名解析到相应的不同IP地址,实现灵活解析的智能DNS[4]。
2 校园网资源访问的优化整合
2.1 现状
西安文理学院校园网主要服务内容有两个:一是让内网用户安全有效地访问外网,二是为内外网用户提供安全稳定的网络资源访问。如图1所示,校园网三条出口链路分为两家运营商(电信网和教育网),且带宽差异较大;网络资源主要分布在DMZ区和内部网络区;内网网中除了研究测试与DNS为教育网IP,其余均为172.16.0.0/16的私有网。
图1 服务器及边界网络拓扑图
校园网用户访问外网时均为默认路由,对于多出口以带宽大小作为权重;在边界网关上使用默认SNAT时,也以最大带宽的出口优先。但当用户访问一个国外或教育网资源时,因为优先路由以电信网访问,可能造成访问卡顿甚至无法访问。
校园网资源以包含域名或公网IP的统一资源定位符(Uniform Resource Locator,URL)出现,当内网用户访问该URL时,即使和该资源在同一网段,也必须经过路由到达边界网关,然后边界网关经过双重NAT(DNAT和SNAT)后,再返回用户端,特别当该URL指向内容为大流量文件时,不仅造成访问卡顿,也会对校园网骨干网造成不必要的负载,影响整体校园网的稳定和性能。
2.2 优化及实践
2.2.1 优化出口带宽用途
由于边界网关上的流量SNAT远远大于DNAT[2],因此在2 Gb/s大带宽的出口上使用SNAT作为所有内网用户访问外网的首选,防止100 Mb/s小带宽上有大流量时造成网络堵塞;对于100 Mb/s的小带宽出口,由于电信运营商提供了较多的公网IP地址,对外可提供丰富的网络服务,因此将其主要用于DNAT,作为外网用户访问校园网Web资源的首选;而500 Mb/s带宽的教育网用于科研、实验等特殊用途的精准访问。
2.2.2 启用策略路由精准访问
出口路由为三条以带宽大小为优先级的默认路由,如表1所示。以上路由保证了出口链路的冗余,但使得内网用户可能无法访问教育网。针对教育网的专网特性,须保证其流量必须经教育网出口。采用策略路由实现上述目的,方法大致如下:
(1)确定内网用户聚合IP为172.16.0.0/16,所有对象为any,目标地址为教育网多条IP聚类[5],以下以其中一个网络202.112.0.46/18为例。
(2)定制扩展ACL,允许源地址为172.16.0.0/16的内部网络访问目的地址为202.112.0.46/18的所有服务。
(3)应用此ACL到边界网关的教育网接口上,且以202.200.29.157为此策略路由的网关。
表1 三条出口的默认路由
2.2.3 BIND9的智能DNS
对于校园URL中的含有公网IP的字符全部以域名代替,当用户在校园网内以URL访问校内资源时,智能DNS将域名解析为内网IP,可免除绕路经过边界网关带来骨干网多余网络负载,使得内网互相访问不必再使用NAT,减少边界网关并发压力。以上主要通过搭建BIND9实现,基本完成过程如下:
首先,完成校园网接入层的安全管理,通过IP Source Guard并配合DHCP Server统一下发用户的IP信息[6],将校内用户的DNS绑定为校内智能DNS地址。
其次,设计BIND9服务器上的named.conf主配置文件。
(1)开启DNS服务选项中的缓存和转发功能,即优先使用本服务器上的缓存解析,对不在本域或缓存的解析请求发送到公共DNS。
options {allow-query-cache { any;};
forwarders{
114.114.114.114;……};
forward first;……
(2)通过acl功能设定校内网区域对象xau。
acl xau{172.16.0.0/16;}
(3)通过view功能定制校内网xau和其他对象的域名解析方式。对xawl.edu.cn的子域名解析时,当请求的IP地址属于对象xau时,按照解析文件named.xawl1.edu.cn完成,如果为其他IP的请求,则按照文件named.xawl.edu.cn完成;而对baidu.com子域名解析时,可直接将请求转发到百度的公共DNS,既加快解析速度又增加解析准确性。
view "xau"{match-clients { xau;};
//校内网解析匹配
zone "xawl.edu.cn" IN {
file "named.xawl1.edu.cn";……};
zone "baidu.com" IN{
type forward;
forwarders{180.76.76.76;};};……
view "any"{ match-clients { any;};
//其他域名解析
zone "xawl.edu.cn" IN {
file "named.xawl.edu.cn";};};……
最后,对应xau内网地址和其他地址对xawl.edu.cn子域名的请求,分别完成不同解析结果的文件,即named.xawl1.edu.cn和named.xawl.edu.cn。例如域名zsb.xawl.edu.cn在两个文件中结果如下:
zsb IN A 172.16.122.14
//内网域名解析
zsb IN A 222.91.187.6
//其他网域名解析
2.3 实验结果
测试主机环境为Intel i5-4570的CPU,8 GB内存,Windows 10操作系统,网络IP地址为172.16.122.35/24。
2.3.1 策略路由
对www.nic.edu.cn(IP地址为202.112.0.46,属于教育网)进行访问测试,以ping命令测试,结果如表2所示。未启用路由策略时,到达终点根据TTL值[7]测算经历了11个节点,平均延时34 ms;启用策略后,到达终点经历了6个节点,平均延时17 ms。 结果表明,启用策略路由后,优化了路由,缩短了访问延时。
表2 启用策略路由前后的数据包探测
2.3.2 智能DNS
对zsb.xawl.edu.cn进行访问测试,以路由追踪命令tracert及Wireshark软件抓包,结果如表3所示,其中指标RTT[8](Round Trip Time)取TCP三次握手的前两次握手的往返时间。在应用智能DNS前,到达DNAT后的公网IP共经历了3个路由节点,另外还需要再次SNAT后按原路由返回内网IP,又经历3个节点,总共需要经过6个路由节点,RTT为0.650 ms;启用智能DNS后在同网段内直接访问,经过了0个路由节点,RTT为0.052 ms。结果表明,启用智能DNS后,内网访问路由更合理、更优,减少了骨干网多余带宽的占用,也免去了边界网关需要双重NAT的负载。
表3 启用智能DNS前后的访问情况
3 结论
通过对学校现有网络情况的分析,根据运营商的出口带宽和服务质量,在边界网关上优化了出口使用策略;通过启用策略路由,保证了用户在高速访问互联网的同时,也可根据需求优化路由,缩短了访问延迟;通过智能DNS服务器的搭建和接入网实施,使得内网用户访问校内网络资源更加直接,提升了访问速度,减少了网络整体负载。
当然,智能DNS将服务器真实IP暴露给内网用户,需要加强访问控制技术来保证服务器安全;另外,随着各类教育网与电信网更深层次的互联互通,届时策略路由还需要再基于更广泛的因素来优化。