IPv6理论详解

简介: IPv6理论详解

IPv4局限性:


1.地址短缺.

2.IP头部比较复杂.

3.路由器和主机的配置比较复杂.

4.复杂的重编址.

5.路由表非常庞大.

5.IP安全,IP组播和移动IP部署困难.


IPv4解决方案:


1.NAT(PAT)    

端到端的IP模型被破坏了,转发速率慢,占用资源多.

2.子网划分(VLSM)

3.DHCP.

4.CIDR.

5.强制高效的地址管理.


IPv6特点:


1.庞大的地址空间

全球可达性和灵活性.

支持更好的地址聚合.

支持多宿主.

支持Stateless地址自动配置.

支持即插即用.

端到端之间不需要NAT.

支持更好的重编址机制.

2.更简单的报头

路由更有效.

性能和转发速率可靠.

不存在广播.

不存在校验和.

支持扩展报头.

流标签.

3.支持移动性和安全性

遵循RFC的移动IP.使用扩展报头(路由选择报头和目的地址报头).

强制的IPsec(AH和ESP).

4.过渡方式丰富多彩

双栈

6-to-4 Tunnel

NAT转换


IPv4与IPv6对比


1.地址空间

IPv4地址是32bits,可提供2^32个地址.

IPv6地址是128bits,可提供3.4x10^38个地址.

2.报头

IPv4报头长度范围是20 - 60字节,IPv6报头为固定长度40字节.

Version(4bit) IPv4为0x0100,IPv6为0x0110.

Traffic Class(8bit) 与IPv4的ToS相对应,主要用于DiffServ.

Flow Label(20bit) IPv4中流使用5元素标记分别是源和目的IP地址,源和目的端口号以及上层协议.IPv6中流只使用源和目的IP地址以及流标签.

Payload Length(16bit) IPv6数据包有效负载长度.

Hop Limit(8bit) IPv4中是TTL,每经过一条路由器将其减1.

Next Header(8bit) 逐跳选项报头(0),目的选项报头(60),路由报头(43),分段报头(44),AH报头(51),ESP报头(50)


IPv6编址


8个16bit的十六进制段用":"分隔,每个16bit段中值范围是0x0000 - 0xFFFF.

IPv6地址简写规则

1.每个16bit段中如果起始为0,则可省略.

2.在连续的16bit段如果都为0,则可书写为"::",但每个IPv6地址只能出现一个"::".    

::/0是IPv6的缺省地址.

::/128是IPv6的未指定地址(Unsecified Address).

::1/128是IPv6的Loopback接口地址.                                                                  


IPv6地址类型


1.单播


用于一个单独的接口.

A.全局单播地址(Global Unicast Address)

范围是2000-3FFF,2000被保留.

2001::/16 全球第一个商用IPv6地址.

2002::/16 6-to-4 Tunnel保留使用.

3FFF::/16 非商业化IPv6地址,教育和科研等使用.

注:每个接口上可以存在多个全局单播地址.

B.链路本地单播地址(Link Local Unicast Address)

范围是FE80::/10.用于在本地链路上标识设备的唯一性.

EUI-64是在MAC地址第24位后插入FFFE从而形成了Interface-ID,接口MAC地址第7位置为1,表示是全局唯一的.

640.png

C.站点本地单播地址(Site Local Unicast Address)

范围是FEC0::/10.类似于IPv4的私有IP地址.


2.组播


标识一组设备.

640.png


Flag 0表示是永久的, 1表示是临时的.

Scope 1表示本地接口,2表示是链路本地,3表示本地子网,4表示本地管理,5表示是场点本地,8表示组织本地,E表示全球范围.

FF02::1--本地链路上的所有节点.

FF02::2--本地链路上的所有路由器.

FF02::5--本地链路上的所有OSPFv3路由器.

FF02::6--本地链路上的所有OSPFv3 DR.

FF02::9--本地链路上的所有RIP路由器.

FF02::A--本地链路上的所有EIGRP路由器.

FF02::C--本地链路上的所有DHCP服务器.

FF02::D--本地链路上的所有PIM路由器.

FF02::1:FFXX.XXXX--请求节点地址.

FF05::101--场点本地上的所有NTP服务器.


3.任意播


一到最近.多个设备共享一个相同的地址.路由器会选择最近的设备到达目的地.

Neighbor Discovery Protocol(NDP)

依靠ICMPv6实现的,IPv6协议号是58.

1.重复地址检测DAD(Duplicate Address Detection)


640.png


使用ICMPv6类型135 NS和请求节点地址.


路由器A发送NS,Source-IPv6为::,Destination-IPv6为其自己的请求节点地址.

路由器B也发送NS,如果出现重复地址的话,则只允许一方使用其配置的IPv6地址.

Router(config-if)#ipv6 nd daa attempt value--设置接口上DAD请求次数,设置为0表明不发送DAD请求.


2.代替ARP

640.png


使用ICMPv6类型135 NS和136 NA以及请求节点地址.


路由器A发送的NS中Source-IPv6为::,Destination-IPv6为路由器B的请求节点地址.Source-MAC为Y,Destination-MAC为路由器B的IPv6地址到组播MAC地址的映射.

