当你有多个 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. Android 开发工具类 17_setAlarm

    Alarm 是在应用程序生命周期之外设置的,所以它们十分适合于调度定时更新或者数据查询,从而避免了在后台持续运行 Service.但触发 Alarm 时,就会广播指定的 Pending Intent. ...

  2. xml常用的error-page

    <error-page> <error-code>404</error-code> <location>/WEB-INF/jsp/errors/erro ...

  3. echart 饼图数据为0不显示或者太小显示其他的解决办法

    饼图数据为0或者太小显示如下,不美观 解决办法: 为0的去掉,小于0.005的累加起来 方法 function getsData(_rowData){ var rowData=JSON.parse(J ...

  4. javascript技巧总结

    1.删除前后空格 String.prototype.trim = function () { return this.replace(/(^[ | ])|([ | ]$)/g, "" ...

  5. Maven 学习笔记(一)

    什么是 maven? 对于已经使用过 maven 的用户来说 maven 就是一个架构工具,使用它可以将代码构建成一个可发布的工具.当然也有人会说maven是一个项目管理的工具.当然各有各的说法,那么 ...

  6. InterView之PHP2

    PHP 理论知识 常用的超全局变量(8个) $_GET ----->get传送方式 $_POST ----->post传送方式 $_REQUEST ----->可以接收到get和po ...

  7. C++11中多线程库

    一.Linux 线程API 线程是在操作系统层面支持的,所以多线程的学习建议还是先找一本linux系统编程类的书,了解linux提供线程的API,了解使用线程设计程序的基本操纵.完全使用系统调用编写多 ...

  8. redis实战笔记(4)-第4章 数据安全与性能保障

    本章主要内容 4.1 将数据持久化至硬盘 4.2 将数据复制至其他机器 4.3 处理系统故障 4.4 Redis事务 4.5 非事务型流水线( non-transactional pipeline) ...

  9. ruby大神与菜鸟的代码区别

    之前Brand类   has_and_belongs_to_many :categories, index: true 现在在Category类 增加 has_and_belongs_to_many ...

  10. ASPxGridView控件的基本属性

    1.//ASPxGridView前台获取行号 <ClientSideEvents RowClick="function(s, e) { s.GetRowKey(e.visibleInd ...