CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)
如上拓扑所示
首先建立物理连接
所有接口地址用12.1.1.1
环回口地址为:1.1.1.1
先建立IGP
R1上:
R1(config)#router
R1(config-router)#router-id
R1(config-router)#net
R1(config-router)#net
R1(config-router)#net
R2上:
R2(config)#router
R2(config-router)#router-id
R2(config-router)#net
R2(config-router)#net
R3上:
R3(config)#router
R3(config-router)#router-id
R3(config-router)#net
R3(config-router)#net
查看路由表确定IGP邻居建立成功
再建立EBGP邻居:
首先是R4和R2
R4:
R4#sh
router
!
ip
R2:
R2#sh
router
!
ip
ip
ip
检查邻居建立是否成功
R3#
R3和R5的EBGP邻居建立步骤一样,建立EBGP
必须指定跳数即:neighbor
接下来建立R2和R3的IBGP邻居
R2(config-router)#neighbor
R2(config-router)#neighbor
R2(config-router)#neighbor
R2(config-router)#neighbor
R2(config-router)#neighbor
做完之后检查邻居建立情况
到目前为止我们建立了R4和R2EBGP邻居,R2和R3IBGP邻居,R3和R5EBGP邻居
我们来看看现在通告R4的环回口,看看个路由器的路由表情况
通告步骤:
R4(config)#router
R4(config-router)#network
为什么会出现“r”的路由呢?对于R2而言4.4.4.4这条路由因该是静态才对啊。
上图可以看出在R3上4.4.4.4
通过R5的路由表我们看到4.4.4.4的路由是Ebgp路由。请问现在是否能互相通信呢?我们做测试·····
结果如上图,可以看出还不能互相通信~
我们来一起分析原因:首先ping
默认情况下是R5的s0/0,那么我们看看R2上是否存在这条路由
很显然没有这条路由,一般情况下我们可以将这条路由通告进IGP中,但是我们的目的是让R4和R5的环回口通信
R5(config)#router
R5(config-router)#net
还是迷惑那条静态出现在BGP表里但是却打着“r”。我们去R2上看看
再去R4上看看
可以看到,5.5.5.5这条路由也是最优的,不用想路由表也有这条路由。那我们想想现在R4和R5是否可以通信了呢?测试一下
为什么会出现这种现象呢?这也就是比较牛逼的路由黑洞,那我们如何防止路由黑洞呢?
分析一下本实验的路由黑洞产生原因:
首先R4学到5.5.5.5路由是通过EBGP从R2那里学习到的,那么R2又是通过IBGP从R3那里学习到。在R2的路由表中去往5.5.5.5的下一跳是3.3.3.3.可是3.3.3.3又是通过ospf从R1那里学习到,所以在R2上3.3.3.3下一跳是1.1.1.1。好了到此为止R4把去往5.5.5.5的数据包送到R2,R2又送给R1.可是R1上根本没有去往5.5.5.5的路由啊!因此数据到R1就被丢弃。因此千万不要以为路由表里有的路由都是可以到达的。
防止路由黑洞的方法:
1.物理线路
2.BGP的邻居达到
3.BGP---->IGP
4.MPLS
这也就是为什么拓扑中建立R2和R1建立IBGP邻居,R1和R3建立IBGP邻居的目的了。
让R1也能学习到5.5.5.5的路由。
通过方法三来防止路由黑洞的产生
R2和R1建立IBGP邻居步骤:
R2(config-router)#neighbor
R1分别和R2、R3建立IBGP邻居步骤:
R3建立于R1IBGP关系同上。
这时我们在来ping4.4.4.4
实验总结:
建立EBGP邻居关系是一定要记住一条命令:
neighbor
建立IBGP邻居时需要注意:更新源
以上为NWWOLF原创实验小结,有不足之处希望大虾们多多指出。
补充:出现R的路由原因:
这条路由即从IBGP也从IGP学习到,这时就会打r了
它不会放进路由表但是会给其他BGP邻居传