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 条评论
登录 后参与评论

相关文章

来自专栏Brian

深入浅出 VXLAN

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

1.2K9
来自专栏互联网技术栈

MGW——美团点评高性能四层负载均衡

美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。

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

持续集成是什么?

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

3583
来自专栏Golang语言社区

IM即时通讯实现原理

即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传...

1.9K8
来自专栏aCloudDeveloper

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

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

4436
来自专栏FreeBuf

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

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

4993
来自专栏ImportSource

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

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

8006
来自专栏Android 开发者

Android vitals 帮您解决应用质量问题

对于应用开发者而言,衡量应用成功最好的指标就是开心的用户,而且是越多越好。达到这一目的的最佳途径就是开发一个好应用,那么什么样的应用才能被称作是 “好” 应用...

1771
来自专栏Youngxj

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

2.6K3
来自专栏北京马哥教育

有福了!六步使用Python写一个小小的自动化项目监控

本文由马哥教育Python自动化实战班5期学员推荐,转载自互联网,作者为 Defshine,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出...

1.8K10

扫码关注云+社区

领取腾讯云代金券