OVS隧道模式

overlay技术模型

​ Overlay网络其实就是隧道技术,即将一种网络协议包装在另一种协议中传输的技术。如果有两个使用IPv6的站点之间需要通信,而它们之间的网络使用IPv4协议,这时就需要将IPv6的数据包装在IPv4数据包中进行传输。隧道被广泛用于连接因使用不同网络而被隔离的主机和网络,使用隧道技术搭建的网络就是所谓的Overlay网络。它能有效地覆盖在基础网络之上,该模型可以很好地解决跨网络容器实现二层通信的需求。

​ 在普通的网络传输中,源IP地址和目的IP地址是不变的,而二层的帧头在每个路由器节点上都会改变,这是TCP/IP协议所作的规定。那么,如何使两个中间隔离了因特网的主机像连在同一台交换机上一样通信呢?如果将以太网帧封装在IP包中,通过中间的因特网,最后传输到目的网络中再解封装,这样就可以保证二层帧头在传输过程中不改变,这也就是早期Ethernet in IP的二层Overlay技术。至于多租户隔离问题,解决思路是将不同租户的流量放在不同的隧道中进行隔离。用于封装传输数据的协议也会有一个类似VLAN ID的标识,以区分不同的隧道。下图演示了多租户环境下Overlay技术的应用。

GRE简介

​ NVGRE使用GRE协议来封装需要传送的数据,因此需要先了解一下GRE。 GRE协议可以用来封装任何其他网络层的协议。为方便理解,这里直接通过一个VPN的例子来演示GRE封装过程。如图所示,一个公司有两个处在不同城市的办公地点需要通信。两个地点的主机都处在NAT转换之下,因此两地的主机并不能直接进行ping或ssh操作。如何才能使两个办公地点相互通信呢?通过在双方路由器上配置GRE隧道就可实现该目的。

在这里插入图片描述

  • 首先在路由器上配置一个GRE隧道的网卡设备。

  • 添加一条静态路由,将目的地址为192.168.x.0/24的包通过上面配置的隧道设备发送出去。

  • 配置完成后,分析一下从IP地址为192.168.1.1/24的主机A ping IP地址为192.168.2.1/24的主机B的过程。主机A构造好IP包后,通过查看路由表发现目的地址和本身不在同一个子网中,要将其转发到默认网关192.168.1.254上。主机A将IP包封装在以太网帧中,源MAC地址为本身网卡的MAC地址,目的MAC地址为网关的MAC地址,数据格式如图4-10所示。网关路由器收到数据帧后,去掉帧头,将IP包取出来,匹配目的IP地址和自身的路由表,确定包需要从GRE隧道设备发出,这就对这个IP包做GRE封装,即加上GRE协议头部。封装完成后,该包是不能直接发往互联网的,需要生成新的IP包作为载体来运输GRE数据包,新IP包的源地址为1.1.1.1,目的地址为2.2.2.2。当然,这个IP包会装在新的广域网二层帧中发出去,数据格式如图4-11所示。在传输过程中,中间的节点仅能看到最外层的IP包。当IP包到达2.2.2.2的路由器后,路由器将外层IP头部和GRE头部去掉,得到原始的IP数据包,再将其发往192.168.2.1。对于原始IP包而言,两个路由器之间的传输过程就如同单条链路上的一跳。在这个例子中,GRE协议封装的是IP包,实现了一个VPN的功能。

    在这里插入图片描述

    在这里插入图片描述

    OVS划分VLAN

    ​ 在计算机网络中,传统的交换机虽然能隔离冲突域,提高每一个端口的性能,但并不能隔离广播域,当网络中的机器足够多时会引发广播风暴。同时,不同部门、不同组织的机器连在同一个二层网络中也会造成安全问题。因此,在交换机中划分子网、隔离广播域的思路便形成了VLAN的概念。VLAN ( Virtual Local Area Network)即虚拟局域网,按照功能、部门等因素将网络中的机器进行划分,使之分属于不同的部分,每一个部分形成一个虚拟的局域网络,共享一个单独的广播域。这样就可以把一个大型交换网络划分为许多个独立的广播域,即VLAN。

    ​ VLAN技术将一个二层网络中的机器隔离开来,那么如何区分不同VLAN的流量呢?IEEE802.1q协议规定了VLAN的实现方法,即在传统的以太网帧中再添加一个VLAN tag字段,用于标识不同的VLAN。这样,支持VLAN的交换机在转发帧时,不仅会关注MAC地址,还会考虑到VLAN tag字段。VLAN tag中包含了TPID, PCP, CFI, VID,其中VID (VLAN ID)部分用来具体指出帧是属于哪个VLAN的。VID占12位,所以其取值范围为0到4095。下图演示了一个多交换机下VLAN划分的例子。

    在这里插入图片描述

    ​ 在分析上图之前,先来介绍一下交换机的access端口和trunk端口。图中,Port1 , Port2 , Port5 ,Port6 , Port7 , Port8为access端口,每一个access端口都会分配一个VLAN ID,标识它所连接的设备属于哪一个VLAN。当数据帧从外界通过access端口进入交换机时,数据帧原本是不带tag的,access端口给数据帧打上tag ( VLAN ID即为access端口所分配的VLAN ID );当数据帧从交换机内部通过access端口发送时,数据帧的VLAN ID必须和access端口的VLAN ID一致,access端口才接收此帧,接着access端口将帧的tag信息去掉,再发送出去。Port3 , Port4为trunk端口,trunk端口不属于某个特定的VLAN,而是交换机和交换机之间多个VLAN的通道。trunk端口声明了一组VLAN ID,表明只允许带有这些VLAN ID的数据帧通过,从trunk端口进入和出去的数据帧都是带tag的(不考虑默认VLAN的清况)。PC1和PC3属于 VLANI00, PC2和PC4属于VLAN200,所以PCI和PC3处在同一个二层网络中,PC2和PC4处在同一个二层网络中。尽管PC1和PC2连接在同一台交换机中,但它们之间的通信是需要经过路由器的。

    ​ 在这个例子中,VLAN tag是如何发挥作用的呢?当PC1向PC3发送数据时,PC1将IP包封装在以太帧中,帧的目的MAC地址为PC3的地址,此时帧并没有tag信息。当帧到达Port 1时,Port1给帧打上tag(VID=100),帧进入switch 1,然后帧通过Port3、Port4到达Switch2(Port3、Port4允许VLAN ID为100, 200的帧通过)。在switch2中,Ports所标记的VID和帧相同,MAC地址也匹配,帧就发送到Port5上,Port5将帧的tag信息去掉,然后发给PC3。由于PC2 , PC4与PC1的VLAN不同,因此收不到PC1发出的帧。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值