BGP路由控制属性
控制BGP路由概述:
- BGP与IGP不同,其着跟点主要在于不同的AS之间控制路由的传播和选择最佳路由
- 通过修改BGP基本属性可以实现基本的BGP路由控制和最佳路由的选择
- 引入其他路由协议发现的路由时、发布或者接收路由信息时通过配置过滤器实现控制BGP路由
→Filter-policy
→Route-policy
→AS路径访问列表
BGP基本属性性影响选路的应用:
- 给从对等体接收的路由分配首选项值(Preferred-value)以影响选路
- 修改Local-Preference只是先选择离开本地AS时的最佳路由
- 修改MED值实现选择进入AS时的最佳路由
- 配置next-hop-local实现将自身地址作为下一跳
修改Preferred-value控制BGP路由实例(通过本地修改从某个邻居学来的路由的优先级(EBGP或者IBGP))默认为0

[RT1-bgp]peer 13.1.1.3 preferred-value 100
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 1.1.1.1/32 0.0.0.0 0 0 i
* > 10.10.10.10/32 13.1.1.3 200i
* 12.1.1.2 0 200i
通过修改MED值控制BGP路由实例:(修改发给EBGP邻居时的MED值)默认为0 (进入AS时,走哪)

R2——R4——R3为一个as
R1为一个as
在R2和R3上修改MED,让R1进入另一个域时,选择哪个作为下一跳
[RT2-bgp]default med 200
[RT3-bgp]default med 100
RT1 bgp routing
Network NextHop MED LocPrf PrefVal Path/Ogn
* > 1.1.1.1/32 0.0.0.0 0 0 i
* > 10.10.10.10/32 13.1.1.3 0 200i
* 12.1.1.2 0 200i
通过配置Local_PREF控制BGP路由实例:(修改发给IBGP邻居的优先级)默认为100,在EBGP之间此项为空 ibgp之间(离开AS时,走哪)

