新媒体应用系统 IPv6 改造研究与实践

在 IPv6 基础资源相关应用技术研究过程中,以中央广播电视 总台(以下简称“总台”)新媒体应用系统为研究对象,综合 分析了新媒体应用系统的特点,并参照总台现有新媒体应用搭 建了 IPv6 测试应用,进行应用 IPv6 改造的研究和实践。基 于本次研究和实践情况,提出了符合总台新媒体应用发展的 IPv4/IPv6 改造方法。

摘要

由于互联网中 IPv4 地址池资源的逐渐枯竭,以及 物联网、大数据等新技术的快速发展,IPv6 网络作为 互联网未来的发展趋势,以其网络的优越性,决定了 IPv4 网络会逐渐向 IPv6 网络改造。IPv6 在解决 IPv4 的地址匮乏问题的同时,还具有以下几方面的特点: 

◆ IPv6 可采用更简洁的层次化的地址结构,有利 于骨干网路由器对数据包的快速转发,提升性能和用 户体验;

◆ IPv6 增强了对流的控制,能促进互联网多媒体 应用得到发展; 

◆网络层的认证与加密提供了更高的安全性; 

◆功能可灵活扩展,为支持未来新应用奠定了 基础。 

目前总台新媒体应用系统运行在以 IPv4 为主体的 网络中,存在 IPv4 BGP 路由表迅速膨胀、路由效率下 降、产生地址碎片等问题和隐患,新媒体业务创新、 服务转型升级的需求将来有可能受到 IPv4 网络资源的 制约,使得资源优势和规模效益得不到充分发挥。而 IPv6 网络是解决上述问题的主要途径,为此,在 IPv6基础资源相关应用技术研究过程中,对新媒体应用系 统从 IPv4 向 IPv6 改造方案展开专项研究。 

一 主流应用组件 IPv6 支持情况调研  

绝大部分应用系统的开发部署会基于特定的应用 组件进行,因此应用系统对 IPv6 的支持很大程度上依 赖于所使用的应用组件对 IPv6 的支持情况。基于此, 有必要针对目前总台新媒体应用系统使用较多的主流应 用组件进行调研,以掌握这些组件对 IPv6 的支持情况。 

1. 操作系统 

操作系统作为各种应用的基础,目前基本都能 够支持 IPv6,但是在具体使用和支持程度上,不同操 作系统间还存在较大差异,主要体现在是否默认安装 IPv6 协议栈,是否支持 DHCPv6/ND RDNSS,是否支 持 DNS 自动发现机制等方面。 根据总台的实际应用情况,我们调研了常见的 34  款系统,其中 31 款系统宣称已经支持 IPv6,因篇幅原 因,表 1 仅列举了部分操作系统对 IPv6 的支持情况。

2. 数据库和中间件 

当前主流的数据库和中间件已具备了 IPv6 基础支 撑能力。

3. 开发软件 

大部分应用软件都是通过各种程序设计语言编制 来实现,为开发应用软件还需要各种相应的开发环境 或工具,这些语言和工具本身也都是一种软件,这些 软件也逐渐适应市场需要,开始支持 IPv6。下面将列 举一些常见的支持 IPv6 的程序开发软件。

二 总台新媒体应用系统分析 

 1. 总台新媒体应用系统架构分析 

在研究过程中,我们对新媒体集成发布平台、央 视频、央视新闻、掌上通等总台现有新媒体应用系统 进行了调研,总台新媒体应用系统架构根据服务对象 和安全管理要求考虑,在系统架构上可分为 App 客户 端、前台应用、后台应用,以及上 / 下游系统,如图 1 所示。 

◆ App 客户端为互联网用户提供浏览、视频、直 播等互联网服务,常见系统为 iOS 和 Android 两种; 

