请用最通俗的语言解释(请用最通俗的语言解释)

在华为的一个宣传资料里看到如下图片,不太明白企业各个分支之间连接不就是通过互联网吗,这MPLS是个啥东西了,类似于vpn?但vpn也是在互联网上建立的啊。

请用最通俗的语言解释(请用最通俗的语言解释)(1)

本人不是学网络的,掌握的网络知识非常有限,望大神能够用最通俗的语言解释一下,感谢。

MPLS,一个简单故事

请用最通俗的语言解释(请用最通俗的语言解释)(2)

生活离不开快递公司,因为需要快递公司来帮助将包裹(Packet)运送到目的地。只要在Packet上写上收件人,发件人信息,快递公司会马力全开,将包裹运送到目的地。

生活也离不开电信运营商,因为需要运营商来帮助将信息包裹(IP Packet)运送到目的地。只要在Packet上写上收件人(DestiNATion IP)发件人(Source IP)信息,运营商会马力全开,将IP包运送到目的地。

运营商与快递公司干的活没有本质的区别,如果非说有一点区别,前者是快递信息包裹,后者是快递物理包裹。

本来运营商干快递这点活很简单,所有的IP包裹在互联网(Internet)这张公共网络上传输。只要客户将包裹上写好目的地址,比如1.1.1.1,包裹上写好源地址,比如2.2.2.2。运营商收到之后,包裹按照路由表的导航指示,“嗖“地一声到了目的地1.1.1.1。返程的包裹”嗖“地一声返回源地址2.2.2.2。就这些简单活,运营商就能赚大钱,也太容易了吧?

后来出了一点状况,大家也都知道的,那就是IP地址短缺了。之所以短缺,是因为当初设计TCP/IP的一帮同志,没有远大的理想与抱负,太小家子气,将IP地址的长度限制在32个二进制位,即4个字节,一共才40多亿个IP地址。随着互联网大热,IP地址被地球人一抢而空。

越来越多的电脑需要上互联网,而上互联网一个前提就是要拥有一个IP地址,可是IP地址被抢空了,怎么办?

一个专门给电脑打补丁的国际组织IETF聚在一起,鼓捣出一个折衷的办法,那就是将三个特殊地址段的IP地址段,定义为共享IP地址,地球人可以随意使用,无需打报告申请。

这三个特殊的地址段为:

  • 10.0.0.0/8 (包含1600万 IP地址)
  • 172.16.0.0/12 (包含100万 IP地址)
  • 192.168.0.0/16 (包含6万 IP地址)

同学们,看出问题了吗?

既然地球人可以随意使用以上三个地址段,一旦互联网有一个包裹,目的地址 = 10.0.0.1,互联网往哪里运送呢?

是Alice家呢,还是Bob家呢?因为他们的电脑都在使用10.0.0.1。

IETF的那帮老同志听后莞尔一笑,既然让地球人使用,肯定咱们已经想好了对策。这个对策就是:

  • 以上三个特殊的地址段作为目的地址的IP包裹,不能直接进入互联网
  • 运营商需要在互联网的入口,将客户使用以上地址段的IP包裹,使用地址转换技术(NAT),替换成互联网IP地址。

通过NAT转换,就解决了互联网IP地址冲突的难题。互联网自从有了NAT技术的支撑,迎来了一波又一波的高潮。

NAT技术固然解决了一些问题,但是却带来了更多的问题。NAT技术解决了用户上网问题(用户访问互联网服务器),但是却没有解决用户与用户之间通信难题,也没有解决服务器访问用户的通信难题。直到写这些文字的时刻,这些问题依然没有完美解决。

之所以产生以上问题,完全是因为通信的双方中间夹着NAT这个怪物,破坏了端到端(End to End)通信。普通用户谁在乎这些问题啊,只要能上网就OK了,管那么多干嘛!

可是对于企业用户就不同了,坐在上海的办公室员工Alice(10.0.0.10)想访问同一个公司北京办公室Bob(10.1.0.10)电脑共享文件夹,两个办公室隔着互联网,可以吗?

