草庐IT

多点双向重发布+路由策略

半冷半热 2023-04-14 原文

多点双向重发布:在两种路由协议或同一协议的两个进程间,使用多台ASBR来进行重发布,实现链路备份,提高网络稳定性和效率;

在多点双向重发布中,第一台ASBR重发布完成后,可能重发布到B协议的路由条目,会影响到其他的ABSR,刷新它们的路由表;导致路由条目从A协议发布到B协议后,再重新回到A协议----路由回馈  --- 导致严重的选路不佳;

解决方案:在cisco体系中的eigrp协议,默认与其他协议进行多点双向重发布时,不会出现路由回馈--- cisco 体系中  rip 优先级120  ospf 110  eigrp 90  但重发布进入到eigrp部分的路由其优先级为170;

因为优先级不同,使得第一台ASBR在重发布后,影响不了另一台ASBR的路由表,故不出现路由回馈;

在华为体系中,由于没有eigrp,故华为在ospf协议中,也使用了双优先级的做法;

ospf正常产生的路由优先级为10,重发布进入的5/7类LSA,生成的路由为150;

注:在ospf协议中,环回默认工作方式基于32位的主机路由进行传递;因此在多点双向重发布中,ASBR上属于ospf协议的环回接口进行重发布时,ospf按32位传递,其他协议会按照该接口的实际掩码来进行共享;  若掩码不一致,将导致选路问题,配置环回接口为32位主机路由,或修改环回接口在ospf协议中的工作方式均可

在rip协议中由于接口水平分割,在重发布路由和本地正常学习路由出现相同度量时,将负载均衡,最终导致路由不能正常收发,错误选路---路由策略

由于重发布协议,在重发布路由条目的过程中,将清除原有的度量值,添加新的起始度量值;故多点双向重发布中,A协议路由发布到B协议后,B协议到达A协议的选路可能不佳-----路由策略

路由策略:

名词:

控制层面:动态路由协议传递路由协议信息的流量,方向为控制层面流量方向

数据层面:路由器使用已经生成的路由表,转发的用户数据流量;方向与控制层面相反

路由策略:在控制层面流量入或出路由器接口时,抓取流量;对内容进行修改或丢弃,最终影响到路由表的生成,干涉到了路由器的选路;

  1. 抓取流量
  1. ACL 访问控制列表

ACL设计时是为了处理数据层面流量的限制;也可以用于抓取控制层面的流量;

但由于ACL的设计是基于数据层面流量,故不关注数据包中的子网掩码;使得在抓取控制层面流量时,可能无法精确匹配;

  1. 前缀列表 – 专门用于抓取控制层面的流量,精确匹配子网掩码

[r1]ip ip-prefix aa permit 1.1.1.0 25

定制一张名为aa的列表,抓取1.1.1.0/25网络号流量;

默认序列号的步调为10,便于插入

[r1]ip ip-prefix aa index 13 permit 3.3.3.0 24

[r1]ip ip-prefix aa permit 4.4.4.0 24 less-equal  26   掩码长度24到26

[r1]ip ip-prefix aa permit 5.5.5.0 24 greater-equal  30  掩码长度30到32

[r1]ip ip-prefix aa permit 5.5.5.0 24 greater-equal 26 less-equal 30  26到30

length<=ge<=le.

匹配规则:至上而下逐一匹配;上条匹配按上条执行,不再查看下条;默认隐含拒绝所有;

[r1]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32 允许所有

  1. 路由策略—修改控制层面流量中参数
  1. cisco的偏移列表,在cisco体系中算一种路由策略,在华为体系中不是策略;而是RIP这样的距离矢量协议专用,修改度量的操作;在cisco中偏移列表只能在RIP和eigrp这样的距离矢量协议中使用,华为也一样;在cisco下只能用ACL为其服务;华为下,acl和前缀列表都可以;

[r1]ip ip-prefix aa permit 2.2.2.0 24  使用前缀列表抓取;ACL也可

[r1]interface GigabitEthernet 0/0/1   控制层面流量传输的接口

[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 2   流量入,匹配前缀列表aa,度量加2

                         metricout  2000 2      流量出,匹配acl 2000,度量加2

该策略为逐跳行为,效果可以叠加操作;整段路径中流量经过的多个接口均配置了度量增加,最终为总增加度量;

2)cisco下的分发列表;  华为为过滤策略;

先使用ACL或前缀列表,匹配流量;然后在控制层面流量的入或出接口上限制路由条目的传递;

[r2]ip ip-prefix qq deny 2.2.2.0 24

[r2]ip ip-prefix qq permit 0.0.0.0 0 less-equal 32

[r2]rip  1

 [r2-rip-1]filter-policy ip-prefix qq ?

  export   Specify an export policy  出方向

  import   Specify an import policy  入方向

 [r2-rip-1]filter-policy ip-prefix qq export GigabitEthernet 0/0/0

切记:若使用ACL定义流量,正常华为acl末尾允许所有,但在过滤策略中一定手工配置允许所有命令

注:OSPF协议中正常无法在出方向调用,因为ospf使用的拓扑更新,在同一个区域内不可以限制拓扑的传递;正常只能在入向调用,并不影响数据库的同步,仅仅是不将该LSA计算所得的路由加载到路由表;

若想出口调用,可以在ABR/ASBR上针对3/4/5/7类lsa进行;

3)cisco的route-map    华为路由策略

1、抓流量—acl和前缀列表均可

