公共云基础架构的流网路设备

Nutanix框架流网水设备(SGA)是支持帧远程协议(FRP)的安全反向代理。SGA允许组织安全地授予用户访问虚拟化的应用程序和/或台式机,而无需VPN。本指南旨在为希望在公共云基础架构中安装和配置SGA的客户。

对于使用公共云基础架构的客户,最佳实践是使用具有专用网络和SGA功能的Create Frame帐户来自动提供具有专用网络和SGA的框架帐户。这消除了客户管理SGA DNS记录和证书生命周期的需求。参考逐步文档有关更多详细信息。

笔记

如果您希望将相同的SGA VM(S)用于一个以上的帧帐户,使用现有的负载平衡器,或者在您的专用网络中使用用户,他们需要在使用SGA配置为专用网络的框架帐户中访问Workloads对于外部使用,需要手动SGA部署。

笔记

在部署SGA之前,客户必须具有具有注册的公共云帐户或AHV云帐户的已建立的框架客户或组织实体,计划将SGA部署在公共云基础架构上的DMZ网络中,并且至少有一个现有的帧帐户已经创建。

SGA网络体系结构

To deploy an SGA, the company’s network must allow Internet traffic to reach the SGA VM in the DMZ on tcp/443 (HTTPS and Secure WebSockets) and from the SGA VM to the network containing the Frame-managed workloads (e.g., Sandbox, production pools, Utility Servers). The SGA VM or VMs (if high-availability is required) are assumed to be deployed in a DMZ which is separate from the workload network. This is illustrated in the following diagram for public cloud infrastructure:

../../../_images/sga_public_diagram.png

请咨询网络协议和端口摘要对于SGA在公共云中具有私人网络,以确保在继续之前满足网络路由要求。

先决条件

在开始在公共云基础架构上安装和配置之前,必须满足以下先决条件:

  1. 您有一个工作框架帐户,其中至少有一个VM的生产池(例如VPC,VNET或VLAN)。工作负载网络具有一个非重叠的CIDR块,用于在SGA网络和工作负载网络之间进行路由。

  2. 您已经使用非重叠的CIDR块配置了SGA网络。

  3. 下载nginx.conf.j2gen_proxy_config.py

  4. 如果您打算将SGA用于frame的VM访问,则为这些VMS配置的Workload VLAN必须使用/18和 /24之间的CIDR。

概述

在框架帐户上设置流网水设备包括客户执行的6个主要步骤。Nutanix支持执行第七步以最终确定设置。

步骤1

定义子域名(例如SGA.company.com)和SGA的相应公共IP地址。

第2步

获取SGA公共密钥证书。

步骤3

如果不存在DMZ网络,请使用SGA VM(S)的非重叠DMZ CIDR块创建单独的DMZ网络。

步骤4

在DMZ网络中创建并配置SGA VM。

步骤5

配置防火墙(如果需要,包括NAT)和路由以从Internet启用HTTPS请求,以达到DMZ网络中的SGA VM,以及从SGA VM(S)到达的流量,以达到包含帧的工作负载网络托管工作负载。

步骤6

将SGA子域添加为一个通配符DNS条目带有与公共DNS服务器相应的公共IP地址。

步骤7

Nutanix支持配置框架帐户SGA子域的帧平台条目。

安装和配置

步骤1:定义SGA子域和相应的公共IP地址

最终用户的浏览器必须能够从Internet到达SGA。由于SGA将在组织的防火墙后面部署,因此最终用户的HTTPS请求和安全的Websocket连接(用于流)必须能够解决您组织的防火墙上的公共IP地址。从您组织的防火墙上的公共IP地址中,需要将请求转发到SGA的私人IP地址,然后从SGA到工作负载VM。

每个框架管理的工作负载VM都将具有基于FQDN的SGA子域。因此,SGA子域将需要配置为通配符DNS记录。例如,公司将需要确保:

  1. *.sga.company.com解决SGA的公共IP。

  2. SGA的公共IP地址是网络地址通过防火墙将SGA的私有IP地址翻译。

警告

请勿将公司域用作SGA域(例如,Company.com)和公司通配符证书(例如,*.company.com)用于SGA证书。

步骤2:获取SGA公共密钥证书

生成通配符SSL证书签名请求和上一步中选择的子域的相应私钥。如果此SGA旨在在生产环境中使用,请从您选择的证书授权书中获取公共通配符证书或主题替代名称(SAN)证书。如果要使用SGA进行测试或概念证明环境,则可以从免费的公共通配符证书中获得Letsencrypt

警告

请注意,让我们加密证书有一个九十天的寿命

SSL证书必须匹配DNS子域记录。例如,如果通配符SSL证书为*.sga.company.com,然后DNS子域的记录必须是*.sga.company.com(并不是Company.com)。

