谷歌部署IPv6 面临应用匮乏与安全挑战

虽然谷歌的部署项目才完成一半,但是其IPv6网络已初见成效

谷歌正在其内部员工网络里部署IPv6,这个项目比公司工程师预期要长。

谷歌网络工程师Irena Nikolova在Usenix Large Installation System Administration(LISA)会议上讨论了公司范围内的部署问题。会上,她分享了一些教训,其他打算把自己的网络转移到下一代互联网协议的组织或许可以从中吸取些经验。

从这些经验中,谷歌学习到IPv6的迁移不仅仅是更新软硬件而已,还需要引入新的管理和员工,特别是从事过相关任务的管理者。而对于早期使用者而言,还需要跟供应商进行大量交涉进行漏洞修复并完成代码。

Nikolova认为那些尝试过迁移到IPv6的人也遇到了和谷歌一样的问题。

这个项目已经执行了四年时间,比工程师团队预期的时间要长了很多,且才完成了一半。但是该公司此次有了很大收获。谷歌约95%的工程师都可以通过IPv6接入网络。最终,该公司计划部署一个纯粹的IPv6网络。

这个项目始于2008年,最初由一小群谷歌工程师开始执行,谷歌最终的目的是要一个完全的IPv6网络。

此次更新可以获取部分利润。即便这是一个私有网络,但是谷歌的内部网络使用的是公共IP地址,而谷歌的内部IPv4地址已经快要用完。而且,谷歌工程师也在着手开发谷歌自有工具和应用的IPv6版本,同时需要在发布前对这些版本进行内部测试。

最后,谷歌工程师意识到自己在部署IPv6的时候面临了一个“先有鸡还是先有蛋”的问题。和许多组织一样,由于缺少运行于IPv6上的第三方应用,所以谷歌也迟迟没有部署IPv6,而反之又导致更少的企业部署IPv6网络。

谷歌的内部网络广布全球200多间办公室,员工约三万。它包括各个公司的各类设备,如思科系统,瞻博网络(Juniper Networks)和Aruba Networks,大量商用与家用的应用以及各种操作系统,包括Linux,Mac OS X和微软Windows。

工程师尽可能的按照现有IPv4网络搭建了新的IPv6网络,目的是最大程度保持路径和流量畅通。最初,他们是在IPv4网络上运行IPv6,这个过程被称为隧道技术。然后,他们还在条件允许的地方安装了双堆栈,这样IPv4和IPv6就可以同时运行了。他们希望最终实现纯IPv6网络。

为了向设备分配IPv6地址,谷歌按照IETF的RFC 5375规则进行部署。每个大学或办公室都可以分配到一个/48位的地址块,这意味着他们有2的80次方逻辑地址可供分配。这样一来,每栋建筑就会获取一个/56地址块(约为2的72次方逻辑地址)而且每个VLAN会接收到一个/64地址块(约为2的64次方逻辑地址)。为了向特定设备分配地址,工程师使用了无状态地址自动配置功能(SLAAC),这样设备就可以自己分配地址。这种方法免去了为每个设备手动分配地址的需要。至少在还不能支持DHCPv6(用于IPv6网络基于服务器的寻址机制)的操作系统中是需要的。

Nikolova认为,最主要的问题是网络设备和软件中对于IPv6的支持还不够。

许多网络设备目前仅在软件中支持IPv6,这意味着大多数流量处理只在软件中执行的而不是在自定义硬件中执行。结果,IPv6网络操作消耗的处理器周期比IPv4操作要多。至少有一个无线设备供应商不支持ACL。同样,该网络的WAN加速设备不能加密IPv6数据流,因为他们使用的协议——WCCP——还不支持IPv6。除了网络设备外,打印机也存在问题,因为很多设备都不能完全支持IPv6。

应用和操作系统兼容性也存在挑战。该公司已经逐步淘汰了不支持IPv6的应用,不过还有很多有效的工具,如数据库和结账应用,仍在运行,因为他们不能被轻易修改或升级。虽然目前大多数操作系统的版本可支持IPv6,但是它们不能默认提供支持,由此便加重了管理员和用户的负担。

谷歌的书面表述中称,该项部署涉及大量新的未经验证的技术问题,因此漏洞代码会让供应商联合起来,这样一切支持IPv6的东西都会成为挑战。

谷歌也面临服务供应商的挑战,也就是那些为谷歌办公室提供网络连接的公司。新的SLA并非和IPv4时候一样严格。它们连接单独IPv6端点的时间更长。谷歌本身不得不重写自己的网络监控工具使其兼容IPv6。

尽管存在这些障碍,Nikolova仍然对团队打造纯IPv6网络充满信心。

Nikolova认为从某种角度而言,谷歌已经不再将IPv6称呼为新协议,反而是开始将IPv4视为旧协议。