大型互联网网站和服务采用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规范,且配置效率低下,该功能在2018年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)
进入专题>>
① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,亚博安卓的版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。
② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及亚博安卓的版权等问题,请作者在两周内速来电或来函联系。