今天学习了BGP选路:
根据BGP选路比较顺序,给出思科和华为均存在的六种基本属性,用来干涉BGP选路;以下敲一个小实验以便依次做介绍。(发现越来越喜欢潘老师讲课了,凶凶的可爱~哈哈)
1、老规矩,各路由先配ip地址(如图示,其中R1有两个环回-1.1.1.1/24 1.1.2.1/24,其余分别只有一个),然后AS2区域内IGP可通,本实验还是使用的ospf,再各个路由建邻(R1-R2间EBGP,R2-R4间IBGP)。由于本次实验不重点讲述BGP间建邻关系,故以上配置不做详细展示,在这之前的三次博文中有详细配置展示嘿嘿。
首先,选路的前提为所有条路学习路径都能优
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24
[r1-bgp]net 1.1.2.0 24
R2与R4上改了下一跳属性后(因为AS-BY-AS的规则,导致通过在一个as内部传递时,属性不变,导致选路不佳,条目不优;因此要在R2、4上改变其下一跳属性)
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local
[r4]bgp 2
[r4-bgp]peer 3.3.3.3 next-hop-local
以下所有目的为 让1.1.2.0/24 走下面那条路
下面按选路的比较顺序从排名第一个属性说起
:下一跳为首先要满足的,如果下一跳不可达就无法谈及选路。
传播范围 默认值 大优或小优
Preference_Value 不传播 0 大
因为此属性具有不传播的特性,所以只能本地修改 私有属性
[r3]ip ip-prefix pp permit 1.1.2.0 24--使用前缀抓取需要修改属性的网段(发现前缀列表的 名字和routemap的名字可以一样也可以不同欸)
[r3]route-policy xx permit node 10
[r3-route-policy]if-match ip-prefix pp[
r3-route-policy]apply preferred-value 2---修改下面路优先级属性,大优改大
[r3-route-policy]q[r3]route-policy xx permit node 20
[r3-route-policy]q
[r3]bgp 2 ---------再在协议中针对某个邻居调用
[r3-bgp]peer 4.4.4.4 route-policy xx import
因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成;
传播范围 默认值 大或小优
LocPrf IBGP邻居关系间 100 大
第一个公有属性,也是最常用于干涉IBGP选路,最常使用的属性
[r4]ip ip-prefix lo permit 1.1.2.0 24
[r4]route-policy lo permit node 10
[r4-route-policy]if-match ip-prefix lo
[r4-route-policy]apply local-preference 101
[r4-route-policy]q[r4]route-policy lo permit node 20
[r4-route-policy]q
[r4]bgp 2
[r4-bgp]peer 3.3.3.3 route-policy lo export
调用时在控制层面的出或入向均可,但必须为IBGP邻居关系
(入口方向则在R3上改[r3-bgp]undo peer 4.4.4.4 route-policy ll import)
优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行
;[r2]ip ip-prefix as permit 1.1.2.0 24
[r2]route-policy as permit node 10
[r2-route-policy]if-match ip-prefix as
[r2-route-policy]apply as-path 1 1 1 additive
[r2-route-policy]q[r2]route-policy as permit node 20
[r2-route-policy]q[r2]bgp 2
[r2-bgp]peer 12.1.1.1 route-policy as import
可以在控制层面的入或出方向调用,但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路;
出向调用 x 3 4 5 x为实际经过的AS号;最前端号码为最新经过的AS号;
入向调用 3 4 5 x
切记:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;
:i>e>? 条目的产生方式
network 宣告本地路由表中的任意路由 i
egp 早期的ebg协议学习的路由重发布到BGP协议中 e
eimport 将本地通过其他协议学习的路由重发布到BGP协议中 ?
该属性的修改可以在整个控制层面流量经过的任意接口修改
[r2]ip ip-prefix xx permit 1.1.2.0 24
[r2]route-policy xx permit node 10
[r2-route-policy]if-match ip-prefix xx
[r2-route-policy]apply origin ?
egp Remote EGP----改egp时要加上将路由给的那方的AS号
igp Local IGP i
ncomplete Unknown heritage[
r2-route-policy]apply origin incomplete
[r2-route-policy]q
[r2]route-policy xx permit node 20[
r2-route-policy]q[r2]bgp 2
[r2-bgp]peer 3.3.3.3 route-policy xx export
多出口的鉴别属性 小优 管理员只能在一个AS中配置
BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost) BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,
优选MED最小的路径;管理员可以在控制层面传递路由的过程中,手工修改MDE;最常用于干涉ebgp选路常常用于AS1干涉AS2对AS1的选路;
[r1]ip ip-prefix med permit 1.1.2.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 10
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]q[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy med export
际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决
[r1]ping -r -a 1.1.2.1 3.3.3.3
验证:
[r3]bgp 2
[r3-bgp]net 3.3.3.0 24