精华内容
下载资源
问答
  • RIP防环机制简述

    千次阅读 2020-06-15 09:15:23
    rip防环机制有: 水平分割 毒性逆转 触发更新 毒性路由 (1)水平分割 原理是,RIP路由器从某个接口收到的路由不会再从个接口通告回去。 (2) 毒性逆转 原理是,RIP从某个接口学到路由后,当它从该接口发送...

    rip的防环机制有:

    水平分割
    毒性逆转
    触发更新
    毒性路由

    (1)水平分割
    原理是,RIP路由器从某个接口收到的路由不会再从个接口通告回去。

    (2) 毒性逆转
    原理是,RIP从某个接口学到路由后,当它从该接口发送Response报文是会携带这些路由,但这些路由的度量值被设为16跳(意味着不可达)。利用这种方式,可以清除对方路由表中无用的路由,也可以防止产生环路。

    其实,毒性逆转和水平分割是存在矛盾的,如果某个接口同时开启水平分割和毒性逆转,则只有毒性逆转生效。

    (3)触发更新
    当路由器感知到拓扑发生改变或RIP路由度量值变更时,它无需等待下一个更新周期到来即可立即发送Response报文。

    (4)毒性路由
    当一个网络变为不可达时,发现这个变化的路由器立即触发一个16跳的路由更新来通知网络中的路由器—目标网络已经不可达,这种路由被称为毒性逆转。

    展开全文
  • RIP防环机制6种

    千次阅读 2020-03-23 21:49:11
    RIP防环机制共有6种: 1.最大跳数 2.水平分割 3.毒化路由 4.毒性逆转 5.hold-down计时器 6.触发更新 联想:定时更新和触发更新的区别: · 定时更新:运行如RIP,IGRP等距离矢量协议的路由器以一定的时间间隔广播...

    RIP 的防环机制共有6种:
    1.最大跳数
    2.水平分割
    3.毒化路由
    4.毒性逆转
    5.hold-down计时器
    6.触发更新
    联想:定时更新和触发更新的区别:
    · 定时更新:运行如RIP,IGRP等距离矢量协议的路由器以一定的时间间隔广播路由表的全部内容。
    RIP缺省情况下每隔30s向每个活跃接口广播所有路由。IGRP的缺省更新时间间隔是90s。
    触发更新:更新通过在网络发生变化时为等待到定时更新的时间点就立即发送更新,从
    而消除了定时更新带来的收敛延迟,快速更新发生在网络的结点和结点之间,减少了整
    个网络的收敛时间。
    以下针对每种更新方式,以实验的方式进行验证:
    l 最大跳数演示试验:

    R1上有一个环回口地址1.1.1.1/24位,全网起RIP V2协议,演示醉倒跳数的试验。

    R2 R3 #show ip route rip
    正常情况下R2的下一跳是R1的串口地址,R3的下一跳是R1的以太口地址。
    第一步:被动接口R1的以太网口R1(config-router)#pass fa0/0
    大约4分钟后,R3上看到的1.1.1.0/24的下一跳是R2过来的。
    第二步:把R1的s1/1的接口也被动掉,且断开lookback0接口。且打开个各个路由器的
    debug ip rip
    R1(config)#router rip
    R1(config-router)#passive-interface s1/1
    R1(config)#int loopback 0
    R1(config-if)#shutdown
    第三步:直到R1收到1.1.1.0的下一跳是R2时,打开s1/1的被动接口。
    R1(config-router)#do show ip route rip
    1.0.0.0/24 is subnetted, 1 subnets
    R 1.1.1.0 [120/3] via 172.16.1.3, 00:00:02, FastEthernet0/0
    通过上面的一系列设置,1.0.0.0这个网络已经在拓扑上出现R1-R2-R3-R1这样的路由
    环。下面我们看看上面的debug信息:
    此时R1,R2,R3的RIP数据库都呈现:
    R2#show ip rip database
    1.0.0.0/8 is possibly down
    1.1.1.0/24 is possibly down
    10.0.0.0/8 auto-summary
    10.1.12.0/24 directly connected, Serial1/0
    10.1.23.0/24 directly connected, Serial1/1
    10.1.34.0/26 is possibly down
    10.1.45.1/32 is possibly down
    172.16.0.0/16 auto-summary
    172.16.1.0/24
    [1] via 10.1.12.1, 00:00:19, Serial1/0
    [1] via 10.1.23.3, 00:00:11, Serial1/1
    注意:如果收不到这个路由,他立刻会在路由表中清除这条路由,但是仍然会在RIP的
    数据库中保留60s时间,60s过后,在RIP的数据库中也将被清除。


    l 水平分割实验:
    水平分割规则是:从一个接口学习到的路由不会再广播回该接口。
    此处有一点问题:


    如果同一个接口从不同地方收到了同一条路由信息,但是一个是metric=1,一个
    metric=2
    它会接收这条路由,并且从同一个接口发送出去。
    上面的说法应该是:从一个接口学习到的最优路由不会在发送回给接口。

    暂时先断开R1与R3之间的链路:此时R2,R3的目的网段1.1.1.0/24的路由条目如下:
    R2#show ip rout rip
    1.0.0.0/24 is subnetted, 1 subnets
    R 1.1.1.0 [120/1] via 10.1.12.1, 00:00:13, Serial1/0
    10.0.0.0/8 is variably subnetted, 4 subnets, 3 masks
    R 10.1.45.1/32 [120/1] via 10.1.12.1, 00:00:13, Serial1/0
    R 10.1.34.0/26 [120/1] via 10.1.12.1, 00:00:13, Serial1/0

    R3#sho ip route rip
    1.0.0.0/24 is subnetted, 1 subnets
    R 1.1.1.0 [120/2] via 10.1.23.2, 00:00:08, Serial1/0
    10.0.0.0/8 is variably subnetted, 4 subnets, 3 masks
    R 10.1.12.0/24 [120/1] via 10.1.23.2, 00:00:09, Serial1/0
    R 10.1.45.1/32 [120/2] via 10.1.23.2, 00:00:09, Serial1/0
    R 10.1.34.0/26 [120/2] via 10.1.23.2, 00:00:09, Serial1/0


    R2#
    *Jun 28 20:46:06.975: RIP: sending v2 update to 224.0.0.9 via Serial1/0
    (10.1.12.2)
    *Jun 28 20:46:06.975: RIP: build update entries
    *Jun 28 20:46:06.979: 10.1.23.0/24 via 0.0.0.0, metric 1, tag 0//向R1发送
    更新时没有包括1.1.1.0/24的更新
    R2#
    *Jun 28 20:46:30.151: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.23.2)
    *Jun 28 20:46:30.151: RIP: build update entries
    *Jun 28 20:46:30.155: 1.1.1.0/24 via 0.0.0.0, metric 2, tag 0//向R3发送更
    新时就带有1.1.1.0/24的路由条目
    *Jun 28 20:46:30.155: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 20:46:30.159: 10.1.34.0/26 via 0.0.0.0, metric 2, tag 0
    *Jun 28 20:46:30.159: 10.1.45.1/32 via 0.0.0.0, metric 2, tag 0
    从上面的debug信息可以看出:
    从debug信息可以看到,R2从s1/0接收来自R1的1.0.0.0/8路由条目,再从s1/0发送更新
    时,只有10.1.23.0的网络,并没有包括了1.0.0.0的网络,但从s1/1发送到R3的更新时,
    却包括了1.0.0.0的网络,这就是说水平分割已经起作用了。

    现在打开R1,R2的水平分割原则:
    R1(config-if)#no ip split-horizon
    R2(config-if)#no ip split-horizon
    *Jun 28 20:53:45.882: RIP: sending v2 update to 224.0.0.9 via Serial1/0
    (10.1.12.2)
    *Jun 28 20:53:45.882: RIP: build update entries
    *Jun 28 20:53:45.886: 1.1.1.0/24 via 10.1.12.1, metric 2, tag 0
    *Jun 28 20:53:45.886: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 20:53:45.890: 10.1.23.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 20:53:45.890: 10.1.34.0/26 via 10.1.12.1, metric 2, tag 0
    *Jun 28 20:53:45.890: 10.1.45.1/32 via 10.1.12.1, metric 2, tag 0
    *Jun 28 20:54:03.482: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.23.2)
    *Jun 28 20:54:03.482: RIP: build update entries
    *Jun 28 20:54:03.486: 1.1.1.0/24 via 0.0.0.0, metric 2, tag 0
    *Jun 28 20:54:03.486: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 20:54:03.490: 10.1.34.0/26 via 0.0.0.0, metric 2, tag 0
    *Jun 28 20:54:03.490: 10.1.45.1/32 via 0.0.0.0, metric 2, tag 0
    从R1收到的更新,再次的发回给R1。
    从debug信息可以看到,关闭水平分割之后,R2从S1/0接收来自R1的1.0.0.0网络,又从
    S1/0发送回给R1。


    为了达到效果,先被动掉R1的s1/1口,接口关闭环回口1.1.1.1/24,然后取消R1的被动
    接口S1/1。
    R2#
    *Jun 28 20:57:55.694: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.23.2)
    *Jun 28 20:57:55.694: RIP: build update entries
    *Jun 28 20:57:55.698: 1.1.1.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 20:57:55.698: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 20:57:55.702: 10.1.34.0/26 via 0.0.0.0, metric 2, tag 0
    *Jun 28 20:57:55.702: 10.1.45.1/32 via 0.0.0.0, metric 2, tag 0
    R2#
    *Jun 28 20:58:03.346: RIP: received v2 update from 10.1.23.3 on Serial1/1
    *Jun 28 20:58:03.350: 1.1.1.0/24 via 0.0.0.0 in 16 hops (inaccessible)
    R2#
    *Jun 28 20:58:08.602: RIP: received v2 update from 10.1.12.1 on Serial1/0
    *Jun 28 20:58:08.606: 10.1.12.0/24 via 0.0.0.0 in 1 hops
    *Jun 28 20:58:08.606: 10.1.23.0/24 via 0.0.0.0 in 1 hops
    *Jun 28 20:58:08.606: 10.1.34.0/26 via 0.0.0.0 in 1 hops
    *Jun 28 20:58:08.610: 10.1.45.1/32 via 0.0.0.0 in 1 hops
    这样就在R1和R2上产生了环路。
    其实原理很简单:
    我们把R1的S1/1出口passive 了,R1 就不能把lo 0被shutdown掉的信息以flash update的形式发给R2,同时我们也把R1和R2的两接口的水平分割关了。这时不知道情况的R2就发送更新对R1说:“你到lo 0是2跳”。而现在R1本身已经没有了与自身直连的lo 0的0跳信息,所以它别无选择的接受R2发来的2跳。当我们取消R1的S1/1被动功能,R1再对R2说:“你到lo 0是3跳”。虽然比原来的差,且是从同一个接口收到的,但R2它也别无选择。就这样它们之间就相互“欺骗”,如此循环直到出现16跳。


    l 毒性逆转实验:
    毒性逆转的规则是:从一个接口学习的路由会发送回该接口,但是已经被毒化,跳数设
    置为16跳,不可达。
    试验拓扑同上:
    这个试验是关闭了水平分割原则的。
    *Jun 28 21:06:41.486: RIP: received v2 update from 10.1.12.2 on Serial1/1
    *Jun 28 21:06:41.490: 1.1.1.0/24 via 0.0.0.0 in 16 hops (inaccessible)
    *Jun 28 21:06:39.418: RIP: sending v2 flash update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 21:06:39.418: RIP: build flash update entries
    *Jun 28 21:06:39.422: 1.1.1.0/24 via 0.0.0.0, metric 16, tag 0


    R2#
    *Jun 28 21:07:24.334: RIP: sending v2 update to 224.0.0.9 via Serial1/0
    (10.1.12.2)
    *Jun 28 21:07:24.334: RIP: build update entries
    *Jun 28 21:07:24.338: 1.1.1.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 21:07:24.338: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 21:07:24.342: 10.1.23.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 21:07:24.342: 10.1.34.0/26 via 10.1.12.1, metric 2, tag 0
    *Jun 28 21:07:24.346: 10.1.45.1/32 via 10.1.12.1, metric 2, tag 0
    R2#
    *Jun 28 21:07:26.134: RIP: received v2 update from 10.1.12.1 on Serial1/0
    *Jun 28 21:07:26.138: 1.1.1.0/24 via 0.0.0.0 in 16 hops (inaccessible)
    从上面可以看出:从信息也已经看到从同一个接口收到,也在同一个接口发出,但也是
    已经毒化(跳数是最大跳数)

    l 触发更新的理解:
    1.一旦有变化立刻发送更新(防环) 2.ip rip triggered 用于在低速链路上(串口),
    一般情况下不发送更新,有变化的时候才会发送,类似ospf的按需电路。相当于按需电
    信的周期性更新。
    触发更新和增量更新是互斥的。
    触发更新的规则是:一旦检测到路由崩溃,立即广播路由刷新报文,而不等到下一刷新
    周期
    在接口启动trigger的话,默认在RIP中会修改hold-down时间。
    timers basic 30 180 0 240
    先在R1的S1/1启动触发更新(ip rip triggered)
    R1(config)#int s1/1
    R1(config-if)#ip rip triggered
    查看debug信息
    R1(config-if)#
    *Jun 28 21:30:19.830: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:19.834: RIP: Start poll timer from 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:24.834: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    第一次请求超时
    *Jun 28 21:30:24.834: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:24.838: RIP: Start poll timer from source 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:26.302: RIP-TIMER: age timer expired
    R1(config-if)#


    *Jun 28 21:30:29.838: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    第二次请求超时
    *Jun 28 21:30:29.838: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:29.842: RIP: Start poll timer from source 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:34.842: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    第三次请求超时
    *Jun 28 21:30:34.842: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:34.846: RIP: Start poll timer from source 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:36.302: RIP-TIMER: age timer expired
    *Jun 28 21:30:36.546: RIP: received v2 update from 10.1.12.2 on Serial1/1
    *Jun 28 21:30:36.550: 10.1.12.0/24 via 0.0.0.0 in 1 hops
    *Jun 28 21:30:36.550: 10.1.23.0/24 via 0.0.0.0 in 1 hops
    R1(config-if)#
    *Jun 28 21:30:39.846: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    第四次请求超时
    *Jun 28 21:30:39.846: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:39.850: RIP: Start poll timer from source 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:44.850: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    第五次请求超时
    *Jun 28 21:30:44.850: RIP: sending triggered request on Serial1/1 to 224.0.0.9
    *Jun 28 21:30:44.854: RIP: Start poll timer from source 10.1.12.1 on Serial1/1
    R1(config-if)#
    *Jun 28 21:30:46.278: RIP-TIMER: sending timer on Serial1/1 expired
    *Jun 28 21:30:46.302: RIP-TIMER: age timer expired
    R1(config-if)#
    *Jun 28 21:30:49.854: RIP-TIMER: polling timer on Serial1/1(10.1.12.1) expired
    *Jun 28 21:30:49.854: RIP: Poll 6 times on Serial1/1 thru 10.1.12.1 without any
    ack第六次请求超时,并且没有收到对方的确认消息。
    R1(config-if)#
    *Jun 28 21:30:56.302: RIP-TIMER: age timer expired
    R1(config-if)#
    *Jun 28 21:31:02.290: RIP: received v2 update from 10.1.12.2 on Serial1/1
    *Jun 28 21:31:02.294: 10.1.12.0/24 via 0.0.0.0 in 1 hops
    *Jun 28 21:31:02.294: 10.1.23.0/24 via 0.0.0.0 in 1 hops
    R1(config-if)#
    *Jun 28 21:31:06.302: RIP-TIMER: age timer expired
    R1(config-if)#
    *Jun 28 21:31:14.646: RIP-TIMER: sending timer on Serial1/1 expired
    *Jun 28 21:31:14.646: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 21:31:14.646: RIP: build update entries

    *Jun 28 21:31:14.646: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 21:31:14.646: 10.1.23.0/24 via 10.1.12.2, metric 2, tag 0请求无效
    后,发送一次全网的更新消息。
    从R1的debug调试信息中,显示的就是R1启动了触发更新试图与链路的另一端的R2建立触发更新关系。R1以5s为每个周期发送轮询(Poll)并等待确认,但发送了6个触发请求后还没有收到确认消息,那么整个轮询过程就认为超时,触发更新建立不成功,路由器R1等待下一个普通的更新时间,并广播一个普通RIP的更新。而在整个过程R2始终在广播着他自己的RIP更新。
    此时打开R1的环回口:
    *Jun 28 21:42:53.110: RIP: sending request on Loopback0 to 224.0.0.9
    *Jun 28 21:42:53.114: RIP: sending request on Loopback0 to 224.0.0.9
    *Jun 28 21:42:53.126: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of
    our addresses)
    *Jun 28 21:42:53.130: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of
    our addresses)
    R1#
    *Jun 28 21:42:53.822: %SYS-5-CONFIG_I: Configured from console by console
    R1#
    *Jun 28 21:42:55.090: %LINK-3-UPDOWN: Interface Loopback0, changed state to up
    R1#
    *Jun 28 21:42:55.110: RIP: sending v2 flash update to 224.0.0.9 via Loopback0
    (1.1.1.1)
    *Jun 28 21:42:55.110: RIP: build flash update entries - suppressing null update
    *Jun 28 21:42:56.090: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
    changed state to up
    R1#
    *Jun 28 21:42:56.302: RIP-TIMER: age timer expired
    R1#
    *Jun 28 21:42:57.534: RIP-TIMER: neighbor sending timer of 10.1.12.2 expired
    *Jun 28 21:42:57.534: RIP:retransmit seq# 7
    *Jun 28 21:42:57.534: RIP: build update entries
    *Jun 28 21:42:57.538: route 83: 10.1.12.0/24 metric 1, tag 0
    *Jun 28 21:42:57.538: route 86: 10.1.23.0/24 metric 2, tag 0
    *Jun 28 21:42:57.542: RIP: Update contains 2 routes, start 83, end 86
    *Jun 28 21:42:57.542: RIP: Starting triggered retrans timer waiting on neighbor
    10.1.12.2's ack.
    *Jun 28 21:42:59.326: RIP-TIMER: sending timer on FastEthernet0/0 expired
    *Jun 28 21:43:06.254: RIP-TIMER: sending timer on Serial1/1 expired
    *Jun 28 21:43:06.302: RIP-TIMER: age timer expired

    可以看到R1立即发送触发更新给R2
    R2#debug ip rip
    RIP protocol debugging is on
    R2#debug ip rip trigger
    RIP trigger debugging is on
    R2(config)#int s1/0
    R2(config-if)#ip rip triggered
    *Jun 28 21:39:52.878: RIP: received v2 triggered request from 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.878: RIP: Trigger rip running on network 10.0.0.0 thru Serial1/0
    *Jun 28 21:39:52.882: RIP: 10.1.12.1 change state from DOWN to INIT
    *Jun 28 21:39:52.882: RIP: 10.1.12.1 change state from INIT to LOADING
    *Jun 28 21:39:52.886: RIP: send v2 triggered flush update to 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.886: RIP: assigned sequence number 0 on Serial1/0
    *Jun 28 21:39:52.890: RIP: Update contains 2 routes, start 25, end 27
    *Jun 28 21:39:52.890: RIP: received v2 triggered request from 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.894: RIP: 10.1.12.1 change state from LOADING to INIT
    *Jun 28 21:39:52.894: RIP: 10.1.12.1 change state from INIT to LOADING
    *Jun 28 21:39:52.898: RIP: send v2 triggered flush update to 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.898: RIP: assigned sequence number 1 on Serial1/0
    *Jun 28 21:39:52.902: RIP: Update contains 2 routes, start 25, end 27
    *Jun 28 21:39:52.902: RIP: received v2 triggered update from 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.922: RIP: received v2 triggered request from 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.926: RIP: 10.1.12.1 change state from LOADING to INIT
    *Jun 28 21:39:52.926: RIP: 10.1.12.1 change state from INIT to LOADING
    *Jun 28 21:39:52.926: RIP: send v2 triggered flush update to 10.1.12.1 on
    Serial1/0
    *Jun 28 21:39:52.930: RIP: assigned sequence number 2 on Serial1/0
    *Jun 28 21:39:52.930: RIP: Update contains 2 routes, start 25, end 27
    *Jun 28 21:39:52.998: RIP: received v2 triggered ack from 10.1.12.1 on Serial1/0

    l hold-down实验:
    1:R1#debug ip routing

    R1#debug ip rip
    2:在R1上,做个访问列表,不接收来自R2的rip数据包
    R1(config)#access-list 110 deny udp any any eq rip
    R1(config)#access-list 110 permit ip any any
    R1(config-if)#ip access-group 110 in
    使用默认的时间,调试过程时间较长,我们可以通过修改timer来使调试的结果更加明
    显。
    R1(config)#int s1/1
    R1(config-if)#no ip access-group 110 in
    R1(config-router)#timer basic ?
    <0-4294967295> Interval between updates
    R1(config-router)#timer basic 5 ?
    <1-4294967295> Invalid
    R1(config-router)#timer basic 5 10 ?
    <0-4294967295> Holddown
    R1(config-router)#timer basic 5 10 15 ?
    <1-4294967295> Flush
    R1(config-router)#timer basic 5 10 15 20
    R2(config)#router rip
    R2(config-router)#timer basic 5 10 15 20
    *Jun 28 22:05:38.330: RIP: sending v2 flash update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 22:05:38.330: RIP: build flash update entries
    *Jun 28 22:05:38.330: 2.2.2.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:38.334: 10.1.23.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:38.338: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of
    our addresses)
    *Jun 28 22:05:39.378: RIP: sending v2 update to 224.0.0.9 via Loopback0 (1.1.1.1)
    *Jun 28 22:05:39.378: RIP: build update entries
    *Jun 28 22:05:39.378: 2.2.2.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:39.378: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 22:05:39.382: 10.1.23.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:39.3
    R1(config-if)#82: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of our
    addresses)
    *Jun 28 22:05:39.894: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 22:05:39.894: RIP: build update entries
    *Jun 28 22:05:39.898: 1.1.1.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 22:05:39.898: 2.2.2.0/24 via 0.0.0.0, metric 16, tag 0


    *Jun 28 22:05:39.898: 10.1.23.0/24 via 0.0.0.0, metric 16, tag 0
    R1(config-if)#
    *Jun 28 22:05:43.830: RIP: sending v2 update to 224.0.0.9 via Loopback0 (1.1.1.1)
    *Jun 28 22:05:43.830: RIP: build update entries
    *Jun 28 22:05:43.834: 2.2.2.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:43.834: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 22:05:43.838: 10.1.23.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:43.842: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of
    our addresses)
    R1(config-if)#
    *Jun 28 22:05:44.878: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 22:05:44.878: RIP: build update entries
    *Jun 28 22:05:44.882: 1.1.1.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 22:05:44.882: 2.2.2.0/24 via 0.0.0.0, metric 16, tag 0
    *Jun 28 22:05:44.886: 10.1.23.0/24 via 0.0.0.0, metric 16, tag 0
    R1(config-if)#
    *Jun 28 22:05:46.326: RT: delete subnet route to 2.2.2.0/24
    *Jun 28 22:05:46.326: RT: NET-RED 2.2.2.0/24
    *Jun 28 22:05:46.330: RT: delete network route to 2.0.0.0
    *Jun 28 22:05:46.330: RT: NET-RED 2.0.0.0/8
    *Jun 28 22:05:46.334: RT: delete subnet route to 10.1.23.0/24
    *Jun 28 22:05:46.334: RT: NET-RED 10.1.23.0/24
    R1(config-if)#
    *Jun 28 22:05:48.798: RIP: sending v2 update to 224.0.0.9 via Loopback0 (1.1.1.1)
    *Jun 28 22:05:48.798: RIP: build update entries
    *Jun 28 22:05:48.802: 10.1.12.0/24 via 0.0.0.0, metric 1, tag 0
    *Jun 28 22:05:48.806: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of
    our addresses)
    *Jun 28 22:05:49.654: RIP: sending v2 update to 224.0.0.9 via Serial1/1
    (10.1.12.1)
    *Jun 28 22:05:49.654: RIP: build update entries
    *Jun 28 22:05:49.658: 1.1.1.0/24 via 0.0.0.0, metric 1, tag 0

    总结:在距离矢量路由协议里面,路由器会将它学习的整张路由表信息更新发出去,R
    ip使用4种计时器来管理它的性能:
    1:周期更新计时器周期更新计时器用于设置定期路由更新的时间间隔(一般为30
    s),在这个间隔里路由器发送一个自己路由表的完整拷贝到所有相邻的路由器。
    2:无效计时器用于决定一个时间长度,即路由器在认定一个路由成为无效路由之前
    所需要等待的时间(180s,实际情况往往略大于180s).如果路由器在更新计时
    器期间没有得到关于某个指定路由的任何更新消息,它将认为这个路由失效,这时就会
    进入到无效计时器阶段.当这一情况发生时,这个路由器将会给它所有的邻居发送一个
    更新消息以通知它们这个路由已经无效。
    3:保持计时器用于设置路由信息被抑制的时间数量.当上述无效计时器计时完毕后,
    就会进入到保持计数器阶段.也可理解为,当指示某个路由为不可达的更新数据包被接
    受到时,路由器将会进入保持失效状态.这个状态将会一直持续到一个带有更好度量的
    更新数据包被接受到或者这个保持计时器到期.默认时,它的取值是180s.在进入
    到这个阶段的前60s,会显示一个如下的路由信息possibly down,这时路由器并没有
    直接删除这条路由信息,但记住,若此时该路由恢复正常通讯,路由表信息也不会更新,
    在接下来的120s会起到一个保持网络稳定的作用。
    4:刷新计时器用于设置某个路由成为无效路由并将它从路由表中删除的时间间隔(2
    40s).这个计时器是刚开始就启动的,一直到保持计时器进行到60s时,它将路由
    表刷新.在将它(无效路由)从表中删除前,路由器会通告它的邻居这个路由即将消亡。
    5:我们也可以用time basic 来改变计时器的时间间隔。
    timers basic update invalid holddown flush

    展开全文
  • RIP防环机制

    2020-05-24 19:00:34
    33、RIP防环机制 34、OSPF 中承载完整的链路状态的包? 35、OSPF 中 DD 报文是如何进行确认的? 36、OSPF 中既是 ABR 又是 ASBR 在生成什么类型的 LSA? 37、OSPF 中 LSA 类型 NSSA 区域里都有哪些 LSA? 38...

    DV 距离矢量:邻居间共享路由表,传闻型协议,更新量小

    LS 链路状态:邻居间共享LSA(链路状态),主要共享拓扑信息,更新量大,防环。

    RIP的相关信息

    基于UDP端口520工作,使用跳数作为度量单位,更新周期(30s)以及触发更新;IPV4下存在两个版本,V1和V2。

    V1/2的区别:

    1、V1是有类别路由协议(传播路由时不携带掩码),V2为无类别路由协议(支持子网划分,子网汇总,不支持超网)。

    2、V1使用广播更新(255.255.255.255),V2使用组播更新(224.0.0.9)

    3、V2支持手工认证。

    RIP的计时器:

    1.更新计时器(Update Timer):30s

    2.无效计时器(Invalid Timer):180s(180s没有收到更新,置位possible down状态)

    3.抑制计时器(Hold down Timer):180s(真正起作用的只用60s)

    4.刷新计时器(Flush Timer):240s(若240s没有收到更新,则删除这条路由)

    5.触发更新计时器(Sleep Timer):使用在触发更新中的一种计时器,触发更新计时器使用1~5秒的随机值来避免触发更新风暴。

    注:

    1、invalid timer时间180秒到了,就进入hold down180秒,但是flush计时器是和invalid一起开始的, 所以总共240秒一到. 本路由就会被清除掉,而不是等到hold down的180秒走完,这也就是为什么hold down真正只有60s的原因,实际的时间最高就是240秒左右(有一定的偏差)

    2、在hold down时间内即使收到更优的路由,也不加入路由表,当抑制计时器超时后才加表。这样是为正在收敛的网络增加应变能力,也是防止路由表的翻动。


    机制:RIP使用异步周期更新机制

    异步更新:同步更新可能导致网络更新量大,可能出现网络拥塞。

    周期更新:因为RIP只有一种数据包(更新包),周期更新是为了保活和确认邻居间的关系。

    出环的情况

    原因:RIP的出环原因是因为它的异步更新。

    防环机制:

    1、水平分割

    从此口进,不从此口出,仅在直线型拓扑中防止环路;为了避免重复更新尤其在MA网段。

    2、最大跳数

    15跳,16跳不可达;控制协议的工作半径

    3、毒性逆转水平分割

    类似于一种触发更新的机制,当网络节点发生突变后,本地会向所有邻居发出一个带毒的数据包(起始跳数为16跳),意思为此节点不可达,要求邻居删除学习到的相关路由。

    Cisco中在邻居收到这个带毒的数据包后,会将这个带毒的数据包返回给本地,代表邻居收到了该条消息。

    华为中不会将这个带毒的数据包返回给本地,而是在本地发送这个带毒的数据包时,会多发几次,也就是说华为的毒性逆转水平分割,不存在逆转行为;仅进行毒性行为,它会多周期几次。

    4、抑制计时器

    为正在重新收敛的网络增加了应变能力,引入了某种程度的怀疑量;当收到一条路由更新的跳数大于路由表中已记录的该条路由的跳数时,将会启动抑制计时器。

    5、触发更新

    拓扑发生变更时,路由器立即发送更新消息,而不等更新计时器超时

    其他:

    Cisco中邻居间共享路由时,除使用水平分割机制外,同时不共享邻居间直连路由;而华为中邻居间共享路由时,在水平分割的基础上,还会传递邻居间的直连路由,但度量为16;这种行为会在周期更新几次后停止。

    展开全文
  • RIP防环机制简介

    2021-07-07 20:47:35
    今天主要给大家介绍一下RIP的放环机制,作为一种动态路由协议,防止环路的产生是其在设计和实现时要着重考虑的内容。要看懂本文,您不需要太高的理论知识,但是要具备基本的计算机网络和路由相关知识,如果您对上述...

    今天主要给大家介绍一下RIP的放环机制,作为一种动态路由协议,防止环路的产生是其在设计和实现时要着重考虑的内容。要看懂本文,您不需要太高的理论知识,但是要具备基本的计算机网络和路由相关知识,如果您对上述知识还不是特别了解,可以查阅我博客内其他文章,相信您一定会有收获。

    一、RIP环路的产生

    要解决RIP环路问题,首先要弄懂为什么RIP会产生环路。RIP协议产生环路原因如下:
    在这里插入图片描述

    如上图所示,假设R1和R2路由器运行了RIP协议,R1通过RIP协议将10.1.1.0路由传递给了R2。在这种情况下,在R1的路由表中,10.1.1.0网段的跳数为1,而在R2的路由表中,10.1.1.0 的跳数为2。现在假设R1的10.1.1.0网段连接断掉了,此时对于R1来说,就把10.1.1.0网段的路由设为不可达。但是如果没有放环机制,可能会出现以下问题。在R1没有把10.1.1.0网段的路由不可达消息传递给R2的时候,R2向R1传递了一条10.1.1.0的跳数为2的路由,这样一来,R1认为虽然自己可能无法到达10.1.1.0,但是通过R2可以到达10.1.1.0网段,因此R1会在自己的路由表中加入10.1.1.0网段的路由,并且其下一条是R2。这样子,路由环路就产生了,因为在这种情况下,R1把发往10.1.10网段的数据包发给了R2,而R2又把该数据包回传给R1,数据包在R1和R2之间来回传递。

    二、RIP环路的解决

    前面我们介绍了RIP协议环路产生的原因,下面我们来介绍一下如何避免产生RIP环路。
    (一)定义最大跳数
    在上述发生路由环路的情景下,假设R1和R2继续向对方通告10.1.1.0网段的路由,则每次收到对方的路由信息后,都会使得该路由跳数加1,因此该网段的路由跳数就会不断增加。
    针对这一特性,RIP设计了以下原则:认为跳数为16的路由不可达,这样一来,当该网段路由跳数达到16时,就停止向对方传递路由。定义最大条数,在一定程度上,解决了路由环路问题。
    (二)水平分割
    然而,定义最大条数在解决路由环路问题上显得非常迟缓,除了定义最大条数之外,RIP协议还引入了水平分割机制,来防止路由环路。什么是水平分割呢?水平分割就是从一个路由器学习到的路由,不会再通告给该路由器。以上述情景举例,R2从R1处学习到了10.1.1.0网段的路由,因此R2不会传递给R1,当R1连接10.1.1.0网段出现故障后,就不会收到R2传来的10.1.1.0网段的路由了,因此可以避免路由环路。
    (三)毒性逆转
    除了水平分割机制,RIP还定义了毒性逆转机制,也可以防止路由环路。毒性逆转机制是指,当一个路由器从另一个路由器收到一个网段的路由后,会将该路由设置为条数为16,回送给对方。以上述情景距离,毒性逆转就是在R2收到R1的10.1.1.0网段的路由后,会发送给R1跳数为16的10.1.1.0网段的路由。
    形象的说,水平分割就是如果我从你这里学到了路由,那么我就不应该把这台路由再告诉你。而毒性逆转是指如果我从你这里学到了路由,那么我就应该告诉你,这条路由从我这里走不通。
    (四)触发更新
    相比于水平分割和毒性逆转,触发更新是从另一个角度来解决路由环路问题。触发更新是指当一个路由器发现自身的路由出现变化时,立刻发送路由更新消息通知其他路由器。以上述情景举例,当R1发现10.1.1.0网断不可达时,就立即将该消息发送给R2,同时R2也会立即更新自己的路由表,这样就避免了再次回传该路由给R1,避免了路由环路。
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118557006

    展开全文
  • RIP防环机制

    千次阅读 2019-03-20 16:00:31
    环机制: 1、水平分割----从此口进不从此口出; 1)只能抑制直线网络中破环 2)MA网络中避免重复更新-----MA网络中路由器学习其他路由会传递给其他邻居造成更新量加大 2、毒性逆转水平分割—触发更新 本地若存在...
  • RIP路由六大防环机制

    2020-04-10 20:59:53
    防环机制 1、路由毒化(route poisoning):将故障路由度量值设置为无穷大,并发送出去 2、水平分割(split-horizon):学习到的路由项将不从原接口返回 3、毒性逆转(poison maximum):学习到的路由度量值,设置为...
  • RIP防环机制 环路的产生 定义最大跳数 水平分割 毒性逆转 触发更新 毒性路由
  • rip防环机制

    千次阅读 2018-03-07 23:00:19
    为了解决收敛速度而导致的网络环路问题,rip有三大防环机制,分别如下:(1)水平分割:路由器从某个接口学到的路由不会在发送回给邻居路由器,水平分割是默认开启的(2)路由毒化:如果某条rip路由从路由表中消失了...
  • 33、 RIP防环机制 ** rip防环机制(5条 满分) 水平分割, 毒性逆转水平分割 , rip计时器, 最大跳数15跳 , 触发更新(这个特性仅能用在串行链路上,并且链路两端都要配置这个特性才会生 效)。 水平分隔:...
  • RIP:路由信息协议----V1/V2/NG(IPV6) 距离矢量型的路由协议;基于UDP520端口工作;...RIP使用异步周期更新机制原因: 异步更新—同步更新可能导致网络更新量大,出现拥塞 周期更新—保活(hello) 确认(ack) ...
  • LS 链路状态 --邻居间共享LSA-链路状态通告—主要共享拓扑信息 更新大 防环 **RIP–路由信息协议 V1/ V2/ HG (IPV6); 使用范围:IGP; 邻居间直接共享路由表:周期更新(30S)和触发更新,使用跳数作为度量; 基于...
  • 1. RIP路由算法 ...2. 如图2所示,如果收到邻居给的路由,若本地,根据度量值对比,若优则录入,若劣质则丢弃。 图2 路径1:PC–&amp;amp;amp;amp;amp;gt;R1–&amp;amp;amp;amp;amp;gt
  • RIP协议基于UDP 520端口工作,使用跳数作为度量,更新机制有周期更新和触发更新 RIPV1为类别路由协议,V2为无类别路由协议(支持子网划分、支持子网汇总、不支持超网) V1使用广播更新 V2使用组播更新(前提是要...
  • 路由信息协议(RIP)的防环机制

    千次阅读 2016-03-15 23:38:14
    防环机制 1-记数最大值(maximum hop count):定义最大跳数(最大为15跳),当跳数为16跳时,目标为不可达。 2-水平分割(split horizon):从一个接口学习到的路由不会再广播回该接口。cisco可以对每个接口...
  • 静态的缺点: 1.配置量大 2.不能基于拓扑的变化进行实时收敛 总结:只能在简单的小型网络结构中来进行工作和配置 ...AS之内运行IGP路由协议 RIP OSPF EIGRP ISIS AS之间进行的EGP路由 —BGP IGP协议...
  • RIP+的6种防环机制

    2010-08-29 23:45:44
    RIP防环机制共有6种: 1.最大跳数 2.水平分割 3.毒化路由 4.毒性逆转 5.hold-down计时器 6.触发更新
  • RIP/EIGRP/BGP/OSPF防环机制

    千次阅读 2015-07-29 21:19:29
    RIP 防环机制: 设置最大跳数(默认15,16条为不可达); 水平分割:从某接口收到的路由信息不会再从该接口发送出去; 毒性逆转:从某接口收到的路由信息会从该接口发送出去,但是该路由信息被设置为不可达; ...
  • 首先R1 R2 两台路由器,并且R1 R2之间是RIP路由协议 正常情况下R2pc 的路由条目,如果PC与R1之间突然断掉那么R1就没有了到PC的路由 但是由于路由的更新机制,30s后R2会洪泛一个应答包里面包含这条到PC的路由条目...
  • RIP的五大防环机制

    2013-10-07 20:03:00
    前面写到了田姐突然提问的“RIP的五大防环机制?” 由于突然被“袭击”过,因此印象还是比较深刻的。先把答案贴出来: “1.水平分割;2.最大16跳;3.路由中毒;4.毒性逆转;5.抑制计时器。” 首先,“什么是环路?”...
  • 一、RIP 二、OSPF 三、PIM
  • RIP防环机制。RIP出现环路的原因:“不一致的路由信息,收敛速度不同步”。而且RIP是基于谣言的路由协议。1.比如说在上图中,当R2发现40网络是不可达的时候。它会把这条×××,并且在下一个更新里面也没有这个网络...
  • RIP(二)【防环机制

    千次阅读 2017-08-16 19:45:02
    RIP使用跳数作为度量值来衡量到达目的网络的距离。在RIP中,路由器到与它直接相连网络的跳数为0,每经过一个路由器后跳数加1。为限制收敛时间,RIP规定跳数的取值范围为0~15之间的整数,大于15的跳数被定义为无穷大...
  • 31、RIP防环机制

    2019-08-23 09:42:40
    1、跳数限制:max15跳,16跳不可达; 2、水平分割:同一路由器从此口进入,不从此口出;...发出16跳的毒性包,rip没有ack包,发出后不知道对方是否收到,所以返回来来一次---逆转; 4、抑制计时...
  • RIP1与RIP2的区别,以及防环机制

    千次阅读 2019-03-27 09:02:02
    RIP简介: RIP(Routing information Protocol)是用的较普遍的内部网关协议(Interior Gateway Protocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。 RIP 通过广播UDP报文来交换路由...
  • 1:定义了最大跳数为16,当一条路由的跳数大于或等于16时,认为该路由不能转发数据包了。 2:水平分割 (一个路由器从一个接口下收到的路由,该路由...4:毒性逆转(当路由器的路由表里面一条路由标记为is possi...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,989
精华内容 795
关键字:

rip防环机制有哪些