路由器A发送的NS中Source-IPv6为W,Destination-IPv6为X.Source-MAC为Z,Destination-MAC为Y.

Router(config)#ipv6 neighbor ipv6-address/prefix-length interface mac-address--手工设置IPv6邻居的MAC地址.

Router(config-if)#ipv6 nd ns-interval milliseconds--调整NS的发送间隔.

Router(config-if)#ipv6 nd reachable-time milliseconds--调整IPv6邻居可达性的时间验证间隔,默认为30分钟.

Router#show ipv6 neighbors--查看IPv6的邻居表(相当于IPv4的ARP表).

Router#clear ipv6 neighbors--清除IPv6的邻居表.


3.无状态的自动配置(Stateless autoconfiguration).


使用ICMPv6类型133 RS和134 RA.


1).前缀通告


640.png

路由器A周期性发送RA,Source-IPv6为路由器A的本地链路地址,Destination-IPv6为FF02::1,RA消息中包含前缀,前缀长度以及接口MTU.


PC B发送RS,Source-IPv6为PC B的本地链路地址,Destination-IPv6为FF02::2.

Router(config-if)#ipv6 nd prefix ipv6-prefix/prefix-length [default valid-lifetime preferred-lifetime at valid-date preferred-date] off-link no-autoconfig no-advertise

ipv6-prefix/prefix-length RA中通告的前缀信息,无状态自动配置的Prefix-length默认为64.


default 采用默认参数.

valid-lifetime 无状态配置得到的IPv6地址的有效期.

preferred-lifetime IPv6地址保持首选项状态的时间.

Router(config-if)#ipv6 nd suppress-ra--关闭接口上发送RA,通常用于连接路由器时.

Router#show ipv6 routers

4.MTU发现(PMTUD).

使用ICMPv6类型2,数据包超长错误信息.使用PMTUD发现的MTU值被源端缓存.

Router#show ipv6 mtu

5.ICMP重定向.

使用ICMPv6类型137.

Router(config-if)#ipv6 redirects

133 Router Solicitation(RS)前缀请求

RS由主机发送.源地址为链路本地单播地址,目的地址为FF02::2.每次启动时只能发送3个RS.

134 Router Advertisement(RA)前缀通告

RA由路由器发送.源地址为链路本地单播地址,目的地址为FF02::1.每200s或收到RS时发送.

包含MAC地址,MTU以及prefix信息.

135 Neighbor Solicitation(NS)邻居请求

NS数据包中的源地址为::(Local),目的地址为FF02::1:FFXX.XXX(XX.XXXX为链路本地单播地址的最后24bits),其中的target中包含本地链路单播地址.

136 Neighbor Advertisement(NA)邻居通告

NA中宣告本地路由器使用的IPv6地址,其中源地址为其全局单播地址或链路本地单播地址,目的地址为FF02::1.


137 Redirect

640.png

配置命令


Router(config)#ipv6 unicast-routing--启用IPv6路由.
Router(config-if)#ipv6 enable--在接口上自动配置链路本地单播地址.
Router(config-if)#ipv6 address FE80:x.x.x.x.x.x.x/n link-local--修改链路本地单播地址
Router(config-if)#ipv6 address x.x.x.x.x.x.x.x/n--直接配置IPv6全局单播地址.
Router(config-if)#ipv6 address x.x.x.x.x.x.x.x/n EUI-64--依据Interface-ID配置全局单播地址.
Router(config-if)#ipv6 address autoconfig--IPv6地址无状态自动配置.
Router#show ipv6 interface slot/port
Router#show ipv6 neighbors
Router#show ipv6 route--查看IPv6路由表.
Router#show ipv6 protocol

 

IPv6路由协议

1.Static

Router(config)#ipv6 route ipv6-prefix/prefix-length {next-hop | interface} [distance]
Next-hop必须指定为下一跳的本地链路地址且要配置出站接口.
Router(config)#ipv6 route ipv6-prefix/prefix-length interface link-local-address--推荐IPv6静态路由配置方式.
Router(config)#ipv6 ::/0 interface next-hop--配置IPv6缺省路由.

2.RIPng

DV路由协议,最大跳数为15跳,RIP的防环机制仍然保留.使用组播地址FF02::9.使用UDP端口号521.
下一跳地址为链路本地单播地址,更新源地址也是本地链路地址.
Router(config)#ipv6 router rip tag--启用RIPng进程,tag只标识进程本地有效.
Router(config-if)#ipv6 rip tag enable--接口上启用RIPng进程.
Router(config-if)#ipv6 rip tag default-information {only | originate}--宣告RIPng缺省路由,only表示只宣告缺省路由抑制其他明细路由.originate表示既宣告缺省也宣告明细.
Router(config-if)#ipv6 rip tag summary-address ipv6-prefix/prefix-length--配置RIPng路由汇总.
Router(config-if)#ipv6 rip tag metric-offset number--配置RIPng偏移列表.
Router#debug ipv6 rip
Router#clear ipv6 rip tag

3.OSPFv3

