[2001:
410:
0:
1:
250:
fcee:
e450:
33ab]:
8443/abc.html>
IPV6中掩码的表示:
在IPV6中掩码只能使用CIDR表示法
2001:
410:
0:
1:
:
45ff/128
2001:
410:
:
1/64
注意:
在IPV6中没有广播地址和网络号保留地址
--------------------------------------------------------------------
<IPV6的地址类型>
可分为三大类:
1、单播地址
2、组播地址
3、任意播地址
单播--Unicast:
onetoone
·单播地址用于一对一的连接
·IPv6单播地址有以下六种类型:
1-AggregateGlobalUnicastAddress2xxx:
xxxxx/3-3FFF:
:
FFFF
2001:
:
/16IPV6因特网地址
2002:
:
/166to4过渡地址
2-LinkLocalAddress FE80:
:
/10(前10位以FE80开头)
3-SiteLocalAddress(Private)FEC0:
:
/10
4-UnspecifiedAddress 0:
0:
0:
0:
0:
0:
0:
0/128=>:
:
/128
5-LoopbackAddress 0:
0:
0:
0:
0:
0:
0:
1/128=>:
:
1/128
6-IPv4CompatibleAddress:
:
192.168.30.1=>:
:
C0A8:
1E01
以下是一些单播地址的具体说明:
1、可聚合全球单播地址Aggregateglobalunicastaddress
由IANA分配的可在全球路由的公网IP地址
目前已分配的前缀:
2000:
:
/3占用了12.5%的IPV6地址空间
2000:
0000:
0000:
0000:
0000:
0000:
0000:
0000--3FFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF:
FFFF
这个前缀中总共包含8192个/16的前缀
目前实际用于IPV6因特网运作的前缀:
2001:
:
/16
2002:
:
/16为使用6-TO-4过渡机制的节点保留
3ffe:
:
/16用于6bone测试目的的前缀
2、本地链路地址:
link-localaddress
当在一个节点启用IPV6,启动时节点的每个接口自动生成一个link-localaddress
其前缀64位为标准指定的,其后64位按EUI-64格式来构造
注意:
在本链路上,路由表中看到的下一跳都是对端的LinkLocal地址,不是公网IP地址
前缀:
FE80:
:
/10
范围:
只能在本地链路使用,不能在子网间路由
为何需要link-local--在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。
所以出现LinkLocal地址唯一标识一个节点。
在本地链路看到下一跳都是对端的LinkLocal地址。
在网络重新编址过程中,节点和路由器的LinkLocal地址不会发生变化,可以很容易地做一个修改,不用担心网络不可达。
R1(config-if)#ipv6addressFE80:
0:
0:
0:
0123:
0456:
0789:
0abclink-local手工指定link-local地址
3、本地站点地址:
site-localaddress
IPV6的私网地址,就像IPV4中的私网保留地址一样
只占用到整个IPV6地址空间的0.1%
前缀:
FEC0:
:
/10其后的54比特用于子网ID最后64位用于主机ID
范围:
只能在本站点内使用,不能在公网上使用
例如:
在本地分配十个子网
1、FEC0:
0:
0:
0001:
:
/64
2、FEC0:
0:
0:
0002:
:
/64
3、FEC0:
0:
0:
0003:
:
/64
10、FEC0:
0:
0:
000A:
:
/64
本地站点地址被设计用于永远不会与全球IPV6因特网进行通信的设备,比如:
打印机、内部网服务器、网络交换机等
4、未指定地址Unspecifiedaddress
形式:
0:
0:
0:
0:
0:
0:
0:
0
表示地址未指定,或者在写默认路由时代表所有路由
5、回环地址Loopackaddress
形式:
0:
0:
0:
0:
0:
0:
0:
1
同IPV4中127.0.0.1地址的含义一样,表示节点自已
6、内嵌IPV4地址的IPV6地址IPv4CompatibleAddress
1、IPV4兼容的IPV6地址--用于在IPV4网络上建立自动隧道,以传输IPV6数据包。
其中高96bit设为0,后面跟32bit的IPV4地址
0000:
0000:
0000:
0000:
0000:
0000:
206.123.31.2
0000:
0000:
0000:
0000:
0000:
0000:
ce7b:
1f01
由于这种机制不太好,现在已经不再使用,转而采用更好的过渡机制
2、映射IPV4的IPV6地址--仅用于拥有IPV4和IPV6双协议栈节点的本地范围
其中高80bit设为0,后16bit设为1,再跟IPV4地址
0000:
0000:
0000:
0000:
0000:
ffff:
206.123.31.2
0000:
0000:
0000:
0000:
0000:
ffff:
ce7b:
1f01
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
二、将第7个比特位反转,如果原来是0,就变为1,如果原来是1,就变为0
0050:
3EFF:
FEE4:
4C00-->0250:
3EFF:
FEE4:
4C00
三、加上前缀--FE80:
:
0250:
3EFF:
FEE4:
4C00这就是一个完整的IPV6地址
反转的原因:
在MAC地址中,第7比特为1表示本地管理,为0表示全球管理
在EUI-64格式中,第7位为1表示全球惟一,为0表示本地惟一
组播地址Multicast
在IPV6中没有广播,用组播来代替
前缀:
FF00:
:
/8占用了0.38%的IPV6地址空间
111111114bit4bit
|→固定值←||→标志←||→范围←|
标志位为0000表示是永久保留的组播地址,分配给各种技术使用
标志位为0001表示是用户可使用的临时组播地址
范围段定义了组播地址的范围,其定义如下:
二进制十六进制范围类型
00011本地接口范围
00102本地链路范围
00113本地子网范围
01004本地管理范围
01015本地站点范围类似组播的私网地址
10008组织机构范围
1110E全球范围类似组播的公网地址
下面是一些组播指定地址:
FF02:
:
1allnodes在本地链路范围的所有节点
FF02:
:
2allrouters在本地链路范围的所有路由器
FF02:
:
5allospfrouters
FF02:
:
9allriprouters所有运行RIP的路由器
FF02:
:
Aalleigrprouters所有运行eigrp的路由器
FF05:
:
2在一个站点范围内的所有路由器
被请求节点的组播地址solicited-nodemulticastaddress--重要的东东
一种特殊的组播地址,对于节点或路由器的接口上配置的每个单播和任意播地址,都会自动生成一个对应的被请求节点组播地址。
注意link-localaddress也会生成一个被请求节点的组播地址。
工作范围:
只在本地链路上有效
特点:
1、在本地链路上,被请求节点的组播地址组中通常只包含一个用户
2、只要知道一个节点的IPV6地址,就能计算出它的被请求节点的组播地址
作用:
1、在IPV6中,没有ARP。
ICMP代替了ARP的功能,被请求节点的组播地址被节点用来获得相同本地链路上邻居节点的链路层地址
2、用于重复地址检测DAD,在使用无状态自动配置将某个地址配置为自已的IPV6地址之前,节点利用DAD验证在其本地链路上该地址是否已经被使用。
前缀:
FF02:
0000:
0000:
0000:
0000:
0001:
FFxx:
xxxx/104
FF02:
:
1:
FFxx:
xxxx/104
如何产生:
被请求节点组播地址的前104位固定,将IP地址的后24位移下来填充到后面就可以了
例如:
IPv6---2001:
:
1234:
5678/64
被请求节点组播地址---FF02:
:
1:
FF34:
5678/104
其中FF02:
:
1:
FF为固定部分,共104位
组播IP地址到MAC地址的映射:
映射规则:
组播MAC地址的前16位固定为0x3333,将组播IPV6地址的后32位直接映射到组播MAC地址的后32位就可以了。
例:
IPV6地址为--FF12:
:
1234:
5678/64
对应的组播MAC地址为--3333:
1234:
5678
0x3333为固定前缀
例:
所有节点的组播地址:
FF02:
:
0001
对应的组播MAC地址:
3333:
0000:
0001
任意播地址Anycastaddress
应用在one-to-nearest(一到近)模式
任意播是多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址。
例如:
Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,只需要找到最近的即可。
必须的IPV6地址:
一旦节点启用IPV6,那么接口就会自动生成下列地址
1、本地链路地址
2、回环地址
3、所有节点多播地址FF02:
:
1
4、如果是路由器,还会有FF02:
:
2
5、被请求节点的组播地址
如果接口配了一个IPV6的单播地址,还会产生被请求节点的组播地址
《如何在帧中继中写MAP》
注意:
必须写两条MAP,一条是所配IPV6地址的MAP,一条是link-local地址的MAP
否则会由于没有MAP映射导致无法PING通。
<IPV6的基本命令>
R1(config)#ipv6unicast-routing在路由器上开启IPV6路由功能
R1(config-if)#ipv6enable在接口下启用IPV6,会自动生成一个link-local地址
R1(config-if)#ipv6address2001:
:
1/64指定一个IP地址,配置后会自动生成一个link-local地址
R1(config-if)#ipv6addressFE80:
0:
0:
0:
0123:
0456:
0789:
0abclink-local手工指定link-local地址
R1(config-if)#ipv6address2001:
0410:
0:
1:
:
/64eui-64使用eui-64格式自动生成IPV6地址的低64位
R1(config-if)#ipv6unnumbered让本接口借用另一个接口的地址
R1(config-if)#ipv6mtu1500配置接口的MTU值
R1(config-if)#ipv6ndsuppress-ra关闭自动下发前缀
R2(config-rtr)#nosplit-horizon关闭水平分割注意IPV6的水平分割是在进程下关闭,不是在接口下
showipv6interfacee0显示IPV6接口的信息,包括IPV6地址,link-local地址,加入的组播地址及被请求节点组播地址
注意:
串口和loopback口会借用以太口的MAC地址来生成link-local地址。
--------------------------------------------------------------------
《ICMPV6》
ICMP用来向源节点报告关于向目的地传输IP数据包的错误和信息。
定义了多种消息类型。
ICMPV6在IPV6中的协议号是58
在IPV6中ICMP的功能得到极大增强,除了原有的功能,还有以下几个主要作用
在IPV6中ICMP的主要功能:
1、路径MTU发现--PMTUD
2、替代地址解析协议--NDP
3、无状态自动配置--NDP
4、重复地址检测--NDP
5、前缀重新编址--NDP
一、PMTUDpathMTUdiscovery
作用:
使用ICMP来检测数据包传输路径上最小的MTU值,检测到后使用ICMP类型2消息(数据包超长)告知源路由器,这样分片的工作在源路由器上就可完成,中间路由器不必做这一工作。
原理如下:
PMTUD使用ICMPV6的类型2消息--数据包超长错误消息
Router#showipv6mtu显示源节点缓存的去每一个目的地的PMTUD值
二、在IPV6中使用NDP
为NDP特有的范畴定义了新的ICMPV6消息:
NS(NeighborSolicitation)135邻居请求
NA(NeighborAdvertisement)136邻居通告
RS133发到FF02:
:
2路由器请求信息,发给所有路由器
RA134发到FF02:
:
1路由器通告信息,每200S发一次,发向所有节点
类型137重定向消息
三、替代ARP
使用NS135和NA136消息
主机使用邻居请求消息NS135发向邻居的被请求节点组播地址,请求一个MAC地址,邻居回应一个NA136邻居通告消息
showipv6neighbors显示IPV6邻居的地址,生存期、链路层地址、和去往邻居的接口
router#ipv6neighborfec0:
:
1:
0:
0:
1:
be00080:
12ff:
6633静态加入一个邻居项
clearipv6neighbors清除邻居发现表
默认情况下邻居请求消息1000ms发送一次,可用以下命令修改:
router(config-if)#ipv6ndns-interval1000
router(config-if)#ipv6ndreachable-time1800000设置邻居的可达时间间隔,默认30分钟,如果30分钟内还没再收到邻居的消息,就会从邻居发现表中删除邻居表项
四、公告前缀--类似于DHCP
路由器周期性地发出RA134公告,每200S一次,主机收到后自动生成IP地址
只要在路由器的接口上配置了一个本地站点或全球可聚合单播地址,就启用了CISCO路由器上的IPV6前缀通告
默认情况下:
无状态自动配置公告的前缀长度为64比特
RS133发到FF02:
:
2请求信息,发给所有路由器
RA134发到FF02:
:
1通告信息,每200S发一次,发向所有节点
注意:
每一条被通告的前缀都有生存期--
生存期:
每一个被公告前缀都有生存期,可以从0到无穷大,路由器会不断检查这个值,生存期又分两种
有效生存期:
主机节点保持有效状态的时间。
首选生存期:
必须小于或等于有效生存期,到期后,IPV6地址不能主动去建立新的连接,但可以在有效生存期没过时之前接受别的连接。
通常用于前缀重新编址。
在默认情况下,cisco设备中,有效生存期为30天,首选生存期为7天
Autoconfiguration自动配置
来看下IPv6接口的自动配置--当本地链路的路由器发送网络类型信息(前缀)给所有节点的时候.支持IPv6的主机就把它自己64位的链路层地址(即MAC地址)附着在64位的前缀后面按EUI-64格式自动配置成128位长的地址,保证地址的唯一性.自动配置启用即插即用(PlugandPlay)
showipv6interfacee0prefix显示路由器接口上公告的前缀的参数
R2(config-if)#ipv6addressautoconfig用路由器模拟主机时,允许这个接口使用无状态自动配置,默认情况下路由器不允许使用无状态自动配置
R1(config-if)#ipv6ndra-lifetime1000000设定路由器公告消息(RA134)的生存期,默认情况下为30min
R1(config-if)#ipv6ndra-interval200设定路由器公告消息的时间间隔,默认是200S
R1(config-if)#ipv6ndprefix2001:
1:
1:
:
/642000010000改写前缀公告的参数,后面分别是有效时间和首选时间
R1(config-if)#noipv6ndprefix2001:
1:
1:
:
/64不通告本前缀(nnd,这条命令咋不起作用)
R1(config-if)#ipv6ndsuppress-ra基于接口关闭路由器公告
R1(config-if)#ipv6ndmanaged-config-flag在主机节点上启用有状态自动配置
debugipv6nd调试前缀公告信息
五、重复地址检测
使用邻居请求消息NS135
用于确定准备配置的IPV6地址在网络上是否唯一。
六、重编址
路由器发送组播数据包,其中数据包中包含2个前缀,一个是拥有比较短的生存期的旧前缀,还有一个是新的拥有正常时间的前缀.通知网络上的节点用完旧的前缀后换成新的前缀,这样就能进行平滑的前缀过渡
也是使用RS和RA消息
七、路由器重定向
使用重定向消息,类型为137
路由器使用ICMPV6重定向消息通知链路上的节点,在链路上存在一个更好的转发数据包的路由器.
默认是启用的
R1(config-if)#noipv6redirects关闭重定向
八、Ping
echo128
echoreply129
====================================================================IPV6的路由:
<静态路由>
建议写法:
ipv6route2001:
:
/64e0fe80:
:
1234:
abcd:
1234:
abcd(下一跳的linklocal地址)
--ripng
在IPV6中使用UDP521端口,在IPV4中是520端口
使用组播地址:
FF02:
:
9
操作半径15跳
ipv6unicast-routing
ipv6routerripWOLF必须要有一个进程号
ints1/0
ipv6ripWOLFenable必须进入接口下开启接口的RIP
Showipv6route
Showipv6routerip
showipv6rip
showipv6ripdatabase
IPV6的水平分割是整个路由器开启(在进程中关闭),IPV4是在接口下开关的,在帧中继的HUB-spoke模式中要关闭水平分割
注意:
在RIPng中,每台路由器是在自已的入方向增加路由的metric值。
而始发路由的路由器会在发出路由时加一跳metric值。
在IPV6中使用的是OSPFV3版
R1(config)#Ipv6routerospf110
R1(config-router)#Router-id2.2.2.2注意:
必须使用一个类似IPV4地址的标识,必须手工指定,不能自动选
R1(config)#Ints0
R1(config-if)#Ipv6ospf110area0也是在接口下宣告
R1(config)#Intlo0
R1(config-if)#Ipv6ospf110area0环回口依然是主机路由,128位,可通过改网络类型来改动
Showipv6routeospf
R