阅读 52

RIP原理

1 RIP原理

1.1 直连路由

路由器的某个接口配置了IP地址,路由器会自动的把接口IP所在网段的网络号学习到路由表中,加载进来的路由就是直连路由,家门口的路由。直连路由的前提是接口物理及协议状态必须都UP状态才能自动学习到路由表。

1.2 静态路由

根据数据访问需求手工在每台设备上进行添加和维护,不能够根据拓扑变化来动态响应。

1.3 动态路由协议

路由器自动进行路由信息的更新合同步,并且当网络拓扑变更时,能够自动收敛。所谓的动态路由协议就是让路由器彼此之间具备交互供计算路由信息,让路由器动态的学习,产生路由,从而填充路由表。在大型组网中,往往采用动静结合的形式。

1.4 动态路由协议分类

根据路由协议算法或路由器之间传递信息种类分类:

按协议工作机制划分协议
距离矢量协议RIP、BGP特点:直接把自己的路由表更新给邻居,路由器之间交互各自路由表,来学习或记录自己没有的。
链路状态协议OSPF、IS-IS特点:传递的是描述拓扑的信息叫链路状态信息,通过泛洪和收集这些信息,每台路由器可以进行拓扑数据库的构建,这个数据库就相当于对整个拓扑的理解,基于这个理解每台路由器进行单独算法计算,以自己为根,产生出一个最短路径树。
按工作范围划分协议
IGP(AS内)RIP、OSPF、IS-ISIGP是工作在AS内,叫自治域系统,由一个独立的机构所统一管理的运行相同路由协议类型和策略一组路由器所构成的网络,说白了就类似于一家公司的网络。
EGP(AS之间)BGPESP是工作在AS之间,使能交互路由信息

1.5 RIP协议概述

RIP(Routing Information Protocols,路由信息协议),是历史悠久的内部网关协议,适用于小型网络,是典型的距离矢量协议,RIP基于UDP,端口号520。定期更新整张路由表,依照传闻;距离矢量路由协议并不了解网络拓扑。RIP三个版本RIPv1、RIPv2、RIPng(为IPv6开发)。

V2在V1的基础上做了如下改进:

增加外部路由标记,增加VLSM支持,组播发送RIP消息:224.0.0.9,支持认证,增加下一跳字段。

1.6 距离矢量路由协议工作机制-RIP

1.6.1 基础

使用距离矢量路由协议的路由器并不了解网络的拓扑。这是基于“传闻”的更新。

运行了距离矢量路由协议的路由器之间彼此交互各自的路由表,R1的直连路由会通告给R2,R2也会收到并装载到自己的路由表中。R1去往1.1.1.0/24是0跳(1跳就是一台路由器),R2到1.1.1.0/24就是1跳,跳数(度量值)就是路由器去衡量到达目的地的代价。

周期性地更新(广播)整张路由表。把自己的整张路由表通告出去,大家彼此都执行这样的操作,一来二回所有路由器都能学到全网路由。

1.6.2 RIP路由协议工作原理(学习过程)

路由器初始启动: 最初的网络发现:直连网络写入路由表,路由器能够自动学习直连路由并写入路由表,现在我们在所有路由器上部署RIP。

初次交换路由信息: 由于ABC都运行了RIP,因此他们都将自己的路由表通过广播(RIP版本1是广播发送,版本2是组 播发送)的方式从所有激活了RIP的接口上更新出去。拿B来举例,它将自己的路由表更新出去, A和C都能够收到。A收到B传过来的路由表,它发现10.0.2.0和10.0.3.0,但是10.0.2.0在自己的路由表中有了就会继续往下看,发现10.0.3.0路由自己没有,于是将这条路由学习过来,并记录接收此信息的接口编号,还用于当访问这个目的网络上应该从这个接口出去,同时在为这条路由关联一个度量值:1跳,所谓1跳的意思是,A要到达10.0.3.0这个网络, 需要经过B这个路由器,这是一跳,一跳就是一台三层设备,RIP通过跳数作为路由的度量值。 经过这一轮学习,A能学到10.0.3.0,C能学到10.0.2.0,而B能够学习到A和C传来的10.0.1.0及 10.0.4.0。

