BGP联盟配置案例及分析

我们都知道BGP路由防环主要分为:

ebgp防环:通过as-path,收到含有我本as号的路由就丢弃。

ibgp防环:BGP speaker 从IBGP获得的路由不会通告给它的IBGP邻居。(水平分割)


接下来,我们通过实验来了解一下ibgp防环机制会带来什么问题?怎么解决。



一、实验拓扑


BGP联盟配置案例及分析

(看不清,可单击放大)



二、配置思路

1、根据拓扑图,在ensp模拟器上搭好环境;
2、完成设备的基础配置(设备名、直连ip地址、loopback接口);
3、配置IBGP路由,在AS200内配置OSPF,都在area0里;在AS100,配置默认路由;4、配置BGP路由协议,R1与R2形成ebgp邻居关系,R2与R3形成ibgp邻居关系。
5、在R1创建loopbakc 10,ip为10.10.10.10/24,并宣告到bgp中。
6、查看BGP路由。7、在AS200配置BGP联盟,并分析、查看BGP路由。



三、配置过程


01

搭建实验环境


略。(参考拓扑图)



02

基础配置



以R2为例,如下,其他设备参考如下及拓扑图信息进行配置,这里不再一一展示。

<Huawei>sys

[Huawei]sys R2

[R2]int lo 0

[R2-LoopBack0]ip add 2.2.2.2 32

[R2-LoopBack0]qu

[R2]int g0/0/0

[R2-GigabitEthernet0/0/0]ip add 12.1.1.2 24

[R2-GigabitEthernet0/0/0]undo shut

[R2-GigabitEthernet0/0/0]qu

[R2]int g0/0/1

[R2-GigabitEthernet0/0/1]ip add 23.1.1.2 24

[R2-GigabitEthernet0/0/1]undo shut

[R2-GigabitEthernet0/0/1]qu

[R2]



03

配置IGP路由、默认路由


配置IBGP路由,在AS200内配置OSPF,都在area0里;在AS100,配置默认路由;


在R1配置默认路由:(因为AS100就一台路由器,所以我就简单配置默认路由)

[R1]ip route-static 0.0.0.0 0.0.0.0 12.1.1.2


R2的OSPF路由协议配置如下:

[R2]ospf

[R2-ospf-1]area 0

[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0

[R2-ospf-1-area-0.0.0.0]net 12.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]

[R2-ospf-1-area-0.0.0.0]quit

[R2-ospf-1]quit

[R2]



R3的OSPF路由协议配置如下:

[R3]ospf

[R3-ospf-1]area 0

[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0

[R3-ospf-1-area-0.0.0.0]net 23.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]net 35.1.1.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]quit

[R3-ospf-1]quit

[R3]



R4的OSPF路由协议配置如下:

[R4]ospf

[R4-ospf-1]area 0

[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0

[R4-ospf-1-area-0.0.0.0]net 34.1.1.0 0.0.0.255

[R4-ospf-1-area-0.0.0.0]quit

[R4-ospf-1]quit

[R4]


R5的OSPF路由协议配置如下:

[R5]ospf

[R5-ospf-1]area 0

[R5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0

[R5-ospf-1-area-0.0.0.0]net 35.1.1.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]net 56.1.1.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]quit

[R5-ospf-1]quit

[R5]



R6的OSPF路由协议配置如下:

[R6]ospf

[R6-ospf-1]area 0

[R6-ospf-1-area-0.0.0.0]net 6.6.6.6 0.0.0.0

[R6-ospf-1-area-0.0.0.0]net 56.1.1.0 0.0.0.255

[R6-ospf-1-area-0.0.0.0]quit

[R6-ospf-1]quit

[R6]



配置完OSPF后,可以检查一下邻居状态是否都full了?

以R3为例,使用如下命令查看:

BGP联盟配置案例及分析




04

配置BGP路由


配置BGP路由协议,R1与R2形成ebgp邻居关系,R2与R3形成ibgp邻居关系。


