IPv6及相关RFC_生活妙招_36妙招--兵法有36计,炒作有36妙招- Powered ...
IPv6及相关RFC
?
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn:
来源:
?
0. 概述
IPv6是下一代IP协议标准,虽然目前还都只是实验阶段,但IPv6取代IPv4是不可避免的。
?
1. IPv6中的“6”的由来
说法一:
4:已经被IPv4使用
5:保留用于流协议 (STP, RFC 1819 / Internet Stream Protocol Version 2),但该协议从未正式应用,下一个空闲数即为 6
说法二:
由于IPv4地址4个字节,版本号为“4”;IPv6地址是128位,即16字节,故版本号取其个位为“6”
?
2. IPv4与IPv6协议格式
?
2.1 RFC791定义的IPv4头
??? 0?????????????????? 1?????????????????? 2?????????????????? 3??
??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |Version|? IHL? |Type of Service|????????? Total Length???????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |???????? Identification??????? |Flags|????? Fragment Offset??? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |? Time to Live |??? Protocol?? |???????? Header Checksum?????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????? Source Address????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |??????????????????? Destination Address??????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |??????????????????? Options??????????????????? |??? Padding??? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4的不足
地址空间有限:32位地址只能支持42亿多个地址的空间,以目前情况看根本不够用;
安全性:本身无安全性考虑,真正的安全性需要上层协议支持,IP层不支持;
性能、QoS:自身支持不足,也需上层协议支持;
自动配置:BOOTP、DHCP等相对较烦琐;
另外IPv4头部结构复杂,参数过多,而且IPv4选项部分对系统性能和安全性都有影响。
?
2.2 IPv6协议
?
2.2.1 RFC1883定义的IPv6头
??? 0?????????????????? 1?????????????????? 2?????????????????? 3??
??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |Version| Prio. |?????????????????? Flow Label????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |???????? Payload Length??????? |? Next Header? |?? Hop Limit?? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +???????????????????????? Source Address??????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +????????????????????? Destination Address????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RFC1883说明:
Version:????????? 4位协议号,值为6
Prio.:??????????? 4位数据优先级.
Flow Label:?????? 24位,流标签,主要用于QoS
Payload Length:?? 16位,载荷长度
Next Header:????? 8位,下一个头,类似于IPv4的Protocol字段,但不xx相同
Hop Limit:??????? 8位跳数限制,类似IPv4中的TTL
Source Address:?? 128位源地址
Destination Address:? 128位目的地址
RFC1883已经被RFC2460取代,主要是RFC1883中Prio字段只有4位,而IPv4中的TOS字段为8位,两者不能xx兼容。
?
2.2.2 RFC2460定义的IPv6头
??? 0?????????????????? 1?????????????????? 2?????????????????? 3??
??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |Version| Traffic Class |?????????? Flow Label????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |???????? Payload Length??????? |? Next Header? |?? Hop Limit?? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +???????????????????????? Source Address??????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +????????????????????? Destination Address????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RFC2460格式说明:
Version:???????? 4位协议号,值为6;
Traffic Class:?? 8位传输类别,相对1883中的4位prio能更好支持QoS,在源端或中间转发端用来区分不同类型和优先权的IPv6包,和IPv4的TOS字段一样是8位,这样有利于设计IPv4/IPv6兼容的QoS标准;
Flow Label:????? 20位流标签,用于源端标记IPv6包顺序,供路由器特别处理,用来满足某些特殊服务,如QoS和实时信息
Payload Length:? 16位负载长度;
Next Header:????? 8位,下一个头,类似于IPv4的Protocol字段,但不xx相同
Hop Limit:??????? 8位跳数限制,类似IPv4中的TTL
Source Address:?? 128位源地址
Destination Address:? 128位目的地址
其中Traffic Class字段在RFC 2460中未明确定义,后来在在RFC 2474中定义为:
??????? 0?? 1?? 2?? 3?? 4?? 5?? 6?? 7
????? +---+---+---+---+---+---+---+---+
????? |???????? DSCP????????? |? CU?? |
????? +---+---+---+---+---+---+---+---+
??????? DSCP: differentiated services codepoint
??????? CU:?? currently unused
?
2.2.3 IPv6的扩展头类型
IPv6中取消了IP选项,对于IPv4中需要IP选项完成的功能,在IPv6中使用IPv6扩展头来实现:
Hop-by-Hop Options:nh=0,选项信息
Routing:nh=43,路由信息
Fragment:nh=44,分片信息
Destination Options:nh=60,目的端要检查的特殊信息
Authentication:nh=51,AH协议头,RFC4302
Encapsulating Security Payload:nh=50,ESP协议头,RFC4303
Nh=59: No Next Header
?
举例:一个最完整的IPv6头包括IPv6头和各种扩展头:
IPv6 header (next header=0)
Hop-by-Hop Options header (next header=60)
Destination Options header (next header=43)
Routing header (next header=44)
Fragment header (next header=51)
Authentication header (next header=50)
Encapsulating Security Payload header (next header=60)
Destination Options header (next header=upper-layer protocol)
upper-layer header
?
多个扩展头的使用从协议本身角度是方便性提高,但对于防火墙等设备来说来说就必须跟踪到{zh1}一个扩展头才知道上层是什么协议,不象IPv4可以在固定位置处就能检查协议。
?
2.2.4 上层协议计算校验和时用到的伪IPv6头
?
和IPv4一样,在计算TCP、UDP等的校验和时需要用到IP头部部分信息,用到部分数据称为伪IP头,除需要的字段外其他字段值置0。
?
IPv6的伪头格式:
??? 0?????????????????? 1?????????????????? 2?????????????????? 3??
??? 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +???????????????????????? Source Address??????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +????????????????????? Destination Address????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +?????????????????????????????????????????????????????????????? +
?? |?????????????????????????????????????????????????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |?????????????????? Upper-Layer Packet Length?????????????????? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?? |????????????????????? zero???????????????????? |? Next Header? |
?? +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
?
2.3 IPv6相对IPv4优点
?
地址范围扩大:地址范围从2^32扩大到2^128,基本可视为无限,可以不再需要NAT
地址类型强化和提高:简化了地址自动配置,设备自己的硬件地址直接对应IPv6地址,可以不用配置;增强了多播路由功能;新增“anycast”(泛播)地址类型,取消了广播类型以防止广播风暴;
头部格式简化:头部长度固定,数据项也精简,路由设备处理起来更加容易;
增强头部的扩展和选项支持:通过“next header”项将各种扩展头串起来
性能提高:使用流标签,使数据具备“流”的概念,而不仅仅是IPv4中的单独的“包”的概念;
认证和安全性提高:IPSec将不再是象IPv4那样是“突兀”地插入IP协议,而称为IP协议中自然的组成部分。
?
3. IPv6地址
?
3.1 书写格式
基本格式:X:X:X:X:X:X:X:X,X:16位数
缩写格式:对于连续的0,可以用“::”代替,但只能代替一次
兼容V4格式:X:X:X:X:X:X:a.b.c.d
?
3.2 IPv4到IPv6的格式转换:

