IPv4问题与改进
IPv4存在以下著名的问题:
- 网络地址短缺(32位)以二进制数串表示,v4仅有43亿个地址,而IPv6有128位,且以十六进制数串表示。(现在还能用v4得益于NAT地址转换)
- 地址分配不合理:IPv4中有1/3被美国占用了,其大型企业地址数比很多国家都多。
- 路由速度慢:路由表日趋庞大,路由查找速度越来越慢。IPv4头部多达13个字段。IPv6只有8个。
- 缺乏安全功能:IPv6集成了IPsec功能,可提供数据加密、认证服务。IPv4则不能。
- 不支持新的业务模式:IPv4没有扩展字段,IPv6支持多报头嵌套。
- IPv6只能由源发节点进行分段,中间路由器不能分段,目的是简化路由处理,MTU发现。
IPv6报文格式
版本:用0110表示IPv6。
通信类型/流量等级(8位):用于区分不同的IP分组,相当于IPv4中服务类型的字段。
流标签(20位):标识某些需要特别处理的分组。
负载长度(16位):表示除了IPv6固定头部40字节之外的负载长度,扩展头包含在负载长度之中。
下一头部(8位):指明下一个头部类型,可能是IPv6扩展头部和高层协议的头部。
跳数限制(8位):用于检测路由循环,类似TTL。
源地址(128位):发送节点的地址。
目标地址(128位):接收节点的地址。
IPv6地址基础
IPv6地址128位,采用冒号分隔的十六进制数(8组)表示。
如:
8000:0000:0000:0000:0123:4567:89AB:CDEF
每个字段前面的0可以省去,例如0123可以简写为123。
一个或多个全0字段,可以用一对冒号"::"代替
- 有效0位不可以简写,双冒号只能出现一次
- 以上地址可简写为8000::123:4567:89AB:CDEF
- IPv4兼容地址可以写为::192.168.10.1
IPv6地址分类
IPv6地址是一个或一组接口的标识符,IPv6地址被分到接口而不是节点。
单播地址
可聚合全球单播地址:这种地址在全球范围内有效,相当于IPv4公用地址(前缀为001)。
链路本地地址:用于同一链路的相邻节点间的通信(前缀为1111 1110 10)结合MAC地址自动生成。
站点本地地址:相当于IPv4中的私网地址(前缀为1111 1110 11)。
组播地址
IPv6中没有广播地址,广播功能被组播代替。
IPv6组播地址的格式前缀为1111 1111,即FF00开头。
任意播地址
表示一组接口的标识符,通常是路由距离最近的接口。
任意播地址不能用作源地址,而只能作为目标地址。
任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。
IPv6地址书写
合法写法:
- 12AB:0000:0000:CD30:0000:0000:0000/60
- 12AB::CD30:0:0:0:0/60
- 12AB:0:0:CD30::/60
非法写法
- 12AB:0:0:CD3/60(在16位的字段中可以省掉前面的0,但不能省掉后面的0)
- 12AB::CD3/60(这种表示可展示为12AB:0000:0000:0000:0000:0000:0000:0CD3)
- 12AB::CD30/60(这种表示可展示为12AB:0000:0000:0000:0000:0000:0000:CD30)
特殊地址对比 IPv4 vs IPv6
IPv6路由协议
共有3种路由协议:RIPng,OSPFv3,BGP4+。
DHCPv6 无状态配置和有状态配置
有状态自动配置:DHCPv6直接分配前缀和接口ID、网关和DNS等。(全部信息)
无状态自动配置:路由器接口前缀+终端EUI-64。(一半信息)
ICMPv6
新增加的邻居发现功能代替了ARP协议的功能。
IPv6地址基础
- IPv6地址128位,采用冒号分隔的十六进制数(8组)表示。
例如:8000:0000:0000:0000:0123:4567:89AB:CDEF
- 每个字段前面的0可以省去,例如0123可以简写为123
- 一个或多个全0字段,可以用一对冒号"::"代替
- 有效0位不可以简写,双冒号只能出现一次
- 以上地址可简写为8000::123:4567:89AB:CDEF
- IPv4兼容地址写为::192.168.10.1
IPv4到IPv6过渡技术
双栈技术:同时运行IPv4和IPv6。
隧道技术:解决IPv6节点之间通过IPv4网络进行通信。
翻译技术:解决纯IPv6节点与纯IPv4节点之间进行通信。
过渡技术-隧道
两节点之间不能使用NAT技术,因为IPv4地址必须全局可路由。
小型网络可以人工配置隧道。对于IPv4/IPv6双栈主机,地址必须已知,可以配置一条默认的隧道,以便把不能连接到任何IPv6路由器的分组发送出去。
大型网络配置人工隧道比较困难,主要可以通过隧道中介(Tunnel Broker)技术解决。隧道服务器是一种即插即用的IPv6技术,通过IPv4网络可以进行IPv6分组的传送。
自动隧道(ISATAP):两个双栈主机可以通过自动隧道在IPv4网络中进行通信。可以穿透NAT设备,与私网之外的主机建立IPv6连接。
过渡技术-地址翻译
已知翻译方法有如下几种:SIIT,NAT-PT,SOCKS64,TRT。
过渡技术-地址翻译(Network Address Trannslation-Protocol Translator,NAT-PT),适用于纯IPv6节点与纯IPv4节点间的通信。它必须指定一个服务器作为NAT-PT的网关,并且要准备一个IPv4地址块作为地址翻译所用,要为每个站点预留一个IPv4地址。
- 静态NAT-PT 1:1
- 动态NAT-PT M:N
- 基于端口NAPT-PT M:1
示例:
主机A的IPv6地址:FEDC:BA98::7654:3210
主机B的IPv6地址:FEDC:BA98::7654:3211
主机C的IPv4地址:132.146.243.30
主机A若要与主机C通信,则主机A生成一个分组,源地址:FEDC:BA98::7654:3210(主机A的IPv6地址),目标地址:格式前缀::132.146.243.30。