一、BGP的属性

BGP在选路时,先对比属性;若所有属性相同,将基于其他的条件进行选路判断,默认BGP不支持负载均衡,仅基于唯一路径传输;
华为的BGP协议中,存在1种私有属性,5种公共属性
属性的修改是在控制层面流量的进或出接口上,抓取路由信息再修改参数

传播范围                默认值              数值大小优?

【1】权重 不传播 0,0-65535 大
私有属性;仅本地有效

[r3]bgp 2 
[r3-bgp]peer  4.4.4.4 preferred-value 1  本地通过邻居4.4.4.4学习到的所有路由,权重属性修改为1;

负载分担:访问不同的目标基于不同的路径

[r3]ip ip-prefix w permit 1.1.2.0 24  抓需要修改属性的路由

[r3]route-policy w permit node  10     创建策略
[r3-route-policy]if-match ip-prefix w    匹配路由
[r3-route-policy]apply preferred-value 1   修改权重值
[r3-route-policy]q
[r3]route-policy w permit node 20  记住,一定需要关注是否允许所有
[r3-route-policy]q
[r3]bgp 2 
[r3-bgp]peer  4.4.4.4 route-policy w import  在控制层面针对邻居调用;

调用时需要注意方向,权重属性只能入方向调用,因为该属性不传播;

传播范围                      默认值          大小?

【2】本地优先级 AS内(IBGP邻居间) 100(0-255) 大
最常用于干涉IBGP关系下的选路;

[r4]bgp 2 
[r4-bgp]default local-preference 101  全局命令,本地所有发送给IBGP邻居的路由,其本地优先级属性修改为101;

负载分担:

[r4]ip ip-prefix p permit 1.1.2.0 24   抓路由
[r4]route-policy p permit node  10
[r4-route-policy]if-match  ip-prefix p   匹配路由
[r4-route-policy]apply local-preference 101  修改权重
[r4-route-policy]q 
[r4]route-policy p permit node 20  空表,允许其他所有路由
[r4-route-policy]q
[r4]bgp 2 
[r4-bgp]peer  3.3.3.3 route-policy p export   针对邻居控制层面调用;出、入方向均可;但必须为IBGP邻居关系;

【3】as-path 记录该条目所有经过的AS编号;该属性在本地传递给本地的EBGP邻居时,才添加本地AS号到path属性中; 优选经过AS数量最少路径;
人为的在as-path属性中增添AS编号,可以干涉选路,只能增添不能减少;因为该属于同时用于EBGP水平分割(接收到的路由条目,出现本地AS号,将拒绝)

使用AS=path属性干涉选路时,由于该属性只能增加,不能减少;故干涉时,需要在A路径策略,最终让设备优选B路径;但只能在EBGP关系间进行策略配置;既可以干涉EBGP关系下的选路,也可以干涉IBGP关系下的选路;

[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 3 4 5 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邻居关系;
在入口调用以上策略最终显示的AS号为
3 4 5 X;X代表真实经过的AS编号;
若在出口调用以上策略显示的AS为:
X 3 4 5 ;X代表真实经过的AS编号;
结论:最左边的编号为最新的AS编号;

由于AS-PATH属性,同时用于实现EBGP水平分割;故人为增添的AS编号,若在后方真实存在,这些路由将无法进入这些AS;解决方法:反复增加已经实际经过过的AS编号
[r2-route-policy]apply as-path 1 1 1 additive

【4】起源属性 --该条路由进入BGP协议的来源;
Network 命令宣告 i
从IGP重发布到BGP ?
从EGP重发布BGP e
优先顺序 i 优于 e 优于?

[r2]ip ip-prefix  o permit 1.1.2.0 24
[r2]route-policy o permit node  10
[r2-route-policy]if-match ip-prefix o
[r2-route-policy]apply  origin egp  2  对端设备所在AS编号
[r2-route-policy]q
[r2]route-policy o permit node  20
[r2-route-policy]q
[r2]bgp 2 
[r2-bgp]peer  3.3.3.3 route-policy o export

【5】MED --多出口的鉴别属性
BGP协议本身不存在度量值;只有两种情况出现度量值:
1、在宣告本地路由表中路由时,将携带本地路由表到达目标的cost值
2、人为修改MED值 – 管理员利用路由器基于cost值选路的特征,人为在路由条目中定义一个cost值来干涉选路;
MED属性可干涉IBGP/EBGP关系选路,但最常用于干涉EBGP关系下选路;
常常用于AS1干涉AS2对AS1的选路;
ping -r -a 1.1.2.1 3.3.3.3 判断数据包来回的节点

[r1]ip ip-prefix l permit 1.1.2.0 24
[r1]route-policy l permit node 10
[r1-route-policy]if-match ip-prefix  l
[r1-route-policy]apply  cost 2
[r1-route-policy]q
[r1]route-policy l permit node  20
[r1-route-policy]q
[r1]bgp 1 
[r1-bgp]peer  12.1.1.2 route-policy l export

二、BGP选路规则

比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)
 优选Preference_Value值最高的路由(私有属性,仅本地有效)。
