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,表示是全局唯一的.

IPV6理论详解

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

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

2.组播

标识一组设备.

IPV6理论详解

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)

IPV6理论详解

使用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

IPV6理论详解

使用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).前缀通告

IPV6理论详解

使用ICMPv6类型134和组播地址FF02::1.

路由器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

IPV6理论详解

配置命令

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 protocols

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


分享到:


相關文章: