BGP选路规则
- 选路顺序,越前权重值越高。
- 选路的前提是路由必须是优的。
- bgp表不优的情况:
-
bgp路由表中路由的下一跳不可达(递归失败)
-
如果开启了bgp同步,在没有同步的情况下bgp的路由不优(默认关闭)
r标记的路由,表示在路由表中不优
比较前提–同步被关闭、下一跳可达;均可优- 首先比较weight 大优–不传递 ,Cisco私有 EBGP/IBGP
- 比较本地优先级,默认100;仅IBGP邻居传递,大优 IBGP
- 优选本地下一跳
- 比较as-pash,经过的AS数量少优,EBGP邻居可增添 EBGP/IBGP
- 起源码最小 i-igp=0 e-egp=1 ?-incomplete=2 EBGP/IBGP
- MED值最小 EBGP/IBGP
- 普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居
- 优选最近的IGP邻居(IGP度量小)
- 优选最先建立EBGP邻居
- 最小BGP邻居的RID
- 优选最小的RR list 列表
bgp默认负载均衡条目数1,也就意味着默认它没有负载均衡,我们可以修改max-path参数来改变负载均衡条目数,一旦修改的值大于1,那么选路原则只会工作到第8条。
- 例如
自然选路为7;人为选路为2
-
例如
自然选择为4,人为选择为1 -
注意:
- 当碰到一个路由器首选weight
- 在一个AS内多个路由器多个出接口首选local
- 影响别人选路优先级选MED
联邦
- 在一个大AS内,构建多个小as,小AS使用私有AS号;小AS间为联邦内的ebgp邻居关系,可以传递路由信息,但不能修改属性,管理距离依然为200;其他大AS是不清楚某个AS中的那些小s存在;
- 把一个大的AS拆分成若干个小的私有AS(64512-65535)
- 如同反射器一样也是减少建立邻居个数的一种措施
- as-path中小括号内代表联盟内私有as,不带括号的代表大as
- 在联邦中,内部使用小as号,并且具有EBGP邻居关系的无论对外还是对内都要声明大AS号,并且对内还需要声明小AS号,只具有IBGP邻居关系的不用声明大AS号。
- 配置
- 所有的配置和管理均基于小AS号进行
Router bgp 64512
Bgp router-id 10.4.4.4
- 联盟内所有设备声明自己所在的大AS
r2(config-router)#bgp confederation identifier 2
- 小AS间互指peer
r3(config-router)#bgp confederation peers 64513 对端小AS的编号
总结:在实际工程案例中,以上两种技术被同时使用;
过滤
- bgp路由传递的流程:
- 针对邻居的过滤——前缀列表
- 针对BGP路由表——分发列表
- 重发布过滤——route-map
前面已经详细介绍过了,不在叙述。
默认路由
- 针对单个邻居的默认路由
neighbor 10.2.2.2 default-originate
- 针对所有邻居的默认路由
全局路由表必须有默认路由- default-information originate + network 0.0.0.0 (起源origin为I)
- default-information + 重发布全局默认路由(起源origin为?)
浮动惩罚
dampening开启命令:
router bgp 2
no synchronization
bgp log-neighbor-changes
bgp dampening
- 下限阀值750
- 每次惩罚值1000
- 上线阀值2000 ,大于2000抑制给邻居发送此路由
- 最大值12000
- 最长惩罚60mins
- 半衰期15mins ,5s清算一次
后门 BGP backdoor
- EBGP 邻居间非直连建邻(假如说使用环回),使用动态路由协议产生到达对放建立邻居关 系的地址路由(到达环回的路由),建立后使用 network 宣告到 BGP 中,则其 BGP 产生的 路由 AD 值为 20(EBGP 关系),这样会覆盖 IGP 学习到的路由表,然后 IGP 路由没有到达对 方建立邻居关系地址的路由(到达环回的路由)则邻居关系会 down 掉,然后通过 BGP 学 习的路由在路由表消失,则通过 IGP 学习的路由又会加表,这样会出现邻居翻滚的现象。
Network对端建立邻居关系的地址,使通过 bgp 学习到其他路由的 AD 为 200 就不会挤掉 IGP 学习的路由,这条路由不会加表(AD 值小)但会传递,这样就不会出现邻居翻滚
- 如果没有后门的话,可以修改igp或者gbp的管理距离从而达到规定。
- bgp的完美重启
ip as-path access-list 1 permit //匹配AS2
bgp graceful-restar
重启bgp的时候bgp的路由依然保存在路由表不会消失,保证数据能够在BGP重启的时候顺利转发
.*代表匹配所有
ip as-path access-list 1 permit 100 表示任何含有100字符的路径 1100也包括 1 100 200
^100$只匹配100
^10[01234]$ 包含100 101 102 103 104的路径
^10[^01234]$不包含100 101 102 103 104的路径
^10. 包含100到109的路径
^(100|200)$包含100或200的路径
101?包含10或101的路径
^(101)?$匹配单一101AS号或空列表
^(101)*$匹配重复(至少一个)包含101的路径
^1_2_3_4$只匹配1 2 3 4这样的路径
_110_匹配经过的110的路径
```