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 TunnelNAT转换


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理论详解_单播_02

C.站点本地单播地址(Site Local Unicast Address)范围是FEC0::/10.类似于IPv4的私有IP地址.

2.组播

标识一组设备.

IPv6理论详解_mac地址_03

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理论详解_mac地址_04 使用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理论详解_单播_05

使用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理论详解_源地址_06 

使用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-advertiseipv6-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 mtu5.ICMP重定向.使用ICMPv6类型137.Router(config-if)#ipv6 redirects133 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理论详解_mac地址_07


配置命令

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/portRouter#show ipv6 neighborsRouter#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



END