IXP

互联网交换中心(IXP)在互联网生态系统中发挥着关键作用。在全球范围内,100多个国家/地区有超过400个IXP,其中最大的IXP具有接近10 Tbps的峰值数据速率并连接数百个网络。IXP提供中立的共享交换结构,客户端可以在建立对等连接后相互交换流量。这意味着IXP的客户端值会随着连接到它的客户端数量而增加。

简单来说,互联网交换中心可以被视为一个大的第2层(L2)交换机。连接到IXP的每个客户端网络通过以太网接口将其一个或多个路由器连接到此交换机。来自不同网络的路由器可以通过边界网关协议(BGP)交换路由信息,然后通过以太网交换机发送流量来建立对等会话,此过程是透明的

IXP允许运营商通过其交换结构在本地互连n个客户端网络。然后,连接点的数量是根据客户端网络个数n进行扩展(例如,从每个网络到交换结构的一个100-Gbps连接),而不是n²。这可以实现更平坦的互联网,提高带宽利用率,并降低互连的成本和延迟,而且这种方式也可以应用到数据中心互连(DCI)。为了避免繁琐的双边对等会话设置,目前大多数IXP都运行路由服务器,IXP客户端通过单个(多边)BGP会话与路由服务器对等其他网络来简化对等。

IXP可以分为非营利组织(例如,行业协会,学术机构,政府机构)和营利性组织。他们的商业模式取决于监管制度和其他因素。例如,许多欧洲IXP都是依赖会员费的非营利组织。在美国,大多数IXP都是营利组织。重要的是要理解,所有IXP运营商在提供与公共无关的对等服务的同时,也可以提供商业增值服务(VAS),如安全、访问云服务、传输服务、同步、缓存等。

在过去几年中,内容分发网络(CDN)一直是IXP流量增长的主要贡献者。IXP是CDN控制运输成本的关键基础设施。通过将内容缓存放入与IXP放置其访问交换机相同的位置,可以实现这一点。这些位置通常是中性主机托管(colo)数据中心(DC)。

当今IXP

IXP最早在欧洲搞起来,欧洲由于国家小而分散,所以IXP比较多。其中位于阿姆斯特丹的AMS-IX是全球最大的IXP交换中心之一, AMS-IX成立于上世纪90年代早期,是一家位于荷兰阿姆斯特丹的中立、独立的非盈利性IXP。目前AMS-IX连接着约800个IP网络,流量峰值达到5Tbits。

此外,位于德国法兰克福的DE-CIX、伦敦的LINX,流量峰值分别达到5Tbits、3Tbits。
美国也有各种活跃的IXP,如Phoenix-IX、EQIX。最知名的是由Equinix运营的EQIX,在美国NYC、LA、San Jose、Chicago、Ashburn、Dallas及新加坡、香港等地均有设点。

亚洲区域最主要的IX是香港的HKIX,日本的IPIX,新加坡的SOX。HKIX位于香港中文大学,目前有221家ISP/ICP公司接入,交换流量约450Gbps。

国内由政府主导,在2000年代初期在北京、上海、广州(2014年扩大到10个城市)建立了为几大国有运营商为主要服务对象的互联网交换中心(也称为NAP)。但是因为国内主流电信运营商之间互联主要采用直连模式,而非通过交换中心进行流量交流,实际上并未发挥IXP的作用。于是坊间有了下水道和黑带宽的说法,在此不评论。

国内第三方中立IXP(如CHN-IX)基本未能成气候,倒是腾讯、阿里、百度通过采用BGP协议与三大运营商及众多小运营商实现网络互联,建立了事实上的IXP,只是这个交换平台局限于各家运营商的用户访问单个互联网公司的内容,接入平台的电信运营商之间并未实现BGP网络互通, 只能说有了IXP的雏形,并非真正的IXP。

IXP基础设施

在20世纪90年代的早期,IXP基于光纤分布式数据接口(FDDI)或异步传输模式(ATM),而现在的标准互连服务基于以太网。L2 IXP交换机结构本身也从一个简单的以太网交换机(通过标准局域网连接)演变为分布在多个站点上的Internet协议/多协议标签交换(IP/MPLS)交换机,这些交换机需要通过光纤连接广域网(WAN)。利用IP / MPLS交换结构实现分布式L2交换功能,可提供更好的可扩展性,更适合WAN连接。IXP交换结构在多个位置的分布有助于客户端的访问并提高网络弹性。

