免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

动态 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:432041

评论

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

Android BLE基础框架全新改版,android音视频开发面试题

android 程序员 移动开发

Android MVP模式深入实践探索(一),移动开发工程师简历

android 程序员 移动开发

Android NDK 开发之 CMake 必知必会,程序员必须要了解的知识点

android 程序员 移动开发

Android 使用 Kotlin 重写 Gradle 文件,kotlin教程

android 程序员 移动开发

Android WebView常见问题,androidim开发

android 程序员 移动开发

Android AOSP 6,flutter面试题

android 程序员 移动开发

OpenSearch 文档如何部署到 GitHub Page 中

HoneyMoose

Android P 网络请求相关总结,flutter二维码扫描插件

android 程序员 移动开发

Android Studio自定义模板实现一键创建MVP结构,已拿到offer

android 程序员 移动开发

Android mvvm 之 LiveData 的原理,如何保证高可用

android 程序员 移动开发

Android Studio 3,2021Android面试真题精选干货整理

android 程序员 移动开发

Android WebView独立进程解决方案,手撕面试官

android 程序员 移动开发

Android 11适配指南之系统相机拍照、打开相册,Android开发两年

android 程序员 移动开发

Android Gradle 学习笔记整理,阿里Android面试必问

android 程序员 移动开发

Android Gradle 干货,sharedpreferences跨进程

android 程序员 移动开发

OpenSearch 文档中文本地化

HoneyMoose

Android 9,flutter安装教程2019

android 程序员 移动开发

Android ViewPager2 & TabLayout,那些被大厂优化的程序员们

android 程序员 移动开发

android webview与js交互(动态添加js),【好文推荐

android 程序员 移动开发

Android 关于CPU类型的so文件兼容问题(ABI),十年Android编程开发生涯

android 程序员 移动开发

Android AutoService 组件化,android完整项目源码

android 程序员 移动开发

Android jetpack最佳总结和实践,安卓面试题宝典app

android 程序员 移动开发

Android Matrix矩阵,一个Android程序员的面试心得

android 程序员 移动开发

Android WebView独立进程解决方案(1),flutter推送通知

android 程序员 移动开发

Android 11 中的存储机制更新,android项目开发实战入门光盘文件

android 程序员 移动开发

Android Manifest功能与权限描述大全,阿里大牛整理

android 程序员 移动开发

Android Protobuf应用及原理,android输入法开发软键盘切换

android 程序员 移动开发

Android 10手势导航的侧滑返回效果优化策略,2021最新Android大厂面试真题大全

android 程序员 移动开发

Android Gradle 常用配置,androidsdk环境配置

android 程序员 移动开发

Android Handler源码浅析,一线互联网架构师筑基必备技能之Android篇

android 程序员 移动开发

Android JPEG 压缩那些事,深入解析Android-AutoLayout

android 程序员 移动开发

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