大型互联网网站和服务采用CDN使用户就近访问资源以提高访问速度。CDN在各地区、各运营商部署的节点,大多通过DNS进行流量调度。
权威DNS服务器的分离解析(Split DNS)技术根据不同来源IP地址对同一域名返回不同的解析结果,实现了差异化的流量调度。
当用户使用运营商提供的本地递归DNS服务器时,该方法能较好地将用户引导到最优的CDN节点,因为权威DNS服务器看到的查询源IP即递归服务器IP与用户处于同一地区和运营商。
然而,随着公共DNS服务的流行(如OpenDNS、Google Public DNS、114DNS等),递归服务器的IP地址已无法代表用户所在的地区和运营商。
即使公共DNS服务采用了Anycast部署,其节点分布仍存在很大局限性,尤其是国外的OpenDNS和Google公共DNS目前在中国大陆尚无节点。
为了给使用公共DNS服务的用户提供更准确的CDN域名引导,EDNS Client Subnet(ECS)扩展允许递归DNS服务器将用户IP子网信息包含在DNS查询请求中,以帮助权威服务器识别用户位置和运营商,返回最优的解析结果。
ECS的工作机制在RFC 7871中定义,目前被Google、OpenDNS和腾讯DNSPod等公共DNS服务所支持。
支持ECS的权威解析方案
ISC BIND作为最流行的开源DNS服务器软件,从2016年的9.11版本开始试验性地支持权威服务器的ECS功能;但由于GeoIP支持的局限性使其实现难以符合RFC规范,且配置效率低下,该功能在bet36体育备用;年9.13.1版本中被移除。
目前支持ECS的权威DNS服务器软件有gdnsd和PowerDNS。
上海交通大学的邮件系统、入校VPN和开源软件FTP 镜像等访问量较大的服务配置有多个运营商的服务地址。
服务地址的选择过去采用ISC BIND的视图(View)功能实现DNS分离解析,始终存在对公共DNS用户的错误引导问题,尤其是将众多使用Google等国外公共DNS的国内用户,引导到邮件系统的海外镜像节点,造成访问速度显著下降。
为了解决该问题,学校权威域名服务引入支持ECS的方案来替代ISC BIND的视图功能。
新方案采用gdnsd软件,建立支持ECS的CNAME跳转专用子域ecslb.sjtu.edu.cn,对需要分离解析的如vpn.sjtu.edu.cn域名,首先CNAME指向由gdnsd提供服务vpn.ecslb.sjtu.edu.cn,再依据ECS或递归IP提供不同的解析结果,如图1所示。sjtu.edu.cn域仍由原先的ISC BIND服务器解析,且不再需要视图配置。
图1 权威解析ECS 配置示意
gdnsd的GeoIP插件用于支持GSLB(全局负载均衡),但利用默认的MaxMind GeoIP数据库不能实现国内几大运营商的区分(gdnsd尚不支持GeoIP ASN数据库),因此我们使用Clang.CN提供的国内运营商IPv4和IPv6地址段在gdnsd配置文件中定义“nets”实现自定义的IP段到“数据中心”的映射。
为了验证ECS权威解析的效果,从202.120.2.x的教育网地址发起对vpn.sjtu.edu.cn的DNS请求,同时利用gdnsd的Reflect插件配置whoami子域名返回递归服务器地址和ECS地址。
对于不支持ECS的百度公共DNS(180.76.76.76),其递归地址111.1.52.5(图2-a)属于浙江省移动,因此解析的“cm.vpn”移动地址(图2-b),对教育网用户不是最优。
支持ECS的腾讯DNSPod(119.29.29.29),尽管其递归来源183.57.53.63(图2-c)属于广东省电信,但根据其提供的ECS地址202.120.2.1仍可将用户引导到最优的教育网入口(图2-d)。
图2 vpn.sjtu.edu.cn 解析结果对比
ECS优化效果分析
Jia ZHANG等人2017年对Alexa排名前1万的网站域名进行了探测,结果显示在过去5年间CDN的使用率没有明显增长,但权威服务器支持ECS的比例有了显著提升,排名前100的网站有超过50%支持ECS。
过去的研究更多地关注CDN或网站侧支持ECS的情况,而学校权威域名服务启用ECS的效益取决于使用公共DNS服务的用户规模和公共DNS对ECS的支持情况。
通过对校园网DNS服务器和校园网出口DNS流量持续一个月的分析,9.38万个校园网用户中有1.87万使用校外公共DNS服务(按独立IP统计),占比达20%。
各公共DNS的用户数统计见表1,Google和腾讯DNSPod默认支持ECS,OpenDNS申请后也对我校域名启用ECS,三者合并用户数8922个,由此计算学校权威域名服务支持ECS后可使9.5%的校园网内用户受益。
表1 校园网用户DNS 服务选择
图3显示了两台gdnsd权威服务器一个月内每小时的请求数,两台合计处理平均每秒204.5个请求,其中支持ECS的请求占25.1%。
图3 gdnsd 服务器请求量
全月处理的1.24亿个ECS查询请求,来自总共2038个IP地址,分属51个不同的自治系统,统计如表2。
表2 ECS请求源地址分布统计
其中来自Google和OpenDNS的请求最多,分别占总ECS请求数的73.50%和20.19%。支持ECS的请求中,来自中国大陆地区的仅占5.31%。ECS查询携带的用户地址信息,99.41%为IPv4地址,IPv6仅占0.59%。
使用支持ECS的权威服务器(如gdnsd等)替代传统的ISC BIND视图配置,可有效解决校园网用户及国内用户使用Google、OpenDNS等公共DNS服务时的分区域、分运营商解析问题。
流量分析结果显示,上海交通大学校园网内有9.5%的用户使用支持ECS的公共DNS服务,该改进可使8922位校园网用户受益。
与此同时,gdnsd权威服务器上线后,处理的校外递归DNS服务器请求中,有25.1%的查询请求支持ECS,因此该方案的部署具有显著的意义。
(作者:上海交通大学网络信息中心 章思宇 封寒松 黄保青)
(基金项目:赛尔网络下一代互联网技术创新项目(NGII20170118)
进入专题>>2019高校信息化创新实践方案展示
① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。
② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。