VPC 深入浅出解析

概述

今天给大家介绍一下博主最近做的一个项目:VPC.VPC(Virtual Private Cloud)虚拟私有云,租户可以在云中预置一个逻辑隔离分区,自己定义的虚拟网络中启动虚拟化资源。 功能特性:

  • 网络隔离(二层网络隔离)
    • 网络虚拟化,基于EVPN的OverLay技术在物理基础上虚拟化网络。
    • VPC与VPC间是完全隔离,通过VXLAN协议对每个VPC进行隔离,这样就保证了L2的逻辑隔离。
  • 灵活定制网络环境
    • 自定义子网网段、路由表等。
  • 与公网互通
    • 通过EIP可实现与公网互通,通过NAT网关支持SNAT配置,满足VPC内资源主动访问公网需求;支持DNAT配置,提供IP映射和端口映射功能。

那么如何实现上面这些基本功能点呢?通过SDN和VXLAN技术来实现上述的基本功能点。

SDN

SDN笔记里面详细介绍了SDN的优势。实现SDN技术可以通过两种方式:1.购买硬件SDN厂商,比如:像cisco,H3C等大型网络公司提供配套的基于SDN实现的交换机。2.自己采用opendaylight和onos网络操作系统实现。各有利弊,自己权衡。无论采用商业SDN还是自研发SDN,都不会离开vxlan

VXLAN

VLAN数量只有4096个,肯定是无法满足大规模云计算IDC的需求。目前大部分IDC内部结构主要分为两种L2和L3。L2结构里面,所有的服务器组成一个大的局域网,TOR下透明的L2,不同交换机上的服务器互通靠MAC地址,通信隔离和广播隔离靠的vlan,网关在内网核心上。L3结构这是从TOR级别上就开始用协议进行互联,网关在TOR上,不同交换机之间的互通靠IP地址。 overlay技术:大致的意思可以理解为,VM挂在TOR 1上,随意把它迁移到TOR 2上,而不需要改变IP地址,这个就是L2的特长,因为这个VM和外界(网关之外)通信还靠L3,但是网关内部互访是走L2的,这个在L3里是无法做到的。因为L3里每个IP都是唯一的,地址也是固定位置的,除非你整网段物理搬迁,在L3网络里传输L2数据。 VXLAN(Virtual eXtensible LAN可扩展虚拟局域网)基于IP网络之上,采用的是MAC in UDP技术,本来OSI7层模型里就是一层叠一层的,这种和GRE/IPSEC等tunnel技术是不是很像,这种封装技术对中间网络没有特殊要求,只要你能识别IP报文即可进行传送。

为什么需要Vxlan ● 虚拟机规模受网络规格限制虚拟机规模受网络规格限制 在大二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。 ● 网络隔离能力限制 当前主流的网络隔离技术是VLAN或VPN(Virtual Private Network),在大规模的虚拟化网络中部署存在如下限制: ─ 由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量用户群的需求。 ─ 传统二层网络中的VLAN/VPN无法满足网络动态调整的需求。 ● 虚拟机迁移范围受网络架构限制 虚拟机启动后,可能由于服务器资源等问题(如CPU过高,内存不够等),需要将虚拟机迁移到新的服务器上。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址、MAC地址等参数保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。

VXLAN解决的问题 ● 针对虚拟机规模受网络规格限制 VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP/MAC地址作为外层头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。 ● 针对网络隔离能力限制 VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network ID),由24比特组成,支持多达16M((2^24-1)/1024^2)的VXLAN段,从而满足了大量的用户标识。 ● 针对虚拟机迁移范围受网络架构限制 通过VXLAN构建大二层网络,保证了在虚拟迁移时虚拟机的IP地址、MAC地址等参数保持不变

VLXNA 报文协议

Outer UDP端口使用4798,但可以修改 Outer IP头封装:源IP为发送报文的虚拟机所属的VTEP的IP地址,目的IP为目的虚拟机所属的VTEP IP地址。 Outer的目的IP地址可以是单播和组播地址,单播的情况下,目的IP为VTEP(Vxlan Tunnel End Point)的IP地址,在多播的情况下引入VXLAN的管理层,利用VNI和IP多播组的映射来确定VTEP。 当目的IP为接收端的VTEP的IP时,假如不知道这个IP地址,则需要执行ARP请求来获取,步骤如下:

  1. 目标IP被替换成与源虚拟机具有相同VNI的多播组IP地址;
  2. 所有VTEP端都接收该多播报文,VTEP查找所在主机上的全部虚拟机来匹配源虚拟机的Inner 目的MAC。
  3. 目标VTEP的虚拟机会回应该多播包,从而获得目标VTEP的IP地址。
  4. 发送端VTEP添加VNI-VTEP-虚拟机MAC的映射关系到自己的VXLAN表中,以避免再次组播学习。

Outer 以太封装:SA为发送报文的虚拟机所属的VTEP MAC地址,DA为目的虚拟机所属的VTEP上路由表中下一跳MAC地址。

总结

VXLAN介绍

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

用R语言照葫芦画瓢撸了一个简易代理~

最近正在刻苦的学习爬虫,陆陆续续的学习了正则表达式、xpath、css表达式,基本可以胜任R语言中的RCurl+XML、httr+rvest组合爬虫的需求,对G...

3647
来自专栏ImportSource

微服务与API 网关(上): 为什么需要API网关?

本文是来自于Macro在一次大会上的一个分享。 本系列共有两个部分,主要关注我们如何以及为什么要在我们的微服务应用中部署API 网关。第二部分主要关注我们如何把...

7166
来自专栏Brian

深入浅出 VXLAN

---- 概述 如果大家有做网络或者云计算相关的,大家应该都知道VXLAN以及SDN技术,在之前VPC相关技术、概念和一些技术方案。今天着重来记录一下博主对VX...

8039
来自专栏DeveWork

JGulp: 利用Gulp 配置的前端项目自动化工作流

商业竞争时代的Web 开发,效率越来越成为其中决胜的关键因素之一。在前几年的时候,前端是一片荒芜的待开垦之地,开发者更多考虑开阔更多技术疆域;而最近几年,在前端...

20810
来自专栏aCloudDeveloper

从 Bridge 到 OVS,探索虚拟交换机

Linux Bridge 和物理网络一样,虚拟网络要通信,必须借助一些交换设备来转发数据。因此,对于网络虚拟化来说,交换设备的虚拟化是很关键的一环。 上文「网络...

3276
来自专栏Youngxj

百度网盘企业版详细的开通教程

1.9K3
来自专栏Android机动车

计算机网络概念和结构

901
来自专栏FreeBuf

基于bro的计算机入侵取证实战分析

什么是计算机入侵取证 计算机取证是运用计算机及其相关科学和技术的原理和方法获取与计算机相关的证据以证明某个客观事实的过程。它包括计算机证据的确定、收集、保护、分...

4453
来自专栏阮一峰的网络日志

持续集成是什么?

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。 本文简要介绍持续集成的...

3153
来自专栏SDNLAB

思博伦OpenFlow性能测试白皮书上篇

OpenFlow性能测试目前依然处于起步阶段,虽然有少数的开源工具用于测试OpenFlow性能,但是比较OpenFlow产品的性能还没有一个标准。思博伦测试仪提...

3686

扫码关注云+社区