与IPv4具有相同机制.
携带IPv6地址,链路本地单播地址用于源.
Link-ID取消了.OSPFv3 Router-ID必须手工指定.
OSPFv3 LSA
0x2001 LSA 只包含ADV Router以及邻居的Router-ID
0x2009 LSA(链路) 包含链路本地单播地址以及接口地址.
0x2009 LSA(区域内前缀) 包含前缀信息.
以上三个LSA 相当于将OSPFv2 Router LSA进行了拆分.
0x2003 LSA(区域内前缀LSA)
0X2004 LSA(区域间前缀LSA)
0x2005 LSA  携带外部网络的前缀信息.
Router(config)#ipv6 router ospf process-id
Router(config-rtr)#router-id x.x.x.x--必须手工设置Router-id.

4.IS-IS

Router(config)#router isis [tag]
Router(config-router)#net network-entiy-title
Router(config-if)#ipv6 router isis

5.MP-BGPv4

Router(config)#router bgp autonomous-system
Router(config-router)#no bgp default ipv6-unicast
Router(config-router)#bgp router-id x.x.x.x--IPv6中仍然使用一个32bit的点分十进制表示的Router-ID.
Router(config-router)#neighbor ipv6-address remote-as autonomous-sysytem
Router(config-router)#address-family ipv6 unicast
Router(config-router-af)#neighbor ipv6-address activate
Router(config-router-af)#network ipv6-prefix/prefix-length
Router#show bgp ipv6 [summary]

6.EIGRPv3

IPv4与IPv6的转换


1.双栈


IPv4以太网帧的协议ID为0x0800,IPv6以太网帧的协议ID为0x86DD.

在Cisco路由器接口上同时配置了IPv4和IPv6地址就是启用了双栈.


2.Tunnel


路由器必须支持双栈.将IPv6数据包封装到IPv4数据包中.【IPv4报头 IPv6报头 有效载荷】

IPv6有效载荷减少了20字节(IPv4报头).封装在IPv4的IPv6数据包使用IP协议号41.

1).IPv6 over IPv6

Router(config)#interface tunnel number
Router(config-if)#ipv6 address ipv6-prefix/prefix-length--推荐使用/64前缀.
Router(config-if)#tunnel source ipv4-address
Router(config-if)#tunnel destination ipv6-address
Router(config-if)#tunnel mode ipv6ip
Router(config)#ipv6 route ipv6-prefix/prefix-length tunnel number

2).6-to-4 Tunnel

使用2002::/16的地址空间,IPv4地址转换为IPv6地址的形式是2002:IPv4-address::/48.
Router(config)#interface loopback number
Router(config-if)#ip address ipv4-address netmask
Router(config)#interface interface-type interface-number
Router(config-if)#ipv6 address ipv6-prefix/prefix-length
Router(config)#interface tunnel number
Router(config-if)#ipv6 unnumbered interface-type interface-number
Router(config-if)#tunnel source interface-type interface-number
Router(config-if)#tunnel mode ipv6ip 6to4
Router(config)#ipv6 route 2002::/16 tunnel number

3).6-to-4 Tunnel 中继

在6-to-4 Tunnel上增加一条缺省路由.
Router(config)#ipv6 route ::/0 2002:IPv4-address::xx

3.NAT-PT

Router(config-if)#ipv6 nat
Router(config-if)#ipv6 nat prefix ipv6-prefix/96
Router(config)#ipv6 nat v6v4 source ipv6-address ipv4-address
Router(config)#ipv6 nat v4v6 source ipv4-address ipv6-address
Router#show ipv6 nat translations


相关文章
|
网络协议 网络架构
【HCIA】IPV6与ospfv3的理论实战
【HCIA】IPV6与ospfv3的理论实战
76 1
【HCIA】IPV6与ospfv3的理论实战
|
6月前
|
网络协议 网络架构
【计算机网络】第四章 IPv4
【计算机网络】第四章 IPv4
63 0
|
网络协议 算法 安全
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.4 IPv6 和 IPv4 的对比
《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.IPv6 和 IPv4 的对比
|
网络协议 物联网 网络架构
带你读《互联网协议第六版 (IPv 6)》第一章概述1.1IPv6的概念
《互联网协议第六版 (IPv 6)》第一章概述1.1IPv6的概念
|
网络协议 算法 网络架构
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(二)
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(二)
|
网络协议
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(三)
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(三)
|
网络协议 安全 网络安全
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(一)
《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍
带你读《互联网协议第六版 (IPv 6)》第二章IPv6 技术介绍2.1IPv6 特性介绍(一)
|
网络协议 应用服务中间件 芯片
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.2IPv4 到 IPv6 的过渡阶段
《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.2IPv4 到 IPv6 的过渡阶段
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.2IPv4 到 IPv6 的过渡阶段
|
网络协议 前端开发 物联网
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.1IPv6 改造的基本概念
《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.1IPv6 改造的基本概念
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.1IPv6 改造的基本概念
|
网络协议 Linux Windows
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.3 IPv6 过渡技术(一)
《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.3 IPv6 过渡技术
带你读《互联网协议第六版 (IPv 6)》第三章IPv6过渡技术3.3  IPv6 过渡技术(一)