步骤3:创建DMZ网络

如果不存在DMZ网络,则将创建一个将包含SGA VM(S)的网络(例如VPC,VNET或VLAN)。CIDR块不得与帧工作负载网络CIDR块重叠(以及任何其他流量要路由的CIDR块)。

笔记

CIDR必须在 /18和 /24之间

步骤4:SGA VM创建

请按照下面的设置任务配置流网站设备。

描述

细节

1

创建CentOS虚拟机:

对于公共云基础架构,可以从AWS,Azure或Google Cloud Platform Marketplace/Store获得CentOS图像。在配置CentOS虚拟机之前,请确保接受IaaAS提供商的CENTOS 7.X用户协议。

2

启用S​​SH访问:

客户在CentOS VM中启用SSH访问,以便到达SGA控制台。向咨询AWS,,,,天蓝色, 或者GCP有关如何启用SSH访问CentOS VM的文档。

3

上传文件:

将以下文件上传到 /home /目录中的CENTOS VM中:

  • SSL证书链(SSL证书,中级CA证书和Root CA证书)以.crt格式

  • SSL私钥以.key格式

  • nginx.conf.j2

  • gen_proxy_config.py-确保gen_proxy_config.py是可执行的(CHMOD 755)。

4

安装Epel-Release,Nginx,DNSMASQ,Python,Iptables和Jinja:

在命令行上执行以下命令:

##设置nginxsudo yum安装epel-rease sudo yum安装nginx sudo systemctl start nginx sudo systemctl使能够nginx sudo yum -y升级sudo yum -y安装epel -rease sudo yum -y安装nginx##设置DNSMASQsudo yum -y安装dnsmasq##设置python envsudo yum安装python pip sudo pip install-upgrade pip sudo pip安装ipaddress sudo pip install jinja2

5

配置nginx:

在命令行上执行以下命令以配置nginx。

##客户复制证书捆绑包和钥匙 /主目录:sudo cp/home/< user>/customer.crt/opt/server.crt sudo cp/home/< user>/customer.key/opt/server.key.key##客户复制nginx.conf.j2 in /home目录到new /etc/nginx/nginx.conf:cp/home/< user>/nginx.conf.j2 /etc/nginx/nginx.conf chmod644/etc/nginx/nginx.conf

6

配置DNSMASQ:

在配置文件 /etc/dnsmasq.conf中更新特定属性:如下:

conf-dir=/etc/dnsmasq.d界面=lo绑定

在命令行上启用DNSMASQ:

##使用SystemCtl启用DNSMASQSystemctl使能够- 现在DNSMASQ

7

禁用Selinux:

编辑/etc/sysconfig/selinux禁用selinux。

##禁用Selinuxsudo vi/etc/sysconfig/selinux

并将Selinux =禁用到配置文件中。确保重新启动VM。

8

配置SGA:

执行以下两个命令来配置SGA并重新启动NGINX。确保CIDR对应于框架帐户网络CIDR。

Sudo光盘/home/&&./gen_proxy_config.py-domain sga.company.com -cidr10.0.1.0/24> /etc/nginx/nginx.conf sudo systemctl restart nginx##验证nginx现在正在运行SystemCTL状态NGINX

步骤5:通过SGA配置路由到工作负载VM

为确保外部用户可以到达SGA,并因此在专用网络中的工作负载VM,请验证以下内容:

  1. 应将防火墙配置为从SGA公共IP地址转发到SGA私有IP地址的端口443。

  2. 包含SGA的网络必须将端口443从SGA转发到工作负载网络。

步骤6:在公共DNS中添加SGA子域和相关的公共IP地址

在您的公共域名服务器中创建一个地址(a)记录,将您的SGA子域与SGA公共IP地址关联。

../../../_images/step6_dns.png

笔记

如果您希望将用户在您的专用网络中访问SGA后面的框架工作负载,则应配置内部DNS服务器以将SGA子域解析为SGA私人的IP地址。

步骤7:提交支持案件

要将您的框架帐户与您的SGA相关联提交支持案通过Nutanix支持门户。在支持票中提供以下信息:

  • 顾客姓名

  • 机构名称

  • 帐户名称

  • 通配符子域

  • SGA公共IP地址

SGA尺寸建议

组织可以从2个VCPU和SGA的4 GB RAM的VM配置开始。2 VCPU VM能够处理左右远程协议数据的〜1 Gbps带宽。Nutanix建议每2 VCPU的尺寸目标为500 Mbps,以使用户可以破坏其带宽消耗。

