QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

动态 BGP 和静态 BGP

  • 2020-03-31
  • 本文字数:1551 字

    阅读完需:约 5 分钟

动态BGP和静态BGP

华为云提供“全动态 BGP”和“静态 BGP”两种公网 EIP,经常有人问我,这两种有什么区别?今天我们来介绍一下。

从传统多线到 BGP

不知道大家是否还记得当年联网打游戏,联通的兄弟和电信的兄弟,完全没法配合,延迟吓死人。这是由于每个运营商都有自己的网络,运营商之间互联点是比较少的,带宽也不大,跨网连接都要迂回到连接点还经常拥塞。


很多应用为了应付这种情况,都申请了多线,一根电信一根联通一根移动。应用在每一个运营商都申请了一个 IP 地址,多个 IP 地址共同映射到同一个内网 IP 上。电信访问走电信的 IP,移动访问走移动的 IP,联通走联通自己的 IP。



这样确实是能解决跨网的问题,但是随着运营商数量越来越多(长城、教育网等),IP 的维护越来越复杂,DNS 的智能解析要求越来越高。


我们是否有办法申请一个 IP 地址,让每一个运营商网络都有这个 IP 的路由,并且都指向我们的应用,不再跨网?即上图不再是 IP1~IP3,而只有 IP1。


BGP 类型的 EIP 就是解决这个问题的。


某段 IP 地址,在多家运营商同时广播,每家运营商网络里面都有这个 IP 的路由并指向同一个地方。这类 IP 地址就是 BGP 类型的 IP 地址。



传统多线,如果应用只申请了 IP1,在联通发布,则电信的访问者必须先走到电信与联通互联口上,进入联通网络才能访问到 IP1。


BGPIP,每一家运营商内网都有 IP1 的路由并直接指向网内的某出口,不必跨网。


在 BGP 的场景下,运营商的路由管理是比之前复杂的。老场景下,同一个 IP 段的路由只有 1 条;BGP 的场景下,本网内有 1 条,还可能从其他网学到路由。本地的路由表维护量会翻倍,优先走网内,次优跨网。


这里有个点。既然网内已经有了一条,为何还需要从其他运营商那里学路由?


如果不学,当网内路由出现问题,路由消失业务就断了;学了以后,网内故障,可以迂回到其他运营商;


路由在运营商之间交叉穿透,这会导致运营商网络维护复杂度更高,运营商缺省是不穿透的,需要客户买单。

动态 BGP 与静态 BGP

刚才说了运营商网内的事情,但 IP 地址其实是归企业所有的,运营商只是代播。那 IP 地址到底是如何发布到所有运营商的?作为一个企业,是如何跟运营商对接的?


所说的动态和静态,其实就是企业跟运营商对接的方式和 IP 广播点上有差异。


动态 BGP


企业的路由器跟所有的运营商之间建立 EBGP,IP 地址在企业的路由器上发布,运营商只负责学习并传播。若企业路由器跟运营商之间线路中断,运营商学不到路由,网内路由撤销。


这就是动态 BGP。



动态 BGP 的好处就是,路由发布点是在企业的路由器上,企业可以自己控制各个运营商的路由优先级。当某一家运营商网络抖动厉害时,企业可以主动取消对他发布的路由,而使得该运营商内网的访问者迂回其他运营商访问,旁路故障点。


静态 BGP


企业的路由器跟运营商之间只是普通的 IP 对接,不需要建立 BGP。IP 地址在运营商的网络里面发布以后,通过静态路由的方式将网段指给企业的路由器。线路的中断,企业的路由器的故障,跟运营商的 IP 发布情况没有关联关系。



静态 BGP 配置简单,而且跟运营商之间没有动态协议联动。对运营商来说,自己网内的路由都是自己发的,不需要依赖企业的发布。所以静态 BGP 比动态 BGP 便宜。


回包怎么回?


刚才说的都是入方向的流量,那出方向怎么出呢?因为源地址都是一样的,目的地址也都是随机的,如何知道该走哪家运营商出去呢?


传统多线,出方向的报文,会选择一家运营商,或者通过链路负载均衡等设备选择。


  • 动态 BGP,因为企业会学习到各个运营商的细化路由,回包匹配路由回程即可

  • 静态 BGP,还是需要单独找设备跟运营商建立 EBGP,收取运营商的路由,根据收到的路由做路由策略回程


所以,整个 internet 出口,在考虑了各种场景以后,形成的架构总图如下:



本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/6v3uRTxkuIGnt-sMAou-HA


2020-03-31 14:432213

评论

发布
暂无评论
发现更多内容

背靠香港影视集团星光文化,StarNFT问世了

鳄鱼视界

单调队列算法模板及应用

timerring

算法

使用友好的API设计理念

agnostic

API APi设计

软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

霍格沃兹测试开发学社

软件测试|不会Python RPC,一篇文章教你入门

霍格沃兹测试开发学社

SecureCRT v9.3.2最新版 激活安装教程

Rose

SSH工具 SecureCRT下载 SecureCRT激活版 SecureCRT许可证

软件测试/测试开发丨学习笔记之Allure2测试报告

测试人

Python 软件测试 自动化测试 测试开发 Allure

代开病假单|代办病假条|体检报告|诊断证明书

病假条病假单

软件测试/测试开发丨Pytest测试用例生命周期管理-Fixture

测试人

软件测试 自动化测试 测试开发 测试用例 pytest

软件测试|Python高手教你玩转 Excel 自动化

霍格沃兹测试开发学社

软件测试|Python实用炫酷技能——推导式

霍格沃兹测试开发学社

JavaScript作用域深度剖析:从局部到全局一网打尽

沉浸式趣谈

软件测试|Python神器logging,你真的了解吗?

霍格沃兹测试开发学社

软件测试|神操作!用 Python 操作 xmind 绘制思维导图

霍格沃兹测试开发学社

软件测试|一步到位教会你Python字典操作(一)

霍格沃兹测试开发学社

软件测试/测试开发丨Python常用数据结构-学习笔记

测试人

软件测试 自动化测试 测试开发 python数据结构

软件测试|Python删除列表元素的3种方法,你都会吗?

霍格沃兹测试开发学社

XMind思维导图安装教程XMind 2023最新版下载

Rose

XMind教程 XMind思维导图 XMind2023下载 XMind2023新功能 XMind如何使用

背靠香港影视集团星光文化,StarNFT问世了

股市老人

idea每次打开新的类依次排列

源字节1号

开源 软件开发 小程序开发

基于容器和Kubernetes的应用无限扩容

俞凡

Kubernetes 最佳实践 云原生

Git 远程仓库失效

Andy

Kafka008——浅谈Broker的存储架构

Codyida

后端

软件测试|PC端应用自动化最佳解决方案——Pywinauto

霍格沃兹测试开发学社

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

动态BGP和静态BGP_文化 & 方法_华为云产品与解决方案_InfoQ精选文章