◆前台应用收到 App 客户端的访问请求,根据具 体情况为客户端提供网关 API、数据缓存、搜索引擎等服务,常见的开发框架有基于 Java 的 Spring 框架, 基于Python的Djongo框架,基于Go语言的Beego框架, 开发语言的选择主要取决于系统开发团队实力和企业 文化等因素。常见选用的缓存数据库主要是 Redis;  

◆后台应用通过后台 Web 为后台编辑数据并存 入数据库中,处理系统后台业务逻辑,后台服务可供 前台应用搜索、调用,同时为上下游系统提供接口。 常 见 的 数 据 库 类 型 有 Oracle、MySQL、MariaDB、 PostgreSQL 等,文件存储用来存储各种文件,包括图 片、视频、音频等。常见的中间件为 Tomcat、Nginx、 Apache、WebLogic 等; 

◆上下游系统为前、后台应用提供传统制播类的 服务支持,以及其他各种所需的服务支持。

image.png

  2. 总台新媒体应用系统 

IPv6 改造的关键技术点 基于对总台新媒体应用架构的分析,对于总台新 媒体应用系统 IPv4/IPv6 改造的研究,可主要集中在以 下几个关键技术点。 

(1)网络改造 

网络架构改造是为了保证在现有的 IPv4 环境持续 提供服务的基础上,进行 IPv6 双栈网络升级改造。通 过云服务商将IPv6流量路由至总台应用系统IPv6地址, 从而实现应用系统对外提供 IPv6 接入服务,且在此架 构中,IPv6 应用沿用了在 IPv4 环境中的安全防护措施, 如 DDoS 防御、Web 防火墙等,保证 IPv6 网络能够有 效防范安全风险,拥有不低于 IPv4 网络的同等安全防 护体系。 

(2)应用改造 

应用软件改造是指为了保证在现有系统正常提供 服务的情况下,对应用系统进行改造,确保同一套软 件系统可以同时支持互联网用户的双协议接入。

(3)客户端改造 

客户端改造的重点要实现对客户端所处网络环境 的判定,从而实现与服务器的正常通信。在双栈协议 的环境下,客户端要实现优先使用 IPv6 协议连接,同 时也需要做好异常处理,如运营商 IPv6 网络故障的情 况下,要保证客户端快速切换至 IPv4 通道进行连接, 向用户正常提供服务,避免极端情况下 IPv6 网络不稳 定造成的对用户的影响。 

(4)应用后台改造 

在 IPv6/IPv4 双栈协议的情况下,需要对应用系 统的接入层进行改造,以支持 IPv6/IPv4 双栈协议通信 能力。具体改造内容包括:改造私有通信组件的 Socket 函数,以支持绑定 IPv6 地址;改造 Nginx 等应用代理 的配置,增加对 IPv6 的支持;对个别不支持 IPv6 的通 信协议,要通过增加代理等方式以支持 IPv6 客户端的 接入。目前此次研究实践采用的测试方案中,为保证 系统运行稳定性,从接入层组件到 AppServer 以及其他 的后端组件如消息队列、日志、数据库的通信,仍使 用 IPv4 协议进行通信,以降低 IPv6 改造对后端应用的 影响。尽管后端组件之间通信不需要使用 IPv6 协议, 但这些组件仍需要对功能进行排查,以确保所有涉及 客户端 IP 地址的情境中,均能够正确识别和记录数据。 对于后台系统与上下游系统的交互,需要根据上 下游系统的具体情况进行综合分析,采用合适的改造 技术完成。 

(5)域名解析 

在当前的 IPv4 域名解析服务中,仅需要发布域 名的 A 记录,即 IPv4 地址解析记录。而支持 IPv6 的 应用则必须要发布域名的 AAAA 记录,即 IPv6 地址 解析记录。此次研究实践中域名解析是采用阿里云提 供的 DNS 域名解析服务,在确保服务商支持同时解 析 IPv6 和 IPv4 地址的情况下即可满足域名解析需求。 对于部分自购域名解析设备的机构,需要检查域名解 析设备是否支持同时发布 A 记录和 AAAA 记录。 