因此,随着位置和带宽的不断增加,灵活且可扩展的高性能连接网络成为IXP运营商的重要战略资产。对于较大的IXP,许多位置点是通过高容量DWDM WAN链路连接的,这些DWDM WAN链路通常是n x 100千兆以太网(GbE),具有更高的数据速率,如n x 400GbE。

图3显示了分布式IXP的高级标准IP / MPLS体系结构。客户端路由器通过标准的1/10 / 100GbE接口连接到不同站点(例如colo DC)中的IXP提供商边缘(PE)路由器 。(注意:根据业务模型,主机托管服务可能由IXP作为VAS提供,也可能由独立的colo DC提供商提供。)PE路由器通过高容量链路(通常是n×100Gbe DWDM)连接到核心提供商(P)路由器上。详细的体系结构取决于许多因素,如光纤的可用性和所有权,拓扑,带宽,弹性和延迟要求等。

值得注意的是,虽然基于IP/MPLS的L2交换结构现在是主流,但也有一些替代方法,如基于数据中心连接的虚拟可扩展局域网(VXLAN)。这些方法不会改变基本的架构拓扑结构,但将来很可能会广泛地部署。

此外,为了提供更好的IXP基础设施弹性,特别是对于100GbE等高容量接口,光子交叉连接(PXC)越来越多地用于客户端和PE路由器之间。如果发生故障或定期维护,PXC可以从客户端路由器切换到备用PE路由器。

IXP和SDN/NFV

分解,软件定义网络(SDN),网络功能虚拟化(NFV)和网络自动化已经应用于大型ICP的数据中心网络,现在也越来越多地用于电信网络和IXP。由于IXP网络通常比电信网络更加本地化,而且只需处理较少的传统基础设施和服务,因此它们可能是引入新网络概念的理想场所。

分解和开放加速创新。当分解技术应用于IXP路由器和传输基础设施时,它提供了横向可扩展性,确保即使意外增长也可以轻松处理,无需预先规划大型基于机箱的系统容量或升级。

值得关注的是,在一个分解的网络中,网络功能是相互分离的,并能够以自己的速度进化。这使得IXP能够在接口容量(例如400Gbe或1TB以太网)以及单芯片交换容量(每个芯片12.8T,25T,50T)和功能(例如,编程协议无关的包处理器[P4])方面无缝地引入额外的步骤。同时,底层的电子和光子集成将大大降低功耗和空间要求以及电缆的安装数量。

开放性打破了对单一供应商的依赖,使网络运营商能够利用整个行业的创新成果。

分解DWDM层:开放式系统

底层光学层将最新的光学创新和端到端物理层自动化与开放式网络方法相结合,无缝连接到SDN控制层。有许多行业论坛和协会推动了开放式应用程序编程接口(API)的发展,包括电信基础设施项目(TIP)的开放式光学和分组传输项目组,它正在引领信息模型的一致性。还有开放式ROADM (可重新配置的光分插复用器)多源协议项目,以及其他标准开发组织,如国际电信联盟的电信标准化部门(ITU-T),该组织致力于确保物理层互通。

此外,开放式光学传输系统体系结构的进步正在创造超密集、超高效的IXP应用,包括创新的1机架单元(1RU)模块化开放式传输平台和可配备为muxponder终端系统和开放式系统(OLS)光学层平台。这些分解平台专为互连应用而设计,具有高密度,灵活性和低功耗的特点。为了满足现在和将来网络运营商的可伸缩性要求,OLS的创新包括按需付费的分类方法,该方法可实现最低的启动成本。

许多IXP正在部署开放式光传输技术以扩展容量,同时降低成本,占地面积和功耗。最近的例子包括莫斯科互联网交换(MS-IX),France-IX,Swiss-IX,ESpanix,柏林商业互联网交换(BCIX)和斯德哥尔摩互联网交换(STHIX)。

分解路由器/交换机:白盒,与硬件无关的NOS,SDN和VNF

在数据中心内部路由器已完全分解,并且高度可扩展的叶脊交换机结构由白盒L2/L3交换机构建,并由SDN控制,无需使用大型路由器。使用独立于硬件和可配置网络操作系统(NOS)的白盒提供了更大的灵活性,并允许IXP操作人员只选择他们需要的那些特性。

