草庐IT

14.RIP路由协议、GN3使用

谁是幸运儿 2024-02-28 原文

动态路由协议-RIP

一、静态路由与动态路由

静态路由:管理员手动输入路由器命令管理
动态路由:根据拓扑或流量改变而自动调整

RIP路由协议的优点和缺点
RIP协议(距离矢量路由选择协议)的优缺点:

(1)优点对于小型网络,RIP就所占带宽而言开销小,易于配置、管理和实现
(2)缺点:当有多个网络时会出现环路问题。环路问题的解决需要消耗一定的时间和带宽。采用RIP协议,其网络内部所经过的链路数不能超过15,这使得RIP协议不适于大型网络。
优点配置简单(易于配置、管理和实现,适用于小型网络)
缺点不适合大型网络、每隔30秒发送一次,会占用带宽、浪费资源。最大跳数为15条,只适合小型网络。当有多个网络时会出现环路问题。
(当有多个网络时会出现环路问题,其网络内部所经过的链路数不能超过15所以不适于大型网络)

版本1版本2的共同点和区别
版本二:管理距离(120)
解决环路的五个机制

二、自治系统:内部路由协议和外部路由协议

自治系统是通用管理域中的网络的集合。
内部网关协议在自治系统中工作。(在某一个自治系统内采用的协议)(RIPv2EIGRPOSPF
外部网关协议连接不同的自治系统。(最典型的为BGP

三、路由协议的类型

四、距离矢量路由协议

距离:通过跳数来判断到达路由有多远)(矢量方向,目标)
路由器定期将路由表的副本传递给邻居路由器并累计距离矢量

RIP是一个典型的距离矢量路由协议

五、RIP工作原理(路由表的形成)

1、首先路由器学习到直连网段
路由器开始运行RIP,当路由器的更新周期30秒到了的时候,会向邻居发送路由表
Metric:度量值,衡量一条路由好坏的值。发送路由表时Metric值会加1
学习路由时,会学习最佳路由,将Metric值小的路由放到路由表当中(Metric值就是跳数)

RIP的工作原理

首先:在路由器上运行rip路由协议
#router rip 开启RIP路由协议
#network 10.0.0.0****告诉对方自己连了几个网络
#network 20.0.0.0

其次:在每个路由器上配置完成后,每隔30秒钟会向邻居路由器发送自己的路由表Metric会加1,路由器根据Metric值选择一条最优路由添加到路由表

R 10.0.0.0 20.0.0.0 Metric值为1(20.0.0.0虽然是直连的,但是是学习过来的,所以Metric值为1,发现是自己直连的就删除学习过来的20.0.0.0)

形成路由表并实现网络通信的过程称为收敛时间。(收敛时间越快越好)

六、RIP解决路由环路的办法(记住)❤❤❤

为什么会形成环路
不一致的路由条目:计数至无穷大和路由环路
1、计数到无穷大
每个节点都会维护从自身到每个可能的目的网络的距离
(1)计数至无穷大的解决方案:定义最大跳数(15跳)(超过15跳目标就不回答了)
设置跳数限制以防止无限环路
2、路由环路
前往网络 10.4.0.0 的数据包在路由器B和 C 之间来回传递(环路)。
路由环路的解决方案:水平分割(从某个路由器学到的路由条目就不再发回去了)
向原始信息的来源方向返回路由信息毫无用处。
3、路由环路的解决方案:路由毒化和毒性逆转
C:当4.0断开后,路由器将已经断开的路由的距离通告为无穷大。并立刻开启触发更新,向B发送更新包。
B:收到更新包后,将4.0路由标记为“可能已断开”,忽略水平分割,进行毒性逆转,向C发送路由信息,告诉C可能已断开。
4、路由环路的解决方案:抑制计时器
路由器为网络中的“可能有故障”状态保留条目(保留一段时间,每隔30秒不发送了),以便为其它路由器重新计算拓扑更改留出时间。
5、路由环路的解决方案:触发更新
路由表发生变化时,路由器发送更新。
小结:在RIP中解决路由环路的办法有定义最大跳数;水平分割;路由毒化与毒性逆转;抑
制计时器;触发更新

七、RIP路由协议的版本❤

RIP v1❤
发送路由更新时不携带子网掩码(只管你是A类、B类还是C类的),宣告主类网络,属于有类路由协议
发送路由更新时,目标地址为广播地址:255.255.255.255
RIP v2❤
发送路由更新时携带子网掩码,属于无类路由协议
发送路由更新时,目标地址为组播地址:224.0.0.9

广播:发给所有
组播:发给一组(部分)

GNS3的使用方法
Edit ->IOS image->加载解压的IOS文件的c7200…->save
路由器点上面的绿色按钮开机
路由器->右键->console进入配置行

错误:205-VM: unable to enable NIO for slot 0/16
出错原因是在设备启动后才添加连接。解决:先添加连接再启动

路由器->右键->configure->选中路由器名称->Slots->添加端口

选择上面的abc显示端口

配置RIPV1默认情况下就是版本1):
开启路由器断开(no shutdown)
给路由器端口设置IP地址
给R3设置回环地址3.3.3.3

