雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7176|回复: 13

[讨论/求助] BGP疑惑

[复制链接]
发表于 2009-1-6 11:56:48 | 显示全部楼层 |阅读模式
我做了一个bgp的实验,R1是AS100,R2和R3是AS200,R2和R3之间起了ospf,
R1与R2用S1/0连接
R2与R3用s1/1连接,
R1在bgp中宣告了1.1.1.1,在R3是能看到这个bgp路由,没为什么ping 1.1.1.1 不通啊
谢谢
发表于 2009-1-6 12:01:43 | 显示全部楼层
我也不知道。
我帮你招 兵买马来回答吧!……
发表于 2009-1-6 12:13:27 | 显示全部楼层
把你的主要配置贴出来看看吧,这个问题是BGP的一个重要概念的理解!
发表于 2009-1-6 12:29:32 | 显示全部楼层
因为你没在r2上通告r2和r3的直连网段,r1上没有去往那个网段的路由表条目 这样数据包在回去的时候会被丢弃
发表于 2009-1-6 12:30:39 | 显示全部楼层
是不是R2要设一下next-hop-self
xiao8206 该用户已被删除
发表于 2009-1-6 12:36:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-1-6 12:48:55 | 显示全部楼层
R1根本就学不到R3的路由怎么会通了啊 BGP确实够让人着迷啊 较复杂啊 不象IGP那样好理解
发表于 2009-1-6 13:18:56 | 显示全部楼层
小模拟了一下:
R1---------------R2---------------R3
    12.12.12.0        23.23.23.0
原来R3 bgp表:
BGP table version is 1, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
* i1.1.1.0/24       12.12.12.1               0    100      0 100 i
发现下一跳为R1.由于R1不与R3直连,故不可达.
原因:EBGP路由条目在IBGP中学习是不改变下一跳地址.R2学到传给R3,下一跳地址还是R1,没有变成R2.R3发现到1.1.1.0 的下一跳12.12.12.1不可达,故不将其放到路由表
解决:
在R2上输入neighbor [R3] next-hop-self
效果:
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*>i1.1.1.0/24       2.2.2.2                  0    100      0 100 i

[ 本帖最后由 ccs1218 于 2009-1-6 13:21 编辑 ]
发表于 2009-1-6 14:04:29 | 显示全部楼层
R1-------------(--R2------R3


"R1在bgp中宣告了1.1.1.1,在R3是能看到这个bgp路由"
说明楼主没有在R2上通告OSPF内部的网络给R1,这样R1就学习不到了3.3.3.3,所以,就算你有R2上修改neighbor R3 next-hop-self,R3能学习到1.1.1.1,即路由表中有了一个B打头的路由条目,也没用的,这个只能保证ICMP包能去,不能保证能回来,回来的事是由R1负责的。分析如下:
   在R3 ping 1.1.1.1,也就是ICMP包能够到达R1。具体过程:R3 ping 1.1.1.1时,它开始检查自已的路由表有没有1.1.1.1,它发现有一个B打头的1.1.1.1路由条目,它的下一跳是23.1.1.2,因为是B打头,R3知道要进行递归查找直到找到一个不是B打头的路由条目,它利用1.1.1.1这条路由条目的下一跳----23.1.1.2为关键字开始在路由表中再检索一遍,于是它发现到一个以C打头的23.1.1.0的路由条目,根据最长匹配原则,就是它了,于是它开始封包,源地址是自已的出口IP地址---23.1.1.3,而目的地址是1.1.1.1。发给R2,R2收到此包,发现里面的目的地址是1.1.1.1于是R2与R3进行同样的递归查找,最后,把包原封不动的发给R1.R1收到此包时,发现里面的目的地址是自已的,于是开始拆包,发现里面的IP包协议字段是1,于是它知道了这是个ICMP包,它要回传一个ICMP包,于是R1开始以23.1.1.3为关键字检索路由表,发现没有23.1.1.3的路由条目(因为R2没有把R3的网络用network命令通告出去即network 23.1.1.0 mask 255.255.255.0).于是就回不去了,也就PING不通了。
    PS:ICMP还没理解好!

[ 本帖最后由 kkingkill 于 2009-1-6 14:14 编辑 ]
发表于 2009-1-6 15:48:47 | 显示全部楼层
呵呵 大家很激烈啊 勇于发表啊  Kkingkill QQ多少啊 你是刘伟?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-25 21:08 , Processed in 0.084521 second(s), 19 queries , Gzip On.

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