选路原则
1: prefer highest weight (local to router).
//weight值越高越优先。
2: prefer highest local preference(global within AS).
//local-pref值越高越优先。
3:prefer route originated by the local router(next-hop =0.0.0.0)
// 在前两条值相同的情况下,指定了下一跳优先。
4:prefer shortest AS path.
// AS path 越短越优先。
5:prefer lowest origin code(IBGP<EBGP<incomplete).
//按照IBGP<EBGP<incomplete的顺序进行选路,incomplete的优先级最高。
6:prefer lowest MED(exchange between autonomous systems)
// MED值越低的越优先。
7:prefer EBGP path over IBGP path .
//EBGP路径优先于IBGP路径。
8:prefer the path through the closest IGP neighbor.
//IGP中邻居路径越近越优先。
9:prefer oldest route for EBGP paths .
//EBGP中建邻时间越长越优先。
10:prefer the path with the lowest neighbor BGP router ID.
// 比较router ID,越小的越优先。
11:prefer the path with the lowest neighbor IP address.
//比较IP address,由于匹配ip地址时大多按照从小到大的顺序配置地址,所以一般情况下越小越优先。
说明:
选路原则排序越靠前,权重值越高,第一条的优先级最高。选路的前提是路由必须是优的。
BGP默认负载均衡条目数是1,也就意味着默认其没有负载均衡,我们可以修改max-path参数来改变负载均衡条目数,一旦修改的值大于1,那么选路原则只会工作到第8条。
在一个路由器上选路时优先选择weight;主备情况下,使用MED量发送和接收的路径一致;一个AS存在多个路由器和多个出口时选路优先选择local-pref;经过两个及两个以上AS时,优先选择使用as-path。
BGP表不优的情况:
1:BGP路由表中路由的下一跳不可达(递归失败导致不优)。
2:开启了BGP的同步,在没有同步的情况下BGP的路由不优(BGP同步默认关闭)。
说明:
BGP同步最初始的目的是为了解决黑洞问题。但随着在大型网络中使用BGP同步的话,IGP的路由器内存有限,不能承载过多的路由条目,所以现在的BGP同步默认关闭。
联盟
将一个大的AS拆分为若干个小的私有AS。
本质上是为了减少建邻个数的一种措施。与反射器的目的相同。
方便管理,思路与OSPF相同。
如果和外部的AS存在EBGP邻居关系,则需要声明自己的大AS号,但不是该小AS内所有路由器都需要声明。同时对内部相邻的小AS还需要声明对方的小AS号以证明对方是联盟内部的EBGP邻居。
router bgp 65100
bgp router-id 10.1.1.1
bgp confederation identifier 1 //大AS号
bgp confederation peers 65200 //联盟内对方的小AS号
在小AS与小AS之间建立EBGP邻居时也需要声明AS号。
过滤
BGP路由传递的流程:
BGP路由表——发送策略——发送路由表——接收策略——接收路由表——BGP路由表
1:针对邻居的过滤——前缀列表
neighbor 10.3.3.3 prefix-list x in/out
// in和out方向均可
2:针对BGP路由表——分发列表
distribute-list ?
3:重发布过滤
route-map
redistribute ospf 1 match ?
默认路由
1:针对单个邻居的默认路由
neighbor 10.3.3.3 default-originate
2:针对所有邻居的默认路由(全局)
前提:全局路由表必须有默认路由
default-information originate+network 0.0.0.0(起源origin为 i)
default-information originate +重发布全局默认路由(起源origin为 ?)