设为首页收藏本站language 语言切换
查看: 4991|回复: 10
收起左侧

[原创] BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)

[复制链接]
发表于 2011-8-24 11:20:35 | 显示全部楼层 |阅读模式
如上拓扑所示  练习BGP基本配置
首先建立物理连接
所有接口地址用12.1.1.1 255.255.255.0············以此类推
环回口地址为:1.1.1.1 255.255.255.255············以此类推
先建立IGP OSPF
R1上:
R1(config)#router ospf 110
R1(config-router)#router-id 1.1.1.1
R1(config-router)#net 1.1.1.1 0.0.0.0 area 0
R1(config-router)#net 12.1.1.0 0.0.0.255 area 0
R1(config-router)#net 13.1.1.0 0.0.0.255 area 0
R2上:
R2(config)#router ospf 110
R2(config-router)#router-id 2.2.2.2
R2(config-router)#net 2.2.2.2 0.0.0.0 area 0
R2(config-router)#net 12.1.1.0 0.0.0.255 area 0
R3上:
R3(config)#router ospf 110
R3(config-router)#router-id 3.3.3.3
R3(config-router)#net 3.3.3.3 0.0.0.0 area 0
R3(config-router)#net 13.1.1.0 0.0.0.255 area 0
查看路由表确定IGP邻居建立成功
再建立EBGP邻居:
首先是R4R2
R4
R4#sh run | b r b
router bgp 4
no synchronization
bgp router-id 4.4.4.4
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 ebgp-multihop 255
neighbor 2.2.2.2 update-source Loopback0
no auto-summary
!
ip route 2.2.2.2 255.255.255.255 Serial0/1
R2
R2#sh run | b r b
router bgp 1
no synchronization
bgp router-id 2.2.2.2
bgp log-neighbor-changes
neighbor 4.4.4.4 remote-as 4
neighbor 4.4.4.4 ebgp-multihop 255
neighbor 4.4.4.4 update-source Loopback0
no auto-summary
!
ip http server
ip classless
ip route 4.4.4.4 255.255.255.255 Serial0/1
检查邻居建立是否成功
R3# sh ip bgp summary
R3R5EBGP邻居建立步骤一样,建立EBGP 邻居时重要注意一点
必须指定跳数即:neighbor 4.4.4.4 ebgp-multihop 255 否则邻居关系将建立不成功
接下来建立R2R3IBGP邻居
R2(config-router)#neighbor nwwolf peer-group (相当于定义一个类)
R2(config-router)#neighbor nwwolf remote-as 1
R2(config-router)#neighbor nwwolf update-source loo 0
R2(config-router)#neighbor nwwolf next-hop-self (必须要填加的)
R2(config-router)#neighbor 3.3.3.3 peer-group nwwolf(调用类)
做完之后检查邻居建立情况
到目前为止我们建立了R4R2EBGP邻居,R2R3IBGP邻居,R3R5EBGP邻居
我们来看看现在通告R4的环回口,看看个路由器的路由表情况
通告步骤:
R4(config)#router bgp 4
R4(config-router)#network 4.4.4.4 mask 255.255.255.255
为什么会出现“r”的路由呢?对于R2而言4.4.4.4这条路由因该是静态才对啊。
上图可以看出在R34.4.4.4 这条路由是最优的,再去R5上看看

<IMG title="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" name=image_operate_76981314088141584 alt="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" src="http://s3.sinaimg.cn/middle/6bb4e5cd4ab27eb9e3bf2&690" real_src="http://s3.sinaimg.cn/middle/6bb4e5cd4ab27eb9e3bf2&690">

<IMG title="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" name=image_operate_66371314088158738 alt="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" src="http://s9.sinaimg.cn/middle/6bb4e5cd4ab27ebd74ca8&690" real_src="http://s9.sinaimg.cn/middle/6bb4e5cd4ab27ebd74ca8&690">