在R1配置BGP:

[R1]bgp 100

[R1-bgp]peer 12.1.1.2 as-number 200

[R1-bgp]quit

[R1]


在R2配置BGP:

[R2]bgp 200

[R2-bgp]peer 12.1.1.1 as-number 100

[R2-bgp]peer  3.3.3.3 as-number 200

[R2-bgp]peer  3.3.3.3 connect-interface lo 0

[R2-bgp]


在R3配置BGP:

[R3]bgp 200

[R3-bgp]peer 2.2.2.2 as-number 200

[R3-bgp]peer  2.2.2.2 connect-interface  lo 0

[R3-bgp]qu

[R3]


在R2查看一下bgp邻居关系是否都建立了:

BGP联盟配置案例及分析




05

R1上新增路由,宣告BGP


在R1创建loopbakc 10,ip为10.10.10.10/24,并宣告到bgp中。

[R1]int lo 10

[R1-LoopBack10]ip add 10.10.10.10 24

[R1-LoopBack10]qu

[R1]bgp 100

[R1-bgp]net 10.10.10.0 24

[R1-bgp]quit

[R1]




06

查看BGP路由


接下来,我们在AS200里的路由器上查看R1发布的那条BGP路由(10.10.10.0/24)


R2查看,确认收到该路由了:

BGP联盟配置案例及分析


R3查看,也确认收到该路由了:

BGP联盟配置案例及分析


R3去ping一下连通性,也能通:

BGP联盟配置案例及分析


在R4、R5、R6查看bgp路由:

BGP联盟配置案例及分析

BGP联盟配置案例及分析

BGP联盟配置案例及分析


会发现R4、R5、R6均没有收到R1发布的BGP路由,原因我们开头也提到了,这是BGP的ibgp防环机制水平分割导致的,BGP speaker 从IBGP获得的路由不会通告给它的IBGP邻居。本例就是R2从R1收到ebgp路由,可以传给R3,但是当R3从R2这个IBGP邻居关系收到的路由,它不会再传递给R4、R5了。


怎么解决呢?

1、最笨的方法就是AS200内的路由器,两两之间建立ibgp邻居关系。这样有n路由器,就有n(n-1)/2的ibgp邻居关系了。(我们都知道BGP是基于TCP的)

如本例有5台路由器:

  5(5-1)/2=10 (可数一下,下图有几根线?是不是也等于10)

BGP联盟配置案例及分析


2、可以使用BGP反射器(后续分享)

3、使用BGP联盟。(本期分享配置)


这里简单说一下我对BGP联盟的简单理解:

1、联盟机制就是把大的AS切成若干个小AS,在大的AS内部下,传递会携带小AS,用于防环。

2、出来了大AS号,就会剥离掉小AS号,这样ebgp邻居看来,就如同透明一样,没察觉到。

注:本来大AS号就是AS 200 。



07

配置BGP联盟


提醒:现网中配置BGP联盟需谨慎,因为要删除当前的BGP配置,重新配置。


配置BGP联盟,先来规划一下AS200内的小as号:

BGP联盟配置案例及分析


规划后,可知:在AS200下,

R2与R3形成ebgp邻居关系,

R3与R4形成ibgp邻居关系,R3与R5形成ebgp邻居关系。

R5与R6形成ibgp邻居关系。



R2的BGP联盟配置如下:

[R2]undo bgp 200

Warning: All BGP configurations will be deleted. Continue? [Y/N]: y

[R2]bgp 65501

[R2-bgp]confederation id 200    //原本的AS号

[R2-bgp]confederation peer-as 65502

[R2-bgp]peer 3.3.3.3 as-number 65502

[R2-bgp]peer 3.3.3.3 connect-interface lo 0

[R2-bgp]peer 3.3.3.3 ebgp-max-hop

[R2-bgp]peer  12.1.1.1 as-number 100

[R2-bgp]



R3的BGP联盟配置如下:

[R3]undo bgp 200