路由收敛完成: 接下去又是一轮更新,所有路由器将自己的路由表发送给直连邻居。A发现就能学习到B更新过来的10.0.4.0路由,跳数为2跳,因为它要到10.0.4.0需要经过BC两台路由器(实际上他并不知道要经过谁,RIP只是单纯的做个加法而已)。这样一来,所有的路由器,都拥有到达全网各个角落的路 由了。我们把这个称为,路由收敛完成了。

1.6.3 度量值(Cost)

RIP以跳数(Hops)作为度量值,所谓的度量值就是去往目标网络付出的度量或开销是多少或衡量两条路径的优劣(每经一个支持RIP路由的设备都会增加一跳)。跳数越少越优,跳数越少意味着我到达目标网络会更近。

R1学习到两条去往100.0/24的路径,然后这两条路由PK优先级,由于都是RIP协议类型优先级都是100,然后再去PK开销值,因为上面的路径为2跳,下面的路径为3跳,所以运行了RIP协议的路由器会选择上面的路径,但是链路带宽是有很大差距的,上面的是1.544M而下面的是1000M,显然下面的传输速度会更快,但是RIP协议只关心跳数,不关心链路带宽。

1.6.4 RIP路由协议工作机制小结

RIP协议是依照传闻的更新,采用逐条的动作。邻居将路由表更新给我,我先去更新本地的路由表,然后再向外更新自己的路由表。

1.7 路由优先级

所谓的路由优先级(Route Preference)就是衡量收到两个去往同一目的网络的路由,每个协议都对应一个约定好的优先级。路由优先级越小越优。注意:每个厂商对路由优先级设定可能不同。

路由协议或路由种类路由优先级
DIRECT0
OSPF10
IS-IS15
STATIC60
RIP100
OSPF ASE150
OSPF NSSA150
IBGP255
EBGP255

1.8 环路的产生和防环机制

1.8.1 产生

假设ABC都运行了RIP,并且网络已经收敛完成。C路由器的直连网段10.0.4.0/24发生故障,然后就将10.0.4.0路由表项从路由表中擦除,因为物理状态是down的。这时候更新周期到了, B路由表向外泛洪路由表,C路由器发现自己没有10.0.4.0的路由表项于是将这个路由表项学习到,因为是从GE0/0/0收到的,所以路由的出接口就是GE0/0/0,再有因为再B路由器的10.0.4.0表项的跳数是1,所以到达C路由器的跳数就是2。10.0.4.0路由继续在网络中随着更新周期的到来不断的被更新来更新去,然而事实上,10.0.4.0网络早就不存在了,这时候如果网络中有任何一个地方发送数据到10.0.4.0网络,这个数据将在网络中不断的 打转,直到TTL递减为0。这就是环路。当B路由器的数据包目的地址为10.0.4.0,于是查询路由表发现有匹配表项并将数据从G0/0/1口发生出去,到达C路由器也会查询路由表,发现数据包的目的地址是10.0.4.0,发现有匹配表项于是将数据包从G0/0/0接口发送出去,BC路由器一来二回,就产生了环路。而且随着路由器的不断转发,跳数也会增加。

1.8.2 防环机制

1、定义最大度量以防止技术至无穷大(16跳为不可达)

为了防止RIP路由在网络中被无限泛洪从而跳数累加到无穷大,RIP规定:路由的最大跳数为15跳,也就是如果度量值大于等于16跳则被视为不可达;最大跳数的设定虽然解决了度量值技术到无穷大的问题,但是却也极大地限制了RIP所能支持的网络的规模。

出现环路的路由器之间不断地在网络中传递路由,跳数也就持续增加,15跳是最大跳数,那么我们定义到达16跳时,表示路由不可达,防止一条路由被无止境传递。这种方法并不高效,例如一个网络还真有16台设备,那也要认为不可达?

2、水平分割(Split Horizon)

是距离矢量协议的一个具有代表性的特性,如果是从GE0/0/1接口学习到的10.0.4.0路由,那么就不能在把10.0.4.0这条路由从GE0/0/1接口发送,这就是水平分割。RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。

3、毒性逆转(Poison Reverse)

