当你有多个 ExpressRoute 线路时,可以通过多个路径连接到 Azure。结果就是,你所采用的路由可能不是最理想的 - 也就是说,你的流量可能会经历较长的路径才能到达 Azure,而 Azure 的流量也可能会经历较长的路径才能到达你的网络。网络路径越长,延迟越严重。延迟对应用程序性能和用户体验有直接影响。本文将详述此问题,并说明如何使用标准路由技术来优化路由。

非最优路由情况

让我们通过一个示例来详细了解路由问题。假设你在中国有两个办公室,一个在北京,一个在上海。你的办公室通过广域网 (WAN) 进行连接,该广域网可能是你自己的主干网络,也可能是你服务提供商的 IP VPN。你有两个 ExpressRoute 线路,一个在中国北部,一个在中国东部,也通过 WAN 连接。显然,你可以通过两个路径连接到 Azure 网络。现在,假设你在中国北部和中国东部都有 Azure 部署(例如 Azure App Service)。你的目的是将北京的用户连接到 Azure 中国北部,将上海的用户连接到 Azure 中国东部,因为你的服务管理员宣称每个办公室的用户都能够访问附近的 Azure 服务以获取最佳体验。遗憾的是,此方案适用于北部用户,但不适用于东部用户。以下是问题的原因。在每个 ExpressRoute 线路上,我们会向你播发 Azure 中国北部的前缀 (23.100.0.0/16) 和 Azure 中国东部的前缀 (13.100.0.0/16)。如果你不知道哪个前缀是来自哪个区域,则无法进行区别对待。你的 WAN 网络可能会认为这两种前缀更靠近中国北部而非中国东部,因此会将两个办公室的用户都路由到中国北部的 ExpressRoute 线路。结果就是,上海办公室的许多用户会很不满意。

解决方案:使用 BGP 社区

若要优化两个办公室的用户的路由,你需要知道哪个前缀来自 Azure 中国北部,哪个前缀来自 Azure 中国东部。我们使用 BGP 社区值对此信息进行编码。我们向每个 Azure 区域分配了唯一的 BGP 社区值,例如:为中国北部分配“12076:51004”,为中国东部分配“12076:51006”。现在,你知道了哪个前缀来自哪个 Azure 区域,因此可以配置哪个 ExpressRoute 线路应该为首选线路。由于我们使用 BGP 来交换路由信息,因此你可以使用 BGP 的“本地首选项(local preference)”来影响路由。在我们的示例中,你可以在中国东部将比中国北部更高的本地首选项值分配给 13.100.0.0/16。类似地,你可以在中国北部将比中国东部更高的本地首选项值分配给 23.100.0.0/16。此配置将确保当通往 Azure 的两个路径都可用时,你在北京的用户将使用中国北部的 ExpressRoute 线路连接到 Azure 中国北部,而你在上海的用户将使用中国东部的 ExpressRoute 连接到 Azure 中国东部。两边的路由都获得了优化。

立即访问http://market.azure.cn

优化 ExpressRoute 路由的更多相关文章

  1. ExpressRoute 路由要求

    若要使用 ExpressRoute 连接到 Azure 云服务,需要设置并管理路由.某些连接服务提供商以托管服务形式提供路由的设置和管理.请咨询连接服务提供商,以确定他们是否提供此类服务.如果不提供, ...

  2. vue项目性能优化(路由懒加载、gzip加速、cdn加速)

    前端工程性能优化一说意义深远悠长,本章主要介绍除了一些基础优化外如何实行路由懒加载.Gzip加速.CDN加速,让网页飞的快一些. 基础优化 老生常谈的一些: 不要在模板中写复杂的表达式 慎用watch ...

  3. Express优化-合并路由

    原app.js var express = require('express'); var app = express(); /*start*/ app.get('/',function(req,re ...

  4. ThinkPHP5 (路径优化,路由)

    路径:www.tp5.comm/index.php/index/index/index 站点路径/入口文件/模块/控制器/方法 一.绑定模块 public下的php文件,如index.php,内部写 ...

  5. vue项目优化之路由懒加载

    const login = () =>import('@/views/login'); export default new Router({ routes:[ { path:'/login', ...

  6. ExpressRoute 线路和路由域

    你必须订购一条 ExpressRoute 线路 ,以通过连接提供商将你的本地基础结构连接到 Azure.下图提供了你的 WAN 与 Azure 之间的连接的逻辑表示形式. ExpressRoute 线 ...

  7. Asp.net mvc 中的路由

    在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...

  8. ExpressRoute 常见问题

    什么是 ExpressRoute? ExpressRoute 是一项 Azure 服务,允许在 Microsoft 数据中心与本地环境或共同租用设施中的基础结构之间创建专用连接. ExpressRou ...

  9. 【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题

    问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Networ ...

随机推荐

  1. 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法

    目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...

  2. 如何使用Android Studio提高App质量

    Android Studio作为现在谷歌主推的Android开发功能,除了提供了大量的功能帮助快速开发Android代码之外,在代码质量控制方面也提供了很多工具,这些工具都放在Analyze菜单下, ...

  3. B+树 -- Java实现

    一.B+树定义 B+树定义:关键字个数比孩子结点个数小1的树. 除此之外B+树还有以下的要求: B+树包含2种类型的结点:内部结点(也称索引结点)和叶子结点.根结点本身即可以是内部结点,也可以是叶子结 ...

  4. springboot 常用插件

    热部署 使用run as -java application, 把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把IDEA的run参数里VM参数设 ...

  5. spring boot 2.0 源码分析(三)

    通过上一章的源码分析,我们知道了spring boot里面的listeners到底是什么(META-INF/spring.factories定义的资源的实例),以及它是创建和启动的,今天我们继续深入分 ...

  6. [九省联考 2018]IIIDX

    Description 题库链接 给你 \(n+1\) 个节点的一棵树,节点编号为 \(0\sim n\) , \(0\) 为根.边集为 \(\mathbb{E}=\left\{(u,v)\big|\ ...

  7. setInterval与setTimeout的区别

    在制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事.在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概 ...

  8. dev控件ASPxComboBox设置ReadOnly="true"后

    dev控件ASPxComboBox设置ReadOnly="true"后,在后台OnCallback事件中赋值前台不显示

  9. 基于.NET Core2的图片上传

    其实,.NET Core2的图片上传挺好做的,只是,有些坑要注意.......话不多说,上代码 public async Task<IActionResult> Upload([FromS ...

  10. Android 使用全局变量的问题

    现在每天都在忙,而且一忙起来,就把写笔记的事情放在了后面,最近在写程序的时候,突然要使用全局变量,就按照以前的方式,写了一个类,然后把变量都声明为静态变量,然后做为全局变量使用,但是在进行Activi ...