IPv4-compatible IPv6 address, v6的低32位地址同v4,高96位地址为0
|??????? 80 bits??????? | 16 |?? 32 bits??? |
|0000...............0000|0000| IPv4 address |
?
IPv4-mapped IPv6 address,v6的低32位地址同v4,33-48位为1,高80位地址为0
|??????? 80 bits??????? | 16 |?? 32 bits??? |
|0000...............0000|FFFF| IPv4 address |
?
3.3 IPv6地址空间和类型
?
3.3.1 地址空间分配
Unspecified??????? 00...0 (128 bits) ::/128
Loopback?????????? 00...1 (128 bits) ::1/128
Multicast????????? 11111111????????? FF00::/8
Link-local unicast 1111111010??????? FE80::/10
Site-local unicast 1111111011??????? FEC0::/10
Global unicast (everything else)
?
3.3.2 地址类型(广播类型地址不再存在):
?
单播:unicast,每个设备的ID号成为地址的一部分,包括以下三类:

Link local:用于单一连接,不可路由
|? 10bits? |???? 54 bits????? |????? 64 bits?????? |
|1111111010|?????? 0????????? |?? interface ID???? |
?
Site local:用于内部网络,网络外不可路由
|? 10bits? |???? 54 bits????? |????? 64 bits?????? |
|1111111011|??? subnet ID???? |?? interface ID???? |
?
Global unicast:全局地址
|??????? n bits???????? |?? m bits? | 128-n-m bits |
| global routing prefix | subnet ID | interface ID |
?
组播:multicast, FF00::/8,v4中的广播在v6中用组播代替。
?
泛播:anycast,地址空间和单播地址空间相同,一个unicast地址设置到多个网络接口后就可成为anycast地址,需要指明anycast属性。泛播包只被路由到最近的具有该地址的网络接口,通常用于DNS等服务。
?
4. 从IPv4到IPv6升级需要修改的协议
链路层:以太网相对修改较小,IPv6协议号0x86DD,比较大的修改部分应该是为MTU发现处理;对于ATM网络可能修改量较大
ARP/RARP:需要支持v6地址到MAC的变换
网络层:ICMPv4需要升级为ICMPv6, IGMP也需要升级
传输层:需要网络层信息的所有协议都必须修改,如TCP/UDP的校验和计算都用到了IP伪头信息
应用层:所有使用IP地址信息的协议都需要修改,特别是有子连接的协议
路由协议:RIP、OSPF、…全部需要更新
文本地址表示协议:如FTP、SIP等,修改相对简单
数值地址表示协议:如DNS、DHCP、BOOTP、H.323等,修改相对复杂
用户界面:要支持IPv6地址格式
简化部分:IPSec,在IPv6中实现IPSec相对比较简单,因为在设计IPv6时就把IPSec作为一个部分考虑进去了,而设计IPv4时根本还不存在IPSec概念,IPSec是后来硬塞进IPv4中的。
?
5. IPv4与IPv6共存方式
V6 over V4:IPv6包封装在IPv4包中传输
V4 over V6:IPv4包封装在IPv6包中传输
对于网络中的服务器,路由交换设备,都需要支持同时IPv4、IPv6,因此需要实现双栈。
?
6. 实施IPv6障碍
目前实施IPv6有以下几个障碍,{dy},目前没有一项应用是必须使用IPv6才能完成的,所有协议IPv4均能完成;第二,由于NAT和CIDR的使用,使IPv4地址分配速度减慢,使得IPv6需求不是那么迫切;第三,IPv6标准的不成熟性,表现在新RFC不断废除老RFC,这样抑制了厂商的生产积极性,使得相关产品总是属于实验室产品。
?
7. 结论
?
{dy},IPv4升级到IPv6是大势所趋,因为IPv4地址总会在可见时间内分配完,为了支持IPv6,需要从底层到应用层的协议进行全面修改;第二,IPv4即使在地址分配完后仍然会存在,IPv4和IPv6会共存相当长时间,单纯只支持IPv6的网络设备是没有市场的。
?
8. IPv6相关网站