运营商级的分解路由器/交换机白盒具有如下特点:环境硬化,增强的同步和高可用性功能,以及与硬件无关的NOS。为了确保所需的弹性,这些平台依赖于经过验证且可扩展的IP / MPLS软件功能,和支持IP / MPLS和分段路由以及面向数据中心的协议,如VXLAN和以太网虚拟专用网(EVPN)。其他服务,如安全服务,在过去可能需要路由器机箱或独立设备中的专用模块才能实现,而现在可以通过驻留在白盒或标准x86服务器上的第三方虚拟网络功能(VNFs)来支持。

P4可以增加分组交换功能。P4通过对交换机进行编程,以确定它们如何处理数据包(即,定义需要处理的协议的报头和字段)。这为硬件带来了灵活性,用户无需等待发布新芯片或指定新版协议。

全面的SDN/NFV管理功能使IXP运营商能够引入高级功能,例如按需付费,复杂流量工程,以实现分布式拒绝服务(DDOS)缓解。

SDN与IXP的更多相关文章

  1. Python 资源大全中文版

    Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...

  2. [转载]Python 资源大全

    原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex  ...

  3. python常用库

    本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...

  4. Python框架、库以及软件资源汇总

    转自:http://developer.51cto.com/art/201507/483510.htm 很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世 ...

  5. python 第三方模块 转 https://github.com/masterpy/zwpy_lst

    Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...

  6. Awesome Python

    Awesome Python  A curated list of awesome Python frameworks, libraries, software and resources. Insp ...

  7. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

  8. Python 库大全

    作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  9. Python资源汇总

    Python 目录: 管理面板 算法和设计模式 反垃圾邮件 资产管理 音频 验证 构建工具 缓存 ChatOps工具 CMS 代码分析和Linter 命令行工具 兼容性 计算机视觉 并发和并行性 组态 ...

随机推荐

  1. 写在NOIP2018后

    退役学了一周文化课,感觉还行吧 在周四就有学弟跟我说用我的源代码测329,当时还是出乎意料的. 本来期望是100+50+55+100+50+44=399,结果测得是100+55+50+100+20+4 ...

  2. sublime text3上设置 python 环境

    1. 打开Sublime text 3 安装package control 2. 安装 SublimeREPL Preferences -> package control 或者Ctrl+shi ...

  3. UI5-技术篇-事务Tcode

    1.LPD_CUST 快速启动板概览 2./N/UI2/FLPD_CONF 创建目录与组(全部客户端) 3./N/UI2/FLPD_CUST 创建目录与组(当前客户端) 4./N/UI2/FLP 编辑 ...

  4. SHELL字符串处理技巧(${}、##、%%)

      在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子 ...

  5. Hive笔记及配置

    Hive 基于Hadoop的数据仓库工具: 将结构化的数据文件,映射为一张表,并提供类SQL查询功能: 本质:将HQL转化为MapReduce程序: Hive处理的数据存储在HDFS: Hive分析数 ...

  6. 在使用pandas获取网上数据报出url错误的解决办法

    在使用pandas.read_csv('网址名')时,出现url错误是,需要在导包出添加一下两句代码 import ssl ssl._create_default_https_context = ss ...

  7. AD19新功能之ActiveRoute

    AD19新增了ActiveRoute功能(自动布线功能),强大而实用: 1.河流式布线模式 在PCB面板中选择相应的网络,选中飞线,或者按住 Alt 然后鼠标从右下往左上进行框选,选中对应的飞线 然后 ...

  8. LB_Kim

    LB_Kim 搜了一圈发现居然很少有博客说到这个东西, LB_Kim, 就是Kim设计的 下界函数 计算公式: LB_Kim(S,C)=MAX(i=1,2,3,4) d(∮(i)A,∮(i)C) em ...

  9. javascript遍历对象属性

    ":[{"name":"a2"}]}; console.log(Object.keys(obj)); Object.keys(obj).forEach ...

  10. Linux网络编程综合运用之MiniFtp实现(七)

    上节中实现了配置文件的解析,这节来实现用户登录的验证,首先用客户端来登录vsftpd来演示登录的过程: 接着再连接miniftpd,来看下目前的效果: 接下来实现它,与协议相关的模块都是在ftppro ...