三 总台新媒体应用系统 IPv6 改造实践  

1. 总台新媒体应用系统IPv6 改造思路 

新媒体应用系统 IPv6 改造过程中,应该结合自 身的业务运营特点和应用系统现状进行统筹考虑,每 种改造技术都有各自的优缺点,因此需结合实际需求 在不同的场景下选择不同的改造技术: 

◆对于新建业务系统的场景,推荐采用支持双栈 的技术,同时支持 IPv4 和 IPv6,等网络达到纯 IPv6 时, 可以将业务系统配置为纯 IPv6; 

◆对于多个孤立 IPv6 网络互通的场景,如多个 IPv6 数据中心的互联,可以采用隧道技术,将 IPv6 数据封装到 IPv4 网络上传输,以减少部署的成本和 压力; 

◆对于已经上线的业务系统,不提供 IPv6 支持 的,目前可采用地址协议转换技术快速获取对 IPv6 用户的支持能力。  

由于各应用使用的功能组件存在一定的差异, 因此不同的应用系统需改造的内容存在一定的差异, 改造时需根据各应用自身情况分别进行改造。在实际 梳理和改造方面建议重点关注如下三个方面: 

◆配置层面:包括应用配置、中间件配置、常 用软件配置等,明确是否涉及了 IP 配置,需要修改 为 IPv6 地址; 

◆功能层面:包括系统代码、第三方类库、sql 或脚本以及中间件,确认是否支持 IPv6,是否需要修 改代码或更新类库、中间件版本等; 

◆数据层面:包括表结构、数据文件,检查是 否涉及存储或导出 IPv6 地址,支持 IPv6 是否需要扩 展字段长度等。 

结合前期对总台新媒体应用的调研情况,新媒体集 成发布平台对接总台各新媒体客户端,完成各客户端内 容发布任务,对内联通总台传统制播系统,在系统架构 和功能上具备总台新媒体应用系统的典型特点,具有较 大的代表性。因此,参照新媒体集成发布平台和其对接 的其中一个前端客户端——体育 App 客户端,搭建了应 用测试环境,进行新媒体应用系统的 IPv6 改造实践。 

2. 总台新媒体应用——新媒体集成发布平台测试 系统 IPv6 改造 

(1)测试架构 

根据新媒体集成发布平台的系统架构,本次改造 实践搭建了系统的最小测试环境,模拟系统的主要业 务线功能进行改造,以验证系统在 IPv6 改造中涉及的 各项内容和技术。 Advanced Television Engineering

image.png

(2)基础环境 

试验环境主 要由3台功能高 度集成的服务器 组 成, 服 务 器 使 用 VMware 平台虚 机,模拟搭建了前 台应用网关 API、 Nginx web 代 理、 前台缓存数据库 Redis、后台 MySQL 数据库、前台和 后台的搜索引擎 Solr、后台应用 CMS 以及 Zookeeper 服务。 

存储采用EMC- ISILON三节点分布式文件存储, 挂载点空间为 3T。测试环境演示所用的是从线上存储 中拷贝过来的文件,并且按照线上存储的路径规划存 放在测试存储中。 网络环境为 IPv4 和 IPv6 双栈网络,在测试中仅 使用 IPv6 网络作为实际通信网络,完成设备间通信、 存储挂载以 及接口间调 用 等。 如 表 4 所示。 

为了不影响线上系统,测试系统使用了中 视广信公司自有的域名 ctvit.tv 进行演示。在阿 里云 DNS 系统中配置 AAAA 记录将表 5 中的 4 个域名指向 GUA 地址 2408:8606:28c0:d::100, 完成主线功能测试。 

(3)改造适配调整 

a. 中间件 IPv6 适配调整 

Tomcat 

