概述
IPv6是下一代IP协议标准,虽然目前还都只是实验阶段,但IPv6取代IPv4是不可避免的。
1.
1. IPv6中的“6”的由来
2. 说法一:
3. 4:已经被IPv4使用
4. 5:保留用于流协议 (STP, RFC 1819 / Internet Stream Protocol Version 2),但该协议从未正式应用,下一个空闲数即为 6
5. 说法二:
6. 由于IPv4地址4个字节,版本号为“4”;IPv6地址是128位,即16字节,故版本号取其个位为“6”
7.
8. 2. IPv4与IPv6协议格式
9.
10. 2.1 RFC791定义的IPv4头
11. 0 1 2 3
12. 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
13. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
14. |Version| IHL |Type of Service| Total Length |
15. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16. | Identification |Flags| Fragment Offset |
17. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
18. | Time to Live | Protocol | Header Checksum |
19. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20. | Source Address |
21. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22. | Destination Address |
23. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24. | Options | Padding |
25. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
26. IPv4的不足
27. 地址空间有限:32位地址只能支持42亿多个地址的空间,以目前情况看根本不够用;
28. 安全性:本身无安全性考虑,真正的安全性需要上层协议支持,IP层不支持;
29. 性能、QoS:自身支持不足,也需上层协议支持;
30. 自动配置:BOOTP、DHCP等相对较烦琐;
31. 另外IPv4头部结构复杂,参数过多,而且IPv4选项部分对系统性能和安全性都有影响。
32.
33. 2.2 IPv6协议
34.
35. 2.2.1 RFC1883定义的IPv6头
36. 0 1 2 3
37. 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
38. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
39. |Version| Prio. | Flow Label |
40. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
41. | Payload Length | Next Header | Hop Limit |
42. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
43. | |
44. + +
45. |
|
46. + Source Address +
47. | |
48. + +
49. | |
50. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51. | |
52. + +
53. | |
54. + Destination Address +
55. | |
56. + +
57. | |
58. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59. RFC1883说明:
60. Version: 4位协议号,值为6
61. Prio.: 4位数据优先级.
62. Flow Label: 24位,流标签,主要用于QoS
63. Payload Length: 16位,载荷长度
64. Next Header: 8位,下一个头,类似于IPv4的Protocol字段,但不完全相同
65. Hop Limit: 8位跳数限制,类似IPv4中的TTL
66. Source Address: 128位源地址
67. Destination Address: 128位目的地址
68. RFC1883已经被RFC2460取代,主要是RFC1883中Prio字段只有4位,而IPv4中的TOS字段为8位,两者不能完全兼容。
69.
70. 2.2.2 RFC2460定义的IPv6头
71. 0 1 2 3
72. 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
73. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
74. |Version| Traffic Class | Flow Label |
75. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
76. | Payload Length | Next Header | Hop Limit |
77. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78. | |
79. + +
80. | |
81. + Source Address +
82. | |
83. + +
84. | |
85. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
86. | |
87. + +
88.
| |
89. + Destination Address +
90. | |
91. + +
92. | |
93. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
94. RFC2460格式说明:
95. Version: 4位协议号,值为6;
96. Traffic Class: 8位传输类别,相对1883中的4位prio能更好支持QoS,在源端或中间转发端用来区分不同类型和优先权的IPv6包,和IPv4的TOS字段一样是8位,这样有利于设计IPv4/IPv6兼容的QoS标准;
97. Flow Label: 20位流标签,用于源端标记IPv6包顺序,供路由器特别处理,用来满足某些,如QoS和实时信息
98. Payload Length: 16位负载长度;
99. Next Header: 8位,下一个头,类似于IPv4的Protocol字段,但不完全相同
100. Hop Limit: 8位跳数限制,类似IPv4中的TTL
101. Source Address: 128位源地址
102. Destination Address: 128位目的地址
103. 其中Traffic Class字段在RFC 2460中未明确定义,后来在在RFC 2474中定义为:
104. 0 1 2 3 4 5 6 7
105. +---+---+---+---+---+---+---+---+
106. | DSCP | CU |
107. +---+---+---+---+---+---+---+---+
108. DSCP: differentiated services codepoint
109. CU: currently unused
110.
111. 2.2.3 IPv6的扩展头类型
112. IPv6中取消了IP选项,对于IPv4中需要IP选项完成的功能,在IPv6中使用IPv6扩展头来实现:
113. Hop-by-Hop Options:nh=0,选项信息
114. Routing:nh=43,路由信息
115. Fragment:nh=44,分片信息
116. Destination Options:nh=60,目的端要检查的特殊信息
117. Authentication:nh=51,AH协议头,RFC4302
118. Encapsulating Security Payload:nh=50,ESP协议头,RFC4303
119. Nh=59: No Next Header
120.
121. 举例:一个最完整的IPv6头包括IPv6头和各种扩展头:
122. IPv6 header (next header=0)
123. Hop-by-Hop Options header (next header=60)
124. Destination Options header (next header=43)
125. Routing header (next header=44)
126. Fragment header (next header=51)
127. Authentication header (next header=50)
128. Encapsulating Security Payload header (next header=60)
129. Destination Options header (next header=upper-layer protocol)
130. upper-layer header
131.
132. 多个扩展头的使用从协议本身角度是方便性提高,但对于防火墙等设备来说来说就必须跟踪到最后一个扩展头才知道上层是什么协议,不象IPv4可以在固定位置处就能检查协议。
133.
134. 2.2.4 上层协议计算校验和时用到的伪IPv6头
135.
136. 和IPv4一样,在计算TCP、UDP等的校验和时需要用到IP头部部分信息,用到部分数据称为伪IP头,除需要的字段外其他字段值置0。
137.
138. IPv6的伪头格式:
139. 0 1 2 3
140. 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
141. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
142. | |
143. + +
144. | |
145. + Source Address +
146. | |
147. + +
148. | |
149. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
150. | |
151. + +
152. | |
153. + Destination Address +
154. | |
155. + +
tcp ip协议4和6156. | |
157. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
158. | Upper-Layer Packet Length |
159. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
160. | zero | Next Header |
161. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
162.
163. 2.3 IPv6相对IPv4优点
164.
165. 地址范围扩大:地址范围从2^32扩大到2^128,基本可视为无限,可以不再需要NAT
166. 地址类型强化和提高:简化了地址自动配置,设备自己的硬件地址直接对应IPv6地址,可以不用配置;增强了多播路由功能;新增“anycast”(泛播)地址类型,取消了广播类型以防止广播风暴;
167. 头部格式简化:头部长度固定,数据项也精简,路由设备处理起来更加容易;
168. 增强头部的扩展和选项支持:通过“next header”项将各种扩展头串起来
169. 性能提高:使用流标签,使数据具备“流”的概念,而不仅仅是IPv4中的单独的“包”的概念;
170. 认证和安全性提高:IPSec将不再是象IPv4那样是“突兀”地插入IP协议,而称为IP协议中自然的组成部分。
171.
172. 3. IPv6地址
173.
174. 3.1 书写格式
175. 基本格式:X:X:X:
X:X:X:X:X,X:16位数
176. 缩写格式:对于连续的0,可以用“::”代替,但只能代替一次
177. 兼容V4格式:X:X:X:X:X:X:d
178.
179. 3.2 IPv4到IPv6的格式转换:
180. IPv4-compatible IPv6 address, v6的低32位地址同v4,高96位地址为0
181. | 80 bits | 16 | 32 bits |
182. |0000|0000| IPv4 address |
183.
184. IPv4-mapped IPv6 address,v6的低32位地址同v4,33-48位为1,高80位地址为0
185. | 80 bits | 16 | 32 bits |
186. |0000|FFFF| IPv4 address |
187.
188. 3.3 IPv6地址空间和类型
189.
190. 3.3.1 地址空间分配
191. Unspecified 00...0 (128 bits) ::/128
192. Loopback 00...1 (128 bits) ::1/128
193. Multicast 11111111 FF00::/8
194. Link-local unicast 1111111010 FE80::/10
195. Site-local unicast 1111111011 FEC0::/10
196. Global unicast (everything else)
197.
198. 3.3.2 地址类型(广播类型地址不再存在):
199.
200. 单播:unicast,每个设备的ID号成为地址的一部分,包括以下三类:
201. Link local:用于单一连接,不可路由
202. | 10bits | 54 bits | 64 bits |
203. |1111111010| 0 | interface ID |
204.
205. Site local:用于内部网络,网络外不可路由
206. | 10bits | 54 bits | 64 bits |
207. |1111111011| subnet ID | interface ID |
208.
209. Global unicast:全局地址
210. | n bits | m bits | 128-n-m bits |
211. | global routing prefix | subnet ID | interface ID |
212.
213. 组播:multicast, FF00::/8,v4中的广播在v6中用组播代替。
214.
215. 泛播:anycast,地址空间和单播地址空间相同,一个unicast地址设置到多个网络接口后就可成为anycast地址,需要指明anycast属性。泛播包只被路由到最近的具有该地址的网络接口,通常用于DNS等服务。
216.
217. 4. 从IPv4到IPv6升级需要修改的协议
218. 链路层:以太网相对修改较小,IPv6协议号0x86DD,比较大的修改部分应该是为MTU发现处理;对于ATM网络可能修改量较大
219. ARP/RARP:需要支持v6地址到MAC的变换
220. 网络层:ICMPv4需要升级为ICMPv6, IGMP也需要升级
221. 传输层:需要网络层信息的所有协议都必须修改,如TCP/UDP的校验和计算都用到了IP伪头信息
222. 应用层:所有使用IP地址信息的协议都需要修改,特别是有子连接的协议
223. 路由协议:RIP、OSPF、…全部需要更新
224. 文本地址表示协议:如FTP、SIP等,修改相对简单
225. 数值地址表示协议:如DNS、DHCP、BOOTP、H.323等,修改相对复杂
226. 用户界面:要支持IPv6地址格式
227. 简化部分:IPSec,在IPv6中
实现IPSec相对比较简单,因为在设计IPv6时就把IPSec作为一个部分考虑进去了,而设计IPv4时根本还不存在IPSec概念,IPSec是后来硬塞进IPv4中的。
228.
229. 5. IPv4与IPv6共存方式
230. V6 over V4:IPv6包封装在IPv4包中传输
231. V4 over V6:IPv4包封装在IPv6包中传输
232. 对于网络中的服务器,路由交换设备,都需要支持同时IPv4、IPv6,因此需要实现双栈。
233.
234. 6. 实施IPv6障碍
235. 目前实施IPv6有以下几个障碍,第一,目前没有一项应用是必须使用IPv6才能完成的,所有协议IPv4均能完成;第二,由于NAT和 CIDR的使用,使IPv4地址分配速度减慢,使得IPv6需求不是那么迫切;第三,IPv6标准的不成熟性,表现在新RFC不断废除老RFC,这样抑制了厂商的生产积极性,使得相关产品总是属于实验室产品。
236.
237. 7. 结论
238.
239. 第一,IPv4升级到IPv6是大势所趋,因为IPv4地址总会在可见时间内分配完,为了支持IPv6,需要
从底层到应用层的协议进行全面修改;第二,IPv4即使在地址分配完后仍然会存在,IPv4和IPv6会共存相当长时间,单纯只支持IPv6的网络设备是没有市场的。
240.
241. 8. IPv6相关网站
242.
243. www.6bone
244. www.freenet6/
245. playground.sun/pub/ipng/html
246. www.6ren
247. www.ipv6forum
248. hs247/
249. www.ipv6
250.
251. 9. IPv6相关RFC,不同的颜代表不同的RFC状态
252. Obsoleted Used update
253. 协议标准:
254. IPv6: 1883(2460)[5095,5722,5871,6437]
255. Addressing Architecture: 1884,2373,3513(4291)[5952,6052]
256. testing address: 1897,2471(3701)
257. address format: 2073,2374(3587)
258. multicast address: (2375)
259. Allocation guidelines for IPv6 Multicast addresses: (3307)
260. Unicast-Prefix-based IPv6 Multicast Addresses: (3306)[3956,4489]
261. reserved subnet anycast: (2526)
262. Uniform Resource Identifier(URI): 1808,2396,2732(3986)
263. Textual Conventions for IPv6 Flow Label: (3595)
264. Flow Label: 3697(6437)
265. Mobility: 3775(6275)
266. Scoped address architecture: (4007)
267. unique local ipv6 unicast address: (4193)
268.
269. 物理层:
270. ipv6 over ethernet: 1972(2464)[6085]
271. 3G: (4215)
272.
273. 网络传输层:
274. neight discovery: 1970,2461(4861)[5942]
275. address autoconfig: 1971,2462(4862)
276. DHCPv6: (3315)[4361,5494,6221]
277. ipv6 over ipv4: (2529)
278. IPv6 Domains via IPv4 Clouds: (3056)
279. ICMP6: 1885,2463(4443)[4884]
280. IGMP: 2236(3376)[4604]
281. TCP/UDP: 2147(2675)
282. tunneling:(2473)
283. DiffServ: 1455(2474)
284. Multicast Listener Discovery (MLD) for IPv6:(2710)[3590, 3810]
285. Transition Mechanisms for IPv6 Hosts
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论