CCIE R&S v4.0 理论 当前位置: 首页→CCIE资料库→CCIE R&S v4.0 理论→IPv6 IPv6
文档下载: 目录
概述
概述 在我们现有的网络中,几乎所有网络都使用IP协议作为通信的地址协议,我们的网络使用IP来表示地址信息,每一个节点都应该分配一个唯一的地址,才能保证通信正常。现在正常使用的IP协议为版本4,用32位来表示,地址空间为65536×65536,结果约为42.9亿,需要说明的是,虽然地址共有42.9亿之多,但并不表示这些地址可以供42.9亿个节点使用,因为我们的地址是分网段的,也就是说即使在一个节点的情况下,分配地址时,也是分配一个网段而不是一个地址,所以这样就使得版本4的IP地址一下子变得空间陕小,再加了有相当一部分地址是不可用的,那么随着网络的迅速膨胀,IP ver4的地址空间变得几乎快耗尽了。在这样的情况下,出现了一些如VLSM子网技术,NAT网络地址翻译技术,试图来缓和地址空间的快速消耗。与此同时,人们也开发出了一个地址空间更为庞大的IP协议,这个协议拥有比IP ver4多出数倍的地址空间,来解决网络地址匮乏的问题,这个IP协议就是IP版本6,即IPv6。 IPv6地址格式 IPv6拥有更为庞大的地址空间,是因为IPv4只是采用32位来表示,而IPv6采用128位来表示,这样大的一个地址空间,几乎可以容纳无数个节点。正因为IPv6使用了128位来表示地址,在表示和书写上面具有相当的困难,原来的IPv4使用10进制来表示,而IPv6由于地址太长,则采用16进制来表示,但无论我们如何表示,计算机都是处理二进制。因为10进制表示时,使用0到9共十个数字来表示,而16进制需要在10进制原有的基础上多出6个数字,即需要多出11,12,13,14,15,这6个数字则采用字母的形式来表示,分别为 A(表示10),B(表示11),C(表示12),D(表示13),E(表示14),F(表示15),这些字母是不区别大小写的。 但是由于IPv6拥有128位的长度,所以不能直接表示,必须像IPv4那样进行分段表示。IPv6将整个地址分为8段来表示,每段之间用冒号隔开,每段的长度为16位,表示如下:
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
从上面可以看出,IPv6中每一个段是16位,每段共四个X,其中X使用4 bit表示,一个X就表示一个数字或字母,一个完整的地址共128 bit。 一个X使用4 bit表示,那么XXXX的取值范围就应该从0000 到 FFFF。 IPv6地址表示方法 对于一个完整的IPv6地址,需要写128位,已经被分成了8段,每段4个字符,也就是说完整地表示一个IPv6地址,需要写32个字母,这是相当长的,并且容易混淆和出错,所以IPv6在地址的表示方法上,是有讲究的,到目前为止,IPv6地址的表示方法分为三种,分别是: 1.首选格式 2.压缩表示 3.IPv4内嵌在IPv6中
下面分别详细介绍这三种IPv6地址表示方法:
1.首选格式 首选格式的表示方法其实没有任何讲究,就是将IPv6中的128位,也就是共32个字符完完整整,一个不漏地全写出来,比如下面就是一些IPv6地址的首选格式表示形式: 0000:0000:0000:0000:0000:0000:0000:0000 0000:0000:0000:0000:0000:0000:0000:0001 2001:0410:0000:1234:FB00:1400:5000:45FF 3ffe:0000:0000:0000:1010:2a2a:0000:0001 FE80:0000:0000:0000:0000:0000:0000:0009 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
从上面IPv6地址的首选格式表示中可以看出,每一个地址,都将32个字符全部写了出来,即使地址中有许多个0,或者有许多个F,也都一个不漏地写了出来,由此可见,首选格式只需要将地址完整写出即可,没有任何复杂的变化,但是容易出错。
2.压缩格式 从前面一个IPv6地址表示方法首选格式表示方法中可以看出,一个完整的IPv6地址中,会经常性的出现许多个0,而我们知道,许多时候,0是毫无意义的,0表示没有,写出来,也表示没有,不写,也同样表示没有,那么我们就考虑能否将不影响地址结果的0给省略不写,这样就可以大大节省时间,也方便人们阅读和书写,这样的将地址省略0的表示方法,称为压缩格式。 而压缩格式的表示中,分三种情况,下面来分别介绍三种压缩格式:
第一种情况: 在IPv6中,地址分为8个段来表示,每个段共4个字符,但是一个完整的IPv6地址会经常碰到整个段4个字符全部都为0,所以我们将整个段4个字符全部都为0的使用双冒号::来表示,如果连续多个段全都为0,那么也可以同样将多个段都使用 双冒号::来表示,如果是多个段,并不需要将双冒号写多次,只需要写一次即可,比如一个地址8个段,其中有三个段全都为0,那么我们就将这全为0的三个段共48位用::来表示,再将其它5个段照常写出即可,当计算机读到这样一个不足128位的地址时,比128位少了多少位,就在::的地方补上多少个0,比如上面的::代替为48位,那么计算机就会在这个地址的::位置补上48位的0,这样就正确地将地址还原回去了。 下面来看一些整个段4个字符都为0的IPv6地址使用压缩格式来表示: 例1: 压缩前: 0000:0000:0000:0000:0000:0000:0000:0000 压缩后: :: 说明:可以看出,由于这个地址的8个段全部都为0,所以只用::就将整个地址表示出来,当计算机拿到这个压缩后的地址时,发现比正常的128位少了128位,那么就会在::的地方补上128个0,结果为: 0000:0000:0000:0000:0000:0000:0000:0000 可以看出,计算机还原的地址就是压缩之前的真实地址。
例2: 压缩前: 0000:0000:0000:0000:0000:0000:0000:0001 压缩后: ::0001 说明:可以看出,压缩后的地址比正常的128位少了112位,计算机就会在::的地方补上112个0,结果为: 0000:0000:0000:0000:0000:0000:0000:0001 可以看出,计算机还原的地址就是压缩之前的真实地址。
例3: 压缩前: 2001:0410:0000: 0000:FB00:1400:5000:45FF 压缩后: 2001:0410 :: FB00:1400:5000:45FF 说明:可以看出,压缩后的地址比正常的128位少了32位,计算机就会在::的地方补上32个0,结果为: 2001:0410:0000: 0000:FB00:1400:5000:45FF 可以看出,计算机还原的地址就是压缩之前的真实地址。
例4: 压缩前: 3ffe:0000:0000:0000:1010:2a2a:0000:0001 压缩后: 3ffe::1010:2a2a::0001 说明:当计算机拿到这个压缩后的地址,发现比正常的128位少了64位,计算机就会试图在::的地方补上少了的64个0,但是我们可以看到,压缩后的地址有两个::,而计算机要补上64个0,所以这时补出来的结果很可能是以下几种: 3ffe:0000:1010:2a2a: 0000:0000:0000:0001 或 3ffe:0000:00001010:2a2a::0000:0000:0001 或 3ffe:0000:0000:0000:1010:2a2a:0000:0001 从结果中可以发现,当一个IPv6地址被压缩后,如果计算机出现两个或多个::的时候,计算机在将地址还原时,就可能出现多种情况,这将导致计算机还原后的地址不是压缩之前的地址,将导致地址错误,最终通信失败。 所以,在压缩IPv6地址时,一个地址中只能出现一个::。
第二种情况: 在压缩格式的第一种情况的表示中,是在地址中整个段4个字符都为0时,才将其压缩为::来表示,但是在使用第一种情况压缩之后,我们仍然可以看见地址中还存在许多毫无意义的0,比如0001,0410。我们知道,0001中,虽然前面有三个0,但是如果我们将前面的0全部省略掉,写为1,结果是等于0001的,而0410也是一样,我们将前面的0省略掉,写成410,也同样等于0410的,所以我们在省略数字前面的0时,是不影响结果的,那么这个时候,表示IPv6地址时,允许将一个段中前导部分的0省略不写,因为不影响结果。但是需要注意的是,如果0不是前导0,比如2001,我们就不能省略0写成21,因为21不等于2001,所以在中间的0不能省略,只能省略最前面的0。下面来看一些省略前导0的地址表示形式: 例1: 压缩前: 0000:0000:0000:0000:0000:0000:0000:0000 压缩后: 0:0:0:0:0:0:0:0 从结果中可以看出,计算机根本就不需要对这样的地址还原,压缩后的结果和压缩前的结果是相等的。
例2: 压缩前: 0000:0000:0000:0000:0000:0000:0000:0001 压缩后: 0:0:0:0:0:0:0:1 从结果中可以看出,计算机根本就不需要对这样的地址还原,压缩后的结果和压缩前的结果是相等的。
例3: 压缩前: 2001:0410:0000:1234:FB00:1400:5000:45FF 压缩后: 2001:410:0:1234:FB00:1400:5000:45FF 从结果中可以看出,计算机根本就不需要对这样的地址还原,压缩后的结果和压缩前的结果是相等的。
第三种情况: 在前面两种IPv6地址的压缩表示方法中,第一种是在整段4个字符全为0时,才将其压缩后写为::,而第二种是将无意义的0省略不写,可以发现两种方法都能节省时间,方便阅读。第三种压缩方法就是结合前两种方法,既将整段4个字符全为0的部分写成::,也将无意义的0省略不写,结果就可以出现以下一些最方便的表示方法: 例1: 压缩前: 0000:0000:0000:0000:0000:0000:0000:0001 压缩后: :: 1 可以看到,结合了两种压缩格式的方法,但为简便。
例2: 压缩前: 2001:0410:0000:0000:FB00:1400:5000:45FF 压缩后: 2001:410:: FB00:1400:5000:45FF 可以看到,结合了两种压缩格式的方法,但为简便。
3.IPv4内嵌在IPv6中 在网络还没有全部从IPv4过渡到IPv6时,就可能出现某些设备即连接了IPv4网络,又连接了IPv6网络,对于这样的情况,就需要一个地址即可以表示IPv4地址,又可以表示IPv6地址。 因为一个IPv4地址为32位,一个IPv6地址为128位,要让一个IPv4地址表示为IPv6地址,明显已经少了96位,那么就将一个正常的IPv4地址通过增加96位,结果变成128位,来与IPv6通信。在表示时,是在IPv4原有地址的基础上,增加96个0,结果变成128位,增加的96个0再结合原有的IPv4地址,表示方法为 0:0:0:0:0:0:A.B.C.D 或者::A.B.C.D.,如下: 0000: 0000: 0000: 0000: 0000:0000:A.B.C.D 9 6 个0 32位 例: IPv4地址为 138.1.1.1 表示IPv6地址为0:0:0:0:0:0:138.1.1.1
注:IPv6中没有广播地址,IPv6不建议划子网,如果需要划子网,网络位请不要低于48位。 IPv6地址类型 在IPv4地址中,地址分许多类型,比如代表节点自己的127.0.0.0/8,私有地址段,组播地址段,广播地址,以及一些不可用的地址。在IPv6中,同样地址也像IPv4那样分了许多类型,我们需要了解的有3种类型,为Unicast(单播),Anycast(任意播)和Multicast(组播),下面分别来详细介绍这几种地址类型。
Unicast(单播) 即使是在IPv4中,单播地址的类型也分好多种,就是我们常用的也分私有,公有,还有回环地址,在IPv6中,单播地址也分好几种,我们需要知道的有:Link-Local Address(链路本地地址),Unique Local Address (本地站点地址),Aggregatable Global Address(可聚合全球),回环地址。 下面详细介绍几种单播地址:
Link-Local Address(链路本地地址) 即使网络再大,每两点之间,都有链路相连,在一个节点将数据包发给下一个节点时,必须在数据包中封装三层IP地址,再封装下一节点的二层链路地址(如以太网中的MAC地址),才能将数据包发给下一节点,并且只有当封装的二层链路地址确实为下一节点的真实链路地址时,对方才能接收,这就是普通二层链路地址的功能,这样的地址在一条链路的范围内明确了每个节点,并且这样的地址是不能被路由的。 而在IPv6网络中,两个IPv6的节点通过链路相连,必须在这条链路之间为各自确立一个Link-Local Address(即链路本地地址),在一条链路上,IPv6节点能够确定对方节点的身份,能够将数据包发向对方节点,必须知道对方节点的链路本地地址,如果不知道,将是不能通信的,所以一条链路中的IPv6节点要通信,必须拥有链路本地地址,并且这个链路本地地址只在一条链路中有效,也不能被路由,而不同链路的链路本地地址是可以重复的。 因为在链路上没有链路本地地址的情况下,IPv6是不能通信的,所以每个节点必须拥有一个链路本地地址,当一个节点上正常启动了IPv6之后,链路本地地址是不需要人工干预,会自己生成的,但也可以自己手工配置链路本地地址。 自动生成的链路本地地址,有默认的特殊格式,是以FE80::/10 (1111 1110 10)打头,再加54个0,还差64位,这后面的64位,再使用EUI-64来填充,表示如下:
EUI-64结构 一个链路本地地址的后64位使用EUI-64来填充,EUI-64其实就是接口的MAC地址,而MAC地址共长度为48位,要填充64位的EUI-64,还少16位。一个完整的EUI-64是将MAC地址的48位平均分成两部分,前面24位,后面24位,然后在中间补上FFFE(16位),如一个MAC地址为00:12:33:5C:82:E1,将其变为EUI-64的结果如下表示:
只有以太网链路才会有MAC地址,而串行链路是没有MAC地址的,当一个接口上启用IPv6之后,此接口会自动产生一个链路本地地址,而链路本地地址需要借用接口上的MAC地址才能产生,这在有MAC地址的以太网接口上可以轻松实现,但是当一个没有MAC地址的串行接口上开启IPv6之后,由于自己没有MAC地址,所以不能产生EUI-64,也就无法完成链路本地地址。在这种情况下,所有没有MAC地址的接口,如串行接口,在开启IPv6后,需要产生EUI-64时,统统借用设备上第一个以太网插槽的第一个接口,也可以理解为没有MAC地址的接口,统统使用设备上MAC地址池中的第一个地址,比如设备上为接口s2/3开启IPv6之后,就很有可能借用F0/0或G0/0接口的MAC地址。 EUI-64不仅在产生链路本地地址时可以使用,在正常配置IPv6地址时,同样可以使用EUI-64来填充后64位。
本地站点地址 本地站点地址是单播中一种受限制的地址,只在一个站点内使用,不会默认启用,这个地址不能在公网上路由,只能在一个指定的范围内路由,需要手工配置。IPv6中的本地站点地址类似IPv4中私有地址,如10.0.0.0/8 172.16.0.0/12 192.168.0.0/16。 得不到合法IPv6地址的机构可配置本地站点地址,表示方法为: FC00::/7 + 41bit子网标识 +16bit链路标识+ EUI-64
可聚合全球单播地址 可聚合全球单播地址相当于IPv4的公网地址,可以被路由的,可以正常使用的地址,但网络位最少为48位。可聚合全球单播地址的范围是 2000:0000:0000:0000:0000:0000:0000:0000 到 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 以上面可以看出,可聚合全球单播地址也就是2和3打头的地址,因为IPv6使用16进制来表示,一个字符的取值范围从0到F共16个,而可聚合全球单播地址地址占了2和3两个,由此说明,可聚合全球单播地址占IPv6总地址空间的8分之1,也就是说,所有IPv6地址中,只有8分之1是可以给网络正常使用的。
回环地址 回环地址表示节点自身,类似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 (1111 1111)打头,.表示为 FF00:0000:0000:0000:0000:0000:0000:0000/8 FF00:0:0:0:0:0:0:0/8 FF00::/8 详细的IPv6多播知识将在后面的IPv6 Multicast部分介绍。 配置IPv6地址
1.激活IPv6功能 默认情况下,Cisco设备的IPv6流量转发功能是关闭的,需要使用IPv6,必须先开启IPv6流量转发功能。 (1)开启IPv6流量转发功能 r1(config)#ipv6 unicast-routing 2.配置正常的IPv6地址 (1)在接口下配置正常IPv6地址 r1(config)#int f0/0 r1(config-if)#ipv6 address 2011:1:2:3:1:1:1:1/64 说明:配置的地址前64位为网络地址,即2011:1:2:3;后64位为主机位,即1:1:1:1。 (2)查看接口的IPv6地址 r1#show ipv6 interface brief f0/0 FastEthernet0/0 [up/up] FE80::C200:EFF:FEB0:0 2011:1:2:3:1:1:1:1 r1# r1# 说明:可以看到接口F0/0已经接受我们配置的地址2011:1:2:3:1:1:1:1。
3.使用EUI-64格式配置静态地址: (1)配置包含EUI-64的IPv6地址 r1(config)#int f0/1 r1(config-if)#ipv6 address 2022:2:2:22::/64 eui-64 (2)查看接口的IPv6地址 r1#show interfaces f0/0 FastEthernet0/0 is up, line protocol is up Hardware is Gt96k FE, address is c000.0eb0.0000 (bia c000.0eb0.0000)
r1#show ipv6 interface brief f0/1 FastEthernet0/1 [up/up] FE80::C200:EFF:FEB0:1 2022:2:2:22:C200:EFF:FEB0:1 r1# 说明:可以看到,F0/1成功使用接口上的MAC地址为EUI-64来填充后64位。
4.仅启用接口IPv6功能 说明:一个接口上可以仅启用IPv6功能,而不配置IPv6地址 (1)启用接口IPv6功能 r1(config)#int s1/0 r1(config-if)#ipv6 enable (2)查看接口IPv6状态 r1#show ipv6 interface brief serial 1/0 Serial1/0 [up/up] FE80::C200:EFF:FEB0:0 r1# 可以看到,接口S1/0可以只开启IPv6功能而不配地址,但开了IPv6功能的接口也会自动产生一个链路本地地址。
5.配置无编号地址 当地址紧缺时,可以配置一个接口使用另外一个接口的地址,这样的地址称为无编号地址,即unnumbered地址,当从无编号接口产生数据包时,该接口使用借用的那个接口的地址作为源地址,配置这样的地址,需要允许双方不同网段协议的配合。 (1)为接口配置无编号地址 r1(config)#int s1/1 r1(config-if)#ipv6 unnumbered f0/0 (2)查看接口IPv6地址情况。 r1#show ipv6 interface brief serial 1/1 Serial1/1 [up/up] FE80::C200:EFF:FEB0:0 unnumbered (FastEthernet0/0) r1# 说明:可以看到结果显示为接口S1/1借用F0/0的地址。 IPv6静态路由 在IPv6中,静态路由的写法分三种,分别为: 1.直连静态路由(Directly Attached Static Routes) 写法为只指定路由的出口,目标网络被认为是和此接口直连的,但此方法在接口为多路访问时,会有问题。 例配: ipv6 route 2022:2:2:22::/64 s1/1 说明:到达目标网络2022:2:2:22::/64 的数据包从接口s1/1发出去。
2.递归静态路由(Recursive Static Routes ) 写法为只指定路由的下一跳地址,此方法在任何网络环境中可行。 例配: r1(config)#ipv6 route 2022:2:2:22::/64 2012:1:1:11::2 说明:到达目标网络2022:2:2:22::/64 的数据包发给下一跳地址2012:1:1:11::2。
3.完全静态路由(Fully Specified Static Routes) 写法为同时指定出口和下一跳地址,只有当出口为多路访问时,并且确实需要明确指定下一跳时,才需要写完全静态路由,下一跳必须是和出口同网段的。 例配: r1(config)#ipv6 route 2022:2:2:22::/64 f0/0 2012:1:1:11::2 说明:到达目标网络2022:2:2:22::/64 的数据包从接口F0/0发出去,并且交给下一跳地址2012:1:1:11::2。 IPv6静态路由配置实验
说明:配置静态路由,使双方都能ping通互相loopback接口的网段。 由于是多路访问接口,所以省去配置直连静态路由的方法。 1.网络初始配置: (1)R1初始配置: r1(config)#ipv6 unicast-routing r1(config)#int f0/0 r1(config-if)#ipv address 2012:1:1:11::1/64
r1(config)#int loopback 0 r1(config-if)#ipv6 address 2011:1:1:11::1/64 r1(config-if)# (2)R2初始配置: r2(config)#ipv unicast-routing r2(config)#int f0/0 r2(config-if)#ipv address 2012:1:1:11::2/64
r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64 r2(config-if)#
2.在R1上配置递归静态路由 (1)配置递归静态路由 r1(config)#ipv6 route 2022:2:2:22::/64 2012:1:1:11::2 说明:到达目标网络2022:2:2:22::/64 的数据包发给下一跳地址2012:1:1:11::2。 (2)检查静态路由 r1#show ipv6 route static IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external S 2022:2:2:22::/64 [1/0] via 2012:1:1:11::2 r1# 说明:从结果中看出,手工配置的递归静态路由已生效。
(3)测试连通性 r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/48/140 ms r1# 说明:由于正确配置静态路由,R1到R2的loopback接口的网段通信正常。
3.在R2上配置完全静态路由 (1)配置完全静态路由 r2(config)#ipv6 route 2011:1:1:11::/64 f0/0 2012:1:1:11::1 说明:到达目标网络2011:1:1:11::/64 的数据包从接口F0/0发出去,并且交给下一跳地址2012:1:1:11::1。 (2)检查静态路由 r2#show ipv6 route static IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external S 2011:1:1:11::/64 [1/0] via 2012:1:1:11::1, FastEthernet0/0 r2# 说明:从结果中看出,手工配置的完全静态路由已生效。 (3)测试连通性 r2#ping 2011:1:1:11::1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2011:1:1:11::1, timeout is 2 seconds: !!!! *Mar 1 00:36:50.387: %CDP-4-DUPLEX_MISMATCH: duplex mismatch discovered on FastEthernet0/0 (not full duplex), with Router FastEthernet0/2 (full duplex).! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/92/156 ms r2# 说明:由于正确配置静态路由,R2到R1的loopback接口的网段通信正常。 IPv6 RIP (RIPng) IPv6的RIP,所有路由规则与IPv4 RIPv2基本相同,不同之处是IPv4 RIPv2使用UDP 端口520,而RIPng使用UDP端口521,IPv4 RIPv2数据包更新使用地址224.0.0.9,而RIPng使用更新地址为FF02::9。 在配置RIPng时,方法不同于IPv4 RIP,RIPng是采用先配置进程,然后需要让哪些接口运行在RIPng下,就必须到相应的接口下明确指定,并不像IPv4 RIP那样在进程下通过network来发布。
配置RIPng
1.初始配置 (1)R1初始配置: r1(config)#ipv6 unicast-routing
r1(config)#int f0/0 r1(config-if)#ipv6 address 2012:1:1:11::1/64
r1(config)#int loopback 1 r1(config-if)#ipv6 address 3001:1:1:11::1/64
r1(config)#int loopback 2 r1(config-if)#ipv6 address 3002:1:1:11::1/64
r1(config)#int loopback 3 r1(config-if)#ipv6 address 3003:1:1:11::1/64
(2)R2初始配置: r2(config)#ipv6 unicast-routing
r2(config)#int f0/0 r2(config-if)#ipv6 address 2012:1:1:11::2/64
r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64
2.启动RIPng进程 说明:Cisco IOS最多同时支持4个RIPng进程,不同进程使用不同名字来区分,并且进程名为本地有效。 (1)在R1上启动RIPng进程 r1(config)#ipv6 router rip ccie r1(config-rtr)#exit (2)在R2上启动RIPng进程 r2(config)#ipv6 router rip ccie r2(config-rtr)#exi 3.配置RIPng接口 (1)将R1上的接口放进RIPng进程 r1(config)#int f0/0 r1(config-if)#ipv6 rip ccie enable
r1(config)#int loopback 1 r1(config-if)#ipv6 rip ccie enable (2)将R2上的接口放进RIPng进程 r2(config)#int f0/0 r2(config-if)#ipv6 rip ccie enable
r2(config)#int loopback 0 r2(config-if)#ipv6 rip ccie enable 4.查看RIPng路由 (1)查看R1的RIPng路由 r1#show ipv6 route rip IPv6 Routing Table - 11 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external R 2022:2:2:22::/64 [120/2] via FE80::C200:DFF:FEC4:0, FastEthernet0/0 r1# 说明:由于RIPng配置正确,成功收到对方路由条目,并且可以看出,动态路由学习到的IPv6路由条目,下一跳地址均为对端的链路本地地址。 (2)查看R2的RIPng路由 r2#show ipv6 route rip IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external R 3001:1:1:11::/64 [120/2] via FE80::C200:BFF:FE48:0, FastEthernet0/0 r2# 说明:由于RIPng配置正确,成功收到对方路由条目。
5.测试连通性 说明:因为动态路由学习到的IPv6路由条目,下一跳地址均为对端的链路本地地址,所以如果到对端的链路本地地址不通,那么到对端IPv6网络也不会通。 (1)测试R1到对端链路本地地址的连通性 r1#ping FE80::C200:DFF:FEC4:0 Output Interface: FastEthernet0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::C200:DFF:FEC4:0, timeout is 2 seconds: Packet sent with a source address of FE80::C200:DFF:FEC4:0 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/70/184 ms r1# 说明:到对端链路本地地址的通信正常。 (2)测试R1到对端IPv6网络的连通性 r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/75/240 ms r1 说明:由于到对端链路本地地址的通信正常,所以到对端IPv6网络的通信也正常。 (3)测试R2到对端IPv6网络的连通性 r2#ping 3001:1:1:11::1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3001:1:1:11::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/84/248 ms r2# 说明:到对端IPv6网络的通信也正常。 6.重分布IPv6网段 说明:将R1上的剩余网段重分布进RIPng (1)在R1上配置重分布剩余网段进RIPng r1(config)#route-map con permit 10 r1(config-route-map)#match interface loopback 2 r1(config-route-map)#exit r1(config)#route-map con permit 20 r1(config-route-map)#match interface loopback 3 r1(config-route-map)#exit
r1(config)#ipv6 router rip ccie r1(config-rtr)#redistribute connected route-map con r1(config-rtr)# (2)在R2上查看重分布进RIPng的剩余网段 r2#show ipv6 route rip IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external R 3001:1:1:11::/64 [120/2] via FE80::C200:BFF:FE48:0, FastEthernet0/0 R 3002:1:1:11::/64 [120/2] via FE80::C200:BFF:FE48:0, FastEthernet0/0 R 3003:1:1:11::/64 [120/2] via FE80::C200:BFF:FE48:0, FastEthernet0/0 r2# 说明:可以看到,R1上的剩余网段成功被重分布进RIPng。 7.过滤IPv6路由 说明:在R2上过滤掉IPv6路由,只留想要的网段,使用distribute-list过滤 (1)配置只留3002:1:1:11::/64网段 r2(config)#ipv6 prefix-list abc permit 3002:1:1:11::/64
r2(config)#ipv6 router rip ccie r2(config-rtr)#distribute-list prefix-list abc in f0/0 注:ipv6的 prefix-list同样支持ge , le等关键字来匹配范围。 (2)查看过滤后的路由表情况 r2#show ipv6 route rip IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external R 3002:1:1:11::/64 [120/2] via FE80::C200:BFF:FE48:0, FastEthernet0/0 r2# 说明:路由表中只剩想要的网段,说明过滤成功。 IPv6 OSPF (OSPFv3) OSPFv3与OSPFv2(IPv4 OSPF)的原理都是相同的,OSPFv3选举Router-ID的规则与OSPFv2相同,OSPFv3也是选择路由器上的IPv4地址作为Router-ID,如果设备上没有配置IPv4地址,那么必须手工指定Router-ID。在配置OSPFv3时,先配置进程,然后需要让哪些接口运行在OSPFv3下,就必须到相应的接口下明确指定,并不像OSPFv2那样在进程下通过network来发布。
配置OSPFv3
1.初始配置 (1)R1初始配置: r1(config)#ipv6 unicast-routing
r1(config)#interface f0/0 r1(config-if)#ipv6 address 2012:1:1:11::1/64
r1(config)#int loopback 1 r1(config-if)#ipv6 address 3011:1:1:11::1/64
r1(config)#int loopback 2 r1(config-if)#ipv6 address 3011:1:1:12::1/64
r1(config)#int loopback 3 r1(config-if)#ipv6 address 3011:1:1:13::1/64
(2)R2初始配置: r2(config)#ipv6 unicast-routing
r2(config)#interface f0/0 r2(config-if)#ipv6 address 2012:1:1:11::2/64
r2(config)#interface s1/0 r2(config-if)#encapsulation frame-relay r2(config-if)#no frame-relay inverse-arp r2(config-if)#no arp frame-relay r2(config-if)#ipv6 address 2023:1:1:11::2/64 r2(config-if)#frame-relay map ipv6 2023:1:1:11::3 203 broadcast r2(config-if)# (3)R3初始配置: r3(config)#ipv6 unicast-routing
r3(config)#interface s1/0 r3(config-if)#encapsulation frame-relay r3(config-if)#no frame-relay inverse-arp r3(config-if)#no arp frame-relay r3(config-if)#ipv6 address 2023:1:1:11::3/64 r3(config-if)#frame-relay map ipv6 2023:1:1:11::2 302 broadcast
2.启动OSPFv3进程 (1)启动R1的OSPFv3进程 r1(config)#ipv6 router ospf 2 r1(config-rtr)#router-id 1.1.1.1 说明:由于没有配置IPv4地址,所以必须手工配置Router-ID (2)启动R2的OSPFv3进程 r2(config)#ipv6 router ospf 2 r2(config-rtr)#router-id 2.2.2.2 (3)启动R3的OSPFv3进程 r3(config)#ipv6 router ospf 2 r3(config-rtr)#router-id 3.3.3.3 3.配置OSPFv3接口 (1)将R1上的接口放进OSPFv3进程 r1(config)#int f0/0 r1(config-if)#ipv6 ospf 2 area 0
r1(config)#int loopback 1 r1(config-if)#ipv6 ospf 2 area 0 (2)将R2上的接口放进OSPFv3进程 r2(config)#int f0/0 r2(config-if)#ipv6 ospf 2 area 0
r2(config)#int s1/0 r2(config-if)#ipv6 ospf 2 area 1 (3)将R3上的接口放进OSPFv3进程 r3(config)#int s1/0 r3(config-if)#ipv6 ospf 2 area 1
4.查看OSPFv3邻居 (1)查看r1邻居: r1#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 2.2.2.2 1 FULL/BDR 00:00:39 4 FastEthernet0/0 r1# 说明:R1与R2的OSPFv3邻居正常。 (2)查看r2邻居: r2#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 1.1.1.1 1 FULL/DR 00:00:35 4 FastEthernet0/0 r2# 说明:R2与R2的OSPFv3邻居正常,但与R3的邻居没有。 (3)(3)查看r3邻居: r3#show ipv6 ospf neighbor
r3# 说明:R3没有OSPFv3邻居。 5.解决OSPFv3邻居问题 说明:由于R2与R3之间属于NBMA非广播网络,所以无法自动建邻居,要解决邻居问题,有两种方法:第一,手工指定邻居,在指定时,只须在一方指定即可,并且OSPFv3在手工指定邻居时,需要到接口下指定而不是在进程下指定,并且指定的为对方链路本地地址。第二,将网络类型从非广播网络类型改为允许广播的网络类型,如改为Point-to-point类型。 (1)查看R3连R2接口的链路本地地址 r3#show ipv6 interface brief s1/0 Serial1/0 [up/up] FE80::C200:DFF:FEAC:0 2023:1:1:11::3 r3# (2)在R2上指定R3为邻居,在接口下指定对方的链路本地地址 r2(config)#int s1/0 r2(config-if)#ipv6 ospf neighbor FE80::C200:DFF:FEAC:0 r2(config-if)# (3)测试R2到R3接口链路本地地址的连通性 r2#ping FE80::C200:DFF:FEAC:0 Output Interface: Serial1/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::C200:DFF:FEAC:0, timeout is 2 seconds: Packet sent with a source address of FE80::C200:BFF:FE94:0 ..... Success rate is 0 percent (0/5) r2# 说明:由于指定邻居时,指定为对方接口的链路本地地址,所以双方接口的链路本地地址不通,邻居将仍然不能建立。 (4)解决帧中继网络下双方接口的链路本地地址的PVC映射 注:必须互相映射 R2: r2(config)#int s1/0 r2(config-if)#fram map ipv6 FE80::C200:DFF:FEAC:0 203 broadcast R3: R3(config)#int s1/0 R3config-if)#fram map ipv6 FE80::C200:BFF:FE94:0 302 broadcast (5)查看邻居 r3#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 2.2.2.2 1 FULL/BDR 00:01:42 6 Serial1/0 r3# 说明:由于已经手工指定邻居,并且也映射了双方的链路本地地址,所以邻居成功建立。
6.查看OSPFv3路由 (1)在R1上查看OSPFv3路由 r1#sh ipv6 route ospf IPv6 Routing Table - 11 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OI 2023:1:1:11::/64 [110/74] via FE80::C200:BFF:FE94:0, FastEthernet0/0 r1# 说明:由于邻居已经全部正常建立,所以学习到了远程网络的路由条目。
(2)在R2上查看OSPFv3路由 r2#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 3011:1:1:11::1/128 [110/10] via FE80::C200:AFF:FE28:0, FastEthernet0/0 r2# 说明:由于邻居已经全部正常建立,所以学习到了远程网络的路由条目。
(3)在R3上查看OSPFv3路由 r3#show ipv6 route ospf IPv6 Routing Table - 6 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OI 2012:1:1:11::/64 [110/74] via FE80::C200:BFF:FE94:0, Serial1/0 OI 3011:1:1:11::1/128 [110/74] via FE80::C200:BFF:FE94:0, Serial1/0 r3# 说明:由于邻居已经全部正常建立,所以学习到了远程网络的路由条目。
7.解决OSPFv3路由掩码问题 说明:由于学习到的路由中,属于loopback接口的网段原本为64位,而学习到的为128位,为主机路由,所以应让路由掩码与原来的掩码一致,需要将网络类型改为Point-to-point类型。 (1)在R1改loopback接口的网络类型改为Point-to-point r1(config)#int loopback 1 r1(config-if)#ipv6 ospf network point-to-point r1(config-if)# (2)查看改后的路由情况 r2#show ipv6 route ospf IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 3011:1:1:11::/64 [110/11] via FE80::C200:AFF:FE28:0, FastEthernet0/0 r2# 说明:已经成功变成原来的掩码位数。 8.重分布IPv6网段 说明:将R1上的剩余网段重分布进OSPFv3 (1)在R1上配置重分布剩余网段进OSPFv3 r1(config)#route-map con permit 10 r1(config-route-map)#match interface loopback 2 r1(config-route-map)#exit r1(config)#route-map con permit 20 r1(config-route-map)#match interface loopback 3 r1(config-route-map)#exit
r1(config)#ipv6 router ospf 2 r1(config-rtr)#redistribute connected route-map con (2)在R2上查看重分布进OSPFv3的剩余网段 r2#show ipv6 route ospf IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 3011:1:1:11::/64 [110/11] via FE80::C200:AFF:FE28:0, FastEthernet0/0 OE2 3011:1:1:12::/64 [110/20] via FE80::C200:AFF:FE28:0, FastEthernet0/0 OE2 3011:1:1:13::/64 [110/20] via FE80::C200:AFF:FE28:0, FastEthernet0/0 r2# 说明:可以看到,R1上的剩余网段成功被重分布进OSPFv3。 (3)在R3上查看重分布进OSPFv3的剩余网段 r3#show ipv6 route ospf IPv6 Routing Table - 8 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OI 2012:1:1:11::/64 [110/74] via FE80::C200:BFF:FE94:0, Serial1/0 OI 3011:1:1:11::/64 [110/75] via FE80::C200:BFF:FE94:0, Serial1/0 OE2 3011:1:1:12::/64 [110/20] via FE80::C200:BFF:FE94:0, Serial1/0 OE2 3011:1:1:13::/64 [110/20] via FE80::C200:BFF:FE94:0, Serial1/0 r3# 说明:可以看到,R1上的剩余网段成功被重分布进OSPFv3。 9.过滤IPv6路由 说明:在R3上过滤掉IPv6路由,只留想要的网段,使用distribute-list过滤 (1)配置只留3011打头的网段 r3(config)#ipv6 prefix-list abc permit 3011::/16 ge 64 le 64 r3(config)#ipv6 router ospf 2 r3(config-rtr)#distribute-list prefix-list abc in s1/0 (2)查看过滤后的路由表情况 r3#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OI 3011:1:1:11::/64 [110/75] via FE80::C200:BFF:FE94:0, Serial1/0 OE2 3011:1:1:12::/64 [110/20] via FE80::C200:BFF:FE94:0, Serial1/0 OE2 3011:1:1:13::/64 [110/20] via FE80::C200:BFF:FE94:0, Serial1/0 r3# 说明:路由表中只剩3011打头的网段了,说明过滤成功。 10.汇总OSPFv3外部路由 说明:对从外部重分布进OSPFv3的路由进行汇总,OSPF内的路由汇总,命令格式基本同IPv4,需要注意的是,汇总必须在重分布的路由器上配置,即必须在ASBR上配置。 (1)在ASBR(R1)上配置外部路由的汇总 说明:将3011:1:1:11::/64 ,3011:1:1:12::/64 ,3011:1:1:13::/64三条路由汇总成3011:1:1::/48 r1(config)#ipv6 router ospf 2 r1(config-rtr)#summary-prefix 3011:1:1::/48 r1(config-rtr)# (2)在R2上查看汇总后的路由表情况 r2#show ipv6 route ospf IPv6 Routing Table - 8 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OE2 3011:1:1::/48 [110/20] via FE80::C200:AFF:FE28:0, FastEthernet0/0 O 3011:1:1:11::/64 [110/11] via FE80::C200:AFF:FE28:0, FastEthernet0/0 r2# 说明:可以看到,汇总成功。 IPv6 EIGRP (EIGRP v6) EIGRP v6与IPv4 EIGRP的原理都是相同的,但是EIGRP v6必须有router-id才能运行,所以在EIGRP v6不能获得router-id时,请手工配置router-id;更多的是EIGRP v6进程有个shutdown的特性,要用no shutdown开启进程;在配置EIGRP v6时,先配置进程,然后需要让哪些接口运行在EIGRP v6下,就必须到相应的接口下明确指定,并不像IPv4 EIGRP那样通过network来发布。 EIGRP hello时间默认是5秒一个,在低链路是60秒一个,比如NBMA,或者所有低于或等于T1的链路(1.544M)。Hold time是hello的三倍。
配置EIGRP v6
1.初始配置 (1)R1初始配置: r1(config)#ipv6 unicast-routing
r1(config)#int f0/0 r1(config-if)#ipv6 address 2012:1:1:11::1/64
r1(config)#int loopback 1 r1(config-if)#ipv6 address 3001:1:1:11::1/64
r1(config)#int loopback 2 r1(config-if)#ipv6 address 3002:1:1:11::1/64
r1(config)#int loopback 3 r1(config-if)#ipv6 address 3003:1:1:11::1/64
(2)R2初始配置: r2(config)#ipv6 unicast-routing
r2(config)#int f0/0 r2(config-if)#ipv6 address 2012:1:1:11::2/64
r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64
2.配置EIGRP v6进程 (1)在R1上启动EIGRP v6进程 r1(config)#ipv6 router eigrp 10 r1(config-rtr)#router-id 1.1.1.1 (2)在R1上启动EIGRP v6进程 r2(config)#ipv6 router eigrp 10 r2(config-rtr)#router-id 2.2.2.2 3.配置EIGRP v6接口 (1)将R1上的接口放进EIGRP v6进程 r1(config)#interface f0/0 r1(config-if)#ipv6 eigrp 10
r1(config)#int loopback 1 r1(config-if)#ipv6 eigrp 10 (2)将R2上的接口放进EIGRP v6进程 r2(config)#int f0/0 r2(config-if)#ipv6 eigrp 10
r2(config)#int loopback 0 r2(config-if)#ipv6 eigrp 10 (3)查看EIGRP v6邻居状态 r1#show ipv6 eigrp neighbors IPv6-EIGRP neighbors for process 10 % EIGRP 10 is in SHUTDOWN r1# 说明:从结果中看出,EIGRP v进程默认是shutdown的,必须手工开启。 (4)开启EIGRP v6进程 r1(config)#ipv6 router eigrp 10 r1(config-rtr)#no shutdown (5)查看邻居 r1#show ipv6 eigrp neighbors IPv6-EIGRP neighbors for process 10 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 Link-local address: Fa0/0 11 00:00:36 192 1152 0 2 FE80::C200:AFF:FE50:0 说明:开启EIGRP v6进程后,邻居正常建立。 4.查看EIGRP v6路由 (1)查看R1的EIGRP v6路由 r1#show ipv6 route eigrp IPv6 Routing Table - 11 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external D 2022:2:2:22::/64 [90/409600] via FE80::C200:AFF:FE50:0, FastEthernet0/0 r1# 说明:由于EIGRP v6配置正确,成功收到对方路由条目。 (2)查看R2的EIGRP v6路由 r2#sh ipv6 route eigrp IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external D 3001:1:1:11::/64 [90/409600] via FE80::C200:9FF:FE54:0, FastEthernet0/0 r2# 说明:由于EIGRP v6配置正确,成功收到对方路由条目。 5.重分布IPv6网段 说明:将R1上的剩余网段重分布进EIGRP v6 (1)在R1上配置重分布剩余网段进EIGRP v6 r1(config)#route-map con permit 10 r1(config-route-map)#match interface loopback 2 r1(config-route-map)#exit r1(config)#route-map con permit 20 r1(config-route-map)#match interface loopback 3
r1(config)#ipv6 router eigrp 10 r1(config-rtr)#redistribute connected route-map con r1(config-rtr)#exit (2)在R2上查看重分布进EIGRP v6的剩余网段 r2#sh ipv6 route eigrp IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external D 3001:1:1:11::/64 [90/409600] via FE80::C200:9FF:FE54:0, FastEthernet0/0 EX 3002:1:1:11::/64 [170/409600] via FE80::C200:9FF:FE54:0, FastEthernet0/0 EX 3003:1:1:11::/64 [170/409600] via FE80::C200:9FF:FE54:0, FastEthernet0/0 r2# 说明:可以看到,R1上的剩余网段成功被重分布进EIGRP v6。 6.过滤IPv6路由 说明:在R2上过滤掉IPv6路由,只留想要的网段,使用distribute-list过滤 (1)配置只留3002:1:1:11::/64网段 r2(config)#ipv6 prefix-list abc permit 3002:1:1:11::/64 r2(config)#ipv6 router eigrp 10 r2(config-rtr)#distribute-list prefix-list abc in f0/0 r2(config-rtr)# (2)查看过滤后的路由表情况 r2#sh ipv6 route eigrp IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external EX 3002:1:1:11::/64 [170/409600] via FE80::C200:9FF:FE54:0, FastEthernet0/0 r2# 说明:路由表中只剩想要的网段,说明过滤成功。 IPv6 BGP 普通情况下配置的BGP,是用来传递IPv4路由的,所传递的信息是IPv4的协议,如果要让BGP传递其它路由或协议,这就需要将BGP扩展为支持更多协议的BGP,如扩展BGP支持IPv6协议,支持vpnv4,这样的支持多协议的BGP,称为Multiprotocol BGP,即MP-BGP, 要配置MP-BGP,就需要为除IPv4之外的协议单独创建address-family,但是建立BGP邻居和正常情况下一样,当邻居建立之后,还得到address-family下活动,这是MP-BGP的特性,而需要发布的网段,也需要到address-family下发布。传递单播IPv6的address-family应该是address-family ipv6 unicast,但关键字unicast如果省略,默认就是address-family ipv6 unicast。下面根据以上特征,来配置MP-BGP传递IPv6路由。
配置IPv6 MP-BGP
1.初始配置 (1)R1初始配置: r1(config)#ipv6 unicast-routing
r1(config)#int f0/0 r1(config-if)#ipv6 address 2012:1:1:11::1/64
r1(config)#int loopback 1 r1(config-if)#ipv6 address 3001:1:1:11::1/64
r1(config)#int loopback 2 r1(config-if)#ipv6 address 3002:1:1:11::1/64
r1(config)#int loopback 3 r1(config-if)#ipv6 address 3003:1:1:11::1/64
(2)R2初始配置: r2(config)#ipv6 unicast-routing
r2(config)#int f0/0 r2(config-if)#ipv6 address 2012:1:1:11::2/64
r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64
2.配置MP-BGP中的IPv6邻居 说明:所有邻居正常配置,但需要到IPv6的address-family下激活邻居。 (1)在R1上配置BGP邻居 r1(config)#router bgp 100 r1(config-router)#bgp router-id 1.1.1.1 r1(config-router)#neighbor 2012:1:1:11::2 remote-as 100 r1(config-router)#address-family ipv6 r1(config-router-af)#neighbor 2012:1:1:11::2 activate r1(config-router-af)#exit (2)在R2上配置BGP邻居 r2(config)#router bgp 100 r2(config-router)#bgp router-id 2.2.2.2 r2(config-router)#neighbor 2012:1:1:11::1 remote-as 100 r2(config-router)#address-family ipv6 r2(config-router-af)#neighbor 2012:1:1:11::1 activate r2(config-router-af)#exit 3.查看IPv6 BGP邻居 (1)在R1上查看IPv6 BGP邻居 r1#show bgp sum BGP router identifier 1.1.1.1, local AS number 100 BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2012:1:1:11::2 4 100 5 4 1 0 0 00:01:35 0 r1# 说明:由于配置正确,所以已正常建立IPv6 BGP邻居命令。命令show bgp sum为隐藏命令。 (2)在R2上查看IPv6 BGP邻居 r2#show bgp sum BGP router identifier 2.2.2.2, local AS number 100 BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2012:1:1:11::1 4 100 5 6 1 0 0 00:02:02 0 r2# 说明:由于配置正确,所以已正常建立IPv6 BGP邻居命令。 4.发布IPv6路由进IPv6 BGP (1)在R1上发布路由进IPv6 BGP r1(config)#router bgp 100 r1(config-router)#address-family ipv6 r1(config-router-af)#network 3001:1:1:11::/64 (2)在R2上发布路由进IPv6 BGP r2(config)#router bgp 100 r2(config-router)#address-family ipv6 r2(config-router-af)#network 2022:2:2:22::/64 (3)在R1上查看IPv6 BGP路由 r1#show bgp all For address family: IPv6 Unicast BGP table version is 3, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *>i2022:2:2:22::/64 2012:1:1:11::2 0 100 0 i *> 3001:1:1:11::/64 :: 0 32768 i r1# 说明:已成功学习到对方邻居发来的IPv6路由。 (4)在R2上查看IPv6 BGP路由 r2#show bgp all For address family: IPv6 Unicast BGP table version is 3, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 2022:2:2:22::/64 :: 0 32768 i *>i3001:1:1:11::/64 2012:1:1:11::1 0 100 0 i r2# 说明:已成功学习到对方邻居发来的IPv6路由。 (5)测试网络连通性 r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 12/96/208 ms r1#
r2#ping 3001:1:1:11::1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3001:1:1:11::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/88/200 ms r2# 说明:由于双方路由学习正常,所以网络连通性正常。 5.重分布IPv6网段 说明:将R1上的剩余网段重分布进IPv6 BGP (1)在R1上配置重分布剩余网段进IPv6 BGP r1(config)#route-map con permit 10 r1(config-route-map)#match interface loopback 2 r1(config-route-map)#exit r1(config)#route-map con permit 20 r1(config-route-map)#match interface loopback 3 r1(config-route-map)#exit
r1(config)#router bgp 100 r1(config-router)#address-family ipv6 r1(config-router-af)#redistribute connected route-map con (2)在R2上查看重分布进IPv6 BGP的剩余网段 r2#show bgp all For address family: IPv6 Unicast BGP table version is 11, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 2022:2:2:22::/64 :: 0 32768 i *>i3001:1:1:11::/64 2012:1:1:11::1 0 100 0 i *>i3002:1:1:11::/64 2012:1:1:11::1 0 100 0 ? *>i3003:1:1:11::/64 2012:1:1:11::1 0 100 0 ? r2# 说明:可以看到,R1上的剩余网段成功被重分布进RIPng。 6.过滤IPv6路由 说明:在R2上过滤掉IPv6路由,只留想要的网段,使用distribute-list对指定邻居进行过滤 (1)配置只留3002:1:1:11::/64网段 r2(config)#ipv6 prefix-list abc permit 3002:1:1:11::/64
r2(config)#router bgp 100 r2(config-router)#address-family ipv6 r2(config-router-af)#neighbor 2012:1:1:11::1 prefix-list abc in (2)查看过滤后的路由表情况 r2#clear bgp ipv6 unicast *
r2#sh bgp all For address family: IPv6 Unicast BGP table version is 3, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 2022:2:2:22::/64 :: 0 32768 i *>i3002:1:1:11::/64 2012:1:1:11::1 0 100 0 ? r2# 说明:路由表中只剩想要的网段,说明过滤成功。 7.使用链路本地地址建立IPv6 BGP邻居 说明:正常情况下,IPv6 BGP使用全局地址建立邻居,也可以配置使用链路本地地址建立邻居。 (1)在R1上配置IPv6 BGP用链路本地地址建立邻居 r1(config)#router bgp 100 r1(config-router)#neighbor FE80::C200:DFF:FEC8:0 remote-as 100 r1(config-router)#neighbor FE80::C200:DFF:FEC8:0 update-source f0/0 r1(config-router)#address-family ipv6 r1(config-router-af)#neighbor FE80::C200:DFF:FEC8:0 activate r1(config-router-af)# (2)在R2上配置IPv6 BGP用链路本地地址建立邻居 r2(config)#router bgp 100 r2(config-router)#neighbor FE80::C200:8FF:FE10:0 remote-as 100 r2(config-router)#neighbor FE80::C200:8FF:FE10:0 update-source f0/0 r2(config-router)#address-family ipv6 r2(config-router-af)#neighbor FE80::C200:8FF:FE10:0 activate r2(config-router-af)# (3)查看邻居建立情况 r1#show bgp sum BGP router identifier 1.1.1.1, local AS number 100 BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd FE80::C200:DFF:FEC8:0 4 100 6 7 1 0 0 00:01:30 0 r1#
r2#show bgp sum BGP router identifier 2.2.2.2, local AS number 100 BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd FE80::C200:8FF:FE10:0 4 100 8 7 1 0 0 00:02:20 0 r2# 说明:从结果中看出,双方IPv6 BGP已成功使用链路本地地址建立邻居 (4)查看路由学习情况 r1#sh bgp all For address family: IPv6 Unicast BGP table version is 14, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *>i2022:2:2:22::/64 FE80::C200:DFF:FEC8:0 0 100 0 i *> 3001:1:1:11::/64 :: 0 32768 i *> 3002:1:1:11::/64 :: 0 32768 ? *> 3003:1:1:11::/64 :: 0 32768 ? r1#
r2#show bgp all For address family: IPv6 Unicast BGP table version is 6, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 2022:2:2:22::/64 :: 0 32768 i *>i3001:1:1:11::/64 FE80::C200:8FF:FE10:0 0 100 0 i *>i3002:1:1:11::/64 FE80::C200:8FF:FE10:0 0 100 0 ? *>i3003:1:1:11::/64 FE80::C200:8FF:FE10:0 0 100 0 ? r2# 说明:从结果中看出,双方IPv6 BGP已成功学习到相互的IPv6路由条目。 IPv6隧道
如上图所示,当两个IPv6网络需要通信时,如果中间需要穿越IPv4网络,而由于IPv4网络中只能识别IPv4包头,并不能为IPv6数据提供正确的路径传输,这时就需要在IPv4网络中为IPv6创建一条隧道,来提供IPv6在IPv4中的传递,这样的隧道,就是把IPv6的数据全部封装在IPv4中,将IPv4当作链路层来传递的隧道形式,称为覆盖型隧道(Overlay Tunnels )。由于隧道是建立在IPv4基础上的,隧道又必须有起点和终点来明确隧道的路径,所以覆盖型隧道的起点和终点最好是使用IPv4地址,有时必须是IPv4地址,并且隧道在传输IPv6数据时,也应该在隧道的两端添加IPv6地址,来完成两端IPv6网络的通信。隧道的起点和终点必须同时支持IPv4和IPv6。 当前在IOS中支持的覆盖型隧道共有以下几中: Manual 点对点,只传递IPv6数据包。 模式为:ipv6ip
Generic routing encapsulation (GRE) 点对点,可以传递多种协议。 模式为:gre ip
IPv4-compatible 点到多点的,思科不建议使用。 模式为:ipv6ip auto-tunnel
6to4 点到多点的,使用地址为2002::/16。 模式为:ipv6ip 6to4
Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) 是点到多点的。 模式为:ipv6ip isatap
以上隧道中,所有隧道的源均为IPv4地址,但是只有点对点隧道的终点为IPv4地址,其它都不需要。更多的是,点对点隧道必须要有IPv6地址,点对点隧道如下图:
注:CCIE考试中,IPv6隧道的考点为Manual 类型的隧道。
配置IPv6隧道: 说明:原来R1上的IPv6网络无法与R2上的IPv6网络通信,通过配置IPv6隧道之后,在隧道与相应IPv6接口上启用IPv6路由协议,如OSPFv3,使得两端IPv6网络可以通信。
1.初始配置 (1)R1初始配置: r1(config)#int f0/0 r1(config-if)#ip address 10.1.1.1 255.255.255.0 r1(config-if)#exi
r1(config)#ip route 0.0.0.0 0.0.0.0 f0/0 r1(config)#
r1(config)#ipv6 unicast-routing r1(config)#int loopback 0 r1(config-if)#ipv6 address 2011:1:1:11::1/64
(2)R2初始配置: r2(config)#int f0/1 r2(config-if)#ip add 20.1.1.1 255.255.255.0 r2(config-if)#exit
r2(config)#ip route 0.0.0.0 0.0.0.0 f0/0
r2(config)#ipv6 unicast-routing r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64
测试IPv4连通性: r1#ping 20.1.1.1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/108/196 ms r1# 说明:R1与R2之间的IPv4连通性正常。
2.配置Manual 类型的IPv6隧道 (1)在R1上配置IPv6隧道 说明:配置的IPv6隧道的类型为Manual 类型,即模式为ipv6ip r1(config)#int tunnel 0 r1(config-if)#ipv6 address 2012:1:1:11::1/64 r1(config-if)#tunnel source f0/0 r1(config-if)#tunnel destination 20.1.1.1 r1(config-if)#tunnel mode ipv6ip (2)在R2上配置IPv6隧道 r2(config)#int tunnel 0 r2(config-if)#ipv6 address 2012:1:1:11::2/64 r2(config-if)#tunnel source f0/0 r2(config-if)#tunnel destination 10.1.1.1 r2(config-if)#tunnel mode ipv6ip (3)查看两端隧道情况 r1#sh ipv6 interface brief tunnel 0 Tunnel0 [up/up] FE80::A01:101 2012:1:1:11::1 r1#
r2#show ipv6 interface brief tunnel 0 Tunnel0 [up/up] FE80::1401:101 2012:1:1:11::2 r2# (4)测试隧道连通性: r1#ping 2012:1:1:11::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2012:1:1:11::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 212/279/332 ms r1# 说明:隧道通信正常。 3.配置IPv6路由协议 说明:在路由器之间启用IPv6路由协议,在隧道之上传递两端IPv6网络信息。 (1)在R1上配置OSPFv3 r1(config)#ipv6 router ospf 2 r1(config-rtr)#router-id 1.1.1.1
r1(config)#int loopback 0 r1(config-if)#ipv6 ospf network point-to-point r1(config-if)#ipv6 ospf 2 area 0
r1(config)#int tunnel 0 r1(config-if)#ipv6 ospf 2 area 0 (2)在R2上配置OSPFv3 r2(config)#ipv6 router ospf 2 r2(config-rtr)#router-id 2.2.2.2
r2(config)#int loopback 0 r2(config-if)#ipv6 ospf network point-to-point r2(config-if)#ipv6 ospf 2 area 0
r2(config)#int tunnel 0 r2(config-if)#ipv6 ospf 2 area 0 4.查看结果 (1)查看邻居状态 R1: r1#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 2.2.2.2 1 FULL/ - 00:00:31 14 Tunnel0 r1# R2: r2#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 1.1.1.1 1 FULL/ - 00:00:38 14 Tunnel0 r2 说明:两端OSPFv3邻居正常。 (2)查看路由信息 R1: r1#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 2022:2:2:22::/64 [110/11112] via FE80::1401:101, Tunnel0 r1# R2: r2#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 2011:1:1:11::/64 [110/11112] via FE80::A01:101, Tunnel0 r2# 说明:两端通过OSPFv3学习到的IPv6路由正常。 5.测试两端IPv6网络通信情况 (1)测试R1到R2端IPv6网络的通信情况 r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/181/268 ms r1# 说明:由于隧道成功建立,并且通过OSPFv3正常学习到路由,到对端IPv6网络通信正常。 (2)测试R2到R1端IPv6网络的通信情况 r2#ping 2011:1:1:11::1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2011:1:1:11::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 88/164/284 ms r2# 说明:由于隧道成功建立,并且通过OSPFv3正常学习到路由,到对端IPv6网络通信正常。
隧道借用地址 说明:在现有IPv4网络上创建覆盖型IPv6隧道,隧道的起点和终点都使用了IPv4地址来定义,然后要使隧道运行正常,使隧道具有路由协议的连接功能,需要赋予隧道两端IPv6地址,从而提供IPv6的连通性,而隧道两端的IPv6地址可以不属于同一网段,当然属于同一网段是最好的选择。无论隧道两端的IPv6地址是否属于同一网段,IPv6路由协议都是可以正常使用的。如果隧道两端的IPv6地址属于同一网段,那么一切正常,隧道两端的地址可以相互ping通,路由协议也无须更多操作,而当隧道两端的IPv6地址不属于同一网段时,那么两端的地址是无法ping通的,但IPv6路由协议可以照常使用,这时,路由协议需要将隧道的地址当作额外路由进行重新通告一次。 下面在创建隧道时,将隧道两端的IPv6地址改为无编号借用地址(unnumbered),这时两端地址不属于同网段,再使用IPv6路由协议连通两端IPv6网络。
1.初始配置 r1: r1(config)#int f0/0 r1(config-if)#ip address 10.1.1.1 255.255.255.0 r1(config-if)#exi
r1(config)#ip route 0.0.0.0 0.0.0.0 f0/0 r1(config)#
r1(config)#ipv6 unicast-routing r1(config)#int loopback 0 r1(config-if)#ipv6 address 2011:1:1:11::1/64
R2 r2(config)#int f0/1 r2(config-if)#ip add 20.1.1.1 255.255.255.0 r2(config-if)#exit
r2(config)#ip route 0.0.0.0 0.0.0.0 f0/0
r2(config)#ipv6 unicast-routing r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64
测试IPv4连通性: r1#ping 20.1.1.1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 20.1.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/108/196 ms r1# 说明:R1与R2之间的IPv4连通性正常。
2.配置unnumbered地址的IPv6隧道 (1)在R1上配置IPv6隧道 r1(config)#int tunnel 0 r1(config-if)#ipv6 unnumbered loopback 0 r1(config-if)#tunnel source f0/0 r1(config-if)#tunnel destination 20.1.1.1 r1(config-if)#tunnel mode ipv6ip (2)在R2上配置IPv6隧道 r2(config)#int tunnel 0 r2(config-if)#ipv6 unnumbered loopback 0 r2(config-if)#tunnel source f0/0 r2(config-if)#tunnel destination 10.1.1.1 r2(config-if)#tunnel mode ipv6ip (3)查看两端隧道情况 r1#show ipv6 interface brief tunnel 0 Tunnel10 [up/up] FE80::A01:101 unnumbered (Loopback0) r1#
r2#show ipv6 interface brief tunnel 0 Tunnel10 [up/up] FE80::1401:101 unnumbered (Loopback0) r2# (4)测试隧道连通性: r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) r1# 说明:由于隧道两端地址不属于同一网段,所以没有对端路由信息,无法ping通。 3.配置IPv6路由协议 (1)在R1上配置OSPFv3 r1(config)#ipv6 router ospf 10 r1(config-rtr)#router-id 1.1.1.1
r1(config)#int loopback 0 r1(config-if)#ipv6 ospf network point-to-point r1(config-if)#ipv6 ospf 10 area 0
r1(config)#int tunnel 0 r1(config-if)#ipv6 ospf 10 area 0 (2)在R2上配置OSPFv3
r2(config)#ipv6 router ospf 10 r2(config-rtr)#router-id 2.2.2.2
r2(config)#int loopback 0 r2(config-if)#ipv6 ospf network point-to-p r2(config-if)#ipv6 ospf 10 area 0
r2(config)#int tunnel 10 r2(config-if)#ipv6 ospf 10 area 0 4.查看结果 (1)查看邻居状态 r1#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 2.2.2.2 1 FULL/ - 00:00:37 15 Tunnel10 r1#
r2#show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface 1.1.1.1 1 FULL/ - 00:00:36 15 Tunnel10 r2# 说明:两端OSPFv3邻居正常。 (2)查看路由信息 R1: r1#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 2022:2:2:22::/64 [110/11112] via FE80::1401:101, Tunnel10 r1#
R2: r2#show ipv6 route ospf IPv6 Routing Table - 7 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external O 2011:1:1:11::/64 [110/11112] via FE80::A01:101, Tunnel10 r2# 说明:两端通过OSPFv3学习到的IPv6路由正常。 5.测试两端IPv6网络通信情况 r1#ping 2022:2:2:22::2
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2022:2:2:22::2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/181/268 ms r1# 说明:由于隧道成功建立,并且通过OSPFv3正常学习到路由,到对端IPv6网络通信正常。 (2)测试R2到R1端IPv6网络的通信情况 r2#ping 2011:1:1:11::1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2011:1:1:11::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 88/164/284 ms r2# 说明:由于隧道成功建立,并且通过OSPFv3正常学习到路由,到对端IPv6网络通信正常。 IPv6组播 概述 在理解IPv6组播之前,必须了解IPv4组播,了解IPv4 PIM,了解IGMP,这些知识在本篇不再详细讲述,相关详细内容,请参见IPv4 组播部分。 要启用IPv6组播,必须先开IPv6单播。
IPv6组播地址: IPv6组播地址的范围是FF00::/8 (1111 1111)。 因为一个正常的IPv6地址包含128位,在IPv6组播地址中,第一段共16位的格式被拆分成三部分:第一部分共8位,全部为1,即使用FF来表示。第二部分共4位,表示组播地址的存活期,如果为0表示永久,如果为1表示临时。第三部分共4位,表示组播地址的范围,分为node, link, site, organization,global分别表示为1, 2, 5, 8,E,除了此五种以外,0和F为保留范围,而其它全部称为未分配,建议使用未分配的地址范围。组播地址的表示格式如下图:
在IPv6中没有广播地址,只有组播,所以使用组播代替广播。 无论是路由器还是主机,所有IPv6接口默认加入FF02::1 , 而所有路由器的IPv6接口默认加入FF02::2。
MLD (Multicast Listener Discovery) 在IPv6组播中,MLD协议与IPv4组播中的IGMP协议功能相同,是用于发现接收者的协议。 路由器发送MLD查询消息来确认接收者,而主机发送MLD报告来加入一个组,主机可以在同一时间属于多个组。 MLD共有两个版本,ver1和ver2, MLD ver 1是基于IPv4 IGMP v2 MLD ver 2是基于IPv4 IGMP v3 IOS同时使用两个。
PIM IPv6 PIM的功能同IPv4 PIM,而IPv6 PIM只使用SM(稀疏)模式,所以网络中必须存在RP,而RP的位置可以通过静态配置和BSR通告两种方法确认。 在配置IPv6 PIM时,当开启IPv6组播功能后,所有正常启用IPv6功能的接口自动开启IPv6 PIM,所以IPv6 PIM无须手工配置;并且须明白DR在组播中的作用,详细内容请参见IPv4组播部分。
配置IPv6组播
1.初始配置 (1)R1初始配置: r1(config)#ipv6 unicast-routing r1(config)#ipv6 router ospf 10 r1(config-rtr)#router-id 1.1.1.1
r1(config)#int f0/0 r1(config-if)#ipv6 address 2012:1:1:11::1/64 r1(config-if)#ipv6 ospf 10 area 0
r1(config)#int loopback 0 r1(config-if)#ipv6 address 2011:1:1:11::1/64 r1(config-if)#ipv6 ospf network point-to-point r1(config-if)#ipv6 ospf 10 area 0
(2)R2初始配置: r2(config)#ipv6 unicast-routing r2(config)#ipv6 router ospf 10 r2(config-rtr)#router-id 2.2.2.2
r2(config)#interface f0/0 r2(config-if)#ipv6 address 2012:1:1:11::2/64 r2(config-if)#ipv6 ospf 10 area 0
r2(config)#int loopback 0 r2(config-if)#ipv6 address 2022:2:2:22::2/64 r2(config-if)#ipv6 ospf network point-to-point r2(config-if)#ipv6 ospf 10 area 0
r2(config)#int s0/0 r2(config-if)#encapsulation frame-relay r2(config-if)#no frame-relay inverse-arp r2(config-if)#no arp frame-relay r2(config-if)#ipv6 address 2023:1:1:11::2/64 r2(config-if)#frame-relay map ipv6 2023:1:1:11::3 203 broadcast r2(config-if)#frame-relay map ipv6 FE80::213:1AFF:FE2F:380 203 broadcast r2(config-if)#ipv6 ospf network point-to-point r2(config-if)#ipv6 ospf 10 area 0
(3)R3初始配置: r3(config)#ipv6 unicast-routing r3(config)#ipv6 router ospf 10 r3(config-rtr)#router-id 3.3.3.3
r3(config)#interface loopback 0 r3(config-if)#ipv6 address 2033:3:3:33::3/64 r3(config-if)#ipv6 ospf network point-to-point r3(config-if)#ipv6 ospf 10 area 0
r3(config)#int s0/0 r3(config-if)#encapsulation frame-relay r3(config-if)#no frame-relay inverse-arp r3(config-if)#no arp frame-relay r3(config-if)#ipv6 address 2023:1:1:11::3/64 r3(config-if)#frame-relay map ipv6 2023:1:1:11::2 302 broadcast r3(config-if)#frame-relay map ipv6 FE80::213:1AFF:FE2F:1200 302 broadcast r3(config-if)#ipv6 ospf network point-to-point r3(config-if)#ipv6 ospf 10 area 0
2.开启IPv6组播 (1)在R1上开启IPv6组播 r1(config)#ipv6 multicast-routing (2)在R2上开启IPv6组播 r2(config)#ipv6 multicast-routing (3)在R3上开启IPv6组播 r3(config)#ipv6 multicast-routing
3.配置IPv6 PIM 说明:在配置IPv6 PIM时,当开启IPv6组播功能后,所有正常启用IPv6功能的接口自动开启IPv6 PIM,所以IPv6 PIM无须手工配置。 (1)查看R1上的PIM状态 r1#show ipv6 pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir
FE80::213:1AFF:FE2F:1200 FastEthernet0/0 00:00:43 00:01:31 1 (DR) B
r1# 说明:由于IPv6单播和IPv6组播已正常开启,所以IPv6 PIM邻居也已经正常建立。 (2)查看R2上的PIM状态 r2#show ipv6 pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir
FE80::212:D9FF:FEF9:C8A0 FastEthernet0/0 00:00:56 00:01:18 1 B FE80::213:1AFF:FE2F:380 Serial0/0 00:00:55 00:01:28 10 (DR) B
r2# 说明:由于IPv6单播和IPv6组播已正常开启,所以IPv6 PIM邻居也已经正常建立。
(3)查看R3上的PIM状态 r3#show ipv6 pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir
FE80::213:1AFF:FE2F:1200 Serial0/0 00:01:09 00:01:37 1 B
r3# 说明:由于IPv6单播和IPv6组播已正常开启,所以IPv6 PIM邻居也已经正常建立。
4.配置MLD 说明:因为MLD的功能同IGMP,所以配置的目的为加入某个组。 (1)在R1上配置加入组ff04::1 说明:建议使用未分配的组播地址范围。 r1(config)#interface loopback 0 r1(config-if)#ipv6 mld join-group ff04::1
5.配置静态RP 说明:静态配置所有设备的RP为R1的loopback 0 (1)在R1上配置静态RP r1(config)#ipv6 pim rp-address 2011:1:1:11::1 (2)在R2上配置静态RP r2(config)#ipv6 pim rp-address 2011:1:1:11::1 (3)在R3上配置静态RP r3(config)#ipv6 pim rp-address 2011:1:1:11::1
6.查看结果 (1)查看R1上的RP情况 r1#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Tu2,2011:1:1:11::1 (us) Info source: Static Uptime: 00:01:15, Groups: 1
r1# 说明:由于已手工配置RP,所以RP正常。 (2)查看R2上的RP情况 r2#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Fa0/0,FE80::212:D9FF:FEF9:C8A0 Info source: Static Uptime: 00:01:40, Groups: 0
r2# 说明:由于已手工配置RP,所以RP正常。 (3)查看R3上的RP情况 r3#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Se0/0,FE80::213:1AFF:FE2F:1200 Info source: Static Uptime: 00:01:41, Groups: 0
r3 说明:由于已手工配置RP,所以RP正常。 7.测试组播通信情况 (1)测试R1的组播通信情况 r1#ping ff04::1 Output Interface: Loopback0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2011:1:1:11::1
Reply to request 0 received from 2011:1:1:11::1, 16 ms Reply to request 1 received from 2011:1:1:11::1, 0 ms Reply to request 2 received from 2011:1:1:11::1, 0 ms Reply to request 3 received from 2011:1:1:11::1, 0 ms Reply to request 4 received from 2011:1:1:11::1, 0 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 0/3/16 ms 5 multicast replies and 0 errors. r1# 说明:在测试组播时,出口必须全部写出。从结果中可以看出,由于PIM已成功建立,RP已正确学到,所以组播通信正常。 (2)测试R2的组播通信情况 r2#ping ff04::1 Output Interface: FastEthernet0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2012:1:1:11::2
Reply to request 0 received from 2011:1:1:11::1, 4 ms Reply to request 1 received from 2011:1:1:11::1, 0 ms Reply to request 2 received from 2011:1:1:11::1, 0 ms Reply to request 3 received from 2011:1:1:11::1, 0 ms Reply to request 4 received from 2011:1:1:11::1, 0 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/4 ms 5 multicast replies and 0 errors. r2# 说明:从结果中可以看出,由于PIM已成功建立,RP已正确学到,所以组播通信正常。 (3)测试R3的组播通信情况 r3#ping ff04::1 Output Interface: Serial0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2023:1:1:11::3
Request 0 timed out Request 1 timed out Request 2 timed out Request 3 timed out Request 4 timed out Success rate is 0 percent (0/5) 0 multicast replies and 0 errors. r3# 说明:R3的组播无法ping通,由于PIM的DR选举问题。原因请参见IPv4组播部分。
8.解决组播通信问题 说明:由于R3与R2之间为多路访问,DR位置错误,所以组播无法通信,切换DR位置以解决组播通信问题。 (1)改R2为网络中的DR r2(config)#interface s0/0 r2(config-if)#ipv6 pim dr-priority 100 (2)查看当前网络中DR情况 r3#show ipv6 pim neighbor Neighbor Address Interface Uptime Expires DR pri Bidir
FE80::213:1AFF:FE2F:1200 Serial0/0 00:10:02 00:01:24 100 (DR) B
r3# 说明:DR已成功变为R2。 (3)测试R3的组播通信情况 r3#ping ff04::1 Output Interface: Serial0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2023:1:1:11::3
Reply to request 0 received from 2011:1:1:11::1, 68 ms Reply to request 0 received from 2011:1:1:11::1, 80 ms Reply to request 1 received from 2011:1:1:11::1, 64 ms Reply to request 1 received from 2011:1:1:11::1, 76 ms Reply to request 2 received from 2011:1:1:11::1, 65 ms Reply to request 2 received from 2011:1:1:11::1, 77 ms Reply to request 3 received from 2011:1:1:11::1, 68 ms Reply to request 3 received from 2011:1:1:11::1, 80 ms Reply to request 4 received from 2011:1:1:11::1, 124 ms Reply to request 4 received from 2011:1:1:11::1, 168 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 64/87/168 ms 10 multicast replies and 0 errors. r3# 说明:修改DR后,R3的组播通信正常。
配置BSR 说明:前面通过手工静态配置RP来使组播正常通信,下面通过配置BSR来自动选举RP。 配置R1的loopback0为C-BSR和C-RP。 1.配置C-BSR (1)配置R1的loopback0为C-BSR r1(config)#ipv6 pim bsr candidate bsr 2011:1:1:11::1 2.配置C-RP (1)配置R1的loopback0为C-RP r1(config)#ipv6 pim bsr candidate rp 2011:1:1:11::1 3.查看结果 (1)查看R1上的RP情况 r1#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Tu2,2011:1:1:11::1 (us) Info source: BSR From: 2011:1:1:11::1(00:01:31), Priority: 192 Uptime: 00:00:58, Groups: 1
r1# 说明:由于BSR配置正确,所以RP正常。 (2)查看R2上的RP情况 r2#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Fa0/0,FE80::212:D9FF:FEF9:C8A0 Info source: BSR From: 2011:1:1:11::1(00:02:20), Priority: 192 Uptime: 00:01:09, Groups: 1
r2# 说明:由于BSR配置正确,所以RP正常。 (3)查看R3上的RP情况 r3#show ipv6 pim group-map ff04::
FF00::/8* SM, RP: 2011:1:1:11::1 RPF: Se0/0,FE80::213:1AFF:FE2F:1200 Info source: BSR From: 2011:1:1:11::1(00:02:09), Priority: 192 Uptime: 00:01:20, Groups: 0
r3# 说明:由于BSR配置正确,所以RP正常。 4.测试组播通信情况 (1)测试R1的组播通信情况 r1#ping ff04::1 Output Interface: Loopback0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2011:1:1:11::1
Reply to request 0 received from 2011:1:1:11::1, 8 ms Reply to request 1 received from 2011:1:1:11::1, 0 ms Reply to request 2 received from 2011:1:1:11::1, 0 ms Reply to request 3 received from 2011:1:1:11::1, 0 ms Reply to request 4 received from 2011:1:1:11::1, 0 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 0/1/8 ms 5 multicast replies and 0 errors. r1# 说明: RP已正确学到,所以组播通信正常。 (2)测试R2的组播通信情况 r2#ping ff04::1 Output Interface: FastEthernet0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2012:1:1:11::2
Reply to request 0 received from 2011:1:1:11::1, 12 ms Reply to request 1 received from 2011:1:1:11::1, 0 ms Reply to request 2 received from 2011:1:1:11::1, 8 ms Reply to request 3 received from 2011:1:1:11::1, 0 ms Reply to request 4 received from 2011:1:1:11::1, 0 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 0/4/12 ms 5 multicast replies and 0 errors. r2# 说明: RP已正确学到,所以组播通信正常。 (3)测试R3的组播通信情况 r3#ping ff04::1 Output Interface: Serial0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FF04::1, timeout is 2 seconds: Packet sent with a source address of 2023:1:1:11::3
Reply to request 0 received from 2011:1:1:11::1, 120 ms Reply to request 0 received from 2011:1:1:11::1, 132 ms Reply to request 1 received from 2011:1:1:11::1, 100 ms Reply to request 1 received from 2011:1:1:11::1, 116 ms Reply to request 1 received from 2011:1:1:11::1, 128 ms Reply to request 2 received from 2011:1:1:11::1, 100 ms Reply to request 2 received from 2011:1:1:11::1, 116 ms Reply to request 3 received from 2011:1:1:11::1, 100 ms Reply to request 3 received from 2011:1:1:11::1, 116 ms Reply to request 4 received from 2011:1:1:11::1, 101 ms Reply to request 4 received from 2011:1:1:11::1, 117 ms Success rate is 100 percent (5/5), round-trip min/avg/max = 100/113/132 ms 11 multicast replies and 0 errors. r3# 说明: RP已正确学到,所以组播通信正常。
IPv6 邻居发现协议(ND协议) 由于IPv6 ND协议中,几乎所有有用功能均为自动开启,无须手工干预,所以在此不再详细解释ND协议的运行过程,详细内容请自行参考Cisco文档中IOS 12.4 T部分。
注:本人能力有限,如遇不足之处,还请指正! |
China-CCIE QQ交流群:106155045
|