目录
路由表中存在到达同一目的地址有多条路由,并且这些路由的开销值、路由协议类型和路由优先级是相同的,那么这些路由就是等价路由,当进行数据传输时可以负载分担
不同设备支持的最大等价路由数量不一致(一般有4、8、16等)
配置命令
OSPF视图:
maximum load-balacing [number] 配置最大等价路由数量
nexthop [ip-address] weight [value] 配置指定OSPF路由的负载分担优先级
当网络中存在的等价路由数量超过配置的等价路由数量时,会选取weight小(优先级高)的路由进行负载分担
Weight 缺省是255,表示等价路由间不区分优先级,随机选取有效路由进行负载分担
通过配置缺省路由减少路由表的容量,保证网络的高可用性
一般在网络边界配置缺省路由,并将其引入到内网中(此处是引入到OSPF内网中)
引入缺省路由两种情况
区域边界路由器ABR发布Type3 LSA,用来指导区域内路由器进行区域之间报文的转发
自治系统边界路由器ASBR发布Type5 LSA或Type7 LSA,指导区域内路由器进行域外报文的转发
注意:Type 3的缺省路由高于Type 5的缺省路由
不同区域缺省路由发布方式不同
自动产生
Stub/Totally Stub区域 此区域的ABR会自动产生一条Type 3缺省路由,在Stub区域泛洪
Tollay NSSA区域 此区域的ABR自动产生产生一条Type 3缺省路由,在NSSA区域泛洪
通过命令手动产生
NSSA区域 引入缺省路由后,ASBR产生一条Type 7缺省路由,在NSSA区域泛洪
普通区域 引入缺省路由后,ASBR产生一条Type5缺省路由,在普通区域泛洪
普通区域引入缺省路由命令
Ospf视图:
default-route-advertise [always/permit-calculate-other] 将缺省路由通告到OSPF路由区域
always 表示无论本机是否存在激活的缺省路由,都会产生并发布一条描述缺省路由的LSA
permit-calculate-other 本机必须存在激活的缺省路由,才会产生并发布一条描述缺省路由的LSA,并且设备允许计算来自其他路由器的缺省路由
缺省只有本机存在激活的缺省才会发布一条描述缺省路由的LSA,并且设备不允许计算来自其他路由器的缺省路由
当两台路由器之间存在多条链路时,可以在某些链路对发送的LSA进行过滤,减少不必要的重传,从而减少邻居LSDB的大小,提高网络收敛速度,节约带宽资源
配置命令
接口视图
Ospf filter-lsa-out [all/summary/ase/nassa]
All 对除了Grace LSA(Type 9)外的所有LSA进行过滤
Summary 对Type3 LSA进行过滤
Ase 对Type5 LSA进行过滤
Nssa 对Type7 LSA进行过滤
注意事项
在接口配置了此命令后,该接口的OSPF邻居会自动重建
通过对区域内出、入方向的3类LSA进行过滤,避免了向邻居发送无用的LSA,减少LSDB的大小,提高网络收敛速度
配置命令
Ospf区域视图:
Filter [acl/ip-prefix/route-policy] export 配置区域内出方向的3类LSA
Filter [acl/ip-prefix/route-policy] import 配置区域内入方向的3类LSA
通过Filter-policy对OSPF接收、发布的路由进行过滤
在ABR上通过Filter-policy import过滤3类LSA,对自己和其它路由器都生效
在ASBR上通过Fulter-policy export过滤5/7类LSA,对自己和其它路由器都生效
Filter-policy过滤原则
配置OSPF汇总,可以优先减少路由表中的条目,减少对系统资源的占用
汇总主要分为对区域间的路由做汇总,对外部路由做汇总
配置命令
OSPF区域视图
Abr-summary 汇总IP地址 汇总掩码 [no-advertise] 配置区域间路由聚合
OSPF进程视图
Asbr-summary 汇总IP地址 汇总掩码 [no-advertise] 配置外部路由聚合
No-advertise 设置不发布聚合路由(缺省会发布聚合路由)
由于OSPF同一区域中的路由器需要保存相同的LSDB,随着网络中路由数量的不断增加,一些路由器由于资源有限,不能承载如此多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)
解决办法
1、配置特殊区域 ---不能解决动态路由增长导致的数据库朝鲜问题
2、动态限制数据库的规模
工作原理
为OSPF同一区域内的所有设备配置相同的数据库规模上限,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并启动Overflow状态定时器(默认5s),定时器超时后自动退出OverFlow状态
配置命令
OSPF视图
Lsdb-overflow-limit [number] 设置LSDB中LSA的最大条目数
划分区域、LSA过滤、汇总路由
1、2类LSA过滤
接口下过滤
ospf filter-lsa-out all
3类LSA过滤
接口下过滤
ospf filter-lsa-out summary
路由所属的区域中过滤
filter [acl/ip-prefix] import/export
通过汇总的方式过滤
abr-summary 汇总后的路由 not-advertise
在ABR设备的OSPF进程中过滤
filter-policy ip-prefix import/export
4类LSA过滤
接口下过滤
ospf filter-lsa-out all 过滤
5、7类LSA过滤
接口下过滤
ospf filter-lsa-out ase/nssa
ASBR的OSPF进程下过滤
filter-policy ip-prefix import/export
汇总时过滤
asbr-summary 汇总路由 not-advertise
引入时过滤
import-route 协议 route-policy
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上找到一个类似的问题
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时