一、选路原则
前提:路由必须是优的
BGP表的不优的情况:
①BGP路由表中路由的下一跳不可达(递归失败)
②开启了BGP的同步,在没有同步的情况下BGP的路由不优(版本15以上默认关闭,同步功能是指,检查BGP路由是否在IGP里面)
r标记的路由,标识在路由表中不优,主要是由于管理距离的劣势
1、weight
2、local-pref
3、next-hop
4、as-path
5、origin
6、MED
7、EBGP邻居优于IBGP邻居,EBGP管理距离20小于IBGP管理距离200
8、IBGP邻居之间优选最近的,也就是开销最小,若为两个EBGP邻居,此条跳过
9、优选最稳定EBGP邻居,即建邻时间越长的优先选择
10、优先选择router-id越小的BGP邻居,适用于多线建邻
11、优先选择ip地址越小的邻居
前六条是属性影响选路,属性比不出来才会看后面的规则,BGP默认负载均衡条数是1,也就意味着它没有负载均衡,我们可以修改max-path参数来改变负载均衡条目数,一旦修改值大于1,那么选路原则只会工作到第8条
一个路由器选路weight,多个路由器多个出口路径用local-pref,影响对方选路用MED,影响多个AS选路用AS-path
影响选路时,属性慎用origin和as-path,一旦修改此两种属性,容易传递给邻居,破坏自然选路,如果非要用origin,最好是将i->?即宣告(或EBGP)改为incomplete
解决BGP路由黑洞的办法:
全互联
将BGP重发布(带过滤)进IGP
MPLS
二、联盟
把一个大的AS拆分成若干个小的私有AS,和反射器一样本质上还是减少建立邻居个数的一种措施
方便管理 思路和ospf一样
联盟内与外部AS有EBGP邻居关系的需要申明自己的大AS号
小AS之间,建EBGP的邻居也要申明其大AS号,同时申明EBGP邻居的小AS号
反射器可以在联盟内,不能跨小AS
R1(config)#router bgp 65100
R1(config-router)#bgp router-id 10.1.1.1
R1(config-router)#bgp confederation identifier 1
R1(config-router)#bgp confederation peers 65200
三、BGP的过滤
BGP路由传递的流程 BGP路由表–发送策略–发送路由表–接收策略–接收路由表–BGP路由表
1、针对邻居的过滤—前缀列表,进出都可以,只有前缀列表允许的路由才被放进来,可在neighbor后直接调
R1(config-router)#neighbor 2.2.2.2 prefix-list x ?
in Filter incoming updates
out Filter outgoing updates
2、针对BGP路由表–分发列表
R1(config-router)#distribute-list ?
<1-199> IP access list number
<1300-2699> IP expanded access list number
WORD Access-list name
gateway Filtering incoming updates based on gateway
prefix Filter prefixes in routing updates
3、重发布过滤—route-map
R1(config-router)#redistribute eigrp 1 route-map x ?
metric Metric for redistributed routes
<cr>
四、BGP的默认路由
1、针对邻居的默认路由
R1(config-router)#neighbor 2.2.2.2 default-originate
2、针对所有邻居的默认路由(全局)
全局路由表必须有默认路由
①R1(config-router)#default-information originate
R1(config-router)#network 0.0.0.0 mask 0.0.0.0
②R1(config-router)#default-information originate
重发布全局默认路由
五、其他配置
1、浮动惩罚
R1(config)#router bgp 1
R1(config-router)#no synchronization
R1(config-router)#bgp log-neighbor-changes
R1(config-router)#bgp dampening
下限阀值 750
每次惩罚值1000
上限阀值2000 大于2000抑制给邻居发送此路由
最大值12000 最长惩罚60min
半衰期15min 5s清算一次
2、后门
R1(config-router)#network 2.2.2.2 mask 255.255.255.255 backdoor
3、完美重启
4、匹配AS-path
.* 所有 .至少一个AS(自己抓不上) ^$本地AS的路由