热门标签 | 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服务器进行通讯。具体如下图所示:



推荐阅读
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 直播带货系统中的推流技术详解
    本文介绍了RTMP(实时消息传输协议)及其在直播带货系统中的应用,并详细探讨了带货直播系统的连麦方案,包括服务端合流和客户端合流的优势与劣势。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文详细介绍了如何在Linux系统中使用nslookup命令查询DNS服务器地址,这对于Linux服务器的运维管理是非常重要的基础知识。 ... [详细]
  • MOSS2007 中型服务场配置指南:网络负载均衡集群设置
    本文详细介绍了如何在MOSS2007环境中配置网络负载均衡集群,包括安装和配置网络负载均衡功能的具体步骤。通过本文,读者可以了解如何在多台Web服务器上安装并配置网络负载均衡,以实现高效的服务分发。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
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社区 版权所有