为何要部署IPV6.docx
《为何要部署IPV6.docx》由会员分享,可在线阅读,更多相关《为何要部署IPV6.docx(16页珍藏版)》请在冰豆网上搜索。
为何要部署IPV6
IPv4的局限性:
1.地址空间的局限性:
IP地址空间的危机由来已久,并正是升级到IPv6的主要动力。
2.安全性:
IPv4在网络层没有安全性可言,安全性一直被认为是由网络层以上的层负责。
3.自动配置:
对于IPv4节点的配置比较复杂,让很多普通用户无所适从。
4.NAT:
破坏了Internet端到端的网络模型。
5.由于IPv4地址分配杂乱无章,没有层次性,网络设备需要维护庞大的路由表项。
6.IPv4包头过于复杂,使得网络节点处理的效率不高。
IPV6的好处:
1、超大的地址空间
2、全球可达性,不需要再用NAT
3、全球重新部署,有规划,易于实现聚合
4、能自动配置,实现即插即用
5、方便的进行重编址
6、包头简单,通过扩展包头技术可实现以后的新技术扩展
ipv4路由转发的时候,ip包会改变checksum(校验和)和TTL(每经过一个路由器TTL值减一)ipv6只变TTL,没有校验和,没有广播,组播代替广播。
所以没有ARP。
IPv4中的广播(broadcast)可以导致网络性能的下降甚至广播风暴(broadcaststorm).在IPv6中,就不存在广播这一概念了,取而代之的是组播.(multicast)和任意播(anycast),任意播也称为泛播.
IPv6地址表示
我们知道,IPv4地址长度为32位(4个字节)。
书写IPv4的地址是用一个字节来代表一个无符号十进制整数,四个字节写成由3个点分开的四个十进制数,例如:
10.1.123.56
对于128位的IPv6地址,定义相似的表示方法是必要的。
考虑到IPv6地址的长度是原来的四倍,RFC1884规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,这些数之间用冒号(:
)分开,例如:
3ffe:
3201:
1401:
1:
280:
c8ff:
fe4d:
db39
从上面的例子我们看到了手工管理IPv6地址的难度,也看到了DHCP和DNS的必要性。
为了进一步简化IPv6的地址表示,可以用0来表示0000,用1来表示0001,用20来表示0020,用300来表示0300,只要保证数值不便,就可以将前面的0省略。
比如:
1080:
0000:
0000:
0000:
0008:
0800:
200C:
417A
0000:
0000:
0000:
0000:
0000:
0000:
0A00:
0001
可以简写为:
1080:
0:
0:
0:
8:
800:
200C:
417A
0:
0:
0:
0:
0:
0:
A00:
1
另外,还规定可以用符号:
:
表示一系列的0。
那么上面的地址又可以简化为:
1080:
:
0:
8:
800:
200C:
417A
:
:
A00:
1
IPv6地址的前缀(FP,FormatPrefix)的表示和IPv4地址前缀在CIDR中的表示方法类似。
比如0020:
0250:
f002:
:
/48表示一个前缀为48位的网络地址空间。
在IPV6中掩码只能使用CIDR表示法
2001:
410:
0:
1:
:
45ff/128
2001:
410:
:
1/64
IPV6的地址类型
可分为三大类:
1、单播地址
2、组播地址
3、任意播地址
可聚合全球单播地址可聚合全球单播地址相当于IPv4的公网地址,可以被路由的,可以正常使用的地址,但网络位最少为48位。
可聚合全球单播地址的范围是2000:
0000:
0000:
0000:
0000:
0000:
0000:
0000到3FFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF
可聚合全球单播地址占IPv6总地址空间的8分之1,也就是说,所有IPv6地址中,只有8分之1是可以给网络正常使用的。
链路本地地址,链路本地地址只在一条链路中有效,也不能被路由,而不同链路的链路本地地址是可以重复的。
因为在链路上没有链路本地地址的情况下,IPv6是不能通信的,所以每个节点必须拥有一个链路本地地址,当一个节点上正常启动了IPv6之后,链路本地地址是不需要人工干预,会自己生成的,但也可以自己手工配置链路本地地址。
自动生成的链路本地地址,有默认的特殊格式,是以FE80:
:
/10(1111111010)打头,再加54个0,还差64位,这后面的64位,再使用EUI-64来填充,
回环地址表示节点自身,类似IPv4的127.0.0.0/8回环地址表示为0000:
0000:
0000:
0000:
0000:
0000:
0000:
0001 0:
0:
0:
0:
0:
0:
0:
1 :
:
1
组播地址就是一个目标为组播地址的数据包将被多个节点收到,地址以FF00:
:
/8(11111111)打头,.表示为FF00:
0000:
0000:
0000:
0000:
0000:
0000:
0000/8
FF00:
0:
0:
0:
0:
0:
0:
0/8
任意播地址anycast:
共享IPv6的单播地址空间。
当一个单播地址被分配到多于一个的接口上时,发到该接口的报文被网络路由到路由协议度量的“最近”的目标接口上。
Unicast允许源结点向单一目标结点发送数据报,Multicast允许源结点向一组目标结点发送数据报,而Anycast则允许源结点向一组目标结点中的一个结点发送数据报,而这个结点由路由系统选择,对源结点透明;同时,路由系统选择“最近”的结点为源结点提供服务
EUI-64格式:
扩展惟一标识符
在IPV6中,无状态自动配置机制使用EUI-64格式来自动配置IPV6地址
所谓无状态自动配置是指在网络中没有DHCP服务器的情况下,允许节点自行配置IPV6地址的机制。
EUI-64的构造规则–根据接口的MAC地址再加上固定的前缀来生成一个IPV6的地址
工作原理:
自动将48bit的以太网MAC地址扩展成64bit,再挂在一个64bit的前缀后面,组成一个IPV6地址,将48位的MAC地址从中间分开,插入一个固定数值FFFE
0050:
3EE4:
4C00–>0050:
3EFF:
FEE4:
4C00
ICMPV6用来向源节点报告关于向目的地传输IP数据包的错误和信息。
定义了多种消息类型。
ICMPV6在IPV6中的协议号是58
在IPV6中ICMP的功能得到极大增强,除了原有的功能,还有以下几个主要作用
在IPV6中ICMP的主要功能:
1、路径MTU发现–PMTUD
2、替代地址解析协议–NDP(邻居发现协议)
3、无状态自动配置–NDP
4、重复地址检测–NDP
5、前缀重新编址—NDP
为NDP特有的范畴定义了新的ICMPV6消息:
NS(NeighborSolicitation)135 邻居请求
NA(NeighborAdvertisement)136 邻居通告
RS133 发到FF02:
:
2 路由器请求信息,发给所有路由器
RA134 发到FF02:
:
1 路由器通告信息,每200S发一次,发向所有节点
类型137 重定向消息
替代ARP
使用NS135和NA136消息
主机使用邻居请求消息NS135发向邻居的被请求节点组播地址,请求一个MAC地址,邻居回应一个NA136邻居通告消息
公告前缀–类似于DHCP
路由器周期性地发出RA134公告,每200S一次,主机收到后自动生成IP地址
只要在路由器的接口上配置了一个本地站点或全球可聚合单播地址,就启用了CISCO路由器上的IPV6前缀通告
默认情况下:
无状态自动配置公告的前缀长度为64比特
RS133 发到FF02:
:
2 请求信息,发给所有路由器
RA134 发到FF02:
:
1 通告信息,每200S发一次,发向所有节点
IPV6静态路由配置:
IPv6route命令添加静态ipv6路由:
Router(config)#ipv6unicast-routing//全局启用IPV6单播路由功能
Router(config)#ipv6routeipv6-prefix/prefix-length{next-hop|interface}[distance]
配置R1和R2:
R1使用网络接口S1/0,通过下跳FE80:
:
CE00:
2FF:
FEA4:
0,可到达目的IPV6网络2001:
2:
2:
:
/48
r1(config)#ipv6route2001:
2:
2:
:
/48serial1/0FE80:
:
CE00:
2FF:
FEA4:
0
r2(config)#ipv6route2001:
1:
1:
:
/48serial1/0FE80:
:
CE00:
3FF:
FE68:
0
或:
r2(config)#ipv6route2001:
1:
1:
:
/482001:
A:
A:
A:
:
1
默认路由配置例子:
r2(config)#ipv6route:
:
/0serial1/0FE80:
:
CE00:
3FF:
FE68:
0
静态路由配置时要注意:
在IPV6规范中,不推荐使用聚合全球单播或本地站点地址作为下一跳地址,一般使用本地链路地址作为下一跳,但在配置本地地址作为一下跳时,在配置中必须指出路由器上相应的网络接口
IPv6的RIP,所有路由规则与IPv4RIPv2基本相同,不同之处是IPv4RIPv2使用UDP端口520,而RIPng使用UDP端口521,IPv4RIPv2数据包更新使用地址224.0.0.9,而RIPng使用更新地址为FF02:
:
9。
在配置RIPng时,方法不同于IPv4RIP,RIPng是采用先配置进程,然后需要让哪些接口运行在RIPng下,就必须到相应的接口下明确指定,并不像IPv4RIP那样在进程下通过network来发布。
配置步骤:
R1:
ipv6unicast-routing
interfaceLoopback0
ipv6address2001:
1:
1:
1:
:
1/64
ipv6enable
ipv6ripccnpenable
interfaceSerial0/3
noipaddress
ipv6address2001:
A:
A:
A:
:
/64eui-64
ipv6enable
ipv6ripccnpenable
ipv6routerripccnp
R1(config)#ints0/3
R1(config-if)#ipvripccnpdefault-informationonly
发布默认路由
R2:
ipv6unicast-routing
interfaceLoopback0
noipaddress
ipv6address2001:
2:
2:
2:
:
1/64
ipv6enable
ipv6ripccnpenable
!
interfaceSerial0/2
noipaddress
ipv6address2001:
A:
A:
A:
:
/64eui-64
ipv6enable
ipv6ripccnpenable
clockrate2000000
!
interfaceSerial0/3
noipaddress
ipv6address2001:
B:
B:
B:
:
/64eui-64
ipv6enable
ipv6ripccnpenable
clockrate2000000
ipv6routerripccnp
R3:
ipv6unicast-routing
interfaceLoopback0
noipaddress
ipv6address2001:
3:
3:
3:
:
3/64
ipv6enable
ipv6ripccnpenable
interfaceSerial0/2
noipaddress
ipv6address2001:
B:
B:
B:
:
/64eui-64
ipv6enable
ipv6ripccnpenable
clockrate2000000
!
ipv6routerripccnp
OSPFv3与OSPFv2(IPv4OSPF)的原理都是相同的,OSPFv3选举Router-ID的规则与OSPFv2相同,OSPFv3也是选择路由器上的IPv4地址作为Router-ID,如果设备上没有配置IPv4地址,那么必须手工指定Router-ID。
在配置OSPFv3时,先配置进程,然后需要让哪些接口运行在OSPFv3下,就必须到相应的接口下明确指定,并不像OSPFv2那样在进程下通过network来发布。
预配置:
(完成接口IPV6地址)
R1:
Enable
Conft
HostR1
interfaceLoopback0
ipv6address2001:
1:
1:
1:
:
1/64
noshut
interfaceSerial0/3
noshut
ipv6address2001:
A:
A:
A:
:
/64eui-64
R2:
Enable
Conft
HostR2
interfaceLoopback0
ipv6address2001:
2:
2:
2:
:
1/64
interfaceSerial0/2
noshut
ipv6address2001:
A:
A:
A:
:
/64eui-64
interfaceSerial0/3
noshut
ipv6address2001:
B:
B:
B:
:
/64eui-64
R3:
Enable
Conft
HostR3
interfaceLoopback0
ipv6address2001:
3:
3:
3:
:
3/64
interfaceSerial0/2
noshut
ipv6address2001:
B:
B:
B:
:
/64eui-64
配置步骤:
R1(config)#ipvunicast-routing
R1(config)#ipvrouterospf1
R1(config-rtr)#router-id1.1.1.1
R1(config-rtr)#exit
R1(config)#intloop0
R1(config-if)#ipvenable
R1(config-if)#ipvospf1area0
R1(config-if)#ints0/3
R1(config-if)#ipvenable
R1(config-if)#ipvospf1area0
R2(config)#ipv6unicast-routing
R2(config)#ipvrouterospf1
R2(config-rtr)#router-id2.2.2.2
R2(config-rtr)#ints0/2
R2(config-if)#ipvenable
R2(config-if)#ipvospf1area0
R2(config-if)#ints0/3
R2(config-if)#ipvenable
R2(config-if)#ipvospf1area0
R2(config-if)#intloop0
R2(config-if)#ipvenable
R2(config-if)#ipvospf1area0
R3(config)#ipvunicast-routing
R3(config)#ipvrouterospf1
R3(config-rtr)#router-id3.3.3.3
R3(config-rtr)#ints0/2
R3(config-if)#ipvenable
R3(config-if)#ipvospf1area0
R3(config-if)#intloop0
R3(config-if)#ipvenable
R3(config-if)#ipvospf1area0
EIGRPv6与IPv4EIGRP的原理都是相同的,但是EIGRPv6必须有router-id才能运行,所以在EIGRPv6不能获得router-id时,请手工配置router-id;在配置EIGRPv6时,先配置进程,然后需要让哪些接口运行在EIGRPv6下,就必须到相应的接口下明确指定。
注意的是EIGRPv6进程有个shutdown的特性,要用noshutdown开启进程.
IPV6BGP,是用来传递IPv4路由的,所传递的信息是IPv4的协议,如果要让BGP传递其它路由或协议,这就需要将BGP扩展为支持更多协议的BGP,如扩展BGP支持IPv6协议,支持vpnv4,这样的支持多协议的BGP,称为MultiprotocolBGP,即MP-BGP,要配置MP-BGP,就需要为除IPv4之外的协议单独创建address-family,但是建立BGP邻居和正常情况下一样,当邻居建立之后,还得到address-family下活动,这是MP-BGP的特性,而需要发布的网段,也需要到address-family下发布。
传递单播IPv6的address-family应该是address-familyipv6unicast,但关键字unicast如果省略,默认就是address-familyipv6unicast。
隧道技术:
当两个IPv6网络需要通信时,如果中间需要穿越IPv4网络,而由于IPv4网络中只能识别IPv4包头,并不能为IPv6数据提供正确的路径传输,这时就需要在IPv4网络中为IPv6创建一条隧道,来提供IPv6在IPv4中的传递,这样的隧道,就是把IPv6的数据全部封装在IPv4中,将IPv4当作链路层来传递的隧道形式,称为覆盖型隧道(OverlayTunnels)。
由于隧道是建立在IPv4基础上的,隧道又必须有起点和终点来明确隧道的路径,所以覆盖型隧道的起点和终点最好是使用IPv4地址,有时必须是IPv4地址,并且隧道在传输IPv6数据时,也应该在隧道的两端添加IPv6地址,来完成两端IPv6网络的通信。
隧道的起点和终点必须同时支持IPv4和IPv6。
当前在IOS中支持的覆盖型隧道共有以下几中:
Manual点对点,只传递IPv6数据包。
模式为:
ipv6ip
Genericroutingencapsulation(GRE)点对点,可以传递多种协议。
模式为:
greip
IPv4-compatible点到多点的,思科不建议使用。
模式为:
ipv6ipauto-tunnel
6to4点到多点的,使用地址为2002:
:
/16。
模式为:
ipv6ip6to4
Intra-SiteAutomaticTunnelAddressingProtocol(ISATAP)是点到多点的。
模式为:
ipv6ipisatap
teredotunneling:
一种通过网络地址转换器(NAT)发送IPv4封装的IPv6数据包的IPv6转换技术。
6to4隧道也是一种自动构造隧道的方式。
6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。
6to4隧道通过IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。
6to4隧道采用特殊的地址:
6to4地址,它以2002开头,后面跟着32位的IPv4地址转化的32位16进制表示,构成一个48位的6to4前缀2002:
IPv4ADDR:
:
/48。
6to4隧道实验:
预配置:
R2
En
Conft
Hostr2
Ints0/3
Ipadd23.1.1.2255.255.255.0
Noshut
Intloop0
Ipadd2.2.2.2255.255.255.255
Routerospf1
Net0.0.0.0255.255.255.255area0
R3
En
Conft
Hostr3
Ints0/2
Ipadd23.1.1.3255.255.255.0
Noshut
Ints0/3
Ipadd34.1.1.3255.255.255.0
Noshut
Routerospf1
Net0.0.0.0255.255.255.255area0
R4
En
Conft
Hostr4
Ints0/2
Ipadd34.1.1.4255.255.255.0
Noshut
Intloop0
Ipadd4.4.4.4255.255.255.255
Routerospf1
Net0.0.0.0255.255.255.255area0
配置步骤:
R2:
ipv6unicast-routing
interfaceLoopback0
ipaddress2.2.2.2255.255.255.255
interfaceTunnel0
tunnelsourceLoopback0
tunnelmodeipv6ip6to4
interfaceSerial0/2
ipv6enable
ipv6ospf1area0
ipv6route2002:
404:
404:
:
/48Tunnel0
ipv6routerospf1
router-id2.2.2.2
redistributestatic
R4:
ipv6unicast-routing
interfaceLoopback0
ipaddress4.4.4.4255.255.255.255
interfaceTunnel0
tunnelsourceLoopback0
tunnelmodeipv6ip6to4
interfaceSerial0/3
ipv6enable
ipv6ospf1area0
ipv6route2002:
202:
202:
:
/48Tunnel0
ipv6routerospf1
router-id4.4.4.4
redistributestatic
R1:
ipv6unicast-routing
interfaceLoopback0
ipaddress1.1.1.1255.255.255.255
ipv6address2002:
202:
202:
1:
:
1/64
ipv6enable
ipv6ospf1area0
interfaceSerial0/3
ipv6enable
ipv6ospf1area0
ipv6routerospf1
router-id1.1.1.1
R2:
ipv6unicast-routing
interfaceLoopback0
ipaddress5.5.5.5255.255.255.255
ipv6address2002:
202:
202:
5:
:
5/64
ipv6enable
ipv6ospf1area0