突破水平分割的另外一个特性,运行这个规则要先关闭水平分割,虽然从GE0/0/1收到路由,但也会从GE0/0/1发送出去,但发送出去的跳数被设定为16跳(路由器从一个接口收到路由更新,会以16跳从该接口更新出去)。坏消息总比没消息要好。RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。

毒性逆转(Poison Reverse)的原理是,RIP从某个接口学到路由后,将该路由的开销设置为16 (即指明该路由不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中 的无用路由。毒性逆转可以防止产生路由环路的发生。同时配置水平分割和毒性逆转的话,只有毒性逆转生效。

4、路由中毒(RoutePoisoning)

当C发现直连网段不可达时,作为更新源立即向其他路由器发送更新,更新内容是10.0.4.0这条路由为16跳,目的就是刷新AB路由器的路由表,将这个不可达的路由擦除掉。

1.9 RIP的配置

1.9.1 配置命令

  • 启动RIP进程,并进入RIP配置视图:

[Router] rip 1

  • 在指定网段使能RIP(RIP只支持classful [有类路由 ]网络宣告):

[Router-rip-1] network 192.168.12.0

  • 指定RIP的版本(默认为版本1):

[Router-rip-1] version 2

1.9.2 配置示例

R1 的配置如下:

# 完成接口 IP 的配置
< Huawei >system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/1]quit
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0]quit

# R1 GE0/0/0 GE0/0/1 口上激活 RIPv2
[R1]rip 1
[R1-rip-1]version 2 #指定RIP的版本为版本2
[R1-rip-1]network 192.168.1.0 #在GE0/0/0口上激活RIP
[R1-rip-1]network 192.168.12.0 #在GE0/0/1口上激活RIP


R2 的配置如下:

# 完成接口 IP 的配置
< Huawei >system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.23.2 24
[R2-GigabitEthernet0/0/1]quit

# R2 GE0/0/0 GE0/0/1 口上激活 RIPv2 **:
[R2]rip 1
[R2-rip-1]version 2
[R2-rip-1]network 192.168.12.0
[R2-rip-1]network 192.168.23.0


R3 的配置如下:

# 完成接口 IP 的配置

< Huawei >system-view
[Huawei]sysname R3
[R3]interface 0/0/0
[R3-GigabitEthernet0/0/0]ip address 192.168.23.3 24
[R3-GigabitEthernet0/0/0]quit
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[R3-GigabitEthernet0/0/1]quit

# R3 GE0/0/0 GE0/0/1 口上激活 RIPv2

[R3]rip 1
[R3-rip-1]version 2
[R3-rip-1]network 192.168.2.0
[R3-rip-1]network 192.168.23.0


完成上述配置后,我们来查看及验证,首先查看 R1 IP 路由表:

[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
---------------------------------------------------------------------------
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.1.0/24 Direct 0 0 D 192.168.1.254 G0/0/1
192.168.1.254/32 Direct 0 0 D 127.0.0.1 G0/0/1
192.168.2.0/24 RIP 100 2 D 192.168.12.2 G0/0/0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 G0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 G0/0/0
192.168.23.0/24 RIP 100 1 D 192.168.12.2 G0/0/0

从上面的输出,我们可以看到R1已经通过RIP学习到了两条路由,分别是192.168.2.0/24及 192.168.23.0/24。当然为了使得PC1与PC2要能够正常通信,沿途的所有路由器都要有完整的路 由表项,因此我们还需要检查检查R2及R3的路由表,重点看RIP路由:

Route Flags: R - relay, D - download to fib[R2]display ip routing-table protocol rip
---------------------------------------------------------------------------
Public routing table : RIP
Destinations : 2 Routes : 2
RIP routing table status :
Destinations : 2 Routes : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.1.0/24 RIP 100 1 D 192.168.12.1 G0/0/0
192.168.2.0/24 RIP 100 1 D 192.168.23.3 G0/0/1
RIP routing table status :
Destinations : 0 Routes : 0

R2也通过RIP学习到了两条路由,分别是192.168.1.0/24及192.168.2.0/24。 同理查看R3的路由表,确保R3能够学习到192.168.1.0/24的路由。 如此一来,全网的路由就打通了,那么现在PC1与PC2是能够互相通信的。


作者:漫步河畔
链接:https://juejin.cn/post/7022536969003466782


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