当你有多个 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. Ubuntukylin-14.04-desktop(带分区)安装步骤详解

    不多说,直接上干货! 成功! Ubuntukylin-14.04-desktop( 不带分区)安装步骤详解 Ubuntukylin-14.04-desktop( 不带分区)安装步骤详解 Ubuntu1 ...

  2. C51单片机中data、idata、xdata、pdata的区别

    C51单片机中data.idata.xdata.pdata的区别 data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小. idata: 固定指前 ...

  3. R语言中常用包(二)

    数据导入 以下R包主要用于数据导入和保存数据 feather:一种快速,轻量级的文件格式.在R和python上都可使用readr:实现表格数据的快速导入.中文介绍可参考这里readxl:读取Micro ...

  4. Pyltp使用

    1.先使用pip安装pyltp-0.2.1-cp36-cp36m-win_amd64.whl 2.再参考API文档进行具体的使用:http://pyltp.readthedocs.io/zh_CN/d ...

  5. vue 监听对象里的特定数据

    vue  监听对象里的特定数据变化 通常是这样写的,只能监听某一个特定数据 watch: { params: function(val) { console.log(val) this.$ajax.g ...

  6. linux svn 自启动

    .svn服务自启动脚本 把脚本放在/etc/init.d/下 vi /etc/rc.d/init.d/svn svn脚本内容: #!/bin/bash # chkconfig: - # descrip ...

  7. src或者href值为base64编码代码

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgnZVJlYWR5c ...

  8. setInterval与setTimeout的区别

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

  9. SpringMVC中文件上传

    在SpringMVC中上传文件是比较方便的.主要分为以下几个步骤: 1)在applicationContext.xml中增加相应类的引用 <bean id="multipartReso ...

  10. javaScript 简单的时间格式转换【转】

    转自:http://blog.csdn.net/lxl_family/article/details/38693903.根据时间戳,转成相对的字符串形式 function timeStamp2Stri ...