热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

动态路由协议之RIP

<RIP(RoutingInformationProtocol)>·RIP协议的特点:1)RIP属于IGP,是Distance-Vector协议。2)RIP是基于UDP的,端口号5

<RIP(Routing Information Protocol)>

·RIP协议的特点:

1)RIP属于IGP,是Distance-Vector协议。

2)RIP是基于UDP的,端口号520

3)周期性以广(组)播向邻居发送更新。

4)做完整更新,将整个路由表的信息传递给邻居。

5)Metric(度量值)只跟跳数有关。

6)只支持等价的负载均衡

·解决DV环路问题:

1)Defining a Maximum:16跳。

2)Split Horizon:从一个接口收到的路由不再从此接口发出。

3)Route Poisoning:将不可达路由直接设成Infinity(16跳)。

4)Holddown Timers:所有邻居都将此路由“冻结”,

   如在“冻结”期内该路由恢复,继续采纳该路由

   如在“冻结”期收到更好的路由,将采纳更好的路由

   如在“冻结”期收到更差的路由,不采纳该路由

5)Triggered Updates:

  避免周期性更新占用带宽,只有当拓扑变化时才发送更新。


<RIP的报文类型>

RIP协议定义了两种消息类型:

1、请求消息request

2、响应消息response

请求消息可以请求整个路由表的信息,也可以仅请求某些特定的路由信息。通常当RIP刚启用时,会向每一个启用的RIP协议的接口发出带有请求消息的数据包。

响应消息则用来将路由器的路由发送给其他路由器。通常会周期发送。


<RIP v1>

RIP-v1的特点:

·以广播地址255.255.255.255发送更新。

·路由在跨越主类网络边界时,会自动汇总成主类网络。

·不支持VLSM,更新时不携带掩码信息

配置:

router rip            //在路由器上启用RIP协议

  network 10.0.0.0    //宣告网络,只能主类宣告

·在CISCO路由器上,运行RIP后,默认即不是V1版也不是V2版,而是一种特殊状态。

show ip protocols     //查看当前运行的协议

    Interface             Send  Recv  

    Serial0/0             1     1 2  (默认)                              

router rip

  version 1    //如果你想运行V1版,打上这条命令

  Interface             Send  Recv

    Serial0/0             1     1   (指定v1)

debup ip rip   //本命令可调试路由更新


<RIP v2>

RIP-v2的特点:

·以组播地址224.0.0.9发送更新。

·默认情况下路由在跨越主类网络边界时,会自动汇总,但是也可以关闭自动汇总,进行手动汇总

·RIPv2支持VLSM,更新发送时携带掩码信息。

配置:

router rip

  version 2  //启用V2版

    Interface             Send  Recv

    Serial0               2     2   (指定v2)

·正常情况下,RIP-V2是发送组播更新,下面这条命令强制让RIP使用广播更新

int s0

  ip rip v2-broadcast    //在接口下配置

·虽然v2携带了掩码信息,但跨越不同网络边界时,默认还是会自动汇总成主类。

router rip

  no auto-summary    //通过这一命令可关闭自动汇总

·RIP在auto-summary时,会将本地及收到的路由都汇总成主类然后发出。



<实现V1和V2版的兼容性>

int s0

  ip rip send version 1       //设定接口只发送出V1版的更新

  ip rip receive version 1    //设定接口只接收V2版的更新

  ip rip send version 1 2     //设定接口同时发送V1和V2版的更新


<RIP Timer>

1)Update (30S)

 随机变量是更新周期的15%,即4.5S (25.5S-30S)

2)Invalid (180S)

 180S后置为Possible Down,之后立即启动hold Down计时器。

3)Hold Down(180S)

 实际只用到60S 

4)Flush(240S)

 240S还没收到路由更新,才将此路由删除。

测试Possible Down:

 1)设置Passive-interface

 2)中间接SW

 3)中间是FR

 4)认证不匹配

router rip

  timers basic 10 20 20 40    //修改四个计时器

技术分享


<被动接口>

在RIP协议中,如果一个接口被设定为被动接口,这个接口将不能向外发送路由更新,不过还可以接收对端发送过来的路由更新。

router rip

  passive-interface s1/0     //将接口设为被动接口,只收不发

router rip

  passive-interface default    //将所有接口设为被接口

router rip

  no passive-interface s1/0    //取消一个被动接口

debug ip rip


<路由汇总>

在RIP中关闭自动汇总后,可以在某一个接口去做手动的汇总。但要注意,汇总出的网络号不能越过主类网络。RIP不支持CIDR。

技术分享

R1(config)#int s1/1

R1(config-if)#ip summary-address rip 172.16.0.0 255.255.0.0

 (在路由流向的出接口作)

RIP中汇总的特点:

·本地存在有明细路由,才能从做汇总的接口发出汇总路由。

·直到明细的最后一条路由消失,汇总才会消失。

