★浓_眉☆※兴 发表于 2012-8-14 19:44:19

BGP的困惑

本帖最后由 ★浓_眉☆※兴 于 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

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



http://bbs.spoto.net/xwb/images/bgimg/icon_logo.png 该贴已经同步到 ★浓_眉☆※兴的微博

ezsimple 发表于 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 static/image/common/back.gif
从你的拓扑和配置可以发现,在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之间是对等体的关系喔!


tea 发表于 2012-8-14 21:08:06

★浓_眉☆※兴 发表于 2012-8-14 20:44 static/image/common/back.gif
非常谢谢您的回答




数据包发往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 static/image/common/back.gif
数据包发往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路由
为什么会这样呢?-76-


ezsimple 发表于 2012-8-14 23:09:06

★浓_眉☆※兴 发表于 2012-8-14 22:56 static/image/common/back.gif
谢谢朱sir的回答!
原来如此。如图



这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体。所以你需要将R2与R4也配置为IBGP对等体,也就是我之前说的全互联。

tea 发表于 2012-8-14 23:10:27

ezsimple 发表于 2012-8-14 23:09 static/image/common/back.gif
这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体 ...

-56-            

ezsimple 发表于 2012-8-14 23:16:39

tea 发表于 2012-8-14 23:10 static/image/common/back.gif


比耿叔你快一步!

★浓_眉☆※兴 发表于 2012-8-14 23:17:30

ezsimple 发表于 2012-8-14 23:09 static/image/common/back.gif
这是BGP避免自治系统内出现环路的一种措施,即路由器不会将从IBGP对等体学习到的路由传播给其他IBGP对等体 ...

似懂非懂=不懂
可以详细点吗
如果R2 R4建立对等体 R1 R5都有彼此B的lo的路由
但是R2-R3 R3-R4建立对等体 是不是R3把R1 R5的lo路由干掉?

tea 发表于 2012-8-14 23:23:02

★浓_眉☆※兴 发表于 2012-8-14 23:17 static/image/common/back.gif
似懂非懂=不懂
可以详细点吗
如果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的路由,应该能解答你的疑惑了

页: [1] 2
查看完整版本: BGP的困惑