不传递 权限最高属性 可以干涉EBGP/IBGP选路
 优选本地优先级(Local_Preference)最高的路由。
IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
 优选手动聚合>自动聚合>network>import>从对等体学到的。
 优选AS_Path短的路由。
EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
 起源类型IGP>EGP>Incomplete。
起源属性 i优于e优于?; 可在控制层面任意接口修改;
 对于来自同一AS的路由,优选MED值小的。
默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
最常用于干涉EBGP选路的属性
 优选从EBGP学来的路由(EBGP>IBGP)。
 优选AS内部IGP的Metric最小的路由。
 优选Cluster_List最短的路由。
 优选Orginator_ID最小的路由。
 优选Router_ID最小的路由器发布的路由。
 优选具有较小IP地址的邻居学来的路由。

三、BGP的社团属性

BGP的基本属性之外,还存在大量的扩展属性;这些扩展属性被称为社团属性;
社团属性目前并没有完全定义,用于BGP协议未来升级,以及和其他协议兼容;
社团属性在大部分厂商均默认不携带;故,决定使用社团属性时,必须考虑携带性(传递性)

[r1]route-policy qq permit node  10
[r1-route-policy]apply community ?
INTEGER<0-4294967295>  Specify community number
  STRING<3-11>           Specify aa<0-65535>:nn<0-65535>
  internet               Internet(well-known community attributes)
  no-advertise           Do not advertise to any peer (well-known community     
                         attributes)
  no-export              Do not export to external peers(well-known community   
                         attributes)
  no-export-subconfed    Do not send outside a sub-confederation(well-known     
                         community attributes)
  none                   No community attribute
[r1-route-policy]apply community no-advertise 
[r1-route-policy]q
[r1]bgp 1 
[r1-bgp]peer  12.1.1.2 route-policy qq export

以上配置,就是在本地传递给邻居12.1.1.2的所有BGP路由条目中,加入某种社团属性

注:由于大部分厂家不携带社团属性,故一旦使用社团属性,必须考虑传递性功能是否开启;

[r1]bgp 1 
[r1-bgp]peer  12.1.1.2  advertise-community

本地将携带社团属性发送路由到该邻居处;开启传递性的行为是逐跳的,也就是说R1开启后将携带社团到R2,但R2上若没有开启到R3的,那么R3收到的路由依然没有社团属性;

以下几种社团属性为控制路由条目传递范围的社团属性
no-advertise 若收到的路由条目中,存在该属性,将不再传递该条路由
No-export 若收到的路由条目中,存在该数据,将不能传递到下一个AS
no-export-subconfed 若收到的路由条目中,存在该数据,将不能传递到下一个小AS
若所在AS没有联邦(没有小AS)那么No-export 和 no-export-subconfed 作用一致

四、BGP的在MA网络中的下一跳问题

在一个MA网段中运行BGP协议;若该网段存在EBGP邻居关系;那么只要使用该网段内的物理接口ip地址,作为邻居建立地址,ICMP重定向将为我们定义最佳下一跳地址,作为BGP路由中的下一跳地址;

[r1]display  bgp routing-table  peer 123.1.1.2 advertised-routes  查看本地向该邻居发送的BGP路由
[r1]display  bgp routing-table  peer  123.1.1.2 received-routes  查看本地从该邻居处学习到的路由

五、BGP的认证

[r3-bgp]peer  34.1.1.2 password cipher 123456
双方密码需要一致,密码默认基于MD5计算后转发