[r2-acl-basic-2000]rule 1  permit source 1.1.1.0 0.0.0.0

[r2-acl-basic-2000]q

[r2]acl 2001

[r2-acl-basic-2001]rule permit source 1.1.2.0 0.0.0.0

[r2-acl-basic-2001]q

[r2]ip ip-prefix a permit 1.1.3.0 24

[r2]ip ip-prefix b permit  1.1.4.0 24

2、路由策略

[r2]route-policy huawei deny node 10  创建名为huawei的路由策略,大动作为拒绝,序号为10

[r2-route-policy]if-match acl 2000        匹配一张ACL

[r2-route-policy]q

[r2]route-policy huawei permit node 20     列表huawei序号20,大动作为允许

[r2-route-policy]if-match acl 2001         匹配一张ACL

[r2-route-policy]apply cost-type type-1    定义小动作为修改度量类型,为类型1;

[r2-route-policy]q

[r2]route-policy huawei permit node 30

[r2-route-policy]if-match ip-prefix a   匹配前缀列表

[r2-route-policy]apply cost 7

[r2-route-policy]q

[r2]route-policy huawei permit node 40

[r2-route-policy]if-match ip-prefix b

 [r2-route-policy]apply cost-type type-1

 [r2-route-policy]apply cost 8

[r2-route-policy]q

[r2]route-policy huawei permit  node 50   空表,允许所有;

[r2-route-policy]q

3、重发布时调用

[r2]ospf  1

 [r2-ospf-1]import-route rip 1 route-policy Huawei

配置指南:

  1. 即便要拒绝一个流量,在抓取时也必须使用允许,之后在路由策略来拒绝;
  2. 至上而下逐一匹配,上条匹配按上条执行,不再查看下条,末尾隐含拒绝所有
  3. 在一条规则中,若没有进行流量匹配那就是匹配所有;若没有应用那么仅对匹配流量进行当前大动作;

因此大动作为允许的空表代表允许所有;

  1. 或  与  关系

或关系为每个站点(每个序号)间为或关系;

序号10没匹配到流量,再序号20;

[r3]ip ip-prefix a permit  1.1.1.0 24

[r3]acl 2000

[r3-acl-basic-2000]rule permit sou 12.1.1.2 0.0.0.0

route-policy huawei permit node 10

 if-match ip-prefix a

 if-match ip next-hop acl 2000   与关系被匹配流量必须同时满足这两个条件;

apply cost 10

apply cost-type type-1   与关系,同时执行两种操作

以上为路由条目目标网络号1.1.1.0/24 同时该条目的下一跳为12.1.1.2

总结或与关系:

条目基于站点号(序号)至上而下逐一匹配,上条匹配按上条执行,不查看下条或关系

在每一个序号中,同时匹配所有流量,同时执行所有小动作---与关系

有关多点双向重发布+路由策略的更多相关文章

  1. 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上找到一个类似的问题

  2. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的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

  3. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  4. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  5. ruby-on-rails - 如何在 Rails 中设置路由的默认格式? - 2

    路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。

  6. ruby - cucumber 的路由问题 - 2

    我正在使用rails3和cucumber,除了这个小问题,一切都很顺利GivenIamonthe"editautomobile"pageNoroutematches{:controller=>"automobiles",:action=>"edit"}(ActionController::RoutingError)现在路径在paths.rb中设置为edit_automobile_path在routes.rb中我有汽车作为资源,我搭建了它所以请告诉我我遗漏了什么,清楚地定义了路线并且匹配,因为我运行了rake路线并看到了路线。请指出正确的方向 最佳答案

  7. ruby - Rails 路由 : Giving default values for path helpers - 2

    有什么方法可以为url/path助手提供默认值吗?我有一个可选范围环绕我的所有路线:#config/routes.rbFoo::Application.routes.drawdoscope"(:current_brand)",:constraints=>{:current_brand=>/(foo)|(bar)/}do#...allotherroutesgohereendend我希望用户能够使用这些URL访问网站:/foo/some-place/bar/some-place/some-place为了方便起见,我在我的ApplicationController中设置了一个@current

  8. ruby-on-rails - 将 Rails 路由助手作为类方法添加到类中 - 2

    我如何将像“root_path”这样的Rails路由助手作为类方法添加到像my_model.rb这样的类中?所以我的课是这样的:ClassMyModeldefself.fooreturnself.root_pathendendMyModel.foo以上不起作用,因为ClassMyModel不响应root_path这是我所知道的:我可以使用includeRails.application.routes.url_helpers,但这只会将模块的方法添加为实例方法我试过扩展Rails.application.routes.url_helpers但它没用请随时给我上课:)

  9. ruby-on-rails - 获取 ActionController::RoutingError(当尝试使用 AngularJS 将数据发布到 Rails 服务器时,没有路由匹配 [OPTIONS] "/users" - 2

    尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg

  10. ruby-on-rails - 在条件路由期间未在 Rails 3 中设置 request.subdomain - 2

    我正在尝试根据RyanBatesscreencastonsubdomains在Rails3中设置子域.但是它对我不起作用。我有以下设置:#routes.rbconstraints(Subdomain)doget'devices'=>'devices#all'end#lib/subdomain.rbclassSubdomaindefself.matches?(request)#binding.pryrequest.subdomain.present?&&request.subdomain=="admin"endend加载urladmin.localhost:3000/devices应该将

随机推荐