实验:RIPng协议的配置
1 【实验目的】
1. 深刻理解IPv6路由协议原理。
2. 掌握RIPng协议的配置方法
2 【实验环境】
IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。
由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
互联网数字分配机构(IANA)在2016年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持IPv6,不再兼容IPv4。
RIPng的度量是基于跳数(hops count)的,每经过一台路由器,路径的跳数加l。如此一来,跳数越多,路径就越长,路由算法会优先选择跳数少的路径。RIPng支持的最大跳数是15,跳数为16的网络被认为不可达。
实验拓扑图如下图所示。
3 【实验过程】
RTA配置
<RTA>sys Enter system view, return user view with Ctrl+Z. [RTA]sys RTA [RTA] [RTA]ipv6 [RTA] [RTA]int g0/0/0 [RTA-GigabitEthernet0/0/0]ipv6 en [RTA-GigabitEthernet0/0/0]ipv6 address auto link-local [RTA-GigabitEthernet0/0/0]ripng 1 en [RTA-GigabitEthernet0/0/0]q [RTA] [RTA]int loopback0 [RTA-LoopBack0]ipv6 en [RTA-LoopBack0]ipv6 add 2001:1::1/64 [RTA-LoopBack0]ripng 1 en [RTA-LoopBack0]q
RTB配置
<RTB>sys Enter system view, return user view with Ctrl+Z. [RTB]sys RTB [RTB] [RTB]ipv6 [RTB]int g0/0/0 [RTB-GigabitEthernet0/0/0] [RTB-GigabitEthernet0/0/0]ipv6 en [RTB-GigabitEthernet0/0/0]ipv6 address auto link-local [RTB-GigabitEthernet0/0/0]ripng 1 en [RTB-GigabitEthernet0/0/0]q [RTB] [RTB]int loopback0 [RTB-LoopBack0]ipv6 en [RTB-LoopBack0]ipv6 add 2001:2::1/64 [RTB-LoopBack0]ripng 1 en [RTB-LoopBack0]q
4 【实验结果】
验证
RTA验证:
RTB验证:
由实验结果可以看出,两个路由器RTA与RTB通过添加了RIPng协议之后可以进行相互通讯和学习。
5 【实验总结】
5.1 了解IPv6与RIPng
IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。
5.1.1 IPv6
5.1.1.1 冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
5.1.1.2 0位压缩表示法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::
5.1.1.3 内嵌IPv4地址表示法
为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用。
5.1.2 RIPng
5.1.2.1 路由更新
RIPng中路由的更新是通过定时广播实现每个路由表有一个更新计时器,缺省情况下,路由器每隔30秒向与它相连的网络广播自己的路由表,接到广播的路由器将收到的信息添加至自身的路由表中。每个路由器都如此广播,最终网络上所有的路由器都会得知全部的路由信息。正常情况下,每30秒路由器就可以收到一次路由信息确认,如果经过180秒,即6个更新周期,1个路由项都没有得到确认,路由器就认为它已失效了。如果再经过120秒,路由项仍没有得到确认,它就被从路由表中删除。上面的30秒、180秒和120秒的延时都是由计时器控制的,它们分别是更新计时器、暂时超时计时器和垃圾收集计时器。
5.1.2.2 报文格式
RIPng报文用UDP数据报进行传输,使用端口号521发送和接收数据报。RIPng报文分为两类:选路信息报文和用于请求信息的报文。它们都使用相同格式,由固定的首部和路由表项I盯E(Route Table Entry)组成,其中路由表项可以有多个,如图2所示。首部包括命令字段和版本号字段。同RIP一样,命令字段用来区分报文要实现的各种操作。其中命令号1表示请求部分或全部选路信息,命令号2表示响应。RIPng:路由选择信息协议下一代(应用于IPv6)
5.1.2.3 RIPng工作原理
路由器通常不会主动发出请求报文来进行路由请求,路由请求通常只是在路由器刚启动或是路由器正在寻找路由信息时才会发出请求报文以获得响应。路由器在查询响应、周期更新、触发更新三种情况下会收到响应报文。路由器根据响应报文判断是否对本地路由表进行更新。由于响应报文可能对本地路由表进行改动,因此对报文的来源必须进行严格的检查,以确认报文的合法性。
5.1.3 RIPv1 RIPv2和RIPng的比较
5.1.3.1 地址版本。
RIPv1、RIPv2是基于IPv4的,地址域只有32bit,而RIPng基于IPv6,使用的所有地址均为128bit。
5.1.3.2 子网掩码和前缀长度。
RIPv1被设计成用于无子网的网络,因此没有子网掩码的概念,这就决定了RIPv1不能用于传播变长的子网地址或用于CIDR的无类型地址。RIPv2增加了对子网选路的支持,因此使用子网掩码区分网络路由和子网路由。IPv6的地址前缀有明确的含义,因此RIPng中不再有子网掩码的概念,取而代之的是前缀长度。同样也是由于使用了IPv6地址,RIPng中也没有必要再区分网络路由、子网路由和主机路由。
5.1.3.3 协议的使用范围。
RIPv1、RIPv2的使用范围被设计成不只局限于TCP/IP协议簇,还能适应其他网络协议簇的规定,因此报文的路由表项中包含有网络协议簇字段,但实际的实现程序很少被用于其他非IP的网络,因此RIPng中去掉了对这一功能的支持。
5.1.3.4 对下一跳的表示。
RIPv1中没有下一跳的信息,接收端路由器把报文的源IP地址作为到目的网络路由的下一跳。RIPv2中明确包含了下一跳信息,便于选择最优路由和防止出现选路环路及慢收敛。与RIPv2不同,为防止RTE过长,同时也是为了提高路由信息的传输效率,RIPng中的下一跳字段是作为一个单独的RTE存在的。
5.1.3.5 报文长度。
RIPv1、RIPv2中对报文的长度均有限制,规定每个报文最多只能携带25个RTE。而RIPng对报文长度、RTE的数目都不作规定,报文的长度是由介质的MTU决定的。RIPng对报文长度的处理,提高了网络对路由信息的传输效率。
5.1.3.6 RIPng使用FF02::9这个地址进行组播更新。
5.2 简单配置
配置思路:首先对RTA进行一系列配置:包括开启IPv6地址和RIPng服务,并对其进行细致配置。同理对RTB进行类似的配置。
5.3 DHCPv6查看命令:
dis ripng //查看路由器中ripng设置的相关信息
Ping ipv6 X:X:X:X:X:X:X:X (其中每个X表示地址中的16b,以十六进制表示) //用于IPv6地址之间的连通性检测