BPG 连接建立失败问题的答案和解析

本文是 BPG 连接建立失败问题 一文的答案和解析。

抓包文件中有两处可疑的地方。

第一处是 BGP OPEN 消息建立的过程,我可以直接 follow 这个 tcp stream:

Open 消息

可以看出:

  • Server 是可以正常和对端设备建立 TCP 连接的,所以 4 层以下的网络没有问题;
  • 在 TCP 连接建立之后,一旦发送 OPEN 消息,直接收到了 TCP RST,意味着对面的设备拒绝和我们建立 BGP 连接;
  • 我们收到的 RST 包,IP 层的 TTL 是 1,这个也很可疑。

另一处可疑的地方是,对面的设备一直再对我们发送 keepalive 的消息:

从对面发给我们的 keepalive 消息

综上可以推断:我们的 Server 和对面的设备已经存在一个 BGP 会话了,而且 Server 上建立 BGP 会话使用的 port 是 22709,根据这个 port,我们可以找出来是哪一个进程。

后来我们发现,机器上有一个 bird 进程,使用 EBGP (这也就是为什么发过来的 keepalive 包的 TTL 都是 1 的原因)与对面的设备建立连接。由于连接已经建立好了,所以我们的进程如果使用 IBGP 再尝试建立连接的话就会被直接拒绝。

为什么一次升级会触发这个问题呢?

因为之前我们的 IGBP 会话是正常的,bird 尝试的 EBGP 反而是一直失败的,在我们重启过一次之后,EBGP 会话成功建立了,我们的 IGBP 就一直失败。

(还好只是一个无关紧要的环境,上面部署的东西太乱了。)

==抓包破案录==

通过真实故障和抓包文件,学习网络分析与故障排查。

这篇文章是抓包破案录系列文章(之前叫做《计算机网络实用技术》,后来改名了)中的一篇,这个系列正在连载中,我计划用这个系列的文章来分享一些网络抓包分析的实用技术。这些文章都是总结了我的工作经历中遇到的问题,经过精心构造和编写,每个文件附带抓包文件,通过实战来学习网络抓包与分析。

如果本文对您有帮助,欢迎扫博客右侧二维码打赏支持,正是订阅者的支持,让我公开写这个系列成为可能,感谢!

如果您正在阅读的是题目类的文章,这个目录内容正好用来隔离其他读者的评论。读完题目可以稍作暂停,进行思考,继续向下滑动,可能会被其他的读者剧透答案。

没有链接的目录还没有写完,敬请期待……

  1. 序章
  2. 抓包技术以及技巧
  3. 理解网络的分层模型
  4. 数据是如何路由的
  5. 网络问题排查的思路和技巧
  6. 不可以用路由器?答案和解析
  7. 网工闯了什么祸?答案和解析阅读加餐!
  8. BPG 连接建立失败问题答案和解析
  9. 重新认识 TCP 的握手和挥手答案和解析
  10. 3.5 秒初始延迟问题答案和解析
  11. 网络断断续续……答案和解析
  12. 延迟增加了多少?答案和解析
  13. 压测的时候 QPS 为什么上不去?答案和解析
  14. TCP 下载速度为什么这么慢?答案和解析
  15. 请求为什么超时了?答案和解析
  16. 0.01% 的概率超时问题答案和解析
  17. 后记:学习网络的一点经验分享
与本博客的其他页面不同,本页面使用 署名-非商业性使用-禁止演绎 4.0 国际 协议。
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论