9. IPv6相关RFC
以下是我整理的和IPv6相关的RFC,同时也是本文的相关参考文献,括号表示新RFC取代老RFC,可看到有些协议标准的RFC甚至被废除了两次。
?
协议标准:
IPv6: 1883(2460)
Addressing Architecture: 1884(2373(3513))
testing address: 1897(2471(3701))
address format: 2073(2374(3587))
multicast address: 2375, 3307
Unicast-Prefix-based IPv6 Multicast Addresses: 3306, 3956
reserved subnet anycast: 2526
literal address in URL: 2396/2732(3986)
Flow Label: 3595, 3697
Mobility: 3775, 3776
Scoped address architecture: 4007
unique local ipv6 unicast address: 4193
?
物理层:
ipv6 over ethernet: 1972(2464)
ipv6 over fddi: 2019(2467)
ipv6 over token ring: 2470
ipv6 over PPP: 2472
ipv6 over NBMA: 2491
ipv6 over ATM: 2492
ipv6 over ARCnet: 2497,1201
ipv6 over frame relay: 2590
ipv6 over IEEE 1394 Networks: 3146
ipv6 over fibre channel: 3831
3G: 4215
?
网络传输层:
neight discovery: 1970(2461), 3122
address autoconfig: 1971(2462), 3041
DHCPv6: 3315, 3633, 3646, 3736, 3898
ipv6 over ipv4: 2529
IPv6 Domains via IPv4 Clouds: 3056
ICMP6: 1885(2463)
IGMP: 2236(3376)
TCP/UDP: 2147(2675)
tunneling:2473
DiffServ: 1455/1349(2474,3168,3260)
Multicast Listener Discovery (MLD) for IPv6: 2710, 3590, 3810
Transition Mechanisms for IPv6 Hosts and Routers: 1933(2893(4213))
?
应用层:
SNTPv4: 2030
RIPng: 2080
MIB for ipv6: 2465, 2466
BGP-4 for ipv6: 2545
OSPF: 2328, 2740
FTP: 2428
DNS: 2535, 2874, 3152, 3226, 3363, 3364, 3596, 3901, 4033, 4034, 4035
Router renumbering: 2894
Service Location Protocol Modifications for IPv6: 3111
Radius: 3162
RSVP: 3175
SDP: 2327, 3266
MLDv2: 2710, 3810
HMIPv6: 4140
?
编程接口:
socket interface extension: 2133 (2553 (3493) )
socket api: 2292(3542)
?


郑重声明:资讯 【IPv6及相关RFC_生活妙招_36妙招--兵法有36计,炒作有36妙招- Powered ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——