一、BGP Attributes(属性)

image

*的是公认比遵属性,任何厂商都必须支持。

image

image

image

上面BGP选路的一个大前提是,都关闭同步而且下一跳都是可达的,这样才有资格竞争。

1、weight(权重)(cisco私有):越大越好,默认本地通告的为32768,其他的为0。

image

下面用一个实例来演示如何修改weight值

在下面这个图中,R3和R4之间是用交叉线,其他都是串行线。所以没有修改weight值之前,R3去往2.2.2.0/24和9.9.9.0/24的bpg路由应该都是走R4这条线的。下面我们通过修改在R3上修改weight值,让R3去往2.2.2.0/24和9.9.9.0/24的bpg路由都走R1这条线。

image

还没修改weight值之前R3的BGP路由:

image

修改weight值:

image

neighbor 1.1.1.1 weight 1这条命令是把从1.1.1.1发过来的BGP路由都把它的weight值修改为1,这个方向是in方向而不是out方向。

看看效果:

先软清一下:

image

image

如果我们要让R3去往2.2.2.0/24的路由往R1走,去往9.9.9.0/24的路由往R4走。

只需要在R3上把收到来自R1的2.2.2.0/24的BGP路由的weight值设置得比0高就可以了。

image

上面的命令中,还额外配置了一条route-map W permit 20,这是一条空的route-map,是为了允许其他路由进入R3.

看看最后效果:

image

这样可以做到负载分担的作用。

2、local preference attribute本地优先级属性(告诉IBGP邻居怎样离开AS)越大越好,默认为100.

image

image

image

另外,单独控制:

image

image

image

3、AS path,个数越少越好

image

注意上图中,1 2的顺序。

下面我们要通告修改R2通告的AS path值,让R3去2.2.2.0/24的BGP路由原本往R4走变成往R1走。

 

imageimageimage
image

image

image

但是AS号不能像上面那样随便取,要是附近真有那样的AS号,则就真的会往哪个AS发,所以,我们一般是“加自己的AS号”像下面这样:

image

4、MED Attribute(告诉EBGP邻居怎样进入AS)越小越好

image

image

现在R2去往8.8.8.0网络是往R4走的,因为这条路径cost值较小。

我们现在要让其往R1走,由于metric值默认为0,所以我们选择在R1提高metric值。。

image
image
image
image这是拓展ping的结果。image
这是debug ip bgp update的结果。

因为你AS2有时候是不可控的,你只能控制本AS,所以得使用这些方法知道我们配置起了作用没有。

 

上面的各种属性中,我们最常用的就是本地优先级metric值