什么是Anypoint VPC?
VPC代表虚拟私有云,它允许您在云中创建逻辑或隔离的网络,您可以在其中安全地部署或运行资源。MuleSoft CloudHub是一个多租户集成平台即服务。AnyPoint VPC允许您创建一个隔离的网络,您可以在其中托管工作程序或m子应用程序。
Anypoint VPC允许您扩展公司网络,并允许CloudHub工作者连接防火墙后面的资源。VPC使用以下技术将CloudHub工作者连接到本地数据中心
- 安全VPN隧道(IPSec隧道)
- 使用VPC对等的私有AWS。
- AWS Direct Connect。
Anypoint VPC的优势
- 在CloudHub中创建安全的虚拟网络。
- 将CloudHub连接到防火墙后面的资产。
- 安全地部署Mule运行时。
- 将Cloudhub安全地连接到任何公共云或本地数据中心。
Anypoint VPC特性
- 可以在同一区域中创建多个VPC。
- 始终在与数据中心或AWS区域相同的区域中或附近创建VPC(VPC对等)。
- 所有非生产环境(如dev,test,sit)都可以映射到非生产vpc,生产环境可以映射到生产vpc。
- 可以将多个环境映射到同一VPC。
- 始终在父业务组中创建VPC并将其与子业务组共享。
VPC大小调整
在创建VPC之前,确定CIDR(无类间动态路由)掩码非常重要。请浏览下面的视频,该视频将说明如何执行VPC大小调整,这对阅读 本文很有用。
Anypoint VPC最佳做法
- 始终在同一区域或靠近数据中心或AWS区域的地方创建VPC(VPC对等)。
- 始终选择较高或适当范围的CIDR掩码,因为一旦创建VPC,便无法更新CIDR掩码。要更改CIDR掩码,我们需要重新创建VPC,并且需要您的应用程序停机。
- 始终选择不与数据中心IP地址或子网重叠的CIDR掩码。
- 始终为生产和非生产环境创建单独的VPC。
- 始终在父业务组中创建VPC并与子业务组共享。
设置Anypoint VPC
要设置VPC,您需要导航到Runtime Manager => VPC并创建VPC。
供应商名称,CIDR块,并选择环境 需要进行的VPC的部分(也可以映射到一个单一的VPC多个环境)。通常,我们可以为产品和非产品环境创建单独的VPC(将非产品环境(例如测试,沙箱,燕麦映射到非产品VPC,将生产环境映射到产品VPC))。
选择区域 是靠近您的数据中心或AWS区域(VPC对等)。
如果您的Anypoint平台只有一个业务组,则默认情况下将选择业务组。对于多个业务组,您可以从下拉菜单中选择,并且最佳做法是在主业务组中创建VPC并与子业务组共享。
默认情况下,MuleSoft提供四个防火墙规则。您可以根据需要添加更多防火墙规则。
类型 | 港口 | 防火墙规则 |
http.port | 8081 | 可通过HTTP在VPC或公共Internet外部的任何地方访问 |
https.port | 8082 | 可通过HTTPS在VPC或公共Internet之外的任何地方访问。 |
http.private.port | 8091 | 可通过HTTP在VPC内的任何位置访问。 |
https.private.port | 8092 | 可通过HTTPS在VPC内的任何位置访问。 |
每当在端口8091或8092上部署应用程序时,都可以在VPC中对其进行访问。这意味着无法通过Internet访问该应用程序。要通过Internet访问此类应用程序,可以在VPC内创建专用的负载平衡器,并且可以允许所有人访问应用程序,也可以将CIDR列入白名单。
什么是Anypoint专用负载均衡器?
专用负载均衡器是Anypoint Platform中的可选组件,它允许将外部HTTP / HTTPs流量路由到VPC内部署到CloudHub的多个应用程序。
每个专用负载平衡器都有一个DNS A记录lb-name.lb.anypointdns.net,它解析为两个实例的两个公用IP地址。
注意: 上图中使用的IP地址仅是示例。
共享负载均衡器V / S专用负载均衡器
共享负载均衡器
- 默认情况下,共享负载均衡器在所有环境中均可用。
- 共享负载均衡器提供了诸如TCP负载均衡之类的基本功能。
- 共享负载平衡器不允许您配置自定义SSL证书和代理规则。
- 共享负载均衡器具有较低的速率限制,并且每个区域的速率限制都不同。
部署到Cloudhub的应用程序超出了共享负载均衡器的速率限制,它将返回503-服务不可用。
专用负载均衡器
- SLB的限制之一是较低的速率限制。为避免该问题,可以使用专用的负载平衡器。
- 所有应用程序都可以托管在一个域中。
- 可以在DLB上配置自定义SSL证书,并且可以选择强制执行双向身份验证。
- 处理运行您的应用程序的不同CloudHub工作者之间的负载平衡。
设置专用负载均衡器
要设置专用负载均衡器,您需要先创建VPC,然后在VPC中创建专用负载均衡器。
提供商名称,选择目标VPC,工作程序数量(对于HA,通常为2个工作程序),超时。
HTTP入站模式
- 关:使负载均衡器静默删除请求。
- 开:使用HTTP协议接受默认SSL端点上的入站请求。
- 重定向:使用HTTPS协议将请求重定向到相同的URL。
其他配置
- 禁用静态IP指定使用动态IP,当DLB重新启动时,动态IP不会保留。
- 保持URL编码指定DLB仅按原样传递%20和%23字符。
如果取消选择此选项,则DLB在将请求URI的编码部分传递给CloudHub worker之前,会对它进行解码。
支持TLS 1.0指定在客户端和DLB之间支持TLS 1.0。 - 上游TLS 1.2指定在DLB和上游CloudHub工作器之间强制TLS 1.2。
专用负载均衡器证书
配置SSL证书以启用HTTPS(公钥和私钥)。对于双向身份验证,可以配置客户端证书,这是可选的。专用负载均衡器必须至少与一对证书关联。
通常,我们通过CA机构在专用负载均衡器上配置证书。出于测试目的,您可以使用自签名证书。
OpenSSL的 REQ -则newkey RSA:2048 -节点 - KEYOUT 测试-私人。PEM - X509 -天 3000 -进行 测试-公众- CRT。佩姆
上面的命令将生成可以在专用负载均衡器上配置的私钥和公钥。或者,您可以在OpenSSL命令中绕过.cfg文件来生成证书。
您可以在.cfg文件中添加以下内容,然后传递给OpenSSL命令。
[ REQ ]
default_bits = 2048
专有名称 = req_distinguished_name
req_extensions = req_ext
提示 = 否
[ req_distinguished_name ]
countryName = 美国
stateOrProvinceName = 亚利桑那州
localityName = 凤凰城
OrganizationName = 测试
commonName = 示例。com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS。1 = api - dev。例子。com
DNS。2 = api - qa。例子。com
OpenSSL命令
OpenSSL的 REQ -则newkey RSA:2048 -节点 - KEYOUT 测试-私人。PEM - X509 -天 3000 -进行 测试-公众- CRT。pem - config test - com。CFG
创建通配符证书
您甚至可以创建通配符证书来支持子域请求。
[ REQ ]
default_bits = 2048
专有名称 = req_distinguished_name
提示 = 否
[ req_distinguished_name ]
countryName = 美国
stateOrProvinceName = 亚利桑那州
localityName = 凤凰城
OrganizationName = 测试
commonName = *。例子。com
专用负载均衡器映射规则
专用负载平衡器上使用映射规则来转换输入URI,以调用部署在CloudHub上的应用程序。模式是一个字符串,它定义用于匹配输入文本的模板。放在方括号({})中的任何值都将被视为变量。变量名称只能包含小写字母(az),不能包含其他字符,包括斜杠。
有关专用负载均衡器映射规则的更多详细信息,请阅读本文。
输入路径 |
目标应用 |
输出路径 |
协议 |
/ {app} / |
{app} |
/ |
http |
/ {app} / |
org- {app}-{subdomain} |
/ |
HTTP |
例子1
例子2
专用负载均衡器列入白名单的CIDR
为了允许专用的负载均衡器必须由一组IP地址或单个IP地址使用,您需要以CIDR表示法的形式添加这些IP地址(例如192.168.1.0/24)。
默认情况下,CIDR掩码为 0.0.0.0/0,这意味着所有IP地址均被允许访问专用负载均衡器。
什么是Anypoint VPN?
VPN代表虚拟专用网, Anypoint VPN在CloudHub和本地数据中心之间创建安全连接。
- AnyPoint VPN支持站点到站点Internet协议安全(IPSec)连接。
- 每个Anypoint VPN连接均包含两个隧道,使您可以连接到远程位置的单个公共IP地址。要连接其他远程位置,请创建另一个VPN。
- 称为VPN端点的物理或软件设备是连接端的终结器。
- 连接的MuleSoft端是虚拟专用网关(VGW)的实现。MuleSoft VGW与单个MuleSoft VPC关联,但最多可支持10个VPN连接。
- MuleSoft VGW实施支持最大1.25 Gbps的吞吐量。
VPN路由的类型
Anypoint VPN支持VPN连接的动态或静态路由。
- 动态路由-您的设备使用边界网关协议(BGP)将路由发布到Anypoint VPN。如果您的设备支持此协议,请使用BGP路由。
- 静态路由-要求您指定网络中可通过Anypoint VPN访问的路由(子网)。
静态路由 | 动态路由(BGP) |
静态路由也称为非自适应路由,除非管理员手动修改或更新它,否则它不会更改路由表。 |
动态路由也称为自适应路由,因为如果网络拓扑中发生任何更改,路由表都会自动更新。 |
静态路由是在较小的网络中实现的。 | 动态是在复杂或更大的网络中实现的。 |
静态路由非常安全。 | 动态路由不太安全。 |
静态路由不遵循任何特定协议。 | 动态路由支持BGP,RIP,EIGRP协议。 |
静态路由不使用任何复杂的路由算法来找出最短路径。 | 动态路由使用复杂的路由算法来找出最短路径。 |
Anypoint VPN IPSec隧道
VPN IPSec隧道是用于与本地数据中心建立连接的一组协议或标准。IPSec隧道应用于IP层,它使我们可以连接整个网络,而不是单个设备。
注意: 上图中使用的IP地址仅是示例。
Anypoint VPC对等
VPC对等连接两个VPC。在这种情况下,它将您的私有Amazon VPC直接配对到Anypoint VPC。这使您能够在两个VPC之间路由流量,以便它们可以像在同一网络中一样进行通信。
注意: 上图中使用的IP地址仅是示例。
设置Anypoint VPN IPSec隧道
对于设置VPN,请导航至运行时管理器⇒VPN。
名称:提供VPN的名称
VPC: 从下拉列表中选择您需要为其创建VPN的VPC。
远程IP地址: 输入您的VPN端点或VPN设备的远程IP地址。
选择动态或静态路由类型
动态路由
如果您的VPN设备支持BGP,请选择动态路由。
输入远程ASN(64512–65534),默认值为65001。您可以使用网络中的现有ASN或未分配给网络的专用ASN。
输入本地ASN(64512-65534),默认值为64512。使用专用ASN,不应将其分配给您的网络。该ASN适用于MuleSoft。
静态路由
选择“静态路由”,然后输入CIDR范围,该范围需要通过VPN进行访问(例如192.168.0.0/22)。
您可以在静态路由中使用“添加新规则”添加更多CIDR范围,并且最多可以添加95个子网。
选择隧道配置1.)自动2.)自定义
在“自动”的情况下,不需要其他配置,它将自动为您的Anypoint VPN创建一个隧道,创建后即可看到该隧道。
对于“自定义”,您需要提供PSK(8-64个字符)和点对点CIDR。您可以在169.254.0.0/16范围内指定大小/ 30 CIDR块。
CIDR块在所有VPN连接中必须是唯一的。不支持CIDR块。
- 169.254.0.0/30
- 169.254.1.0/30
- 169.254.2.0/30
- 169.254.3.0/30
- 169.254.4.0/30
- 169.254.5.0/30
- 169.254.169.252/30
创建VPN后,您可以下载VPN配置并与网络管理员共享以在VPN设备上执行配置。
状态 | 隧道1/2 | 描述 |
待定 | 下/下 | VPN连接已创建,并且操作在后台执行。 |
可用的 | 下/下 | VPN创建成功,但未配置远程端。 |
可用的 | 上/上或上/下 | VPN已成功创建,并且以主动/主动模式或主动/被动模式建立了远程连接。 |
失败的 | 下/下 | 未创建VPN连接。您需要删除并重试。 |
Anypoint VPC,VPN和DLB架构
在VPC中访问应用程序
要访问VPC中的应用程序,可以使用以下URL。
端口8091: http:// mule-worker-internal- <appname> .region.CloudHub.io:8091 /
端口8092: https:// mule-worker-internal- <appname> .region.CloudHub.io:8092 /
创建AnyPoint VPC,VPN和DLB是自助服务,但是您可以通过填充AnyPoint VPC发现模板来请求MuleSoft创建VPN IPSec隧道,VPC对等或AWS Direct Connect 。福州小程序开发
重要事项
- 创建VPC后,要修改名称CIDR掩码,您需要删除并重新创建VPC,这可能导致应用程序停机。
- 始终选择较高范围的CIDR掩码。因此,您有足够的IP地址可用。
VPC用例
- 要在安全网络或专用子网内运行集成或API,可以在VPC内部署API。例如,您具有正在访问后端数据库的系统API,并且这些API必须部署在CloudHub中的安全或专用网络中,以便同一VPC内部署的应用程序可以访问它。
- 为了创建专用的负载均衡器,我们需要创建一个VPC。
- 为了创建VPN IPSec隧道,AWS Direct Connect或VPC对等,我们需要创建一个VPC。
在许多其他用例中,我们都有VPC的要求。
在VPC中部署时通过公用Internet访问应用程序
在VPC中部署应用程序时,可以通过多种方式通过公共Internet进行API的访问。
- 根据上述防火墙规则,可以在任何位置访问这些端口,从而将应用程序部署在端口8081(http.port)或8082 (https.port)上。因此,可以使用http:// <appname> .region.CloudHub.io /或https:// <appname> .region.CloudHub.io /访问此API。
- 如果根据上述防火墙规则,将应用程序部署在端口8091 (http.private.port)或8092 (https.private.port)上,则可以在VPC中访问这些端口。因此,如果您的IP地址已在DLB配置中列入白名单,则可以使用专用的负载平衡器在我们的公共Internet上访问这些API。