关于IPV6的RFC标准
概述
对于IPv6的相关知识,之前大都停留在对IPv6 Header、IPv6 Address、IPv6路由等简单的了解。因为当下实际工作的需要,的确需要对IPv6有一个更加全面、深入的学习。但是如何全面的梳理IPv6这块的知识体系,我想RFC应该是最好的学习途径。
关于IPv6的RFC标准,从1995年开始到2018年,持续不断的衍生、更新,相关RFC标准非常多。我花了点时间在RFC-Editor搜索了一下,IPv6相关RFC标准数量已经超过400个,这还只是通过IPv6、Internet Protocol, Version 6、IP Version 6为关键词搜索,没有搜索出来还有很多。
针对这些搜索的结果,简单粗暴的整理下,还不够十分严谨和专业,仅供参考,具体结构如下:

其中:
- IPv6 Spec:
- 主要阐述IPv6的基本概念,相关RFC初步统计约20个左右;
- 最主要的基础RFC是RFC1883
Internet Protocol Version 6(IPv6) Specification,该标准在1995年发布,后面在1998年被RFC2460Internet Protocol Version6(IPv6)Specification替代,随后近二十年,这个文件本身没有更新,所以,RFC2460本质上只是一个Draft Standard; - 在RFC2460基础上,随后几年进行了Update,以单独的RFC出现,包括RFC3697、RFC5095、RFC5722,RFC5871、RFC6564、RFC6935、RFC6946、RFC7045、RFC7112,涉及Flow Label、Fragment、Routing Header、Extension Header等;
- 到2017年,推出的RFC8200
Internet Protocol, Version 6 (IPv6) Specification是最新的标准,该RFC把之前相关的RFC更新实现了合并,是最建议先阅读的IPv6规范;
- IPv6 Sokets:
- 主要是面向上层应用开发,满足基于IPv6的应用承载,需要对原有的Soket进行更改;
- 这块的RFC比较少;
- IPv6 地址相关
- 这块的标准比较多,我粗略分为三类,
- IPv6地址结构及表示相关:定义地址格式及分类。最早是1995年的RFC1884
IP Version 6 Addressing Architecture,目前最新的版本是RFC4291(2006年),另外,还包括关于单播、组播地址映射等RFC; - 关于IPv6地址配置:主要一些如何获取、配置地址相关。其中比较重要的是关于无状态地址获取的RFC4862
IPv6 Stateless Address Autoconfiguration(2007年)。另外,还有关于127 bit地址在互联口的使用、测试地址的使用等; - 关于IPv6地址的分配:主要涉及机构如何分配地址的问题,比如单播地址的分配、保留的任播地址、组播地址分配等;
- IPv6地址结构及表示相关:定义地址格式及分类。最早是1995年的RFC1884
- 这块的标准比较多,我粗略分为三类,
- IPv6网络部署
- 我个人理解为是在一些特殊场景下进行IPv6部署相关的RFC,比如在Multihoming的部署、在IXP场景的部署、针对ISP在宽带接入网中的部署等;
- IPv6基础能力
这块的内容非常多,主要是涉及IPv6的一些基本协议,具体如下:- ICMPv6:
- 最主要的RFC是RFC4443
Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification;
- 最主要的RFC是RFC4443
- DHCPv6:
- 这块的RFC最多,粗略整理的大概15个左右;
- 比较重要的RFC是RFC3315
Dynamic Host Configuration Protocol for IPv6 (DHCPv6)及RFC3736Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6; - 其他的RFC主要是针对DHCPv6的细化和补充,比如针对Option、针对Dual-Stack的问题、DHCP Relay等;
- DNS
- 这块相关RFC大概十多个,个人认为比较重要的是RFC3596
DNS Extensions to Support IP Version 6,其他包括在IPv6的表示、DNS64、Operational等;
- 这块相关RFC大概十多个,个人认为比较重要的是RFC3596
- ND(Neighbor Discovery)
- 最重要的是RFC4861
Neighbor Discovery for IP version 6 (IPv6),其他包括ND的安全及威胁、ND在6LoWANs的优化等;
- 最重要的是RFC4861
- RA( Router Advertisement)
- 比较重要的是关于RFC6105
IPv6 Router Advertisement Guard、RFC5175IPv6 Router Advertisement Flags Option - 其他包括RA针对DNS的Opations。
- 比较重要的是关于RFC6105
- DAD
- 重要的是RFC4429
Optimistic Duplicate Address Detection (DAD) for IPv6,同时还有关于DAD Proxy的RFC;
- 重要的是RFC4429
- 组播
- 目前只看到关于MLD及MLD2的相关RFC;
- 管理
- 目前整理看到的是关于针对UDP和TCP的MIB相关RFC;
- ICMPv6:
- IPv6过度协议
- 关于v4与v6过度的相关协议,主要涉及两大块;
- 隧道模式,包括大家熟悉的6PE、ISATAP、6rd、6to4等;
- 网关模式,这块RFC比较多,涉及v4与v6的地址转换(NAT);
- 当下主要遇到的最多的还是双栈模式,搭建一个端到端的IPv6平面,对于隧道提及的已经不多;对于网关地址NAT,目前还是会用,作为v4用户访问v6业务的过度方案;
- 关于v4与v6过度的相关协议,主要涉及两大块;
- IPv6安全
- 除了大家熟悉的IPSec相关的协议外,涉及Radius在IPv6网络中应用的RFC还是比较多的;
- 其他,包括关于网络扫描、本地网络安全防护等RFC;
- IPv6路由
- 主要涉及RIPng、OSPFv3、ISISv6、BGP等;
- 这块核心还是路由协议,所以没有展开;
- IPv6在特种网络上的承载
- 主要涉及IPv6在一些特殊网络上的传输,比如FDDI、NBMA、PPP、IEE1394等;
- IPv6应用相关
- 这块的内容主要是跟一些上层应用相关的RFC,比如FTP、在企业网络中的网络分析等;
- 其中最大的一块是关于Mobile IPv6的,这是一块非常独立的模块,相关的RFC有几十个之多,包括基础的地址分配、代理、安全、DHCP等等;
- 因为现实工作中很少涉及,所以也没有全部整理;
总结
通过简单梳理IPv6相关的RFC,结合当下遇到的一些实际的IPv6项目,如果想从架构上提出更多有实际价值的方案和建议,还是需要针对IPv6基础相关的RFC有更加深入的理解。这里面包括IPv6 Spec、IPv6 Address、IPv6基础能力中的ND、RA、DHCP等等。