热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Cloudstack高级网络架构详解

正在研究和使用cloudstack的朋友可能都有体会,它的高级网络模式(AdvancedZone)理解和实施起来比较困难,很多用户的测试工作一般都会卡在这里,经过长时间的摸索也不得要领。并且由于目前cloudstack的中文技术文档还不是很丰富,而官方文档一方面都是英文的
正在研究和使用cloudstack的朋友可能都有体会,它的高级网络模式(Advanced Zone)理解和实施起来比较困难,很多用户的测试工作一般都会卡在这里,经过长时间的摸索也不得要领。并且由于目前cloudstack的中文技术文档还不是很丰富,而官方文档一方面都是英文的,另一方面有些地方写的也不是很清楚,给国内的广大用户的学习和研究带来了很大的不便。在这里,我重点讲解一下cloudstack的高级网络模式,希望能给研究、学习和使用Cloudstack的朋友以一定的帮助。

Cloudstack的网络即服务(NaaS)特性包括2种模式:Basic与Advanced,其中最主要的区别在于对用户网络(Guest Network)采用的隔离方式;在Basic模式下,采用Security Group方式进行隔离(L3隔离);而在Advanced模式下,采用VLAN方式进行隔离(L2隔离)。对于Advanced网络模式来说,存在4种类型的网络流量:

Public Network——公共网络,一般指Internet公网;

Guest Network——私有虚拟网络,指属于每个租户自己的私有网络;

Management Network——管理网络,指管理服务器与物理主机、系统虚拟机管理地址通讯的网络;

Storage Network——存储网络,一般指二级存储虚拟机SSVM与二级存储之间通讯的网络。

另外,系统虚拟机的虚拟路由器(Virtual Router)在高级网络模式里也是十分重要的部分。它将成为租户私有网络与公共网络之间的接口,并未租户私有网络提供各种网络服务,包括:NAT、静态NAT、DHCP、DNS、Load Balancing、Port Forwording、Firewalls、Site-to-Site VPN等。

在创建高级网络Zone的时候,系统会为每一个租户(account)默认创建一个Virtual Router以及其所属的私有虚拟网络Guest Network,Guest Network的IP地址一般为在创建Zone的时候指定的CIDR地址(10.1.1.0/24),并且会为这个Guest Network分配一个VLAN ID(VLAN ID的可用范围也是在创建zone时指定的)。当然,租户可以根据自己的需要创建更多的属于自己的私有虚拟网络,每个新的私有虚拟网络也将配置自己的Virtual Router。那么高级网络模式以及Virtual Router是怎么工作的呢?我们看下面这个高级网络模式的示意图:

当高级网络创建完成后,Virtual Router会成为租户私有网络的网关,对内的虚拟网络接口配置IP地址10.1.1.1,对外的虚拟网络接口配置一个或多个公网IP地址(65.37.141.*)。而不同租户获得属于自己的私有网络Guest Network,之间相互隔离无法相互访问。租户私有网络内的虚拟机通过Virtual Router的DHCP以及DNS功能在创建时自动获取IP地址(10.1.1.0/24)和主机名;当需要访问公网时,虚拟机通过Virtual Router的NAT功能获得私有地址到公网地址的映射。

我们知道,NAT地址映射只能提供内部对外部的访问,而当外部请求进入时,是无法访问私网内部的虚拟机的。那么,当需要外部请求访问时该如何做呢?很简单,Virtual Router除了提供NAT功能外,还会提供静态NAT、Load Balancing、Port Forwarding以及防火墙功能。

静态NAT:可以将1个公网IP地址与一台虚拟机进行绑定,这台虚拟机的所有网络请求和访问都会走绑定的公网IP。

Load Balancing:网络负载均衡,指定Virtual Router公网端IP地址及相应端口,以及负载分发的虚拟机及端口,还有轮询模式,进入的网络请求就负载分发到不同的虚拟机上。

Port Forwarding:端口转发,指定Virtual Router端公网IP地址及相应端口,以及被转发到的虚拟机及相应端口,进入的网络请求就会被转发到相应的虚拟机端口上。

Firewalls:防火墙,出于网络安全的考虑,Virtual Router会默认屏蔽所有对内的访问请求,需要配置防火墙策略开启需要被访问的协议及端口。 具体的实现方式可以参考下图:

多层网络:

下面我们来看一个Cloudstack多层网络的例子。一个租户要部署自己的网络应用,包括4台Web服务器,2台APP服务器,1台DB服务器。他创建了3个虚拟网络,VLAN100 10.1.1.0/24,VLAN101 10.1.2.0/24,VLAN141 10.1.3.0/24。Web服务器配置双虚拟网卡,分别接入VLAN100与101,VLAN100通过硬件Juniper防火墙与NetScaler负载均衡器对外提供网络服务,通过VLAN101与APP服务器进行通讯;APP服务器配置双虚拟网卡分别接入VLAN101与VLAN141;DB服务器接入VLAN141,与APP服务器进行通讯。具体如下图所示:



推荐阅读
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 探讨GET与POST请求数据传输的最大容量
    在Web开发领域,GET和POST是最常见的两种数据传输方法。本文将深入探讨这两种请求方式在不同环境下的数据传输能力及其限制。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 在项目中使用 Redis 时,了解其不同架构模式(如单节点、主从复制、哨兵模式和集群)对于确保系统的高可用性和扩展性至关重要。本文将详细探讨这些模式的特点和应用场景。 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
  • 利用GitHub热门资源,成功斩获阿里、京东、腾讯三巨头Offer
    Spring框架作为Java生态系统中的重要组成部分,因其强大的功能和灵活的扩展性,被广泛应用于各种规模的企业级应用开发中。本文将通过一份在GitHub上获得极高评价的Spring全家桶文档,探讨如何掌握Spring框架及其相关技术,助力职业发展。 ... [详细]
  • 本文详细介绍了反向代理与负载均衡的概念及其在Nginx中的应用。反向代理主要用于将客户端请求转发到后端服务器,而负载均衡则通过分发请求来提高系统的响应速度和可用性。 ... [详细]
  • 本文深入探讨ZooKeeper的功能与应用场景,解释其作为开源分布式协调服务的核心作用,以及如何通过ZooKeeper实现数据的一致性和高可用性。 ... [详细]
author-avatar
从了良后
新手
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有