2022年4月,中央网信办等三部门联合印发《深入推进IPv6规模部署和应用2022年工作安排》,要求到2022年末,县级以上政府门户网站、国内主要商业网站及移动互联网应用IPv6支持率达到85%。
为提高门户网站IPv6支持度,今年上半年,华中科技大学网络与计算中心组织力量,开展排查、测试、IPv6部署及持续监测等一系列工作。
IPv6部署排查
提高学校门户网站IPv6支持度,除网站首页外,还应全面推进二、三级链接IPv6部署。其中首要工作是厘清二、三级链接明细,排查IPv6可访问性,做到“资产清、底数明”。
IPv6部署基本情况
华中科技大学是最早加入第二代中国教育和科研计算机网CERNET2的节点高校之一,校园网支持IPv4和IPv6双栈接入。IPv4/IPv6共用内网主干带宽。IPv6出口使用独立链路,出口带宽共20G。
校园网认证系统采用IPv4认证/IPv6放行方式,支持IPv6的用户设备通过IPv4认证后,采用无状态地址自动配置(SLAAC)方式自动接入IPv6网络。目前,学校每日活跃IPv6用户数超过10万,入/出流量平均带宽达到5.5Gbps/1.7Gbps,近期IPv6出口带宽峰值达到16.8Gbps。
校内服务器IPv6地址采用静态配置。学校网络与计算中心提供网站群和数据中心两种建站服务,网站群运行包含纯静态网页的展示型网站,每个网站默认配置IPv6地址,并开放校外访问。数据中心运行包含动态交互式网页的信息系统,由管理员手动配置IPv6地址。每个信息系统默认限制在校内访问,可根据实际需求以白名单方式开放校外访问。
校级及全校各单位门户网站统一托管在网站群,其他有建站需求的网站和信息系统均可申请进入网站群或数据中心。网络与计算中心提供硬件设备和安全防护,网站内容由各单位运营。校门户网站二、三级链接基本都运行在网站群或数据中心,各网站所包含网页、链接根据运营单位需求不同,处在动态变化状态。
校主页二、三级链接IPv6支持情况
为厘清二、三级链接明细,准确评估IPv6支持度,网络与计算中心技术人员采用Python3.7.3编写网页爬虫,实现在IPv4环境收集链接,在IPv6环境测试可访问性。爬虫脚本设置一组全局变量:待爬链接队列unvisited,已爬链接列表visited,结果列表site_link_list。设置全局常量CRAWL_LEVEL=3。脚本主体由收集链接函数和访问链接函数组成。
1.收集链接
图1 收集链接函数运行流程
收集链接函数crawl_domain()运行流程如图1所示。将校主页地址传入start_site。程序首先向未爬队列unvisited放入校主页地址和链接级数1,随后不断从unvisited取出待爬链接,直到队列为空。对每个待爬链接,如果其级数小于CRAWL_LEVEL,且非静态页面,则启动爬虫。
表1 标签名和属性名组合
在爬虫阶段,共爬取5个标签名和属性名组合,其含义如表1所示。这些组合可以比较全面地定位网页所有链接。
对每个爬到的链接,根据其形态为绝对路径(以“http”开头),网站根目录下的相对路径(以“/”开头),或当前目录下的相对路径(以其它字符开头)分别组合成完整链接。如果该链接的域名与校主页域名后缀相同且级数不大于CRAWL_LEVEL,则记录入unvisited队列和结果列表site_link_list。
函数运行完成后,site_link_list记录了所有二、三级链接,及其级数和源页面。将site_link_list列表的每个元素写入结果文件保存。
2.访问链接
访问链接函数ipv6_access()在纯IPv6环境运行,其流程如图2所示。首先读取上一函数中生成的链接结果文件infile,取出每个链接并访问,如果访问失败,将链接和报错信息记入error_site列表。程序设置列表domain_list记录已访问过的域名,从而使同一域名有多个链接的,仅访问其中一个链接即可。
图2 访问链接函数运行流程
函数运行完成后,error_site记录了所有不可访问的链接和对应报错信息。将error_site列表的每个元素写入结果文件保存。
在2022年3月的首次测试中,学校共有36个网站和信息系统IPv6不可访问,共涉及398个链接。
IPv6部署推进
针对以上未支持IPv6的网站和信息系统,网络与计算中心展开分析排查,分别部署推进IPv6。分析发现,主要原因包含3点:系统未配置IPv6,系统未开放校外访问,系统域名已注销。
系统未配置IPv6
13个系统域名可从校外访问,但未配置IPv6地址。其中大部分运行在数据中心,由网络与计算中心分别配置静态IPv6。小部分由二级单位自行架设的服务器采取反向代理配置IPv6。反向代理服务器位于用户与目标服务器之间。对于用户而言,反向代理服务器就相当于目标服务器。当用户访问设置在反向代理服务器的IPv6,请求将转发给目标服务器,由目标服务器处理返回,整个过程对用户透明。
系统未开放校外访问
出于网络安全原因,学校大部分信息系统限制在校内访问,对确有需要的以白名单方式开放校外访问。学校有16个系统域名因未开放校外访问而导致IPv6不可达。经过排查,其中4个系统IPv4已开放校外访问,仅需对IPv6开放访问即可。剩余系统如财务系统、OA系统、人事系统等,不能也不应开放校外访问。
为使上述系统在支持IPv6的同时不破坏其安全性,采取配置IPv6报错页面的方式实现。设置一个具有IPv6地址的报错页面,并对上述系统域名在学校权威DNS服务器的校外视图配置此IPv6地址。当校外IPv6客户端请求解析域名时,DNS返回此报错页面的IPv6地址,提示用户当前系统需在校内访问,达到既部署IPv6,又保证系统安全性的效果。
系统域名已注销
7个系统对应域名已注销,但部分网页上仍存在这些系统的链接,导致访问失败。对这些链接,根据爬虫程序生成的收集链接结果文件,定位其源页面。所有链接均位于网络与计算中心运营的网站群网页内,由管理员删除失效链接。
下一步工作
经过一系列排查和部署工作,华中科技大学门户网站IPv6支持度显著提升。
下一步,学校网络与计算中心将进一步贯彻落实IPv6规模部署应用:第一,审查新上线的网站和信息系统,确保均具备IPv6接入条件;第二,展开定期复测,每月爬取校门户网站二三级链接,测试IPv6可访问性,推动相应部署,实现长效监测和持续推进。
作者:严格知、柳斌、洪剑珂、刘恋(华中科技大学网络与计算中心)
责编:项阳