BGP通告路由时,会一并把属性通告给对等体。路径属性会影响路由的优选。
路径属性分类
公认必遵:
Origin、AS_Path、Next_hop
- Origin:起源。标识这条路由是通过什么渠道变成BGP路由的
- AS_Path:记录报文所经过的AS号。可用于EBGP之间的防环,和选路作用
- Next_hop:通告给IBGP时,下一跳属性为始发路由器的更新源地址;通告给EBGP时,下一跳属性为连接EBGP的更新源地址,也就是谁通告的,下一跳就是谁。
公认任意:
Local_Preference、Atomic_aggregate
- Local_Preference:本地优先级。可用来选路,优选优先级大的
- Atomic_aggregate:原子聚合。标识这条路由被聚合过
可选过渡:
Aggregator、Community
Aggregator:聚合者。标识哪条设备以及在哪个AS号的设备发生了聚合
Community:团体。可用来标记
可选非过渡:
MED、Cluster-List、Originator-ID
MED:多出口鉴别器,类似于cost。只用于EBGP之间,且只比较来自同一AS的路由的MED值
Cluster-List:
Originator-ID:
公认属性是所有BGP路由器必须识别的属性
- 公认必遵是必须携带的属性(update消息)
- 公认任意是可以携带也可以不携带的属性(update消息)
可选属性是BGP路由器可以识别也可以不识别的属性
- 可选过渡是BGP路由器即使不识别,但是依然接收此类属性并且通告给对等体
- 可选非过渡是BGP路由器即使不识别,也不会接收此类属性并且也不会通告给对等体
BGP选路原则
口诀:漂亮老男人 P L LAO MEN
当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:
0.丢弃下一跳不可达的路由。
1.优选Preferred-Value属性值最大的路由。华为私有的属性,不能传递出去,只能影响本地路由优选。
2.优选Local_Preference属性值最大的路由。可以用于告诉AS中的路由器,哪条路径是离开本AS的首选路径。该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。
---------------------------------------------------↑取值越大越优
---------------------------------------------------↓取值越小越优
3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。
4.优选AS_Path属性值最短的路由。路由通告给EBGP时,会追加AS号;给IBGP不会追加AS号。
5.优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
6.优选MED属性值最小的路由。
7.优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
8.优选到Next_Hop的IGP度量值最小的路由。
当前8条属性全部相同时可以形成路由负载分担
9.优选Cluster_List最短的路由。
10.优选Orginator_ID最小的设备通告的路由
11.优选Router ID最小的设备通告的路由。
12.优选具有最小IP地址的对等体通告的路由。
漂亮老男人 p l lao men
preference value
local preference
本地始发
As path
Origin
Med
ebgp优于ibgp
Next hop
Local_Preference: 入流量
可以用于告诉AS中的路由器,哪条路径是离开本AS的首选路径。该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。
假如R1产生路由x,通告给R2和R3,同时R4也会收到R2和R3通告的x路由,如果希望R4可以走R2这条路,可以在R2上部署Local值,越大越优,默认都是100。
修改AS_Path属性的方式:
- additive 原有AS_Path上追加(体现为在左侧追加内容)
- overwrite 将已有AS_Path值替换成新的值(重写AS号)
- none overwrite 将已有AS_Path的值清空
Origin属性:
IGP:标记为i network注入的
EGP:标记为e(不用了)
Incomplete:标记为? import-route引入的
MED: 出流量
MED主要影响AS之间的路由选路。用于向外部对等体指出进入本AS的首选路径。
比如R1和R2有一条路由x,会通告给R3,那么R3有两条路可走,可以在R1和R2上部署MED值,值越小越优,通告给R3时,然后R3就会学习到MED更优的路由。
路由汇总
手动汇总: aggregate
可以聚合引入的,也可以聚合network的;
手动汇总后明细路由依然存在;
手动汇总可以自定义掩码长度;
detail-suppressed :抑制明细路由
手动汇总防环:命令后面追加as-set,括号里的AS号用来防环,当用来选路时,括号长度算作1.
自动汇总: summary automatic
只能汇总引入的路由;
自动汇总只能汇总成主类IP掩码,8/16/24,
比如:10.1.1.1/32 10.1.1.2/32 10.1.1.3/32,自动汇总只能汇总成10.0.0.0/8;
汇总后明细路由不存在;
汇总时只要本地路由表中有"?"标识(表明引入的路由),即使不是自己本地引入的,只要路由表中存在引入的路由,那么就可以汇总;
汇总之后公认必遵属性的变化:
汇总之后将产生全新的路由,那么原来的AS_Path属性将被清空,传递出去时将携带新的AS号。
下一跳也将改变。
起源属性中,如果有一条路由是引入的路由,那么聚合后的路由也是引入