Warning: All BGP configurations will be deleted. Continue? [Y/N]: y

[R3]

[R3]bgp 65502

[R3-bgp]confederation id 200

[R3-bgp]confederation peer-as 65501 65503

[R3-bgp]peer 2.2.2.2 as-number 65501

[R3-bgp]peer  2.2.2.2 connect-interface lo 0

[R3-bgp]peer 2.2.2.2 ebgp-max-hop

[R3-bgp]peer 4.4.4.4 as-number 65502

[R3-bgp]peer  4.4.4.4 connect-interface  lo 0

[R3-bgp]peer  5.5.5.5 as-number 65503

[R3-bgp]peer 5.5.5.5 connect-interface lo0

[R3-bgp]peer  5.5.5.5 ebgp-max-hop

[R3-bgp]



R4的BGP联盟配置如下:

[R4]bgp 65502

[R4-bgp]confederation id 200

[R4-bgp]peer 3.3.3.3 as-number 65502

[R4-bgp]peer  3.3.3.3 connect-interface lo 0

[R4-bgp]




R5的BGP联盟配置如下:

[R5]bgp 65503

[R5-bgp]confederation id 200

[R5-bgp]confederation peer-as 65502

[R5-bgp]peer 3.3.3.3 as-number 65502

[R5-bgp]peer  3.3.3.3 connect-interface lo 0

[R5-bgp]peer  3.3.3.3 ebgp-max-hop

[R5-bgp]peer  6.6.6.6 as-number 65503

[R5-bgp]peer  6.6.6.6 connect-interface lo 0

[R5-bgp]




R6的BGP联盟配置如下:

[R6]bgp 65503

[R6-bgp]confederation id 200

[R6-bgp]peer 5.5.5.5 as-number 65503

[R6-bgp]peer 5.5.5.5 connect-interface  LoopBack 0

[R6-bgp]



配置完后先看看bgp邻居是否已建立?


BGP联盟配置案例及分析


BGP联盟配置案例及分析


BGP联盟配置案例及分析


是不是简洁很多了,配置完联盟,AS200内只需4条bgp邻居关系,原本需要10条。

BGP联盟配置案例及分析

现在,我们到R3、R4、R5、R6上查看R1发布的那条bgp路由(10.10.10.0/24)是否可以收到了?


BGP联盟配置案例及分析


BGP联盟配置案例及分析



BGP联盟配置案例及分析


BGP联盟配置案例及分析


你会发现,他们均收到R1发布的bgp路由,不过属性里多了括号和新增的AS号,用来防环的。


现在我们可以再R6也发布一条bgp路由,然后再R2、R1上查看,同时也可以抓包看看。


在R6进行如下配置:

[R6]int lo 60

[R6-LoopBack60]ip add 60.60.60.60 24

[R6-LoopBack60]qu

[R6]bgp 65503

[R6-bgp]net 60.60.60.0 24

[R6-bgp]quit

[R6]


在R1、R2上查看bgp路由:

R1上查看:

BGP联盟配置案例及分析


R2上查看:

BGP联盟配置案例及分析


在R2的两个接口抓包:

BGP联盟配置案例及分析


BGP联盟配置案例及分析


在R6重新发布一些,这样抓包才能抓到R6发布的这条bgp路由:

[R6]bgp 65503

[R6-bgp]undo net 60.60.60.0 24

[R6-bgp]net 60.60.60.0 24

[R6-bgp]



R2发给R1的ebgp路由,发现as-path只有200:

BGP联盟配置案例及分析



R3发给R2的ibgp路由,发现as-path携带是括号+新增的as号:

BGP联盟配置案例及分析


所以,得出结论:

联盟新增的as号,只会在本AS(200)内传递使用,用于防环。出了AS200,就把联盟新增的as号剥离了,添加AS200。



上一篇:【RAC]升级RAC from 11.2.0.1 to 11.2.0.2 on Linux x86_64


下一篇:Linux设备驱动的分层设计思想