·取明细路由的最小metric值



<水平分割>

在绝大多数的接口运行RIP,水平分割默认都有是开启的

Enable : Ethernet / Serial / BRI / FR子接口(p2p/mp)

Disable : FR物理接口  这个接口比较特殊,默认是关闭的

int s0

  no ip split-horizon    //本命令在接口下关闭水平分割


<单播更新>

默认RIP只发送广播或组播更新包,下面的命令让RIP发出单播包

router rip

  neighbor 10.0.0.2


<偏移列表>

可以用来增加路由的metric值,需要先用ACL抓出路由

access-list 1 permit 2.2.2.0 0.0.0.0

router rip

  offset-list 1 out 3 ethernet 0/0  //对ACL1所匹配的路由加三点的metric值

或:

  offset-list 0 out 3 ethernet 0/0

      (0代表对所有路由)



<RIP v2 Authentication>

认证技术可以提高网络的安全性,只有互相认证成功的两台合法路由器之间才能传递路由信息。

RIP支持两种认证方式:

1、明文认证

2、md5认证

第一步:定义密码库

key chain R2                 //本地有效

  key 1                //建议两端一致

    key-string cisco

可以定义多个KEY值,按从小到大的顺序进行匹配,发送KEY值时也是发送最小的一个,还可以设定KEY值的有效时间。

第二步:在接口下应用密码库

int s0

  ip rip authentication key-chain R2

第三步:在接口下指定认证模式

int s0

  ip rip authentication mode [md5|text] 

R1#show key chain     

R1#debug ip rip 

小知识:RIP中每一个路由更新报文最大可包含25条路由,做了明文认证后只能包含24条,做了MD5认证后只能包含23条。

R2(config-keychain-key)#Accept-lifetime 04:00:00 jan 2006 infinite 定时接收

R2(config-keychain-key)#Send-lifetime 04:00:00 jan 2006 04:01:00 jan 2006 定时发送

R2(config-keychain-key)#Send-lifetime 04:00:00 jan 2006 duration 300  有效期300S

注意:密码库中可以同时定义多个密码,在匹配时要按规则来匹配,明文认证和md5认证的匹配规则各不一样,下面分别说明。

明文认证匹配规则:

技术分享

明文认证总结:只发送KEY ID最小的KEY,并不携带KEY ID,接收方与KEY列表中所有的KEY匹配,只要有一个能匹配上则通过认证。


md5认证匹配规则:

技术分享

密文认证总结:只发送最小的KEY ID,并且携带KEY ID。当接收到时,先只匹配相同KEY ID密钥,如果不匹配,则通不过认证。但如果没有相同KEY ID,只向下查找一次大的KEY ID密钥,如果有相同的KEY ID,但不匹配也不通过认证,如果仍然没有不是相同的KEY ID则也不通过认证。



<Triggered>

周期更新:路由器周期性的向外发送出自已的路由更新

触发更新:路由器平时不会周期性的发送路由更新,只会在拓朴改变的情况下(也就是路由变化了),才会向外发送出路由更新。

RIP默认只做周期更新,通过以下命令,可以实现触发更新。

使用触发更新后:

·路由器不再周期发更新,只触发更新。

·计时器会自动变成Timers basic 30 180 0 240

·只能打在低速点对点链路上,E0口是不能打的

int s0

  ip rip triggered (E0/Lo0不支持)

       (两端都配)

debug ip rip


<RIP区域生成默认路由>

为了让一个网络中的路由器都能自动获得默认路由,从而可以访问外部网络,我们可以利用路由协议来自动下发默认路由。

1)Redistribute Static:

ip route 0.0.0.0 0.0.0.0 serial 0

router rip

  redistribute static 


2)Network 0.0.0.0:

ip route 0.0.0.0 0.0.0.0 serial 0(写下一跳不行)

router rip

  network 0.0.0.0


3)default-information originate:

router rip

  default-information originate


4)default-network:

ip default-network 12.0.0.0(写成主类)#

如写成ip default-network 12.1.1.0就不行


<负载均衡>

负载均衡指的是将去往一个特定目的地的多条路由同时放进路由表,用来做流量的转发。

负载均衡有两种:

1、等价负载均衡--将metric值相等的路由同时放入路由表用来做流量转发。

2、不等价负载均衡--将metric值不相等的路由也同时放入路由表用来做流量转发。

·RIP只支持等价的负载均衡。也就是说用来做负载均衡的路由metric必须一致。

·默认RIP只支持四条路径的负载均衡,在新的IOS中可以通过命令修改为最多16条

router rip

  maximum-paths 2    //最多16条

show ip protocols   //可以用来查看


本文出自 “Ricky的技术博客” 博客,请务必保留此出处http://r1cky.blog.51cto.com/10646564/1773996

动态路由协议之RIP


推荐阅读
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
mobiledu2502913627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有