雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5660|回复: 17

[讨论/求助] BGP的困惑

[复制链接]
发表于 2012-8-14 19:44:19 | 显示全部楼层 |阅读模式
本帖最后由 ★浓_眉☆※兴 于 2012-8-14 20:38 编辑

如图。
问题:R1 R5都有对方的lo接口的最优路由,但无论在R1还是在R5都ping不通对方
例如:R5#ping 1.1.1.1 source 5.5.5.5 结果..... 求给点意见
R1
en
conf t
hostname R1
int s0/0
ip add 192.168.12.1 255.255.255.0
no sh
int l 0
ip add 1.1.1.1 255.255.255.255
exit
router bgp 1
neighbor 192.168.12.2 remote-as 2
network 1.1.1.1 mask 255.255.255.255
R2
en
conf t
hostname R2
int s0/0
ip add 192.168.12.2 255.255.255.0
no sh
int s0/1
ip add 192.168.23.2 255.255.255.0
no sh
int l 0
ip add 2.2.2.2 255.255.255.255
exit
router bgp 2
neighbor 192.168.12.1 remote-as 1
neighbor 4.4.4.4 remote-as 2
neighbor 4.4.4.4 **-source loopback 0
neighbor 4.4.4.4 next-hop-self
exit
router ospf 110
router-id 2.2.2.2
network 192.168.23.2 0.0.0.0 a 0
network 2.2.2.2 0.0.0.0 a 0
R3
en
conf t
hostname R3
int s0/0
ip add 192.168.23.3 255.255.255.0
no sh
int s0/1
ip add 192.168.34.3 255.255.255.0
no sh
int l 0
ip add 3.3.3.3 255.255.255.255
exit
router ospf 110
router-id 3.3.3.3
network 0.0.0.0 255.255.255.255 a 0
R4
en
conf t
hostname R4
int s0/0
ip add 192.168.34.4 255.255.255.0
no sh
int s0/1
ip add 192.168.45.4 255.255.255.0
no sh
int l 0
ip add 4.4.4.4 255.255.255.255
exit
router bgp 2
neighbor 2.2.2.2 remote-as 2
neighbor 192.168.45.5 remote-as 3
neighbor 2.2.2.2 **-source loopback 0
neighbor 2.2.2.2 next-hop-self
exit
router ospf 110
router-id 4.4.4.4
network 192.168.34.4 0.0.0.0 a 0
network 4.4.4.4 0.0.0.0 a 0
R5
en
conf t
int s0/0
ip add 192.168.45.5 255.255.255.0
no sh
int l 0
ip add 5.5.5.5 255.255.255.255
no sh
exit
router bgp 3
neighbor 192.168.45.4 remote-as 2
network 5.5.5.5 mask 255.255.255.255

补充 更新的英文打不了 变成**



该贴已经同步到 ★浓_眉☆※兴的微博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2012-8-14 20:33:51 | 显示全部楼层
从你的拓扑和配置可以发现,在R3上并没有运行BGP,这就是我们常说的路由黑洞,你可以在R3上查看一下路由表,R3并没有去往1.1.1.1/32和5.5.5.5/32的路由,所以数据包到R3上就会被丢弃。
解决办法:·1、采用全互联的方式,R2-R3、R2-R4、R3-R4成为IBGP邻居。
           2、路由反射器。
回答完毕,希望对你有帮助。
 楼主| 发表于 2012-8-14 20:44:37 | 显示全部楼层
本帖最后由 ★浓_眉☆※兴 于 2012-8-14 20:52 编辑
ezsimple 发表于 2012-8-14 20:33
从你的拓扑和配置可以发现,在R3上并没有运行BGP,这就是我们常说的路由黑洞,你可以在R3上查看一下路由表, ...

非常谢谢您的回答


在R3上开个debug发现R5去往1.1.1.1 只这样走的R5->R4->R3 所以掉进黑洞,但是还是有点困惑:
在R2上sh ip ro的时候去往5.5.5.5的下一跳是4.4.4.4 不就是R4的lo嘛 同理R4上sh ip ro 去往1.1.1.1 下一跳不就是2.2.2.2
我的意思是 不可以绕过R3吗 R2 R3之间是对等体的关系喔!