修改 tomcat context.xml 的数据库连接方式,改为 jdbc:mysql://address=(protocol=tcp)(host=fd00:851:fb02::2109) (port=3306)。 

Redis 

先修改 redis.conf 的绑定地址为 IPv6——bind  fd00:851:fb02::2109,然后重启 Redis。 

命令行:cd /usr/local/redis/src 

Zookeeper 

修改服务器配置,在 hosts 里,把 ::1 对应的 localhost 改个别名,比如 localhost-IPv6。 

Akka 

线上 CMS 系统使用了 Akka,但 是在 IPv6 环境下调试产生了一些问题 并且无法解决。目前暂时把Akka去掉, 未来是否能兼容 IPv6 需要继续找解决 方案,如还无法良好适配则考虑用其 他软件实现。 

Nginx 

在 Nginx 的配置文件中,增加供 IPv6 访问的虚拟主机。 

b. 配置项 

IPv6 的适配调整 CMS 系统 关于 Redis 的配置改为 IPv6 地址:fd00:851:fb02::2109 关于 Zookeeper 改为 IPv6 地址:fd00:851:fb02::2107:2181 关于 Solr 的配置改为 IPv6 地址: inner.search.url= http://[fd00:851:fb02::2109]:8080/search/ push.search.url= http://[fd00:851:fb02::2109]:8180/ search/,http://[fd00:851:fb02::2109]:8180/search/ API 网关 关于 Redis 的配置改为 IPv6 地址:fd00:851:fb02::2109 关于 Solr 的配置改为 IPv6 地址: inner.search.url= http://[fd00:851:fb02::2109]:8080/search/ push.search.url= http://[fd00:851:fb02::2109]:8180/ search/,http://[fd00:851:fb02::2109]:8180/search/ Solr 修改 Solr 所有分片中的数据库连接: jdbc:mysql://address=(protocol=tcp)(host=fd00:851:fb02::2109) (port=3306)/cms ? zeroDateTimeBehavior=convertToNull 访问地址: 对内:solr IPv6-3 cd /usr/local/tomcat-search http://[fd00:851:fb02::2109]:8080/search/ 对外:solr IPv6-3 cd /usr/local/tomcat-rsync http://[fd00:851:fb02::2109]:8180/search/ 

3. 总台新媒体应用——体育 App 客户端测试应 

用 IPv6 改造 体育 App 客户端作为总台重要的垂直内容客户 端,拥有较高的日活用户访问量,在体育行业有比较 重要的影响力,同时在总台内部的技术实现上有比较 重要的代表性。因此选为此次 IPv6 改造实践的对象,在 IPv6 环境下对其中的发布业务功能依照以下流程进 行了测试。 

image.png

主要测试步骤如下: 

◆登录新媒体内容集成分发系统,并选择进入 CCTV5 体育频道管理页面; 

◆新建一条多媒体稿件并确认发布; 

◆发布后查看稿件状态为正常状态; 

◆进入编排单后,选择“体育快报”模块,将新 建稿件添加到相应模块并调整布局顺序。 测试中,新建多媒体稿件发布完成,在手机客户 端刷新界面找到“体育快报”模块 , 新发布稿件可以 正常显示。 

4. 测试结果 

试验应用改造测试中,支持 IPv6 的组件通过配置 修改即可实现迁移,并对不支持的组件进行了替换。 应用改造后,可在 IPv6 单栈下运行,支持 IPv6 用户的 正常访问,并可根据上下游系统的网络环境实现系统 间接口的双栈调用。 

 四 总台新媒体应用系统 IPv6 改造方法  

1. 应用系统从 IPv4 到 IPv6 的过渡方案 

新媒体应用系统 IPv6 改造过程中,应该结合自身 的业务运营特点和应用系统现状进行统筹考虑,每种 改造技术都有各自的优缺点,因此需结合实际需求在 不同的场景下选择不同的改造技术和过渡方案:

◆对于新建业务系统的场景,推荐采用支持双栈 的技术,同时支持 IPv4 和 IPv6,等网络达到纯 IPv6 时, 可以将业务系统配置为纯 IPv6;

◆对于已经上线的业务系统,不提供 IPv6 支持的, 可以采用地址协议转换技术。  借鉴互联网大厂的改造方案,可针对总台的实际 应用系统梳理出几类 IPv6 改造模式。

◆针对类似媒资云服务平台的应用系统,前端用 户存在迫切的 IPv6 访问需求,但前台和后台应用适配 改造工作均较复杂,需要进行反复测试验证,需要有 充足的时间评估改造方案的,可在前期采取渐进式改 造方案,在面向用户的层面进行协议转换的改造模式, 以快速获取对 IPv6 访问的支持。此模式存在后端服务 器无法获取用户真实来源 IP 的问题,且需要注意协议 转换的性能要求。该模式是目前互联网大厂对现有应 用升级中采用得较多的方案;

◆针对前 后台架构清晰 且需要获取用 户真实来源 IP 的应用系统,可对前台应用进行双栈改造,前台业务 程序支持 IPv6 访问,向后台 / 第三方系统调用时依然 可以使用 IPv4;

image.png

◆参照上述总台新媒体应用改造实践的方式,对 系统的客户端、前台、后台全面进行双栈改造,具备 同时支持 IPv4 和 IPv6 网络的能力。 此外,由于各应用使用的功能组件存在一定的差 异,因此不同的应用系统需改造的内容存在一定的差 异,改造时需根据各应用自身情况分别进行改造。在 实际梳理和改造方面建议重点关注如下三个方面:

image.png

◆配置层面:包括应用配置、中间件配置、常用 软件配置等,明确是否涉及 IP 配置,需要修改为 IPv6 地址; 

◆功能层面:包括系统代码、第三方类库、sql 或 脚本以及中间件,确认是否支持 IPv6,是否需要修改 代码或更新类库、中间件版本等; 

◆数据层面:包括表结构、数据文件,检查是否 涉及存储或导出 IPv6 地址,支持 IPv6 是否需要扩展字 段长度等。 

2. 应用改造方法 

总台新媒体应用系统用户繁多,种类庞杂,涉及 4 渐进式改造模式 5 分段兼容式 改造模式 3 体育 App 客户端 IPv6 改造测试 流程图 Advanced Television Engineering 085各个工作域以及多个安全层级,根据此次研究实践, 将应用系统划分为 App 客户端、前台应用、后台应用 以及上下游系统。通过以新媒体集成发布平台和体育 App 为试点应用的改造实践,为各个典型应用的改造 总结以下三点意见: 

(1)新媒体应用系统客户端 App 客户端常见的开发环境有 iOS 和 Android 两 种,其中 iOS 使用开源的网络框架 AFNetworking, Android 使用开源的网络框架 OkHttp,这两个框架原 生支持 IPv6 协议,iOS ≥ 9.0(最新是 15)的系统支持 IPv6,Android ≥ 4.0(最新是 12)的系统支持 IPv6。 因此互联网用户对客户端的访问,只需要通过在 当前 DNS 域名解析服务中,增加支持 IPv6 的应用所 必需的域名 AAAA 记录,即 IPv6 地址解析记录,就可 以支持 IPv6 用户访问。 

