zoukankan      html  css  js  c++  java
  • RIP动态路由协议

    一、路由表的三种来源

    路由器是依赖自己维护的路由表来进行数据转发的,而路由表又是由许多路由条目构成的,路由器要将数据转发到目的地就必须有路由。

    一台路由器可以从多种来源学习到路由条目:

    1.直连路由

    路由器在初始启动后,如果我们为其接口配置IP地址,并且接口的物理及协议的状态都为UP,则路由器能够自动地学习该接口的网络号,将这条直连路由装载进路由表,无需干预,自动学习。

    2.静态路由

    直连网络能够自动学习,可是非直连网络可就无法自动学习了,那么一种最简单的方式,就是通过手工配置的方式为路由器创建静态的路由表项,这叫静态路由,静态路由由于其是静态手工配置,因此可管理性非常高。但是静态路由无法根据网络拓扑的变更做出动态的感知,因此当网络发生变化时,管理员可能不得不重新配置或调整静态路由。

    3.动态路由

    动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。

    动态路由是基于某种路由协议来实现的。路由协议定义了路由器在与其他路由器通信时的一些规则。也就是说,路由协议规定了路由器是如何来学习路由的,是用什么标准来选择路由以及维护路由信息的等。

    动态路由协议就像路由器之间用来交流信息的语言,通过它,路由之间可以共享网络连接信息和状态信息。动态路由协议不局限于路径和路由表的更新,当到达目的网络的最优路径出现问题时,动态路由协议可以在剩下的可用路径中,选择一个最优路径进行替代。

    每一个路由协议必须具备以下几个必备步骤。

    1、向其他路由器传递路由信息。

    2、接受其他路由器的路由信息。

    3、根据收到的路由信息计算出到每个目的网络的最优路径,并生成路由表。

    4、根据网络拓扑的变化及时作出反应,调整路由生产新的路由表,同时把拓扑变化以路由信息的形式向其他路由器宣告。

     二、动态路由的分类

    根据作用的范围,路由协议可分为:

    内部网关协议(IGP):在一个自治系统内部运行

    外部网关协议(EGP):运行于不同自治系统之间

    所谓的AS自治系统指的就是,一个独立自治的、自我管理的路由选择域

    根据使用的算法,路由协议可分为:

    距离矢量协议:包括RIP和BGP。其中,BGP也被称为路径矢量协议

    链路状态协议:包括OSPF和IS-IS

    三、RIP动态路由协议

    RIP(Routing Information Protocols,路由信息协议)是历史悠久的内部网关协议,适用于小型网络,是典型的距离矢量协议;RIP基于UDP,端口520;

    (1)RIP的更新过程

    1.路由器初始启动

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

     

     2.初次交换路由信息

    由于ABC都运行了RIP,因此他们都将自己的路由表通过广播(RIP版本1是广播发送,版本2是组播发送)的方式从所有激活了RIP的接口上更新出去。拿B来举例,它将自己的路由表更新出去,A和C都能够收到。A收到B传过来的路由表,它发现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。 

     

    3.路由收敛完成

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

    路由器收到邻居路由发送的更新报文时,根据以下原则来处理本路由器的rip路由表

    1.对于本路由表中已经存在的路由表项,当该路由表项的下一跳是该邻居路由器的时候,不论度量值增大还是减小,都更新路由表项(如果度量值不变,就将本地的老化计时器清零,路由表每条路由都有一个对应的老化计时器,如果180s内,老化计时器没有进行更新的话,该条路由的跳数变为16跳不可达)。

    2.当该路由表的下一跳不是邻居路由的时候,更新该条路由。

    3.对于本路由表中不存在的路由表项,如果度量值小于16,则在路由表中增加该表项,如果某条路由变为不可达之后,该路由会在response报文中发布4次(120s),然后从路由表中删除。

    (2)路由器收敛完成的标志 

    1.所有路由表包含相同网络可达性信息

    2.网络(路由)进入一个稳态,路由器继续交换路由信息

    3.当无新路由信息被更新时收敛结束

    4.网络在达到收敛前无法完全正常工作

    (3)RIP的Metric(度量值)

    RIP以跳数(Hops)作为度量值。

     

    R5本地有个直连网络100.0/24,它通过RIP将这个网络更新出来。R2及R4都能学习到这条路由,并且跳数为1。而R1能通过R2学习到这条路由,跳数为2;同时R1又能从R3学习到R4传递过来的100.0/24路由,跳数为3,这样一来,R1将收到两条到达同一个网络100.0/24的两条RIP更新,它会去比较这两条路由的metric,结果发现,从R2来的路由,metric也就是跳数要更小,因此R1将R2更新过来的路由装载进路由表,并且将R2设置为去往该网段的下一跳。

    (4)RIP的特点

    (1)仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器之间不交换信息。

    (2)路由器交换的信息是当前本路由器所知道的全部信息。即自己的路由表。

    (3)RIPv1按固定时间交换路由信息,如,每隔30秒,然后路由器根据收到的路由信息更新路由表。Ripv2也可进行相应配置使其触发更新

    (4)RIP 允许最大的hop数(跳数)为15, 多于15跳不可达

    (5)RIPv1消息通过广播地址255.255.255.255进行发送RIPv2使用组播地址224.0.0.9发送消息,两者都使用UDP 协议的520端口

    (6)RIP以到目的网络的最小跳数作为路由选择度量标准,而不是在链路的带宽和延迟的基础上进行选择

    (7)RIP-1是一种有类路由协议,不支持不连续子网设计。RIP-2支持CIDR及VLSM可变长子网掩码,使其支持不连续子网设计

    (8)RIP的协议管理距离为120

    (9)rip 最多支持到单个目的地的6条同等成本路径,可以进行负载均衡。

  • 相关阅读:
    .netcore2.1 ef 使用外键关联查询
    Parallel.ForEach 使用多线遍历循环
    ZKEACMS 无法运行问题汇总
    ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
    C#中定义数组--字符串及数组操作
    LinQ 定义带有返回类型的扩展方法3.2
    LinQ 定义扩展方法3.1
    LinQ转换运算符ToLookup
    combobox中的数据
    转换数据类型
  • 原文地址:https://www.cnblogs.com/longlyseul/p/13788751.html
Copyright © 2011-2022 走看看