R1(config)#router rip
R1(config-router)#version 1

R1(config-router)#network 12.1.1.0
ver
R2(config-router)#network 12.1.1.0
R2(config-router)#network 23.1.1.0

R3(config-router)#network 23.1.1.0
R3(config-router)#network 3.3.3.3

#show ip route
R表示RIP路由协议学习的路由条目
R 3.0.0.0/8 [120(路由协议的优先级,数值越低,优先级越高)/2(Metric跳数)] via 12.1.1.1(通过这个接口出去的)

配置RIPV2:(可以根据子网掩码长度来判断它是哪个网络
R1(config)#router rip
R1(config-router)#version 2

#**clear ip route *** 清空路由表(让它重新学习)
R1(config)#router rip
R1(config-router)#network 12.1.1.0

R1(config-router)#no auto-summary 关闭自动汇总

#clear ip route *
R1(config-router)#network 12.1.1.0 7
#show ip route

RIP版本1版本2默认不兼容(给路由器一个设置为版本1,另一个设置为版本2,它们是不能互相学习

版本2的路由器靠近版本1的接口上设置接收和发送版本1(两个路由器做一个就行)

R1(config)#int f0/1
R2(config-if)#ip rip send version 1
R2(config-if)#ip rip receive version 1

CCNA手册

被动路由(在接口上禁用运行rip):
只接收,不发送,路由器学习其他路由器的路由条目,别的路由器不能学习他路由条目
R3#router rip
#passive-interface f0/1

自动汇总(按IP地址汇总成的主类网络)
手动汇总:(汇总成一个相对较小的网络)

八、手动汇总

在R3左边的接口上告诉一个IP地址(172.16.0.0/20)

开启RIP协议:R1(config)#router rip
关闭自动汇总:R1(config-router)#no auto-summary
进入se0/0(出口)接口:R1(config)#interface se0/0
在接口下进行汇总:R1(config-if)#ip summary-address rip 172.16.0.0 255.255.252.0

单播更新:

补充:要会看路由表,【120/1】其中rip的管理距离是120, 跳数为1
过滤路由R1只接受R2、R3不接收R4

RIPV2产生默认路由
掌握第一种方法就行
给出口路由配置静态路由
出口路由需要手动配置

RIPv2认证(RIPV1没有认证机制):
RIP的认证:基于端口的认证
两种方式:
明文
密文
R1(config)#key chain ccie1钥匙链名称
#key 1第一把钥匙
#key-string ccie123 (这把钥匙对应的密码

R1(config)#int f0/0
#ip rip authentication mode md5 (开启认证,认证的过程通过MD5加密
#ip rip authentication key-chain ccie

R1#show ip route(认证通过了才能学得它的网络)

过滤路由:(在需要对某一个网络进行保护的时候)(要用到ACL)
配置ACL匹配需要过滤的路由条目
禁止进in 出out
R2(config)#access-list 1 deny 172.16.3.0 0.0.0.255(这里要用反掩码,255.255.255.255-掩码值=反掩码值,为0的部分精确匹配)
ACL配置了会默认拒绝所有
#access-list 1 permit any 除了上面的拒绝其余的都允许
在rip进程中配置过滤
R3(config)#router rip
#distribute-list 1 out

R1#show ip route

有关14.RIP路由协议、GN3使用的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