(2)新媒体应用系统前、后台应用 通过研究实践发现,基于 x86 平台和现有开源开 发框架开发的前、后台应用系统已经原生支持 IPv6, 只需要通过配置就可以支持 IPv6。因此,在前、后台 应用中,如果是在双栈网络环境,通过配置可以支持 IPv4 和 IPv6 双栈访问。当网络环境升级为纯 IPv6 时, 也可以快速地配置为纯 IPv6 访问。在正式环境改造的 过程中,需要考虑增加灰度测试区域。互联网服务可 通过合理的 DNS 导流和终端消息推送的方式引导用户 访问至灰度测试区域,通过对测试用户合法的信息采 集,能及时反馈报错信息,通过响应时间调整相应的 灰度测试区支撑能力。 对于较早前开发的应用系统,无法通过配置就支 持 IPv6 的,则需要比较不同支持 IPv6 方法的效益性、 安全性和效率性。如只需简单升级中间件,修改代码 就可以实现支持双栈的,可以采用升级的方法。如果 太过复杂,成本太高,则建议采用网络地址 / 协议转 换(NAT/PT)的技术。 

(3)总台新媒体应用系统的上、下游系统 总台新媒体应用系统的上、下游系统比较复杂, 大体分为以下三种情况: 

第一,含专用设备的传统制播类系统,这类系统对 IPv6 协议栈支持并不十分友好,短期内建议采用网络地 址 / 协议转换(NAT/PT)技术,增加这类网关类设备 部署在 IPv4 和 IPv6 网络的边界位置。长期而言,这类 转换设备本身的性能和可靠性也是一个新的瓶颈点,建 议在有条件的情况下升级为支持 IPv6 协议栈的系统。 

同时,在这种系统互联中,在相互访问的过程中 有可能会出现必须通过隧道技术才能完成的访问类型, 例如台外演播室或业务系统边界需要通过 IPv4 网访问 其他 IPv6 网络环境。这时,我们可以采用隧道技术, 但是基于上文对隧道技术的复杂性和封装解封效率的分 析,不建议在网站 IPv6 升级改造过程中大规模采用隧 道技术。

第二,使用商业软件搭建的服务系统,这类系统 取决于商业软件厂商支不支持 IPv6 协议栈。如果在不 支持的情况下,也可以采用网络地址 / 协议转换(NAT/ PT)技术,增加这类网关设备部署在 IPv4 和 IPv6 网络 的边界位置。长期而言,则需要督促厂商推出支持 IPv6 的更新版本,或者使用替代支持 IPv6 的类似商业软件。 

第三,可以通过配置实现支持 IPv6 的系统,这类 系统由于开发环境原生支持 IPv6,只需要通过配置即 可实现支持 IPv6 系统,在双栈网络中,可以实现 IPv4 和 IPv6 的双协议栈访问,当网络升级为纯 IPv6 时,可 以配置为单 IPv6 协议栈。 

五 结束语  

目前已完成以新媒体集成发布平台和体育 App 为 参照的试验系统的 IPv6 改造。通过在改造中不断总结 经验,确保总台在以后完成面向公众提供服务的互联网 应用 IPv6 改造工作,为全面支持 IPv6 提供基础能力与 实践经验。总台作为广电行业新技术的策源地,积极推 行 IPv6 技术,不断完善技术体系,并根据自身的情况 科学分析、合理布局,设计符合广电行业自身发展的技 术领先、安全性高、易扩展的新一代网络新媒体应用, 为总台业务、科研、管理提供强有力的支持。 

参考文献

[1] 中央网络安全和信息化委员会办公室. 推进互联网协议第六版(IPv6)规模部署行动计划[R].

[2] 国家广播电视总局科技司 . 广播电视媒体网站 IPv6 改造实施指南(2018)[R].

[3] 轩献 .IPv6 发展历程及省级广播电视台 IPv6 改造初探 [J]. 现代电视技术 . 2019(06):145- 148+139. 

[4] 李培琳 , 牛妍华 , 崔竞飞 . 浅析广电网络 IPv6 化进程中过渡技术的选择 [J]. 广播与电视技 术 .2016(06):88-95. 

[5] 王伟 , 潘林 . 广电直播前端 IPv6 改造概述 [J]. 广播电视网络 .2022,29(03):79-82.

转载请注明来源:《现代电视技术》 作者:中央广播电视总台 范小杏 北京中视广信科技有限公司 乔斌 孟浩