高校IPv6规模部署技术要点
要真正做到IPv6的推广,服务端的内容服务建设尤为重要,没有IPv6内容服务的提供,客户端接入推广将成为摆设。
IPv6在高校的推广部署主要包含两个方面:一是客户端接入推广,即网络接入推广;二是服务端推广,即内容服务推广。只有做到这两方面的真正大规模推广部署,才算是完整的IPv6规模化部署,并且随着推广进度逐步推进,后者的推广部署尤为重要。
客户端规模化部署
随着IPv6协议的发展和成熟,相应的厂商也紧跟步伐,推出IPv6兼容性的产品,不同于IPv6推广初期(试商用之前),现在主流的终端系统或者应用都已经完全兼容IPv6协议。
终端系统或者应用的IPv6支持,主要包括操作系统和浏览器两方面的支持,如主流操作系统Windows、Linux/Unix、Andorid以及IOS;以及主流浏览器IE高版本、Edge、Firefox、Edge等。以上两类系统和应用的主流版本均已经完美支持兼容IPv6协议。
有着终端的IPv6支持兼容基础,学校只需接入IPv6网络并且分配IPv6地址到终端,即可以实现IPv6的客户端接入的规模化部署。
当然,遗憾的是,现阶段家用路由器很大一部分还不支持IPv6,随着IPv6的大力推广,相信主流的家用路由器厂商会及时跟进,推出符合家用需求的IPv6路由器产品。
服务端规模化部署
互联网的发展和推广,服务端的建设和推广尤为重要。如在CERNET建设之初,为了鼓励服务端的内容服务建设,网络计费采用单向收费模式,即只计算流入费用。该政策有利于鼓励服务端的内容服务建设和推广。
纯IPv6网络CERNET2也是如此,要真正做到IPv6的推广,服务端的内容服务建设尤为重要,没有IPv6内容服务的提供,客户端哪怕有IPv6网络也无法创造IPv6流量,IPv6客户端接入推广将成为摆设,IPv6将成为空谈。
作为CERNET华南网络中心节点,华南理工大学是早期参与教育网IPv6建设和研究的高校之一,从建设和研究初期,就已经着手客户端和服务端的IPv6部署与研究,成为第一批服务内容同时提供IPv6和IPv4双栈的高校之一,积累了丰富的经验。
随着2017年两办推进IPv6规模部署行动计划国家政策的推动,华南理工大学从横向(服务内容和类别)以及纵向(服务数量)继续发力,扩大服务端内容服务的规模化部署。
服务端的部署按服务类型分类,可以归纳为如下几个方面:
一是Web应用。
Web应用是最典型的信息服务模式,当前信息系统的主流服务模式为BS模式,即Web模式,Web应用几乎囊括全校90%的应用,如WWW、统一认证、门户、OA等。
二是DNS服务。
DNS是学校的网络基础服务,通过DNS的IPv6支持部署和配置,可以有效创造流量,是应用推广的基础和前提条件,通过DNS的IPv6支持部署,才可以有效地通过域名透明地引导用户进行IPv6访问,实现服务端的IPv6内容透明服务。
三是Email系统。
Email系统是所有高校都具有的网络基本服务,Email有着持续邮件流量和较高的用户使用频率,并且拥有持续的全球化的流量,每天都有邮件来往于国内外。Email也包括多种服务协议,故而Email的IPv6支持部署,是体现学校IPv6推广层次的主要体现。
以上三个应用类别涵盖了高校信息服务的主要形式,也是IPv6服务端规模化部署的主要考核指标内容,实现以上内容的IPv6部署,即可实现学校的服务端内容服务的大规模部署。
服务端IPv6部署方法
本文以华南理工大学实践为例,阐述上述三个应用类别的IPv6部署方法以及需注意的问题。
01
Web的IPv6支持实施
现主流版本的Web服务器(如IIS、Tomcat、Apache Httpd以及Ngnix等)几乎都支持IPv6协议,只需编译IPv6模块和配置服务IPv6地址,即可实现Web服务器的IPv6服务,该方法为简单的原始方式,通过该方式,即可实现Web服务的IPv6支持。然而在全校性的实际部署中,在IPv4网络上几乎都采用统一的Web出口方式来架设Web服务器架构,从而实现全校的统一Web入口。
在IPv6环境下,该Web架构得到推广和升级,进而继续采用该架构进行IPv6的部署,这是当前主流的Web架构的演变方式,如图1所示。
图1 Web 服务体系架构的演变
从以上架构演变可以看出,该架构采用反向代理的工作形式实现Web统一出入口,可以统一在反向代理上实现IPv6、Https、WAF、WebCache以及Http2.0等功能和服务,只需在该统一出入口实现IPv6,所有通过它的Web应用就具备了IPv6的基础,并且由于真正的Web服务器部署在反向代理之后,对用户透明,还起到安全保护的作用。因此,Web的IPv6部署一般不采用原始模式,而是在该Web体系架构下实现,其实现原理如图2所示。
图2 反向代理原理
反向代理服务器的实现有开源软件(如Squid、Ngnix和Apache httpd等)或商业化产品(如负载均衡设备、WAF设备或者统一资源管理设备等)。
通过该方式,可以快速实现静态网站的IPv6实现,这也是实现Web应用的IPv6部署的第一步。而Web应用是否可以通过该方式实现IPv6的访问,还需注意如下几个问题:
第一,地址透传问题。
由于采用反向代理,真正的Web服务器只看到代理服务器而看不到客户端,而Web服务器“期待”与客户端直接通信以获取客户端的真实情况,故而需要进行信息“透传”,可以采用X-Forwarded-For标准指令来实现客户端的地址透传,以便Web服务获取到真正的客户端地址等信息。以Ngnix为例,其配置信息如图3所示。
图3 Ngnix 下的 X-Forwarded-For 配置
第二,防止代理服务器成为DDoS攻击。
部分Web应用自身具备抗DDoS攻击功能,由于网络层只有代理服务器与其通信,故而需要防止Web应用将代理服务器识别为DDoS攻击源而拒绝服务,根据实际情况进行设置,如将代理服务器IP地址加到白名单。
第三,确认Web应用是否支持IPv6格式。
Web应用是否支持IPv6的访问,最常见的问题是Web应用是否支持IPv6地址格式的相关数据结构设计。例如具备登陆来源记录的应用系统(如Webmail或者统一认证系统等),如不支持IPv6地址结构,那么在来源记录上会出现异常而无法真实记录IPv6来源地址,该类问题只能通过程序修改来实现。支持双栈地址记录的信息后,可以实现如图4所示的地址记录。
图4 应用系统地址记录
02
DNS的IPv6支持实施
DNS在IPv6的服务端部署上起到支撑和引导作用,为了实现DNS的IPv6支持,需做到如下几个方面:
第一,服务支持。
即能通过IPv6地址访问DNS服务器,获得DNS查询服务,简言之,需在现有的DNS服务器上配置IPv6地址并启动该地址的DNS查询服务,或者部署全新的纯IPv6地址的DNS服务器。当前主流的DNS服务器系统(如Bind、Unbound、Windows系统自带DNS服务器以及商业化产品如zDNS等)均支持IPv6,图5是以Bind配置为例配置IPv6的DNS支持。
图5 Bind DNS IPv6 配置示意
通过配置后的IPv6地址可以进行DNS查询,如图6所示。
图6 IPv6 DNS 查询
第二,支持AAAA记录。
即可以配置域名的AAAA记录,将访问域名指向IPv6地址,如图7所示。
图7 DNS zone 文件的 IPv6 记录
第三,父域登记。
如DNS为权威服务器,还需在edu.cn域名服务器登记IPv6记录,以实现纯IPv6环境下的DNS解析,并通过公共查询来查询该记录,如图8所示。
图8 权威域名查询结果
通过以上三方面的配置,即完成DNS的IPv6支持部署,完成IPv6服务端对外提供访问的基础条件。
03
Email系统的IPv6支持实施
Email系统是较为复杂的典型应用,其服务模块包含:SMTP、POP/IMAP、Webmail。需做到以上所有模块均支持IPv6,才算Email系统支持IPv6,这也是早期诸多学校未实现的原因之一。
主流的开源和商业Email产品基本都已经支持IPv6,服务端上只需对服务器分配IPv6地址,以及相应模块启动IPv6地址侦听即可启动服务。此外,Email具有反垃圾功能等要求,因此跟IPv4一样,其IPv6地址也需做相应的配置,其中最典型的就是SPF记录和地址的PTR记录。华南理工SPF记录和PTR记录如下所示:
spf.scut.edu.cn. TXT “v=spf1 ip4:202.38.193.0/24 ip4:202.112.17.0/24 ip6:2001:da8:2000:2193::/64 ip6:2001:da8:2000:2017::/64 -all”3.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.3.9.1.2.0.0.0.2.8.a.d.0.1.0.0.2.ip6.arpa. 3600 IN PTR mailX3.scut.edu.cn.
成功实现IPv6通信的邮件信头如图9所示。
图9 IPv6 信头截图
而对于WebMail,它是一种Web应用,可以直接启动Web应用的IPv6服务或者采用上述的Web应用IPv6部署方式即可实现IPv6支持。
此外,需切记地址透传的问题,否则不仅存在地址记录问题,还会导致邮件系统的频率限制(认为所有人都是用反向代理的IP地址发信),从而使所有通过WebMail登陆的用户都无法发信。
其他问题及解决方法
01
性能与单点故障问题
采用反向代理作为统一入口的访问方式,所有Web应用流量将全部通过反向代理系统,因此性能和单点故障问题尤为突出。
特别是较多的Web应用或性能要求高的应用(例如启用了较多应用系统的https或者下载文件较大的应用),均对反向代理提出性能的挑战,同时单点故障也会导致系统群体服务不可达的情况。
基于以上原因,在选择反向代理服务器的时候需充分考虑足够的性能以及做HA高可用架构。
02
程序兼容性问题
地址格式的IPv6不兼容是最典型的问题,特别在强日志应用方面,需充分考虑系统是否支持IPv6地址格式的日志记录和呈现,如不支持,需通过修改程序的方式进行解决。另外,在Email邮件系统上,IPv6协议不仅需要在邮件系统模块上配置,也需要在DNS等系统上做相应的配置,防止配置不全导致邮件通信异常。
03
安全问题
安全问题是困扰和阻碍IPv6应用推广的最大问题。由于IPv6应用的启用需在服务器上启用IPv6地址协议,IPv4的安全策略对其没有作用,很容易造成漏洞泄漏,从而导致严重的安全事故。为了解决该问题,需做到如下几点:
第一,不需要IPv6服务的服务均禁用IPv6地址侦听,如SSHD等服务,通过修改配置的方式可以限制其不再进行IPv6访问。
第二,借助操作系统的防火墙功能,在IPv6上进行访问控制设置,如Linux下的Ip6tables等,均可以实现访问控制。注意务必做到最小化访问,如只对需要的IPv6端口开放,其它都限制访问。
第三,如是Web服务,尽可能采用反向代理的方式,保护后端的真实Web服务器,从而规避IPv6部署带来的安全问题。
04
系统前瞻性问题
为了做好IPv6部署和整改准备,建议采购的所有软件系统和硬件系统,均加上IPv6兼容性的硬指标要求,实现对IPv6协议的支持。
最后,总结IPv6规模化部署,按由易到难、由简单到复杂、由基础到应用的顺序,推荐步骤如下:第一步网络部署;第二步DNS解析实现;第三步Web实现;第四步DNS服务实现;第五步其他。
作者:黄建波、陆以勤(华南理工大学信息网络工程研究中心)