每2个VCPU预算的500 Mbps带宽的并发用户总数取决于框架会话的带宽。可以根据用户工作负载配置文件估算带宽消耗:

  • 办公生产率应用程序,仅CPU的VM,30 fps,2K或更少的监视器的每个框架1 Mbps会话

  • 每架CAD应用程序,GPU支持的VM,最多60 fps,2K或更少的监视器

  • 每帧或更高的每个框架会话,用于视频编辑/动画/持续播放,GPU支持的VM,最多60 fps,2k或更少的监视器

例如,在办公生产率用例中,例如,仅使用CPU的VM与标准的1920 x 1080显示器一起使用,默认值(2 VCPU,4 GB RAM)VM配置可以支持500个并发用户。对于1,000名并发用户,同一组织将需要至少利用4个VCPU,8 GB RAM VM。8个VCPU,16 GB RAM VM可以为此用例支持2,000个并发用户。

SGA高可用性

../../../_images/sga_diagram3.png

可以使用L2至L4负载平衡解决方案配置SGA以冗余。推荐的解决方案由两个(2)个负载平衡器组成,即物理或虚拟,创建一个单个入站负载均衡器虚拟IP地址(LBVIP)平衡至少两个(2)个流媒体网关设备。负载平衡解决方案必须具有以下配置:

  • SSL传递

  • LBVIP1或LBVIP2的持续流量

  • 通配符DNS进入LBVIP

用户流示例

框架用户通过其普通方法登录到框架平台。当用户单击所请求的桌面或应用程序时,帧平台将用户的浏览器根据SGA子域(由Nutanix帧支持配置)为FQDN引导到FQDN,该框架为框架帐户。

例如,如果子域是sga.company.comWorkload VM的私有IP地址为10.2.1.3,工作负载FQDN将为10-2-1-3.sga.company.com。该FQDN指向入站LBVIP,应用负载平衡器决定将SGA发送到哪个SGA。

内部访问SGA启用工作负载

框架管理员可能希望其专用网络中的用户在Internet上的用户在同一帧帐户中访问工作负载。

../../../_images/sga_internal_users.png

要使您的专用网络上的用户可以使用启用SGA的帧帐户,请为SGA子域配置内部DNS服务器以返回SGA VM的私人IP地址(或LOAD BALANCER上SGA的虚拟专用IP地址)。只需将SGA子域作为通配符DNS在您的私人DNS服务器中的记录,就像您在上面的第6步中所做的那样。

多个帧帐户的SGA

SGA可以配置为多个帧帐户的反向代理。使用以下步骤为多个帧帐户配置您的SGA:

  1. 使用该内存和VCPU使用SGA尺寸建议上面在您的SGA上说明扩展。

  2. 登录到SGA AS:Nutanix,Nutanix/4U

  3. SSH进入您的SGA或使用AHV控制台导航到/etc/nginxCP你的nginx.confnginx.conf.bck

  4. 从网络的角度来验证,您可以从SGA中的其他网络或子网中ping/roade/rote/rote/rote到框架工作负载。直到您确认SGA可以到达其他帐户工作负载网络之前,请勿继续。

  5. 执行以下命令为SGA VM上的root:

cd/usr/local/bin && ./gen_proxy_config.py--domain sga.company.com -cidr 10.0.1.0.0.0.0.0.2.0/24> /etc/nginx/nginx/nginx.conf Sytemctl Sytemctl restart nginx

笔记

上面的命令行语法假定您的路径中有python,并且下载了最新的gen_proxy_config.py。

  1. 提交支持票。遵循说明步骤7在本指南的“安装和配置”部分中。

故障排除

对SGA进行故障排除应通过评估解决方案的公共端,然后移至SGA命令线接口(CLI)以评估从SGA到框架工作负载VM的交通流。

../../../_images/sga_ahv_troubleshooting.png

在公共互联网上,验证以下内容以隔离用户浏览器和SGA VM之间的问题:

  • 通配符DNS指向与通配符证书相同的FQDN

    • 示例: *.sga.company.com

  • 检查SGA证书链可正确验证。

    • <信任,中级,服务器证书>

  • SGA可以到达吗https:// .sga.company.com> /index.html

    • 您应该收到HTTP内部服务器错误500。

要验证HTTPS/Secure Websocket流量是否正常从SGA到框架工作负载VM,请登录到SGA,并:

  • 验证nginx正在运行:SudoSystemctl地位nginx

  • 通过执行以下步骤来确定SGA是否可以到达框架来宾代理:

    • 获取沙盒VM的本地IP地址。

    • 转到框架仪表板,然后在沙箱上开始一个会话。

    • 在开始会话后的120秒内,在SGA VM中的Linux命令行上执行以下操作:

curl -K https:// ip_of_workload/

执行此步骤序列的原因是,框架访客代理仅在端口443上积极倾听,而框架来宾代理正在等待用户在用户的浏览器重定向到指定的工作负载VM之后连接到工作负载VM。