发表于 2012-8-14 21:08:06 | 显示全部楼层
★浓_眉☆※兴 发表于 2012-8-14 20:44
非常谢谢您的回答


数据包发往5.5.5.5,当包到达R2的时候,下一跳的确是4.4.4.4,但是4.4.4.4对于R2来说毕竟还是远程网络(非本地直连),因此R2无法把数据“穿越”到R4  :)。  他必须先将数据包递交给他的直连路由器,经过查表,他发现要去往5.5.5.5,下一跳是4.4.4.4,又发现4.4.4.4不是直连,于是乎又查表,发现去往4.4.4.4的有路由(通过OSPF学习到的),下一跳是R3,而R3是直连,于是乎数据包就被扔给了R3,到了R3,它就懵了,数据包去往5.5.5.5,可是他没有5.5.5.5的路由啊,于是乎,丢了个丢 :)



 楼主| 发表于 2012-8-14 22:56:19 | 显示全部楼层
本帖最后由 ★浓_眉☆※兴 于 2012-8-14 23:06 编辑
tea 发表于 2012-8-14 21:08
数据包发往5.5.5.5,当包到达R2的时候,下一跳的确是4.4.4.4,但是4.4.4.4对于R2来说毕竟还是远程网络( ...

谢谢朱sir的回答!
原来如此。如图


但还有些困惑:
如果我把R2 R4间的对等体去掉 改为R2到R3 R3到R4
结果发现R1 R5彼此没有对方B的lo路由
为什么会这样呢?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2012-8-14 23:09:06 | 显示全部楼层
★浓_眉☆※兴 发表于 2012-8-14 22:56
谢谢朱sir的回答!
原来如此。如图

这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体。所以你需要将R2与R4也配置为IBGP对等体,也就是我之前说的全互联。
发表于 2012-8-14 23:10:27 | 显示全部楼层
ezsimple 发表于 2012-8-14 23:09
这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体 ...

            
发表于 2012-8-14 23:16:39 | 显示全部楼层
tea 发表于 2012-8-14 23:10

比耿叔你快一步!
 楼主| 发表于 2012-8-14 23:17:30 | 显示全部楼层
ezsimple 发表于 2012-8-14 23:09
这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体 ...

似懂非懂=不懂
可以详细点吗
如果R2 R4建立对等体 R1 R5都有彼此B的lo的路由
但是R2-R3 R3-R4建立对等体 是不是R3把R1 R5的lo路由干掉?
发表于 2012-8-14 23:23:02 | 显示全部楼层
★浓_眉☆※兴 发表于 2012-8-14 23:17
似懂非懂=不懂
可以详细点吗
如果R2 R4建立对等体 R1 R5都有彼此B的lo的路由

“  BGP防环是通过AS_PATH实现的,而AS_PATH仅仅在路由离开AS才回被更改,因此在AS内,IBGP就没有EBGP的防环能力,为了防止环路的出现,BGP路由器不会将从IBGP邻居学习过来的路由再通告给自己其他IBGP邻居。
BGP规定不将通过一个IBGP获悉的路由传播给其他所有IBGP邻居。 这个是BGP的水平分割规则。
由于水平分割原则存在,BGP要求AS内,须保证IBGP全互联(neighbor命令 指定)。
(根本原因是在AS内部, AS-PATH不会改变,无法使用AS_PATH防环,因此很容易出现环路)  ”

===========================================




上图,B与D、D与E建立IBGP邻居关系(忽略C的存在)
这时候,如果F传递一条路由 5.5.5.0给E,而E这条路由接受自EBGP邻居F,他将路由传递给了D,
这时候,D上5.5.5.0的路由来自他的IBGP邻居E,根据上面描述的IBGP水平分割原则,他不会将此条路由传递给其他IBGP邻居,
也就不会传递给B,所以B上就没5.5.5.0的路由,应该能解答你的疑惑了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-4-27 21:05 , Processed in 0.085130 second(s), 19 queries , Gzip On.

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