<IMG title="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" name=image_operate_4991314088358038 alt="CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)" src="http://s12.sinaimg.cn/middle/6bb4e5cd4ab27ec215f4b&690" real_src="http://s12.sinaimg.cn/middle/6bb4e5cd4ab27ec215f4b&690">
通过R5的路由表我们看到4.4.4.4的路由是Ebgp路由。请问现在是否能互相通信呢?我们做测试·····
结果如上图,可以看出还不能互相通信~
我们来一起分析原因:首先ping 4.4.4.4 时用的原IP是什么?是否存在回来的路由呢?
默认情况下是R5s0/0,那么我们看看R2上是否存在这条路由
很显然没有这条路由,一般情况下我们可以将这条路由通告进IGP中,但是我们的目的是让R4R5的环回口通信 那么我们将R5的环回口通告即可。
R5(config)#router bgp 5
R5(config-router)#net 5.5.5.5 mask 5.5.5.5
还是迷惑那条静态出现在BGP表里但是却打着“r”。我们去R2上看看
再去R4上看看
可以看到,5.5.5.5这条路由也是最优的,不用想路由表也有这条路由。那我们想想现在R4R5是否可以通信了呢?测试一下
为什么会出现这种现象呢?这也就是比较牛逼的路由黑洞,那我们如何防止路由黑洞呢?
分析一下本实验的路由黑洞产生原因:
首先R4学到5.5.5.5路由是通过EBGPR2那里学习到的,那么R2又是通过IBGPR3那里学习到。在R2的路由表中去往5.5.5.5的下一跳是3.3.3.3.可是3.3.3.3又是通过ospfR1那里学习到,所以在R23.3.3.3下一跳是1.1.1.1。好了到此为止R4把去往5.5.5.5的数据包送到R2R2又送给R1.可是R1上根本没有去往5.5.5.5的路由啊!因此数据到R1就被丢弃。因此千万不要以为路由表里有的路由都是可以到达的。
防止路由黑洞的方法:
1.物理线路 达到FULL MESH
2.BGP的邻居达到 FULL MESH
3.BGP---->IGP (LAB)
4.MPLS
这也就是为什么拓扑中建立R2R1建立IBGP邻居,R1R3建立IBGP邻居的目的了。
R1也能学习到5.5.5.5的路由。
通过方法三来防止路由黑洞的产生
R2R1建立IBGP邻居步骤:
R2(config-router)#neighbor 1.1.1.1 peer-group nwwolf
R1分别和R2R3建立IBGP邻居步骤:
R3建立于R1IBGP关系同上。
这时我们在来ping4.4.4.4
实验总结:
建立EBGP邻居关系是一定要记住一条命令:
neighbor 4.4.4.4 ebgp-multihop 255 否则邻居关系将建立不成功
建立IBGP邻居时需要注意:更新源 update-source loo 0
                          下一跳:next-hop-self(用来防止学到BGP路由不是最优的)
以上为NWWOLF原创实验小结,有不足之处希望大虾们多多指出


该贴已经同步到 nwwolf的微博
发表于 2011-8-24 13:26:05 | 显示全部楼层
有难度。。。。。。。。
沙发 2011-8-24 13:26:05 回复 收起回复
回复 支持 反对

使用道具 举报

 成长值: 64970
发表于 2011-8-24 14:16:19 | 显示全部楼层
楼主图片挂了呀
板凳 2011-8-24 14:16:19 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-10 09:29:15 | 显示全部楼层
找好久啦!!
地板 2011-11-10 09:29:15 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-5-2 07:51:04 | 显示全部楼层
请问给我,为什,我如此照做,但是,我始终没有办法使R4, R5互相ping通呢??实际上,以这个图为例,R4 Ping R2 直连借口可以ping通,但是ping R2的另外一个端口就ping不通了。。。从路由表上看,貌似路由都有,就是不通。也就是说,R4ping R2的 se 0/1口,没问题,但是没法ping R2的 se 0/0口。连这个口都不通,自然也就没法ping 通 R5。我在GNS3 上做实验的。为什么呢?
5# 2012-5-2 07:51:04 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-5-2 07:58:42 | 显示全部楼层
你好,我有几个疑问,希望你能给予解释。我在GNS3上,照着那个把这个BGP实验做了一遍,但是,我始终无法使两端,R4-R5ping 通。实在非常困惑。我发现有个很奇怪的问题:R4 ping R2 se 0/1可以通,但是,ping R2 se 0/0 就不通了(以你的图为例)。很奇怪的。。这等于,R2都不能通,更别提,ping 通 R5了。。。所有的配置,我都不觉有什么问题,你能给解释解释嘛?
6# 2012-5-2 07:58:42 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-9-15 17:10:41 | 显示全部楼层
7# 2012-9-15 17:10:41 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-10-9 22:59:47 | 显示全部楼层
楼主是沃尔夫的学院吧   哈哈  看等对组的名字  呵呵
8# 2012-10-9 22:59:47 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-10-9 23:46:56 | 显示全部楼层
本帖最后由 glw366 于 2012-10-9 23:53 编辑
nanpjob 发表于 2012-5-2 07:51
请问给我,为什,我如此照做,但是,我始终没有办法使R4, R5互相ping通呢??实际上,以这个图为例,R4 Pin ...


当然ping不通了  R4没有R2 S0/0的路由, 如果想ping通就要把路由器的直连接口都宣告进BGP  
9# 2012-10-9 23:46:56 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-10-9 23:48:23 | 显示全部楼层
本帖最后由 glw366 于 2012-10-9 23:53 编辑

当然ping不通了  R4没有R2 S0/0的路由, 如果想ping通就要把路由器的直连接口都宣告进BGP。 上面我多打个字。。。。。。。。
10# 2012-10-9 23:48:23 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-18 17:10 , Processed in 0.087267 second(s), 21 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表