BGP属性
一、BGP的优点
1、IGP 追求速度
2、BGP没有追求速度的包袱,不需要有很强的算法。
3、追求:稳定性强、操控性强、可靠性强、承载性强
4、可靠性: TCP承载协议报文,tcp开销大,慢这对bgp没有影响。
5、稳定性:不触发更新,也不周期更新,只做增量更新,使用环境本身就是稳定态。
6、承载性: -定不能使用链路状态型计算。
7、操控性:在AS间会出现很复杂的选路需求,必须有很强的操控性(选路,策略)。
二、BGP属性—一种用属性来解决问题的协议
1. ORIGIN 起源属性
分类
:所谓起源属性,及条目是通过什么方式进入到BGP协议来的;
Origin codes: i - IGP, e - EGP, ? - incomplete
在BGP中network 宣告产生–将本地路由表中的路由宣告到BGP协议 -i
将IGP协议重发布到BGP协议中 -?
将EGP协议重发布到BGP协议中 -e
**优选顺序:i优于?优于e**
修改方式
r1(config)#ip prefix-list o permit 2.2.2.0/24
r1(config)#route-map o permit 10
r1(config-route-map)#match ip address prefix-list o
r1(config-route-map)#set origin ?
egp remote EGP
igp local IGP
incomplete unknown heritage
r1(config-route-map)#set origin egp 2 对端邻居的AS号
r1(config-route-map)#exit
r1(config)#route-map o permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2
r1(config-router)#neighbor 4.4.4.4 route-map o out
r1(config-router)#end
r1#clear ip bgp * soft
2. AS-PATH
AS的路径- - -条目在传递过程中记录所有经过的大AS号;
- 作用:
①条目在传递过程中记录经过的AS编号;
②优选经过数量最少的路径;
③AS的增加只能在EBGP邻居关系间进行;
④用于EBGP水平分割,防止EBGP环路,接收到的条目中存在本地的as号将拒绝接收该条目
管理员可以策略在EBGP邻居关系间增加AS的数量,不能减少;
虽然只能在EBGP邻居关系间修改,当依然可以干涉到IBGP关系下的选路;
由于只能增加,故修改A路径,优选B路径
修改方式
r1(config)#ip prefix-list as permit 2.2.2.0/24
r1(config)#route-map as permit 10
r1(config-route-map)#match ip address prefix-list as
r1(config-route-map)#set as-path prepend 3 4 5
r1(config-route-map)#exit
r1(config)#route-map as permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2
r1(config-router)#neighbor 12.1.1.2 route-map as in
r1(config-router)#end
r1#clear ip bgp * soft
注:调用时在控制层面接口的入或出方向,但必须为ebgp邻居关系;
出口调用 x 3 4 5 x为实际经过的AS号;最前方AS号为最后经过的AS号;
入口调用 3 4 5 x
若人为添加的AS号,在网络的后端实际存在,那么将导致这些路由无法进入这些AS;
反复添加已经经过的AS编号
r1(config-route-map)#set as-path prepend 1 1 1
r1(config-router)#neighbor 4.4.4.4 allows-in //邻居4.4.4.4发过来含有自己AS的路由可以接受
3. NEXT-HOP下一跳
到达路由的下一跳路由器ip地址,IBGP之间next-hop不变,为0的时候会修改为更新源地址
,
EBGP之间传路由next-hop修改为更新源地址
选路:下一跳为0的优于其他路径
优选本地下一跳
Network Next Hop Metric LocPrf Weight Path
*> 2.2.2.0/24 0.0.0.0 0 100 0 1 i
* i 1.1.1.1 0 100 0 1 i
4. Local-preference本地优先级
传播范围 | 默认值 | 数值大优还是小优 |
---|---|---|
IBGP邻居关系间 | 0-255,默认为100 | 大 |
全局修改:
r3(config-router)#bgp default local-preference 101
r3(config-router)#end
r3#clear ip bgp * soft
本地发送给所有IBGP邻居的路由,优先级均修改为101;
负载分担:基于部分的路由进行修改,可以在控制层面流量的入或出接口上修改;
当必须为IBGP邻居关系;
r4(config)#ip prefix-list l permit 2.2.2.0/24
r4(config)#route-map l permit 10
r4(config-route-map)#match ip address prefix-list l
r4(config-route-map)#set local-preference 101
r4(config-route-map)#exit
r4(config)#route-map l permit 20
r4(config-route-map)#exit
r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 route-map l in
r4(config-router)#end
r4#clear ip bgp * soft
5. MED metric度量值
多出口的鉴别属性–就是IGP协议中度量值
**BGP协议不存在度量值,当管理员可以人为去赋值,来干涉选路;
可用于干涉EBGP/IBGP邻居下的选
路,当最常用于干涉EBGP邻居间的选路;
例:AS1干涉AS2对AS1的选路**
r2(config)#ip prefix-list med permit 2.2.2.0/24
r2(config)#route-map med permit 10
r2(config-route-map)#match ip address prefix-list med
r2(config-route-map)#set metric 1
r2(config-route-map)#exit
r2(config)#route-map med permit 20
r2(config-route-map)#exit
r2(config)#router bgp 1
r2(config-router)#neighbor 12.1.1.1 route-map med out
r2(config-router)#end
r2#clear ip bgp * soft
本质就是metric默认为0,一般只能用于自同一个AS发出路由的不同路径med值比较。只能在两个AS之间传递,
不能传给第三个AS,一般用于影响对方AS,如果在本AS使用和 local-pre 相同
使用扩展ping来验证
r2#ping
Protocol [ip]:
Target IP address: 4.4.4.4
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]: 4.4.4.4
% A decimal number between 0 and 3600.
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 2.2.2.2
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: Record
bgp always-compare-med
//开启比较不同AS的med
6. aggregater汇总者
用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP支持向BGP邻居传递重叠路由可以选择多种方式
①明细和粗略的都公布
②只公布明细
③只公布没有重叠的
④聚合后公布聚合后的路由
⑤明细和粗略都不公布
7. ATOMIC-aggregate汇总
attribute-map //设置聚合后的路由添加明细
adviertise-map /
8. origintor-id
用来通告汇总路由的汇聚路由BGP-id(cisco私有)
方便寻找会汇总着
9. cluster-list
路由反射器使用,是路由进过反射器簇ID的一个序号。如果反射器在属性里看到自己的簇ID就说明有环路,忽略
10. commuity社团
扩展属性中只有极少的属性已经被固定,大部分属性是可以由管理员自己定义的- - -相当于打标记
正常各个厂商的设备不会去传递社团属性,故若需要使用社团属性,必须开启属性的传递性
案例:基于BGP路由的传播范围相关社团属性
r1(config)#route-map com permit 10
r1(config-route-map)#set community no-advertise 定义社团属性
r1(config-route-map)#exit
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 route-map com out
r1#clear ip bgp * soft
注:进行以上配置后,社团属性默认不会传递给下一个邻居;必须开启传递性
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 send-community 将社团属性发生给该邻居
r1#clear ip bgp * soft
r1(config)#ip bgp-community new-format //开启后,团体值显示为该有显示,而不是数字
四种固定团体属性
internet
可以给任何bgp发送//不对携带团体值的路由做任何限制
no-advertise
接收到的条目中若存在该属性,将不能传递给本地的其他邻居
local-as
接收到的条目中若存在该属性,将不能传递给其他的小AS邻居
no-export
接收到的条目中若存在该属性,将不能传递给其他的大AS邻居
若拓扑中没有小AS,local-as和no-export作用一致
11、peer-group
r1(config)#router bgp 10
r1(config-router)#bgp router-id 1.1.1.1
创建名为xxx的peer-group
r1(config-router)#neighbor xxx peer-group
定制xxx的内容
r1(config-router)#neighbor xxx remote-as 2
r1(config-router)#neighbor xxx update-source lo0
r1(config-router)#neighbor xxx ebgp-multihop
r1(config-router)#neighbor xxx send-community
调用xxx到各个邻居
r1(config-router)#neighbor 2.2.2.2 peer-group xxx
r1(config-router)#neighbor 3.3.3.3 peer-group xxx
r1(config-router)#neighbor 4.4.4.4 peer-group xxx
r1(config-router)#neighbor 5.5.5.5 peer-group xxx
注:该协议的问题在于一旦和某个邻居基于peer-group配置,那么与该邻居间的大部分指令均需要在peer-group中进行
三、选路规则(12条)
比较前提––同步被关闭、下一跳可达;均可优
1、首先比较weight 大优–不传递 ,Cisco私有 EBGP/IBGP
2、比较本地优先级,默认100;仅IBGP邻居传递,大优 IBGP
3、优选本地下一跳
4、比较as-pash,经过的AS数量少优,EBGP邻居可增添 EBGP/IBGP
5、起源码最小 i-igp=0 e-egp=1 ?-incomplete=2 EBGP/IBGP
6、MED值最小 EBGP/IBGP
7、普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居
8、优选最近的IGP邻居(IGP度量小)
9、优选最先建立EBGP邻居
10、最小BGP邻居的RID
11、优选最小的RR list 列表
12、若收到到达同一目的地两条均可优的EBGP路由,可以人为实现负载均衡
r2(config)#router bgp 1
r2(config-router)#maximum-paths 2