BGP的概述
边界网关协议( Border Gateway Protocol , BGP)是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1 ( RFC1105 ) 、 BGP-2 (RFC1163 )和BGP-3 (RFC1267),1994年开始使用BGP-4(RFC1771), 2006年之后单播IPv4网络使用的版本是BGP-4 (RFC4271),其他网络使用的版本是MP-BGP ( RFC4760 )。
IGP(内部网关协议)与BGP(边界网关协议)的工作场景:
AS的概念
自治系统(Autonomous System,AS),指的是在同一组织管理下,使用相同策略的设备的集合。
不同AS通过AS号区分,AS号取值范围1~65535,其中64512~65535是私有AS号。IANA负责AS号的分发。
中国电信163AS号:4134。
中国电信CN2 AS号:4809。
中国网通AS号:9929。
BGP的特点:
- BGP能够承载大批量的路由信息,能够支撑大规模网络。
- BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导邻居按策略发布路由。
- BGP能够支撑MPLSNPN的应用,传递客户VPN路由。
- BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
- BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking、BGPAuto FRR和BGP GR和NSR,提高了网络的可靠性。
BGP Peer(对等体)
BGP对等体也叫BGP邻居,基于直连接口建立。与OSPF、RIP等协议不同,BGP的会话基于TCP建立的,建立BGP对等体的两台路由器并不要求必须直连,只要路由可达即可。
- EBGP:外部边界网关协议,用于在不同的自治系统间交换路由信息,即AS号不同。
- IBEP:用于在相同的AS间交换路由信息,即AS号相同。
BGP的五种报文
BGP的六种状态机
BGP的缺点:
自己不能发现邻居;自己不能发现路由;需要手动配置,指定peer,指定对等关系,所以他有两张表。并不像OSPF配置完成之后可以自己学习并更新路由表。
BGP三张表
名称 | 查看命令 | 说明 |
BGP邻居表 | display bgp peer | 列出本设备的BGP对等体,以及对等体的状态信息 |
bgp路由表 | display bgp routing-table | 列出本设备发现的所有BGP路由,如果到达同一个目的地存在多条路由,则将路由都进行罗列,但每个目的地只会优选一条路由。 |
路由表 | display ip routing-table | 设备的路由表,被优选的BGP路由会被加载到路由表中使用。 |
BGP的参数配置
配置BGP对等体:
bgp 100 //配置bgp的AS号为100
router-id 1.1.1.1 //设备loopback接口的地址
peer 2.2.2.2 as-number 100 //配置对等体ip地址2.2.2.2进入到bgp 100
BGP引入IGP路由(两种):
1.bgp 100
import-route ospf 1 将ospf1 引入到BGP中
2.bgp 100
network 23.0.0.0 24 //全局路由表中的某个网段引入bgp路由表中,配置方式:在本身路由上面引入本身网段
BGP路径属性
路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也可以是部分的。并非组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。
Preferred-Value(华为私有)
Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传播给任何BGP对等体。路由器本地始发的BGP路由默认的Preferred-Value为0,从其他BGP对等体学习到的路由默认Preferred-Value也为0,相当于路由的权重值,取值范围:0~65535;该值越大,则路由越优先。
Local_Preference:本地优先级
本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径;属性值越大则BGP路由越优,缺省值为100;该属性只能被传递给BGP对等体,而不能传递给EBGP对等体。
AS_Path
该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表,确保路由在EBGP对等体之间传递无环,也作为路由优选的衡量标准之一。路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号,路由被通告给IBGP对等体时,AS-path不会发生改变。
Origin
属性为公认必遵属性,它标识了BGP路由的起源,如下表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin。当去往同一目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP>EBG>Incomplete。
MED
MED( Multi Exit Discriminator)是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径。MED属性值越小则BGP路由越优。MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性。
注意事项:
Next_Hop
该属性是一个公认的必遵属性,用于指定到达目标网络的下一跳地址;当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值必须在本地路由可达,如果不可达,则这条BGP路由不可用;在EBGP及IBGP对等体场景中,Next_Hop的缺省操作是存在差异的。
BGP路由的优选规则
- 优选具有最大Preferred-Value的路由
- 优选具有最大Local_Preference的路由
- 优选起源于本地的路由
- 优选AS_Path最短的路由
- Origin(IGP > EGP > Incomplete)
- 优选MED最小的路由
- 优选EBGP对等体所通告的路由
- 优选到Next_Hop的IGP度量值最小的路由
- BGP路由负载分担
- 优选Cluster_List 最短的路由
- 优选Router-ID最小的BGP对等体发来的路由
- 优选Peer-IP地址最小的对等体发来的路由
配置命令
更改preference-vlaue 值:
bgp 200
peer x.x.x.x preferred-value 2000 x.x.x.x
更改Loc-preference:
ip-prefix 1 permit 1.1.1.1 32
route-policy huawei permit node 10
if-match ip-prefix 1
apply local-preference 200
bgp 200
peer x.x.x.x route-policy huawei export x.x.x.x //需要更改的当前网段
或者直接
default local-preference 3000
修改AS_Path:
route-polocy huawei permit node 10
if-match acl 2000
apply as-path 20 additive //数值增加20
route-policy huawei permit node100