[RT2-bgp]default local-preference 100
[RT3-bgp]default local-preference 200
Network NextHop MED LocPrf PrefVal Path/Ogn
* >i 1.1.1.1/32 3.3.3.3 0 0 100i
* i 2.2.2.2 0 100 0 100i
* > 10.10.10.10/32 0.0.0.0 0 0 i
配置next-ho-local控制BGP路由实例:
从EBGP邻居学来的路由发给IBGP时,下一跳还是指向EBGP的接口,应使用此命令:
[RT2-bgp]peer 4.4.4.4 next-hop-local //发布路由时,将自身地址作为下一跳
从IBGP学来的路由传给EBGP邻居时,下一跳会修改。从反射器学来的路由,下一跳不会修改。
使用过滤器控制BGP路由:
- 通过配置过滤器可以实现控制BGP路由。几种过滤器的作用不同:
→配置Filter-policy实现对接收或者发布的路由过滤
→配置Route-policy不仅可以实现路由过滤还可以对符合规则的路由增加或者修改相关的属性
→配置AS路径访问列表可以实现针对自治系统路径域控制BGP路由
配置Filter-policy控制BGP路由:
→配置过滤列表,如ACL、地址前缀列表
→应用Filter-policy实现路由过滤
- 过滤收到方向路由:
[RT2]ip ip-prefix 1 permit 10.10.10.10 32
[RT2-bgp]filter-policy ip-prefix 1 import
2.过滤发出的路由:
[RT2-bgp]filter-policy ip-prefix 1 export
配置Route-policy控制BGP路由:
配置AS路径过滤列表:
^:匹配输入字符串的开始
$:匹配输入字符串的结束
*:星号表示匹配此前的字符或字符组0次或多次。如"zo*",可以匹配z以及zo、zoo等
+:表示匹配此前的字符或字符组一次或多次。如"zo+",可以匹配z0及zoo等,但不能匹配z
.:表示通配符,匹配任意字符,包括单个字符、特殊字符和空格。
_:下划线为通配符,表示匹配一个符号,如逗号、括号等,在表达式的开头或者结尾时还可以作为起始符、结束符(同^、$)
-:连接符,用于连接两个数值或字母
():表示字符组
[ ]:将以此括号内的任意一个字符为条件进行匹配
常用组合:
- ^$:表示匹配的字符串为空,即AS_PATH为空,匹配本地路由
- .*:表示匹配任意字符,即as-path为任意,可以匹配所有路由
- ^100:表示匹配100开头的字符串
- ^100_:表示匹配以"100"开始的字符串,即as-path的最左边前三个字符为100。
- _100$:表示匹配结尾为"100"的字符串,即as-path最右边的后三个字符为100。
- _100_:表示字符串中间有"100",即as-path可以匹配经过as100的路由
- ^100$:表示源自as100,中间不经过其他as的路由
路由选择工具:——community-filter
community-filter:
- 以BGP中的community属性为匹配条件
- ip community-filter 1 permit 100:
- 匹配community属性为100:1
- ip community-filter 1permit no-export
- 匹配community属性为no-export
ip community-filter 1 permit 1:1
代表匹配团体属性中只要包含1:1团体的BGP路由
ip community-filter 2 permit 1:1 1:2 (一条语句中的属性是"且"的关系)
代表团体属性中需要同时存在1:1 1:2团体的bgp路由,跟排列次序和数量无关
ip community-filter 3 permit 1:1
ip community-filter 3 permit 1:1 1:2
在同一个filter列表中存在多条语句,每条语句之间是"或"的关系,即匹配团体属性中包含有1:1或者包含有1:1 1:2的BGP路由。
BGP路由控制属性的更多相关文章
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
- CCIE路由实验(4) -- BGP路由控制
1.过滤BGP路由的方法2.用AS-path filter控制路由3.用Community Filter控制路由 enableconf tno ip do loenable pass ciscolin ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- BGP路由属性详解
Weight属性:cisco私有的BGP属性参数,它只适用于一台路由器中的路由,也就是不会传递给任何其他的路由器.他的取值范围为<0-65535>,这个数越大优先级越高,默认从邻居学到的路 ...
- 如何使用 Quagga BGP(边界网关协议)路由器来过滤 BGP 路由
在之前的文章中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置.在本教程中,我们将重点放在如何使用前缀列表prefix-li ...
- HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter
前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...
- angularJs模块ui-router之路由控制
在你的应用中大多数状态都有与其相关联的 url,路由控制不是设计完成 state 之后的事后想法,而是开始开发时就应该考虑的问题. 这里是如何设置一个基本url. $stateProvider .st ...
- Router和History (路由控制)-backbone
Router和History (路由控制) Backbone.Router担任了一部分Controller(控制器)的工作,它一般运行在单页应用中,能将特定的URL或锚点规则绑定到一个指定的方法(后文 ...
- golang自定义路由控制实现(二)-流式注册接口以及支持RESTFUL
先简单回顾一下在上一篇的文章中,上一篇我主要是结合了数组和Map完成路由映射,数组的大小为8,下标为0的代表Get方法,以此类推,而数组的值则是Map,键为URL,值则是我们编写对应的接口.但 ...
随机推荐
- Azure进阶攻略丨Azure网络通不通,PsPing&PaPing告诉你答案
很多时候,为了解决一些问题,要查各种文档,很麻烦你造吗!做「伸手党」又容易被鄙视,这时候就需要用到[Azure 进阶攻略]啦!特此,我们推出关于 Azure 常用操作指南的系列文章,每篇涉及一个 Az ...
- ubuntu安装google test
google test 简称gtest,是一个C/C++的单元测试框架,它的代码在github仓库,使用起来还是挺方便的. 安装 先确保PC上有安装cmake: sudo cmake --versio ...
- March 12 2017 Week 11 Sunday
I learned the value of hard work by working hard. 只有真的努力了,才会知道努力的价值. I know the value of hard work, ...
- 使用while循环+try-except定位元素
selenium学习过程中,发现自己遇到的最大的困难不是那些元素的操作,而是元素的定位,有时候明明利用firebug将xpath路径确认好了,但是在定位元素的时候还是会报错,后来在度娘上找到了一个方法 ...
- bash: ./adb: No such file or directory
运行adb出现这种错误: bash: ./adb: No such file or directory 但adb确实存在. 可能1.你用的是64位的Linux,没装32位运行时库,安装 $ sud ...
- 设计模式——简单工厂模式(SimpleFactory Pattern)
最近做项目总是遇到这样或者那样的问题,代码不够简洁,代码可扩展性不够好,耦合度又太高了,导致经常有种想去重构又无从下手的感觉. 无意间翻出了之前买的一本书<大话设计模式>读了一遍,受益匪浅 ...
- Django:web框架本质
一,web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 1,自定义web框架 impo ...
- Uva 10061 进制问题
题目大意:让求n!在base进制下的位数以及末尾0的连续个数. 多少位 log_{10}256=log_{10}210^2+log_{10}510^1+log_{10}6*10^0 可以发现,只和最高 ...
- 2018.12.19 Struts2 框架总复习
总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集 ...
- IO缓冲区
标准IO提供的三种类型的缓冲模式: (1)按块缓存:在填满缓冲区后才进行实际的设备读写操作 (2)按行缓存:指在接收到换行符('\n’)之前,数据都是先缓存在缓冲区的 (3)不缓存:允许你直接读写设备 ...