当然可以,但需要复杂的NAT配置,纯手工的配置。配置代价太大了,以至于这是一个不可能的任务。

当然也可以使用题主提到的加密VPN技术,在上海与北京两地路由器上配置一个加密隧道,让IP包裹在加密隧道里双向流淌。这个加密隧道的流量跑在互联网上。使用了两层IP头技术,外层IP负责在互联网上传输,内层IP(10.0.0.10、10.1.0.10)负责业务。

但是,企业用户嫌弃加密VPN太慢,因为流量要在公共的互联网上抢跑道,非常影响用户体验。于是企业向运营商申请,是否有更快、更可靠的快递技术?

运营商窃喜,等您好久了,终于还是来了。运营商说,有啊,这个技术就是MPLS VPN技术。

MPLS VPN技术

Alice(10.0.0.10)与Bob (10.1.0.10) 通信,当接收到对方IP报文时,看到的IP报文里的两个IP地址一定要是这两个地址,而不是别的。换句话说,所发即所见

运营商MPLS VPN客户名单有成千上万,客户内网都在使用这个10.0.0.0/8网段。

既然客户要使用MPLS VPN网络,肯定是要端到端通信,即拒绝NAT参杂在通信过程中。

问题产生了,既要杜绝NAT技术,又要避免千万万客户IP地址冲突。什么技术可以两全其美呢,这个技术就是MPLS VPN

MPLS技术核心思想就一点:转发客户IP报文时,避免使用IP地址!这篇文字写了几千字,其实都是为了这关键的一句话做铺垫的。记住这句话,学习MPLS技术将少走一半的路。

MPLS技术其实很简单,就是在MPLS网络入口,将客户IP包裹添加两个标签(Label):

  • 外层标签负责将IP包裹运送到MPLS网络出口
  • 内层标签告知MPLS网络出口,里面的包裹是哪个客户的

这两个标签,嵌入在二层Ethernet头与三层IP头之间。一旦标签嵌入,在MPLS网络里,路由器将不会读取IP头来转发,而是只读取最外层标签来转发。MPLS网络出口,负责读取内层标签,知道是哪个客户的IP包裹,然后发给特定的客户。但是不要忘记,在发给特定用户之前,需要将所有标签清除干净。送给客户的报文,只有纯净的IP包裹,也是其本来的样子,即所发即所见。

MPLS网络入口路由器,如何知道嵌入的外层标签、内层标签具体数值?

通常入口路由器根据IP包裹从哪个子接口进来的,根据子接口与客户名单一对比,就知道是哪个客户的。每个客户使用独一无二的客户标签(内层标签)。内层标签的问题解决了。

MPLS网络里的入口路由器、出口路由器,使用了MP-BGP技术,分享了客户的IP路由表。并将每个客户路由条目放在一个互相逻辑隔离的路由表,即VRF Routing Table。并为其分配一个外层标签。

一个例子

入口路由器一旦接到目的IP = 10.0.0.10的报文,会通过子接口发现,这是Apple公司的流量。内层标签分配为 6666。

入口路由器根据Apple公司VRF Routing Table,查询10.0.0.10最优路由,最优路由指向北京的MPLS网络出口,因为通过这个出口,就可以将IP报文,转交给北京的Apple网络。

根据事先的路由条目 10.0.0.10 与外层标签的映射(使用LDP协议实现),假设标签为8888。两个入口标签就全有了。

携带着8888,6666标签的IP报文,在MPLS网络左拐右转,终于到达北京MPLS网络出口。路由器一检查6666,立马查询得到这是Apple公司的IP包裹。立马将两个标签全撕掉,通过Apple对应的子接口,将IP包裹转交给Apple北京办公室。

在整个过程中,客户的IP报文没有受到任何玷污保持原始的模样到达最终的目的地

本文中提到的MPLS VPN是三层的VPN,你可以将整个MPLS网络抽象成一台普通的路由器,提供三层(借助标签)路由器。

还有一种二层MPLS VPN技术,你可以将其抽象成一台交换机、或者一根导线,提供的是二层桥接技术。

作者|车小胖谈网络|公众号

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页