华为网络技术系列
丛书主编 徐文伟
华为数据通信架构与技术
企业“IPv6+”网络规划设计与演进
主编 文慧智 王璇
副主编 柳巧平 王思生
人民邮电出版社
北京
图书在版编目(CIP)数据
企业“IPv6+”网络规划设计与演进 / 文慧智,王璇主编.-- 北京:人民邮电出版社,2023.10
(华为网络技术系列)
ISBN 978-7-115-62173-3
Ⅰ. ①企… Ⅱ. ①文… ②王… Ⅲ. ①计算机网络-网络规划 ②计算机网络-网络设计 Ⅳ. ①TP393.02
中国国家版本馆CIP数据核字(2023)第120037号
◆主 编 文慧智 王璇
副 主 编 柳巧平 王思生
责任编辑 韦毅 哈宏疆
责任印制 李东 焦志玮
◆人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 https://www.ptpress.com.cn
固安县铭成印刷有限公司印刷
◆开本:720×1000 1/16
印张:24 2023年10月第1版
字数:470千字 2023年10月河北第1次印刷
定价:129.00元
读者服务热线:(010)81055552 印装质量热线:(010)81055316
反盗版热线:(010)81055315
广告经营许可证:京东市监广登字20170147号
本书基于华为在企业“IPv6+”网络领域多年积累的丰富经验和实践,以“IPv6/IPv6+”技术发展趋势和技术实现原理为切入点,分析“IPv6/IPv6+”网络的应用场景、关键驱动力,以及“IPv6/IPv6+”网络演进面临的挑战和问题,给出企业“IPv6+”网络演进的基本原则、路线规划和关键步骤,并详细阐述企业“IPv6+”网络的规划设计与演进方案,包括广域网络、数据中心网络、园区网络、终端、应用系统、安全等。本书旨在为读者全面呈现企业“IPv6+”网络演进的规划设计、技术实现,并给出部署建议。
本书是企业“IPv6+”网络规划设计与演进的实用指南,汇聚华为优质解决方案和丰富的工程应用实践,内容全面、框架清晰、通俗易懂、实用性强,适合网络架构师、网络规划工程师、网络交付工程师,以及对企业“IPv6+”网络技术感兴趣的读者阅读,也适合相关企事业单位的网络技术人员参考。
主任 徐文伟 华为董事、科学家咨询委员会主任
副主任 王雷 华为数据通信产品线总裁
赵志鹏 华为数据通信产品线副总裁
吴局业 华为数据通信产品线研发总裁
委员(按姓氏音序排列)
慈鹏 丁兆坤 段俊杰 冯苏
韩涛 郝炟 胡伟 李武东
刘建宁 马烨 孟文君 钱骁
邱月峰 孙建平 王辉 王武伟
王焱淼 王志刚 业苏宁 殷玉楼
张亮 祝云峰 左萌
技术指导 孙建平
主编 文慧智 王璇
副主编 柳巧平 王思生
编写人员 刘淑英 赵浩宾 敖日格勒 刘佳
孙跃卓 王肖飞 李科峰 张淑敏
许永帆 李 娇 侯延祥 何平
丰春霞 曹慧娟 李云星 段临晶
李风乐 陈佩珊 张帆 王晴
李宇哲 冯泽琳
“2020年12月31日,华为CloudEngine数据中心交换机全年全球销售额突破10亿美元。”
我望向办公室的窗外,一切正沐浴在旭日玫瑰色的红光里。收到这样一则喜讯,倏忽之间我的记忆被拉回到2011年。
那一年,随着数字经济的快速发展,数据中心已经成为人工智能、大数据、云计算和互联网等领域的重要基础设施,数据中心网络不仅成为流量高地,也是技术创新的热点。在带宽、容量、架构、可扩展性、虚拟化等方面,用户对数据中心网络提出了极高的要求。而核心交换机是数据中心网络的中枢,决定了数据中心网络的规模、性能和可扩展性。我们洞察到云计算将成为未来的趋势,云数据中心核心交换机必须具备超大容量、极低时延、可平滑扩容和演进的能力,这些极致的性能指标,远远超出了当时的工程和技术极限,业界也没有先例可循。
作为企业BG的创始CEO,面对市场的压力和技术的挑战,如何平衡总体技术方案的稳定和系统架构的创新,如何保持技术领先又规避不确定性带来的风险,我面临一个极其艰难的抉择:守成还是创新?如果基于成熟产品进行开发,或许可以赢得眼前的几个项目,但我们追求的目标是打造世界顶尖水平的数据中心交换机,做就一定要做到业界最佳,铸就数据中心带宽的“珠峰”。至此,我的内心如拨云见日,豁然开朗。
我们勇于创新,敢于领先,通过系统架构等一系列创新,开始打造业界最领先的旗舰产品。以终为始,秉承着打造全球领先的旗舰产品的决心,我们快速组建研发团队,汇集技术骨干力量进行攻关,数据中心交换机研发项目就此启动。
CloudEngine 12800数据中心交换机的研发过程是极其艰难的。我们突破了芯片架构的限制和背板侧高速串行总线(SerDes)的速率瓶颈,打造了超大容量、超高密度的整机平台;通过风洞试验和仿真等,解决了高密交换机的散热难题;通过热电、热力解耦,突破了复杂的工程瓶颈。
我们首创数据中心交换机正交架构、Cable I/O、先进风道散热等技术,自研超薄碳基导热材料,系统容量、端口密度、单位功耗等多项技术指标均达到国际领先水平,“正交架构+前后风道”成为业界构筑大容量系统架构的主流。我们首创的“超融合以太”技术打破了国外FC(Fiber Channel,光纤通道)存储网络、超算互联IB(InfiniBand,无限带宽)网络的技术封锁;引领业界的AI ECN(Explicit Congestion Notification,显式拥塞通知)技术实现了RoCE(RDMA over Converged Ethernet,基于聚合以太网的远程直接存储器访问)网络的实时高性能;PFC(Priority-based Flow Control,基于优先级的流控制)死锁预防技术更是解决了RoCE大规模组网的可靠性问题。此外,华为在高速连接器、SerDes、高速AD/DA(Analog to Digital/Digital to Analog,模数/数模)转换、大容量转发芯片、400GE光电芯片等多项技术上,全面填补了技术空白,攻克了众多世界级难题。
2012年5月6日,CloudEngine 12800数据中心交换机在北美拉斯维加斯举办的Interop展览会闪亮登场。CloudEngine 12800数据中心交换机闪耀着深海般的蓝色光芒,静谧而又神秘。单框交换容量高达48 Tbit/s,是当时业界其他同类产品最高水平的3倍;单线卡支持8个100GE端口,是当时业界其他同类产品最高水平的4倍。业界同行被这款交换机超高的性能数据所震撼,业界工程师纷纷到华为展台前一探究竟。我第一次感受到设备的LED指示灯闪烁着的优雅节拍,设备运行的声音也变得如清谷幽泉般悦耳。随后在2013年日本东京举办的Interop展览会上,CloudEngine 12800数据中心交换机获得了DCN(Data Center Network,数据中心网络)领域唯一的金奖。
我们并未因为CloudEngine 12800数据中心交换机的成功而停止前进的步伐,我们的数据通信团队继续攻坚克难,不断进步,推出了新一代数据中心交换机——CloudEngine 16800。
华为数据中心交换机获奖无数,设备部署在90多个国家和地区,服务于3800多家客户,2020年发货端口数居全球第一,在金融、能源等领域的大型企业以及科研机构中得到大规模应用,取得了巨大的社会效益和经济效益。
数据中心交换机的成功,仅仅是华为在数据通信领域众多成就的一个缩影。CloudEngine 12800数据中心交换机发布之后一年多,2013年8月8日,华为在北京发布了全球首个以业务和用户体验为中心的敏捷网络架构,以及全球首款S12700敏捷交换机。我们第一次将SDN(Software Defined Network,软件定义网络)理念引入园区网络,提出了业务随行、全网安全协防、IP(Internet Protocol,互联网协议)质量感知以及有线和无线网络深度融合四大创新方案。基于可编程ENP(Ethernet Network Processor,以太网络处理器)灵活的报文处理和流量控制能力,S12700敏捷交换机可以满足企业的定制化业务诉求,助力客户构建弹性可扩展的网络。在面向多媒体及移动化、社交化的时代,传统以技术设备为中心的网络必将改变。
多年来,华为以必胜的信念全身心地投入数据通信技术的研究,业界首款2T路由器平台NetEngine 40E-X8A / X16A、业界首款T级防火墙USG9500、业界首款商用Wi-Fi 6产品AP7060DN……随着这些产品的陆续发布,华为IP产品在勇于创新和追求卓越的道路上昂首前行,持续引领产业发展。
这些成绩的背后,是华为对以客户为中心的核心价值观的深刻践行,是华为在研发创新上的持续投入和厚积薄发,是数据通信产品线几代工程师孜孜不倦的追求,更是整个IP产业迅猛发展的时代缩影。我们清醒地意识到,5G、云计算、人工智能和工业互联网等新基建方兴未艾,这些都对IP网络提出了更高的要求,“尽力而为”的IP网络正面临着“确定性”SLA(Service Level Agreement,服务等级协定)的挑战。这是一次重大的变革,更是一次宝贵的机遇。
我们认为,IP产业的发展需要上下游各个环节的通力合作,开放的生态是IP产业成长的基石。为了让更多人加入到推动IP产业前进的历史进程中来,华为数据通信产品线推出了一系列图书,分享华为在IP产业长期积累的技术、知识、实践经验,以及对未来的思考。我们衷心希望这一系列图书对网络工程师、技术爱好者和企业用户掌握数据通信技术有所帮助。欢迎读者朋友们提出宝贵的意见和建议,与我们一起不断丰富、完善这些图书。
华为公司的愿景与使命是“把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界”。IP网络正是“万物互联”的基础。我们将继续凝聚全人类的智慧和创新能力,以开放包容、协同创新的心态,与各大高校和科研机构紧密合作。希望能有更多的人加入IP产业创新发展活动,让我们种下一份希望、发出一缕光芒、释放一份能量,携手走进万物互联的智能世界。
徐文伟
华为董事、战略研究院院长
2021年12月
随着数字经济与实体经济融合的不断深入,数字化发展进入动能转换新阶段,数字经济的发展重心由消费互联网向产业互联网快速转移。未来全球接入互联网的设备将达到千亿甚至万亿级别,海量连接必将成为推动互联网发展的核心动力。当前IPv4(Internet Protocol version 4,第4版互联网协议)网络地址存在资源枯竭、扩展性不足等问题,已经无法满足上述业务诉求,成为制约产业互联网发展的关键瓶颈。因此,业界普遍认为,全面部署IPv6(Internet Protocol version 6,第6版互联网协议)是互联网演进升级的必然趋势、网络技术创新的重要方向、网络强国建设的基础支撑。同时,随着高速移动、云网融合、产业承载等新型承载需求的爆发,网络的发展对其确定性、可编程、质量可视、智能运维等能力提出了更高要求。因此,积极开展下一代互联网的网络创新顶层设计,加快推动信息通信技术与千行百业数字化进程深度融合,成为推进IPv6规模部署工作的重中之重。
2019年,在推进IPv6规模部署专家委员会的指导下,我国产业界成立了“IPv6+”(Internet Protocol version 6 Enhanced,IPv6增强)创新推进组,中国信通院、中国电信、中国移动、中国联通、华为、中兴、中国石油、中国石化、国家电网、中国工商银行、中国建设银行、中国银联、清华大学、北京邮电大学等积极参与其中。创新推进组提出打造“IPv6+”网络创新体系的战略发展目标,确定用10年左右的时间,以推进IPv6规模部署国家战略为契机,建立可演进创新、可增量部署的“IPv6+”网络技术创新体系,引领中国“IPv6+”核心技术、产业能力及应用生态实现突破性发展,并提供以“IPv6+”系列标准为代表的网络演进创新中国方案。
2021年,中央网络安全和信息化委员会办公室(简称中央网信办)、国家发展和改革委员会(简称国家发展改革委)、工业和信息化部(简称工信部)联合印发《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》,并明确提出“开展‘IPv6+’网络产品研发与产业化,加强技术创新成果转化”。创新推进组积极落实工作,依托我国IPv6规模部署发展成果,整合IPv6相关产业链力量,加强基于“IPv6+”的下一代互联网技术创新,从网络编程、网络切片、确定性路由、网络自智、内生安全以及行业融合应用等方向开展技术研究、试验验证、测试评估、应用示范,不断激发IPv6网络创新潜能,拓展业务支撑能力,加快完善“IPv6+”网络创新体系。
针对当前“IPv6+”网络升级实战过程中缺乏规划、设计、建设、运维指南的难题,华为公司文慧智团队编写了此书。此书汇聚优质的解决方案和丰富的工程实践,以精练的语言、深度的思考和独特的视角,详细阐述了广域网络、数据中心网络和园区网络等开展“IPv6+”升级的架构规划、网络设计和部署建议。本书将理论与实践相结合,具有学术性、实用性、前瞻性,必将为信息通信领域从业者带来新的启示和灵感。
田辉
推进IPv6规模部署专家委员会副秘书长
中国信息通信研究院融合创新中心主任
2023年4月
数字化已经成为全球主旋律,数字经济对世界的影响比以往任何时期都显著。党的十八大以来,以习近平同志为核心的党中央着眼未来、顺应大势,做出了“建设数字中国”的战略决策,以加快数字社会建设步伐,提高数字公共服务水平和营造良好的数字生态,并且将“加快数字化发展 建设数字中国”的战略写进了“十四五”规划中。在向2021年世界互联网大会乌镇峰会致贺信时,习近平主席指出:“数字技术正以新理念、新业态、新模式全面融入人类经济、政治、文化、社会、生态文明建设各领域和全过程,给人类生产生活带来广泛而深刻的影响。”过去几年,全球100多个国家和地区以及地区组织也先后发布了各自的数字化战略。比如,欧盟发布了“数字指南针”战略,致力于企业数字化转型和构建可持续的数字基础设施等;美国发布了“关键与新兴技术国家战略”,致力于成为关键与新兴技术的世界领导者。
数字基础设施是落实数字化战略,建设网络强国、数字中国的基石,已成为支撑全面建设社会主义现代化国家的战略性公共基础设施。中国工程院邬贺铨院士指出,“5G、物联网、云计算、大数据、AI、工业互联网等技术融合在一起构成数字基础设施,IPv6是其中的使能技术,IPv6是数字基础设施的基础技术”。
将IPv6作为数字基础设施的基石,是因为数字基础设施对IP网络提出了新的需求。首先是海量物联的需求,预计到2030年,全球物联规模将达到百亿级别,所以支持海量接入将成为IP网络的重要基础能力;同时,随着云时代的到来,更多企业选择多云的连接,以实现关键的业务备份和最佳的应用服务,这对网络的实时性和灵活性提出了新需求。而面向未来,不仅办公业务上云,生产业务也会向云端迁移,对网络的确定性提出了更高的要求,比如工业控制、远程医疗等要求端到端的时延抖动为毫秒级。这些新的场景不仅需要海量的地址,同时也需要确定性、可编程性、智能运维等能力。数字基础设施需要基于IPv6扩展性创新而来的“IPv6+”技术,以进一步提升业务承载质量,更好地实现网络基础设施的价值。
基于以上因素的考虑,IPv6及“IPv6+”部署的重要性和必然性已经形成广泛共识。近几年,党中央、国务院高度重视IPv6下一代互联网发展,在“十三五”和“十四五”规划纲要、《国家信息化发展战略纲要》、《“十三五”国家信息化规划》、《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》(以下简称《通知》)等战略规划中均做出了相关部署。2017年11月,中共中央办公厅和国务院办公厅向社会公开印发实施《推进互联网协议第六版(IPv6)规模部署行动计划》(以下简称《行动计划》),明确“十三五”期间我国IPv6规模部署的年度工作时间表和重点任务,为加快推进IPv6规模部署工作提供了方向指引。中央网信办、国家发展改革委和工信部等部门组织成立推进IPv6规模部署专家委员会,立足具体国情开展了一系列重点推进IPv6规模部署的工作,并发布了一系列有针对性和明确指标要求的文件和通知,如《通知》《IPv6流量提升三年专项行动计划(2021—2023年)》《深入推进IPv6规模部署和应用2022年工作安排》等,突出“IPv6/IPv6+”部署和建设指标。一些省市也陆续出台了“IPv6/IPv6+”配套政策,以加快部署节奏。
在这样的背景下,各企事业单位的IPv6改造工作迫在眉睫,但又面临很多实际的问题和挑战,例如地址规划、演进策略、改造方案选择等。面对这些问题和挑战,各企事业单位应该以怎样的改造策略开展工作,从而实现IPv6改造大目标的落地呢?
本书在这样的背景下应运而生,结合华为在全球范围长期积累的丰富网络经验,聚焦IPv6及“IPv6+”技术发展热点,从行业趋势、技术原理和实践场景等多个角度,阐述“IPv6/IPv6+”部署实施可能遇到的问题和相关解决方案。目前国内外市场上“IPv6/IPv6+”全网演进实施指南方面的相关图书较少,本书汇聚华为优质的解决方案和丰富的工程应用实践,理论与实践相结合,期望能帮助业界读者应对“IPv6/IPv6+”网络设计演进部署的难点和未来面临的业务挑战。
本书内容
本书共12章,大体可分为以下4部分内容。
趋势和理论基础部分:包括第1、2章,主要介绍IPv6发展的必然趋势,并对IPv6基础协议进行回顾、总结,同时根据最新发展情况阐述“IPv6+”技术体系架构,并简要介绍“IPv6+”的技术原理。
总体部分:包括第3、4章,主要围绕“IPv6/IPv6+”网络驱动力和在改造中可能面临的演进挑战,介绍企业在“IPv6+”网络演进中的总体演进策略,包括演进基本原则、路线规划和演进改造关键步骤等。
方案部分:包括第5~11章,根据演进步骤,详细阐述IPv6地址申请、规划和管理方式,并着重介绍广域网络、数据中心网络和园区网络的规划部署,以及IPv6改造演进方案,同时对终端和应用改造以及相关改造工具、运维支撑方式给出通用建议。
安全部分:包括第12章,首先介绍IPv6对安全的影响,以及IPv6演进中安全面临的挑战;然后介绍对应的安全演进原则和思路,以及包含的安全演进阶段;最后重点讲解园区网络、数据中心网络和广域网络的IPv6安全防护方案。
致谢
本书由华为技术有限公司“数据通信解决方案设计部”及“数据通信数字化信息和内容体验部”联合组织编写。在编撰本书的过程中,编者得到了来自华为内部和外部的广泛指导、支持和鼓励。借本书出版的机会,编者衷心感谢王雷、胡克文、赵志鹏、孙建平、吴局业、邱月峰、程剑、韩涛、左萌、王武伟、马烨、王辉、高良传、丁兆坤等专家和领导一直以来的支持和帮助!本书由人民邮电出版社出版,人民邮电出版社的编辑给予了严格、细致的审核。在此,诚挚感谢相关领导的扶持,感谢人民邮电出版社各位编辑和各位编委的辛勤工作!
最后,我们还要特别感谢推进IPv6规模部署专家委员会副秘书长、中国信息通信研究院融合创新中心主任田辉为本书作序,我们备受鼓舞,未来当更加努力。
参与本书编写和技术审校的人员虽然有多年ICT(I nformation and Communications Technology,信息通信技术)从业经验,但不妥之处在所难免,望读者不吝赐教,有任何意见和建议,请发送至weiyi@ptpress.com.cn,在此表示衷心的感谢。
随着数字化转型和产业升级的不断推进,IT(Information Technology,信息技术)与各个行业的结合越来越紧密,行业信息化改革的深化随之带来更高的网络要求。然而,与之形成鲜明对比的是IPv4技术体系逐渐捉襟见肘,已不能满足越来越丰富的网络业务要求。因此,各国逐渐意识到IPv6的必要性,快速推进IPv6部署成为各国ICT领域政策和战略的重要组成部分。
本章旨在回顾IPv6发展进程并概述其协议基础,帮助读者快速掌握IPv6的技术要点和特征(特别是相较于IPv4技术做出的优化),从而理解为何部署IPv6成为各国网络技术发展的关键战略点。对于IPv6的关键技术,本章进行简要说明以帮助读者理解其重要特征。
本节主要回顾IPv6的诞生背景及发展进程,通过分析IPv6创建时考虑和解决的关键问题,帮助读者理解IPv6相较于IPv4的主要优化点及其演进发展的必然性。
IPv6诞生初期存在协议相对复杂、学习和部署成本高等问题,而IPv4地址不足的缺点还可通过NAT(Network Address Translation,网络地址转换)等技术加以规避,因此IPv6改造部署迟缓,进展并不顺利。随着5G、大数据、IoT(Internet of Things,物联网)、AI(Artificial Intelligent,人工智能)等技术的蓬勃兴起,业务发展对网络提出了更高要求,而IPv4带来的问题日益凸显,由此加速了IPv6的演进,近年来IPv6迎来井喷式发展。本节通过回顾IPv6在国内外的发展进程,识别其演进过程中可能面临的问题和挑战,以便制定后续演进方案。
20世纪90年代初期,随着互联网的蓬勃发展,网络规模急剧膨胀,IPv4地址短缺和资源分配不均问题开始浮现。因特网工程任务组(Internet Engineering Task Force,IETF)启动研究下一代IP地址,并于1991年12月发布RFC 1287,列举了下一代协议需要关注和解决的主要问题。
最重要的是解决IP地址短缺问题。其次,面向互联网需要同时支持TCP(Transmission Control Protocol,传输控制协议)/IP和OSI(Open System Interconnection,开放系统互连)协议栈的情况,构建多协议体系架构。同时,吸取IPv4增强安全能力困难的教训,下一代协议应在设计之初即充分考虑安全需求问题,构建安全体系结构。此外,新协议还应支持流控以满足语音、视频等应用程序的实时应用需求,并面向高阶应用构建能够满足未来创新性要求的协议架构。
IETF同时创建了IPng(IP Next Generation,下一代互联网协议)工作组,以保证后续工作顺利进行。IPng提出了对下一代互联网协议的多项建议,其中3个主要提案为CATNIP(Common Architecture for the Internet,互联网通用架构)、SIPP(Simple Internet Protocol Plus,简单互联网协议增强)和TUBA(TCP and UDP with Bigger Addresses,使用更大地址的TCP和UDP)。
1995年1月,RFC 1752介绍了上述3个提案的关键方案及其存在的问题,同时正式采用IANA(Internet Assigned Numbers Authority,因特网编号分配机构)分配的版本号将IPng更名为IPv6,并综合多个提案给出IPv6报文头及扩展报文头的定义。由此,IPv6初具雏形。
1995年12月,RFC 1883给出了较完整的IPv6标准。1998年12月,经过不断迭代和改进,RFC 2460最终替代RFC 1883,成为现行IPv6的主体。其中对IPv6主要特征和优化点的介绍如下。
•扩展地址能力:IPv6将IP地址大小从32 bit增加到128 bit,以支持更高级别的层次化结构、更多的地址节点和更简单的地址自动配置。组播地址中添加的Scope(作用域)字段提高了组播路由的可扩展性。新型任播地址可用于向一组节点中的任何一个发送数据包。
•简化报文头格式:通过将IPv4报文头中的部分字段删除或变为可选,降低通用情况下的转发处理成本,减少IPv6报文头的开销。
•改进对扩展选项的支持:IP报文头通过扩展选项以支撑更高效的转发,对选项长度的限制较为宽松,为将来引入新选项保留了更大的灵活性。
•流标记能力:IPv6给特定流的数据包添加标签,通过转发节点对其进行特殊处理,从而实现差异化服务。
•身份验证和隐私功能:为IPv6指定了支持身份验证、数据完整性和数据机密性(可选)的扩展。
基于以上特点,RFC 2460对IPv6进行了如下说明。
•明确IPv6为128 bit地址空间,定义IPv6基本报文头格式,改进报文头结构,以提高数据包处理效率。
•明确扩展报文头格式及其转发处理方式,并定义4种初始扩展报文头:Hop-By-Hop Optional Header(逐跳可选报文头,用于携带每个节点都需要检查处理的信息)、Routing Header(RH,路由报文头,用于实现IPv6源路由)、Fragment Header(FH,分片报文头,用于标记分片报文)、Destination Optional Header(DOH,目的选项报文头,用于承载仅需要由数据包的目的节点处理检查的可选信息)。
•改进QoS(Quality of Service,服务质量),定义带有流标签和扩展包头的QoS选项。
•建议大于MTU(Maximum Transmission Unit,最大传输单元)的数据包只在头节点进行分片,并明确分片标记。同时建议采用PMTU(Path Maximum Transmission Unit,路径最大传输单元)发现整个路径的MTU,结合上层协议减少不必要的报文分片。
如上所述,RFC 2460对IPv6进行了关键优化,奠定了IPv6的发展基础。之后,一系列重要RFC也陆续发布,以支撑IPv6能力的扩展。
RFC 2461:定义NDP(Neighbor Discovery Protocol,邻居发现协议),用于邻居链路层地址的解析、状态维护和清除。主机(Host)可以通过NDP发现其连接的路由器网关地址,并结合无状态地址自动配置,实现IPv6的即插即用功能。
RFC 2462:定义SLAAC(Stateless Address Auto-Configuration,无状态地址自动配置)能力,指定了主机在IPv6场景下自动配置接口的步骤,包含生成链路本地地址、通过SLAAC生成站点本地和全局地址以及DAD(Duplicate Address Detection,重复地址检测)过程。当前RFC 2462已被RFC 4862所代替。
RFC 2463:定义ICMPv6(Internet Control Message Protocol version 6,第6版互联网控制报文协议),通过差错报文和消息报文向源节点传递诊断、通知和管理信息。当前RFC 2463已被RFC 4443所代替。
RFC 4291、RFC 4193:定义IPv6新地址架构,包含链路本地地址、全球唯一地址、组播地址、任播地址等多种类型的IPv6地址。
RFC 3041:定义临时地址,用于SLAAC场景随机生成,以保护隐私并防止主机暴露。当前RFC 3041已被RFC 8981所代替。
RFC 4301:定义IPsec(Internet Protocol Security,互联网络层安全协议),以提高IP的安全增强能力,使所有应用程序更便于支持类似VPN(Virtual Private Network,虚拟专用网络)的安全加密和隔离。
RFC 6146、RFC 6147:定义有状态NAT64(Network Address Translation IPv6-to-IPv4,IPv6到IPv4的网络地址转换)协议及其与DNS64(Domain Name System IPv6-to-IPv4,IPv6到IPv4的域名系统)的协同方式,解决IPv6与IPv4的兼容性问题。
RFC 7381:给出企业IPv6部署指南(Enterprise IPv6 Deployment Guidelines),指明企业在IPv6演进各阶段内需要考虑的关键问题和改造点。
RFC 8200:2017年,RFC 2460被RFC 8200代替,RFC 8200在已有基础上做了一些参数修正。
RFC 8402、RFC 8754:正式发布SRv6(Segment Routing over IPv6,基于IPv6的段路由)框架,标志着“IPv6+”时代来临。“IPv6+”利用IPv6的扩展能力,实现了更多灵活增强能力(如源路由实现路径调度),提供了更高品质的网络体验,真正实现了IPv6的价值。
随着IPv6 RFC的不断完善,IPv6也在加速发展,历经多个关键节点,如今IPv6已经得到了广泛部署和应用。
1992年底,IETF提出关于IP演进的系统建议并形成白皮书,并于次年9月建立下一代IP领域(IPng Area),启动下一代IP研究。
1996年,伴随一系列RFC先后发布,IPv6的协议体系基本建立。同年3月,IETF启动6bone实验网络建设,并于2003年对外发布,将6bone网络作为IPv6的测试平台。6bone网络最初通过Overlay方式运行在IPv4网络之上,后来逐渐建立IPv6单栈网络,连接了50多个国家的1000多个站点。
2011年,IANA的最后一个IPv4地址块被申请,标志着全球IPv4地址块全部分配完毕。此时,用于个人计算机和服务器系统上的操作系统基本上都已支持IPv6配置,包括Windows、Mac OS X、Linux和Solaris等。
2012年6月6日,国际互联网协会举行世界IPv6启动纪念日,多家知名网站如谷歌、Facebook(2022年更名为Meta)和雅虎等开始永久性支持IPv6访问。
2016年,IAB(Internet Architecture Board,因特网体系委员会)发表声明,表示不再要求新标准或扩展标准兼容IPv4,同时需审校已有标准,要求其必须支持IPv6。
2018年起,SRv6、网络切片、IFIT(In-situ Flow Information Telemetry,随流检测)、APN6(Application-aware IPv6 Networking,应用感知的IPv6网络)等标准先后发布,预示着“IPv6+”时代的来临。“IPv6+”充分发挥了IPv6的灵活性和可扩展性优势,创造了全新的IPv6的协议体系,为网络带来全新体验和价值,可应对业务新需求。
2019年10月30日,中央网信办成立“IPv6+”创新推进组,通过“IPv6+”产学研用等产业链力量,持续完善“IPv6+”技术标准体系。同年11月25日15时35分,RIPE NCC宣布欧洲地区最后一个IPv4地址块分配完成,标志着各区域IPv4地址完全耗尽,IPv6时代全面来临。
近年来,欧美地区的主要发达国家颁布了多项政策,以推动IPv6规模化部署。美国于2012年发布《政府IPv6应用指南/规划路线图》,明确要求到2012年底政府对外提供的所有互联网公共服务必须支持IPv6,到2014年底政府内部办公网络全面支持IPv6。2020年,美国白宫办公厅发布《完成到IPv6的过渡》(Complete Transition To IPv6 Memorandum,M-21-07)文件,提出“人们普遍认为,完全过渡到IPv6是确保互联网技术和服务未来增长及创新的唯一可行选择。联邦政府必须扩大和加强其向IPv6过渡的战略承诺,以跟上和利用行业趋势。在之前倡议的基础上,联邦政府仍然致力于完成这一过渡”。该文件同时明确了政务网“IPv6 Only”的演进策略,进度要求为:2023年前达到20%,2024年前完成50%,2025年前突破80%。最近5年,随着USGv6发展监测项目的建立,美国也实现了对政府、高校、企业网站和DNS等领域IPv6改造进程的长期监测,助力IPv6在美国的推广普及。
欧盟于2008年发布《欧盟部署IPv6行动计划》,要求在欧洲范围内分阶段推进企业、政府部门和家庭用户网络向IPv6迁移。比利时充分发挥欧盟总部坐落于其首都布鲁塞尔的优势,大力借助欧盟投资,在政府层面成立理事会推动IPv6落地,已成功发展为欧洲IPv6部署率最高的国家,用户普及率高达66%。
亚洲许多国家也在加快推进IPv6规模部署事宜。例如,印度政府积极倡导并大力支持IPv6的发展和应用,并于2010年7月公布向IPv6迁移的详细路线图。根据APNIC(Asia Pacific Network Information Center,亚太互联网络信息中心)统计,截至2022年3月,印度已成为全球IPv6用户数最多的国家,IPv6用户数占比超过76%。日本、马来西亚等国也在加快推动IPv6演进,截至2019年10月,IPv6用户数占比已达30%。
根据APNIC统计样本数据,全球IPv6用户渗透率已经超过31%,各区域IPv6渗透率情况如表1-1所示。
谷歌根据终端用户接入网络所使用的地址对全球IPv6用户渗透率情况进行监测,发现到2020年,使用IPv6访问谷歌网站的用户占比已超过30%,具体如图1-1所示。
除政府之外,Facebook、谷歌等大型OTT(Over The Top)公司也推出了IPv6 Only策略。其中,Facebook对数据中心基础设施的改造开始于2014年,从双栈承载逐渐向IPv6单栈演进,并且新增的数据中心网络均采用IPv6单栈方式上线,数据中心内运行的所有应用程序和服务均支持IPv6。基于Facebook的测试和分析显示,由于移除NAT等原因,端到端IPv6连接相较于原IPv4,转发速度可以提高10%~15%。根据Facebook的官方信息,2017年Facebook数据中心内部的IPv6流量已达99%,且半数以上数据中心集群仅支持IPv6。
我国于1994年获准接入互联网,是IPv4时代互联网行业的后来者,在IPv4地址资源获取、互联网核心技术开发与标准制定等方面都未能占得先机。因此,我国一直高度重视IPv6发展,着力推动IPv6技术演进。1998年,国内第一个IPv6试验教育网CERNET(China Education and Research Network,中国教育和科研计算机网)建设完成,并接入6bone网络;2003年,中国下一代互联网示范工程CNGI(China Next Generation Internet,中国下一代互联网)启动建设,这也是当时世界上最大的纯IPv6互联网;2008年,北京奥运会首次利用IPv6建立官方网站。
然而整体上,我国IPv6前期发展较为迟缓,被多位专家喻为“起了大早,赶了晚集”。早在2003年,我国就建设了当时最大的纯IPv6网络,成为全球最早开展IPv6和下一代互联网技术标准研究的国家。但是截至2017年12月,我国网络用户数中的IPv6用户数占比不足0.39%,IPv6用户普及率排在全球第67位。相比之下,同期美国IPv6用户数已占其网民总数的37%,排名全球第二。
在2017年全球网络技术大会上,邬贺铨院士总结我国IPv6部署不力的原因主要有以下5个方面。第一,落入了私有地址的陷阱难以自拔,NAT可暂时应对IPv4公网地址的不足,但跨过多级公网后,对私有地址的管理相当复杂,地址转换破坏了端到端的透明性,致使无法对用户进行溯源。第二,政府缺乏明确的市场导向和应用先行意识。第三,对内容服务的瓶颈重视不够且缺乏有力的政策。第四,一些误解和干扰影响了国家发展IPv6战略的执行。第五,将IPv6与网络对立,认为IPv6会影响网络安全。
近几年,党中央、国务院高度重视IPv6下一代互联网发展,在“十三五”和“十四五”规划纲要、《国家信息化发展战略纲要》、《“十三五”国家信息化规划》、《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》(以下简称《通知》)等战略规划中均做出了相关部署。2017年11月,中共中央办公厅和国务院办公厅向社会公开印发实施《推进互联网协议第六版(IPv6)规模部署行动计划》,明确“十三五”和“十四五”期间我国IPv6规模部署的总体目标、路线图、时间表和重点任务,为加快推进IPv6规模部署工作提供了方向指引。为了确保《行动计划》取得实效,中央网信办、国家发展改革委和工信部等部门组织成立推进IPv6规模部署专家委员会,立足具体国情,开展了一系列重点推进IPv6规模部署的工作。经过4年多的不懈努力,如今我国IPv6产业发展环境已日趋成熟。
1.国内IPv6用户发展现状
我国建设国家IPv6发展监测平台,通过统计IPv6互联网活跃用户数,直观反映国内IPv6互联网活跃用户占比情况,如图1-2所示,从而判断我国整体IPv6的发展进程。根据国家IPv6发展监测平台最新统计信息,截至2022年4月,全国IPv6互联网活跃用户数已突破6.7亿,全国IPv6互联网活跃用户占比超过65%。
说明:全国IPv6互联网活跃用户数是指中国(不含港澳台地区)已获得IPv6地址,且在近30天内有使用IPv6访问网站或移动互联网应用的互联网用户数量。
由上述数据可见,自2017年中共中央办公厅和国务院办公厅发布指导文件以来,国内IPv6用户渗透率获得了快速增长,用户数量的增加也在同步驱动互联网IPv6应用的加速部署和基础信息设施的IPv6性能提升。
2.网站应用IPv6可用度
网络应用IPv6可用度反映我国网站和移动互联网应用的IPv6部署情况。国家IPv6发展监测平台数据表明,政务网站、中央企业网站、金融示范单位网站、双一流高校网站等改造进度较好,Top 100互联网应用IPv6支持率提升也取得了良好进展,具体情况如表1-2所示。
3.基础设施准备度
基础设施服务主要涉及基础网络连接,如IDC(Internet Data Center,互联网数据中心)、CDN(Content Delivery Network,内容分发网络)、云服务等,用于满足各行业的信息化基础服务诉求。根据国家IPv6发展监测平台发布的数据,目前基础设施服务升级改造正在快速推进。其中,IDC升级的主要目标是其出口和内部网络、安全设备、负载均衡设备、服务器操作系统以及其他辅助运维系统均支持IPv6。目前,中国电信、中国移动、中国联通等基础电信企业已完成全部907个IDC节点的IPv6改造,可以全面提供IPv6服务。截至2020年4月,全国范围内CDN服务企业支持IPv6的节点数已超过2942个,IPv6本地覆盖能力达到85%,全国覆盖能力超过99%。此外,国内主要云服务提供商已完成IPv6云主机、负载均衡、内容分发、域名解析等公有云产品的双栈化改造。面向公众提供服务的云服务平台中,云产品的平均IPv6改造率已接近70%。
综上所述,近年来,国内IPv6用户规模迅速扩大,绝大部分互联网应用已具备IPv6服务能力,运营商网络连接、IDC、CDN、云服务、DNS等基础设施在IPv6改造方面也取得了可喜进展。规模化的互联网IPv6用户体量和丰富的IPv6互联网应用相辅相成,推动国内IPv6演进发展进入快车道,同步带动配套的信息化产业成熟发展,为行业组织内部信息化基础设施的IPv6改造奠定了良好基础。
随着各项新技术的飞速发展和IPv6升级改造的稳步推进,国家和各大企事业单位也逐渐意识到IPv6的独特优势(包括良好的扩展性、端到端透明性、海量地址空间、内嵌安全等),认可其在满足产业升级和全新网络需求方面的优良表现。基于IPv6扩展性而发展出的“IPv6+”技术体系,如SRv6、网络切片、IFIT、APN(Application-aware Networking,应用感知网络)等,更能有力推动网络和产业升级,实现“由万物互联向万物智联的升级,由消费互联网向产业互联网的升级”。2021年7月,中央网信办、国家发展改革委、工信部联合印发《通知》,提出既要通过政策着力解决关键问题,加速推进IPv6规模部署和应用,又要从政策驱动转向应用需求驱动,鼓励开展“IPv6+”产业创新,引领全球发展方向。《通知》的关键内容如下。
•明确IPv6 Only单栈演进目标。
•深度优化IPv6网络,确保IPv6网络的关键性能和服务指标与IPv4网络相同。
•增强IPv6标准研制力量,协同推进国家标准、行业标准、团体标准制定。
•明确对各行业生产物联终端、工业互联网和数据中心的IPv6部署要求,加快IPv6安全的研究和部署。
•提出到2025年末,全面建成领先的IPv6技术、产业、设施、应用和安全体系,我国IPv6网络规模、用户规模、流量规模位居世界第一。
•明确“IPv6+”作为IPv6发展核心关键技术指标,加强技术创新成果转化,使我国成为全球“IPv6+”技术和产业创新的重要推动力量,网络信息技术自主创新能力得到显著增强。
•“IPv6/IPv6+”与千兆光网、5G同步规划建设和实施,新建交换中心和直联点需要全面支持IPv6。
•开展“IPv6+”网络产品研发与产业化,通过实施一批“IPv6+”技术创新应用项目带动全行业融合应用(2025年创新应用项目500个)。
综上可知,5G、IoT、云计算等新技术飞速发展使万物智联时代成为可能,IP的应用范围也在逐步扩大。综合考虑未来新兴业务、国家政策和信息化基础配套产业发展等多方面因素,IPv6成为最适合作为支撑行业和企业组织基础设施目标架构的IP技术。作为IPv6下一代互联网的升级,“IPv6+”可促进网络能力再提升和产业生态再升级。中国信息通信研究院发布的《“IPv6+”技术创新白皮书》指出,“IPv6+”可以实现更加开放活跃的技术与业务创新、更加高效灵活的组网与业务支撑、更加优异的性能与用户体验、更加智能可靠的运维与安全保障。因此,向IPv6及“IPv6+”演进成为企事业单位基础设施信息化建设的热门课题及必然趋势。
本书面向具有一定IPv6基础知识的网络从业人员,因此IPv6的详细介绍不作为叙述重点。为方便读者更顺畅阅读后续内容,本节快速回顾IPv6的关键基础知识,简要介绍在IPv6演进中需重点关注的协议内容。
IPv6拥有海量地址空间,号称“可以为地球上的每一粒沙子提供一个IP地址”,主要得益于其128 bit的地址位数,最多可以提供2128个地址。除地址长度外,与IPv4地址相比,IPv6地址在地址结构、地址表示方式、地址类型方面也做出了优化,其最早在RFC 4291中完成定义,后续被多个RFC继承和更新。
1.IPv6地址表示
IPv6地址由8个16 bit的段表示,段与段之间通过冒号“:”隔离。为精简IPv6地址的表达方法,每个段常表示为4个十六进制数字的形式,并且连续两个或多个均为0的段可以用双冒号“::”代替(如2001:1234:0100:1111:0000:0000:0000:0001可简写为2001:1234:100:1111::1),但拖尾的0不能省略。需要注意的是,RFC 4291指出,在一个IPv6地址中,双冒号只能出现一次。因此,如果存在多个不连续的全0段,则压缩最长段(如2001:0:0:0:1:0:0:1简写为2001::1:0:0:1)。如果连续全0段长度相等,则压缩第一个段(如2001:1234:0:0:1:0:0:1简写为2001:1234::1:0:0:1)。
通常默认IPv6地址由固定前缀、子网ID和接口ID组成,如图1-3所示。
2.IPv6地址结构
IPv6全球单播地址包括全球路由前缀、子网ID和接口ID。其中全球路由前缀和子网ID组成网络前缀,相当于IPv4地址中的网络位;接口ID相当于IPv4地址中的主机位。同时RFC 4291标准建议IPv6地址可将前64 bit作为网络前缀(包括全球路由前缀和子网ID),后64 bit作为接口ID,如图1-4所示。当然,也可基于不同场景下的具体要求对IPv6地址进行前缀长度分配。如在网络节点互联地址中,考虑IPv4最佳实践以及安全性问题,P2P接口互联地址通常采用127 bit地址前缀,网络设备Loopback地址通常采用128 bit前缀。
3.IPv6地址分类
IPv6地址可分为组播地址、单播地址和任播地址,如图1-5所示。与IPv4地址相比,IPv6地址以更丰富的组播地址代替广播地址,同时增加了任播地址类型。
IPv6各类地址的定义及应用场景如下。
组播地址:用于标识一组接口,通常属于不同节点,目的地址为组播地址的报文会被转发到该地址标识的所有接口。
•分配的组播地址:前缀为FF00::/8,类似IPv4组播地址224.0.0.0/3,用来标识一组接口且通常属于不同节点。源节点发送单个数据包,属于该组播组的所有接口都能收到。常见的组播地址应用包括视频直播(IPTV)和OSPF(Open Shortest Path First,开放最短通路优先)等协议报文。
•被请求节点组播地址(Solicited-Node Multicast Address):基于节点的单播或任播地址生成。当一个节点具有单播或任播地址时,就会生成一个与之相对应的被请求节点组播地址,并且加入这个组播组。被请求节点组播地址由固定前缀FF02::1:FF/104和对应IPv6地址的最后24 bit组成,如图1-6所示,其有效范围为链路本地(Link-Local),即通常所说的单播局域范围。被请求节点组播地址主要用于NDP中的地址解析和重复地址检测。
单播地址:用于标识单个接口。目的地址为单播地址的报文会被转发到该地址标识的接口。目前定义的IPv6单播地址主要包括全球单播地址(Global Unicast Address,GUA)、唯一本地地址(Unique Local Address,ULA)、链路本地地址(Link-Local Address,LLA)和IPv6环回地址等。不同单播地址具有特定的使用范围。
•全球单播地址:前缀为2000::/3,在RFC 3587中定义。全球单播地址是全球唯一的、可在Internet中发布的路由地址,类似IPv4的公网地址。目前,各个组织从互联网信息中心或运营商申请到的IPv6地址均为全球单播地址,这也是IPv6地址规划和分配方案中的重点。
•唯一本地地址:前缀为FC00::/7,在RFC 4193中定义。它类似于IPv4的私网地址,仅用于企业内部封闭的网络通信。其中第8比特设置为0(即FC00::/8)时为预留地址,当前暂未定义;第8比特设置为1(即FD00::/8)时用于本地地址分配,并建议后面携带40 bit的全局ID(Global ID)和16 bit的子网ID(Subnet ID)。
•链路本地地址:前缀为FE80::/10,仅限于本地链路范围内使用。节点的链路本地地址可以自动生成,在相邻节点之间使用,如ND(Neighbor Discovery,邻居发现)、无状态地址配置等应用,实现即插即用功能。链路本地地址自动生成的一般原则是LLA=FE80::/10前缀+EUI-64标识符。
•IPv6环回地址:地址为::1/128,类似IPv4地址127.0.0.1。该地址不会被分配给任何接口,它的作用与IPv4中的127.0.0.1相同,负责将IPv6报文发送给自己。
•IPv6未指定地址:地址为::/128,不能被分配给任何节点,也不能作为目的地址。在主机初始化且没有取得自己的地址时,未指定地址可以用在IPv6报文的源地址字段,例如进行重复地址探测时,NS(Neighbor Solicitation,邻居请求)报文的源地址就是未指定地址。
任播地址:用于标识一组接口,通常属于不同节点,目的地址为任播地址的报文会被转发到该地址标识的“最近”的一个接口。任播地址从单播地址空间中进行分配,并使用单播地址的格式。因此,标准中定义接口ID为全0的IPv6地址为子网路由的任播地址(Subnet Router Anycast Address,SRAA),从而区分任播地址和单播地址。任播地址只能作为目的地址,不能作为源地址使用。
IPv6报文由IPv6基本报文头、IPv6扩展报文头和上层协议数据单元3个部分组成。与IPv4相比,IPv6报文的主要变化在于IPv6基本报文头和IPv6扩展报文头,本节将重点介绍这两部分。
1.IPv6基本报文头
IPv6数据包必须包含基本报文头,转发路径中所有设备均可解析报文头内容,以获取报文转发的基本信息。IPv4报文头和IPv6基本报文头格式分别如图1-7和图1-8所示。由于IPv4报文头包含选项(Option)字段,因此长度可变,而IPv6基本报文头则固定为40 Byte。
IPv6基本报文头格式中主要字段的说明如表1-3所示。
如上所述,IPv6基本报文头相比IPv4报文头有诸多变化,如表1-4所示。
2.IPv6扩展报文头
在IPv4中,IPv4报文头的可选字段——选项包含安全(Security)、时间戳(Timestamp)、记录路由(Record Route)等信息,这些信息可以将IPv4报文头长度从20 Byte扩充到最多60 Byte。在转发过程中,处理携带这些信息的IPv4报文会占用设备很多资源,因此实际中很少使用。
IPv6将选项字段从基本报文头中剥离,放到基本报文头和上层协议数据单元之间的扩展报文头中,并且仅当需要设备或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展报文头,如图1-9所示。与IPv4相比,IPv6考虑到日后扩充新增选项的需要,不再限制扩展报文头长度。但为了提高处理扩展选项头和传输层协议的性能,扩展报文头长度为8 Byte的整数倍。
当使用多个扩展报文头时,由IPv6基本报文头中的下一个扩展报文头字段指明第一个扩展报文头类型,且每个扩展报文头中的下一个扩展报文头字段均指明下一个扩展报文头类型,从而形成链状报文头列表。如果不存在下一个报文头,则指明上层协议数据单元中的协议类型。
根据RFC 8200的定义,IPv6中常用的扩展报文头如表1-5所示。
ICMPv6和NDP是IPv6的两个重要协议。其中,ICMPv6由IPv4的ICMP(Internet Control Message Protocol,互联网控制报文协议)引申而来。NDP作为ICMPv6的子协议,通过定义的5种ICMPv6报文实现,可实现类似IPv4中ARP(Address Resolution Protocol,地址解析协议)的地址解析功能。两类协议相结合,可以支撑实现IPv6的即插即用、无状态地址配置等功能。
1.ICMPv6简介
在IPv4中,ICMP将数据包传输过程中出现的错误信息(包括目的不可达、数据包过大、超时、回应请求和回应应答等)返回给源节点。而IPv6中,ICMPv6除了提供ICMPv4的常用功能之外,还可实现多项基础功能,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。ICMPv6的协议类型号(即IPv6报文中下一个扩展报文头字段的值)为58,最新定义可参见RFC 8335,报文格式如图1-10所示。其中,类型字段表示消息类型,字段值为0~127的是差错报文,字段值为128~255的是消息报文;编码字段则表示此消息类型细分的类型;校验和字段表示ICMPv6报文的校验和。
ICMPv6报文分为差错报文和消息报文两种。其中,差错报文用于报告在转发IPv6数据包过程中出现的错误信息,主要包括4种类型,如表1-6所示。
ICMPv6消息报文提供诊断功能和附加的主机功能,比如组播侦听发现和ND。常见的ICMPv6消息报文主要包括回传请求(Echo Request)报文和回传应答(Echo Reply)报文,这两种报文也就是通常使用的ping报文。
•回传请求报文:回传请求报文用于发送到目标节点,以使目标节点立即发回一个回传应答报文。回传请求报文的类型字段值为128,编码字段的值为0。
•回传应答报文:当收到一个回传请求报文时,目标节点通过ICMPv6回传应答报文响应。回传应答报文的类型字段的值为129,编码字段的值为0。
2.NDP简介
NDP是IPv6体系中一个重要的基础协议,类似IPv4的ARP和IRDP(ICMP Router Discovery Protocol,ICMP路由器发现协议)功能。NDP主要功能包括地址解析、NUD(Neighbor Unreachable Detection,邻居不可达检测)、重复地址检测、路由器发现、重定向和ND代理等,均通过以下5种ICMPv6消息报文实现。
•RS(Router Solicitation,路由器请求)报文:类型字段值为133,编码字段值为0,主要用于路由器发现。主机接入网络后希望尽快获取网络前缀进行通信,因此通过RS报文向路由器发出请求,路由器则会以RA报文响应。
•RA(Router Advertisement,路由器通告)报文:类型字段值为134,编码字段值为0。路由器以组播方式周期性发布RA报文,携带网络前缀和其他标志位信息,向二层网络上的主机和设备报告自己的存在。
•邻居请求(NS)报文:类型字段值为135,编码字段值为0。IPv6节点通过NS报文得到邻居的链路层地址,检查邻居是否可达,完成地址冲突检测。在地址解析中,NS报文类似IPv4中的ARP请求报文,在ICMPv6 NS中携带希望获取对应链路层地址的IPv6地址。
•NA(Neighbor Advertisement,邻居通告)报文:类型字段值为136,编码字段值为0。NA报文是IPv6节点对NS报文的响应,同时IPv6节点在链路层变化时也可以主动发送NA报文。
•重定向(Redirect)报文:类型字段值为137,编码字段值为0。报文中会携带重定向的路径下一跳地址和需要重定向转发的报文目的地址等信息。
通过这5种报文和NDP定义的各种功能的交互流程,可以实现以下关键能力。
(1)地址解析
在IPv4中,主机和目标主机通信必须先通过ARP获得其链路层地址。在IPv6中,NDP实现了从IP地址到链路层地址的解析功能,主要通过NS报文和NA报文实现。
IPv6地址解析的过程如图1-11所示。
Host A在向Host B发送报文之前必须先解析出其链路层地址,因此首先发送一个NS报文,报文的Source Address(源地址)字段为Host A的IPv6地址,Destination Address(目的地址)字段为Host B的被请求节点组播地址,ICMPv6 Option字段携带Host A的链路层地址。ICMP中携带需要解析的目标IP地址,即Host B的IPv6地址,表明Host A想要知道Host B的链路层地址。当Host B接收到NS报文之后,就会回应NA报文给Host A,完成地址解析。其中Source Address字段为Host B的IPv6地址,Target Address字段为Host B的IPv6地址,链路层地址使用对应的Host B的链路层地址,Host B的链路层地址被放在ICMPv6 Option字段中。
(2)邻居状态监测
通过邻居或到达邻居的通信可能因为各种原因而中断,包括硬件故障、接口卡的热插拔等,如果邻居故障未被及时发现,会影响所有经过该邻居的通信报文。因此链路中的每个节点均需要维护一张邻居表,记录每个邻居的实时状态,包括Incomplete(未完成)、Reachable(可达)、Stale(陈旧)、Delay(延迟)和Probe(探查)5种,状态之间可以迁移。邻居状态迁移示例如图1-12所示,其中Empty表示邻居表项为空。
下面以A、B两个邻居节点相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未相互通信),说明邻居状态迁移的过程。
第一步:A先发送NS报文并生成缓存条目,此时邻居状态为Incomplete。
第二步:若B回复NA报文,则A的邻居状态由Incomplete变为Reachable。否则,固定时间后,A的邻居状态由Incomplete变为Empty,即删除表项。
第三步:A进入Reachable状态后,超过邻居可达时间,邻居状态由Reachable变为Stale,即未知邻居是否可达。同时,如果A在Reachable状态下收到B的非请求NA报文,且报文中携带的B的链路层地址与表项中的不同,则邻居状态马上变为Stale。
第四步:在Stale状态下,若A要向B发送数据,则需要重新发送NS报文,且邻居状态由Stale变为Delay。
第五步:经过一段固定时间后,A的邻居状态由Delay变为Probe,其间若收到NA报文,则邻居状态由Delay变为Reachable。
第六步:在Probe状态下,A每隔一定时间间隔发送单播NS报文,发送固定次数后,如有应答,则邻居状态变为Reachable,否则邻居状态变为Empty,即删除表项。
(3)重复地址检测
IPv6自动配置要求在使用地址之前进行重复地址检测,接口使用某个IPv6单播地址之前进行重复地址检测,可以探测是否有其他节点使用了该地址。分配给某个接口的IPv6单播地址在进行重复地址检测之前称为试验地址(Tentative Address),不能用于单播通信。节点获取试验地址后,向其对应的Solicited-Node组播组发送携带该地址的NS报文。如果收到其他站点回应的NA报文,证明该地址已被使用,节点不能通过其完成通信。如果经过规定时间和规定检测次数仍未收到NA报文,则证明该地址可以使用。
图1-13给出了重复地址检测示例。
假设Host A的IPv6地址FC00::1为计划使用的地址,即Host A的试验地址。此时Host A会向其对应的Solicited-Node组播组发送一个以FC00::1为目的地址的NS报文进行重复地址检测。由于FC00::1并未正式指定,所以NS报文的源地址为未指定地址。当Host B收到该NS报文后,可能有以下两种情况。
•如果Host B发现FC00::1是自身的一个试验地址,则放弃使用此地址作为接口地址,并且不会发送NA报文。
•如果Host B发现FC00::1是自己已经正常使用的地址,则向所有节点组播组(即FF02::1)发送NA报文,携带FC00::1信息。Host A收到该报文后,发现自身试验地址重复,因此该试验地址不生效,被标识为Duplicated状态。
(4)路由器发现
图1-14给出了路由器发现示例。路由器发现主要用来寻找与本地链路相连的路由器设备,并获取与地址自动配置相关的前缀和其他配置参数。IPv6地址可以支持无状态的地址自动配置,即主机通过某种机制获取网络前缀信息,自动生成地址的接口标识部分。因此,路由器发现是IPv6地址自动配置功能的基础,主要通过RS和RA两种报文实现。
路由器发现功能主要应用于地址自动配置、默认路由器优先级及其路由信息发现两种场景。
地址自动配置:通告RS和RA报文实现地址无状态自动配置。地址无状态自动配置首先自动生成链路本地地址,然后主机根据RA报文的前缀信息,自动配置全球单播地址,并获得其他相关信息。IPv6主机无状态自动配置过程如下。
第一步:主机上线,根据接口标识生成链路本地地址。
第二步:主机发送NS报文,进行链路本地地址的重复地址检测。
第三步:如地址冲突,则停止自动配置,需要手动配置;如地址不冲突,链路本地地址生效,节点具备本地链路通信能力。
第四步:主机发送RS报文(或接收到设备定期发送的RA报文),目的地址为所有路由器组播组(FF02::2)。
第五步:路由器接收到RS报文立刻回应RA报文,或定期发送RA报文,目标地址为所有节点组播组(FF02::1)。RA报文中通过ICMPv6 Option字段携带前缀信息、路由生命周期等信息。
第六步:主机根据RA报文中的前缀信息和本地接口标识生成IPv6地址。
默认路由器优先级及其路由信息发现:当主机所在的链路中存在多个路由器时,主机需要根据本地生成的路由表选择转发设备。
在RA报文中定义了默认路由优先级和路由信息两个字段。当主机收到包含路由信息的RA报文后,会学习相应的明细路由信息;当主机收到包含默认路由优先级信息的RA报文后,会添加本地的默认路由,并刷新对应路由器网关的优先级。当主机向其他设备发送报文时,通过查询路由表,选择合适的路由发送报文;当主机向其他设备发送报文时,如果没有明细路由可选,则选择本链路内优先级最高的默认路由,向所对应的路由器网关发送报文。
(5)路由重定向
当网关设备收到报文后,如果发现报文从其他网关设备转发可以获得更优的传输路径,则网关设备会发送重定向报文告知报文的发送者,让报文发送者选择传输路径更优的网关设备。网关设备收到报文后,只有同时满足如下条件才会向主机发送重定向报文。
•报文的目的地址不是一个组播地址。
•路由计算的下一跳接口与接收报文的接口相同。
•报文的最佳下一跳IP地址和报文的源IP地址处于同一网段。
•网关设备自身的邻居表项中有用报文源地址作为全球单播地址或链路本地地址的邻居。
图1-15给出了重定向示例。
Host A的默认网关设备是Router A,因此要发送给Host B的报文也会被发送到Router A。当Router A发现Host A可以直接发送报文给Router B后,会向Host A发送重定向报文,其中Target Address(代表更好的下一跳)字段为Router B的链路本地地址,ICMPv6 Option字段中携带需要重定向报文的目的地址,即Host B地址。Host A接收到该重定向报文之后,会在默认路由表中添加一个主机路由,确保之后发往Host B的报文不再转发至Router A,而是直接发送给Router B。
与IPv4相同,IPv6同样借助内部网关协议(Interior Gateway Protocol,IGP)和边界网关协议(Border Gateway Protocol,BGP)两类动态路由协议完成自治系统(Autonomous System,AS)域内和域间路由传递。IPv6动态路由协议继承了IPv4 IGP和BGP的关键交互流程,仅在原有协议的基础上进行了IPv6扩展。下面重点介绍IPv6与IPv4动态路由协议的主要差异点,具体IGP/BGP方案设计则在与各类网络相关的章节中进行详述。
1.IGP for IPv6简介
(1)IS-IS for IPv6
因为IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是基于数据链路层的协议,与IP地址无关,因此在邻接关系建立过程中不需要区分IPv4和IPv6地址。同时,IS-IS采用TLV(Type-Length-Value,类型长度值)格式进行编码,具有较好的扩展性,因此可通过新增TLV实现IPv6路由信息传递并计算相关路由。
在IETF的标准协议中,规定IS-IS需要支持IPv6路由的处理和计算,主要通过新增路由信息相关的两个TLV和一个NLPID(Network Layer Protocol Identifier,网络层协议标识)实现。其中新增的两个TLV如下。
•IPv6接口地址(IPv6 Interface Address):类型值为232(0xE8),与IPv4中的同名TLV格式类似,只是将原来的32 bit的IPv4地址改为128 bit的IPv6地址。IPv6接口地址TLV主要在HELLO报文和LSP报文中进行扩展,其中HELLO报文携带接口的IPv6链路本地地址,用于进行邻接标识。而LSP报文的TLV扩展中则携带接口的IPv6全球单播地址,用于接口的路由信息传递。
•IPv6可达性(IPv6 Reachability):类型值为236(0xEC),用于传递可到达的IPv6路由前缀信息,并携带该路由前缀的度量值和内外部路由标识、防环标志位等信息,用于IPv6路由计算。
NLPID用于通告邻居本地的IPv6支持能力。如果IS-IS支持IPv6,则向外发布IPv6 HELLO报文时需携带的NLPID值为142(0x8E)。
由于IS-IS主要在IPv4的原有协议中进行必要扩展以支持IPv6,绝大部分功能和交互仍继承原有协议,因此使用IS-IS作为IPv4 IGP的原有网络完全可以在该进程下直接使能IPv6能力,以支持IPv6路由传递。IS-IS还支持多拓扑(Multi-Topology,MT)等功能,可以为IPv6建立独立的路由表和拓扑环境。因此,在IPv6部署演进过程中,即使在同一个IGP进程下,也可以形成与IPv4不同的独立拓扑信息,以防止采用原有IPv4拓扑时会将IPv6报文转发给未支持IPv6的部分节点,导致报文被丢弃。
(2)OSPFv3
OSPF是IETF制定的动态路由协议,基于IP层开发,因此IP地址对OSPF影响较大,支持IPv6需要采用独立的进程和路由协议。当前针对IPv4使用的是OSPFv2,针对IPv6使用OSPFv3,后者在前者基础上进行了增强,但仍然使用HELLO、DD(Database Description,数据库描述)、LSR(Link State Request,链路状态请求)、LSU(Link State Update,链路状态更新)和LSAck(Link State Acknowledgment,链路状态确认)5种类型报文,并将其封装在IPv6报文头内。同时,OSPFv3也继承了OSPFv2的报文交互流程、邻居状态机、LSDB(Link State Database,链路状态数据库)及路由计算方式等。
OSPFv3在OSPFv2基础上完成的优化如下。
•使用IPv6链路本地地址:IPv6使用链路本地地址在同一链路上发现邻居并自动配置地址,目的地址为链路本地地址的IPv6报文只在同一链路上有效,不会通过设备进行转发。作为运行在IPv6上的路由协议,OSPFv3同样使用链路本地地址来维持邻居并同步LSA(Link State Announcement,链路状态公告)数据库,这样可以在不配置IPv6全局地址的情况下获得OSPFv3拓扑,实现拓扑与地址分离。同时,使用链路本地地址的报文在链路上泛洪不会传到其他链路上,减少了不必要的泛洪,节省带宽。
•基于链路建立邻居:OSPFv3基于链路而不是网段建立邻居。因此,在配置OSPFv3时,不需要考虑接口地址是否配置在同一网段,只要在同一链路即可。
•改变报文及LSA格式:OSPFv3的IP地址不再包含于Router LSA和Network LSA中,而是由新增的Link LSA和Intra Area Prefix LSA完成宣告。其中,Link LSA用于设备宣告各个链路上对应的链路本地地址及其所配置的IPv6全局地址,仅在链路内泛洪;Intra Area Prefix LSA用于向其他设备宣告本设备或本网络的IPv6全局地址信息,在区域内泛洪。另外,OSPFv3的Router ID、Area ID和LSA Link State ID虽然仍保留IPv4地址格式,但不再表示IP地址。广播、NBMA(Non-Broadcast Multiple Access,非广播多路访问)及P2MP(Point-to-Multipoint,点到多点)网络中邻居的标识仅借助Router ID完成,与IP地址无关。
•添加LSA泛洪范围:OSPFv3的LSA报文中添加泛洪范围,使设备更加灵活,可以处理不能识别类型的LSA。其中,OSPFv2只能简单丢弃不能识别的报文,OSPFv3可以完成存储或泛洪处理;对于U比特置为1的未知LSA,OSPFv3允许泛洪,且范围由该LSA自己指定。例如,可识别某类LSA的设备Device A和Device B通过Device C连接,当Device A泛洪此类LSA时,Device C虽然不识别,但也可以泛洪给Device B,Device B收到后即可继续处理。
•支持一个链路上多个进程:与OSPFv2中一个物理接口只能绑定一个实例不同,OSPFv3中的物理接口可以和多个实例绑定,并用不同的实例ID区分。运行在同一物理链路上的多个OSPFv3实例可以分别与链路对端设备建立邻居并发送报文,彼此之间互不干扰,实现了对链路资源的充分共享。
综上所述,IS-IS支持IPv6所需改造相对较小。如果现网已经部署IS-IS,则在现有进程中使能IPv6能力和IPv6拓扑即可。如果采用OSPFv3,则需要配置新的OSPFv3进程。
2.BGP4+简介
BGP是一种用于自治系统之间的动态路由协议。传统的BGP4只管理IPv4路由信息,为支持IPv6,RFC 4760和RFC 2545定义了增强BGP(即BGP4+),对NLRI(Network Layer Reachability Information,网络层可达信息)属性和Next_Hop属性进行扩展增强,增加了IPv6信息。
RFC 4760继承自1998年的RFC 2283,新增的MP_REACH_NLRI(Multi Protocol Reachable NLRI,多协议可达网络层可达信息)和MP_UNREACH_NLRI(Multi-Protocol Unreachable NLRI,多协议不可达网络层可达信息)属性用于“发布”和“撤销”路由,这是实现BGP多协议扩展的关键。MP_REACH_NLRI用于发布对应协议的可达路由及下一跳信息,而MP_UNREACH_NLRI则用于撤销不可达路由。二者可承载IPv6、MPLS(Multi Protocol Label Switching,多协议标签交换)和组播等协议内容,大大提升了BGP的多协议支持能力。
RFC 2545中定义了如何通过BGP的多协议扩展属性来实现IPv6域间路由。在链路中,通过IPv6或IPv4地址均可建立BGP邻居,二者均可传递IPv6可达信息。但通过Next_Hop属性实现下一跳信息学习时,需要采用IPv6全球单播地址或下一跳对应的链路本地地址。
BGP4+并未改变原有的消息和路由机制。参考BGP采用AF(Address Family,地址族)区分不同的网络层协议,BGP4+只需在对应的地址族视图下进行配置,即可实现IPv6扩展。BGP4+的规划设计与原有BGP的相同。
本章主要回顾了IPv6的发展并总结其相较于IPv4的关键特征。自20世纪90年代问世以来,IPv6凭借其海量地址、简化报文头、灵活可扩展性、流量控制等优势得到了广泛认可,成为下一代互联网技术发展的必然选择。虽然IPv6前期发展并不顺利,部署范围相较于IPv4还有很大差距,但随着产业智能化的发展,各个国家和诸多企业均已认识到IPv6锐不可当的发展趋势及其至关重要的战略价值。近年来,IPv6迎来井喷式发展,企业IPv6改造也迫在眉睫。
本章还介绍了IPv6的地址架构改进及其基于IPv4演化而来的各项基础协议内容,包含邻居发现协议、控制消息协议和路由协议等,这些协议构成IPv6控制平面和转发平面的基石,可以快速构建基础IPv6网络,为后文的网络方案设计奠定基础。