阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Azure ARM模式下VNet配置中需要注意的几点事项

119次阅读
没有评论

共计 3634 个字符,预计需要花费 10 分钟才能阅读完成。

虚拟网络的配置是所有公有云中非常重要的环节。把虚拟网络配置好,对整个系统的管理、维护,以及安全性都非常重要。

本文将介绍 Azure 在 ARM 模式下 VNet 配置中需要特别注意的几点。

一 Azure 的 VNet 架构

Azure 的虚拟网络叫做 VNet,VNet 内部有多个 Subnet 和一个 Gateway Subnet。

Subnet 是 VM 所在的子网,类似于企业网络中的 VLAN;Gateway Subnet 是 VPN 网关和 ER 网关所在的网段。

1. 只有 Internet 接入时 VNet 的架构

对于一般的企业应用,如下的架构就可以满足需求:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

在这种拓扑结构中,有多个生产网段:Web、APP 和 DB,以及一个管理网段 Mgmt。这四个网段都可以通过 Internet Gateway 连接到 Internet。

2. 有 IPSec VPN 接入的架构

Azure ARM 模式下 VNet 配置中需要注意的几点事项

在这种架构中,有 4 个 Subnet 外,还有一个 Gateway Subnet。在这个 Subnet 中,有两台 VPN Gateway(Azure 的 Gateway 总是成对出现的)。这个 VPN GW 负责和企业内部的 VPN GW 打通 IPSec VPN。此时,企业的内部网络和 Azure 的 VNet 就打通了。两边可以通过内部网络互相访问。但由于 IPSec VPN 是通过 Internet 连接的。企业重要的应用,IPSec VPN 在可靠性和安全性上都满足不了企业的需求。

3. 有 ER 接入的架构

Azure ARM 模式下 VNet 配置中需要注意的几点事项

这种架构有些类似于上种架构,只是连接企业的方式改成了 MSTP 的 Express Route 模式。由于 MSTP 是基于 SDH 的网络,可靠性和安全性都有了大大的提升。

4. IPSec VPN 作为 ER 的备份

Azure ARM 模式下 VNet 配置中需要注意的几点事项

Azure 的 Express Route 是两根链路接入到 Azure 的,所以 ER 是有 99.9% 的 SLA 的。但有些客户还是希望有 IPSec VPN 作为 ER 的备份。如上的拓扑结构就是 IPSec VPN 作为 Express Route 的备份的架构。这种架构下,VNet 的 Subnet Gateway 中有两组 Gateway,一组是 VPN GW,另外一组是 ER Gateway。此时需要 VPN GW 和 ER GW 都是 Standard 以上类型,且 VPN GW 要求支持 BGP。也就是说,VNet 和企业间的路由是通过 BGP 打通的。但这种情况下,目前 IPSec VPN 只能作为 Express Route 的备份。Express Route 出现故障时,只能手动把流量导到 IPSec VPN,还不能实现自动的 IPSec VPN 自动切换。

二 VNet 中的地址问题

在如上的架构中有一个需要解决的问题,就是企业一般会要求 APP、DB 等内部网络不能连接 Internet。而对生产网段,即 Web、APP 和 DB 网段的 SSH、RDP 等管理协议的端口都不能对外网开放,而应该通过管理网段中的堡垒机或跳板机接入这些网段中的 VM。

为满足这些需求,我们先来讨论一下 Azure VM 的地址,比如对 Web Subnet 中的两台 VM:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

每台 VM 都有三种地址:

  1. 在 VM 内部能够看到的 DIP 地址
  2. 每个 VM 对应的 PIP 地址(这个地址就是 ASM 模式中的 Public IP 地址)
  3. 每个 VM 对应负载均衡(SLB)的地址 VIP(这个地址在 ASM 模式中是 cloud service 的地址)

DIP 地址是 VM 在 NAT 之前的地址,PIP 和 VIP 都是 VM 在 NAT 之后的地址。但这两个地址有如下一些不同:

  1. PIP 地址只能给一台机器使用;而 VIP 地址可以给一台,也可以给多台使用,实现负载均衡
  2. PIP 地址不需要做 NAT 的规则,PIP 地址和 DIP 地址之间 NAT 是全开的,从外网可以通过 PIP 地址对 VM 进行扫描;VIP 地址需要做 NAT 规则,需要开放的端口才做 NAT 规则,不需要开放的端口不开放,从外网扫描不到。比如,VM1 开放了 SSH 的 TCP 22 端口和 WEB 的 TCP 80 两个端口,如果 VM1 配置了 PIP 地址和 VIP 地址,同时 VIP 地址开放了 HTTP 的负载均衡。此时,通过 PIP 地址可以看到 VM1 开放的 TCP 22 和 80 端口,而通过 VIP 地址只能看到 VM1 开放的 TCP 80 端口
  3. PIP 地址在做了与 DIP 地址 1:1 的 NAT 外,还开放了 ICMP 协议,所以,如果 VM 配置了 PIP 地址,这台 VM 是可以 ping 的;而 VIP 地址没有开放 ICMP 协议,是不能 ping 的。

VIP 地址除了做负载均衡,还有一个非常重要的属性,可以做 Inbound NAT Rule,就是做 Port Mapping 端口翻译。如下图:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

相同的 TCP 22 端口通过 VIP 的翻译成 22122 和 22222。通过这个功能,可以把一些 Well Known 的端口保护起来,特别是管理端口。

具体的配置项在 Azure 的新 Portal 的:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

根据上面的介绍,不同的网段应该采用不同的策略来配置 DIP、VIP 和 PIP。

1. WEB 网段

这个网段的 VM 需要对外部提供网络服务。这个网段一般开启 VIP 地址,实现负载均衡:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

这个网段的 VM 一般不需要开启 PIP 地址。

2. APP、DB 网段

这个网段,一般不需要和外部网络通讯,只需要和本 VNet 内的虚拟机通讯,所以这种网段的 VM 只要配置 DIP 地址就 OK:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

这种配置下,只有通过内部网段地址才能访问这些虚拟机。

3. Mgmt 网段

这个网段,需要接受外部网段来访问 VM 的管理的端口,比如 SSH 或 RDP。这种网段建议采用 VIP 的 Inbound Nat Rule 做 Port Mapping 来实现隐藏管理端口实现对外部提供服务的功能。

Azure ARM 模式下 VNet 配置中需要注意的几点事项

当然也可以采用 PIP 地址来实现对外提供管理功能的端口,但这样的安全隐患比较大,不建议使用。

4. 其他网段

对于一些特殊网段,这些网段内的 VM 有一些特殊需求,比如:

  1. 要求开 ICMP 进行特殊工作
  2. 要求打开大量端口
  3. 突破 SNAT(Source NAT)对 Session 数(每秒钟 160 个)的限制

这时开 PIP 是非常有效的。另外,对一些测试机器,对安全性等没有太多需求,开 PIP 是比较方便的。

Azure ARM 模式下 VNet 配置中需要注意的几点事项

三 VNet 中的安全功能 -NSG

NSG 是 Network Security Group 的缩写,相当于网络的 ACL。它支持:

  1. 支持入向、出向的安全控制
  2. 支持应用到网段、VM 上

针对我们前面提到的 4 种网段,NSG 的设置如下:

1. WEB 网段

允许 80 端口和 VNet 内部的 22 端口访问

Azure ARM 模式下 VNet 配置中需要注意的几点事项

2. APP、DB 网段

这两个网段除允许 VNet 内部的互相访问外,对外的访问都要屏蔽

Azure ARM 模式下 VNet 配置中需要注意的几点事项

大家注意最后一条,虽然是 Deny any,但前面允许的 Inbound Rule 的流量是可以出去的。所以 NSG 的工作类似于防火墙的基于状态的过滤。

3. Mgmt 网段

这个网段需要允许外部访问管理端口,比如 TCP 22,其他的不允许进入。出方向可以访问 any。

Azure ARM 模式下 VNet 配置中需要注意的几点事项

4. 其他网段

由于开启了 PIP,相当于 VM 暴露在公网上,所以,对安全性要求非常高。此时的 NSG 要精细设置,防止出现安全隐患。

Azure ARM 模式下 VNet 配置中需要注意的几点事项

四 VNet 中的 VM 访问 PaaS 的问题

目前 Azure 的 PaaS 服务大部分都还是基于公网地址的。只有部分 PaaS 服务是可以运行在 VNet 内的。比如:Redis、Web APP 和 HDInsight。其他的服务目前还都需要通过域名的方式访问。

当然还有其他一些应用,比如 yum、apt-get、windows update 等等各种更新服务,都需要访问外部网络。这时需要对 VNet 中的 Subnet 进行特殊的安全设置。目前有两种方式:

1.采用 NSG 的方式

方法和前文相同,这里就不再详细展开了。只是对 Outbound 进行精细的控制。明确指明哪些是可以访问的,哪些是不能访问的。

2. 采用 UDR(User Define Route)的方式

这种方式是定义路由表的方式,前文中描述的,一些地址是要求能够访问的,其他地址不能访问,可以通过路由的方式实现。以 APP 层需要访问 Azure 的 MySQL PaaS 为例:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

APP 层的 VM 需要访问 Azure China East 的地址,除此之外的公网地址都不能访问。

增加 Route Table 的配置,Azure China East 的所有地址都加入 Internet 路由表,默认路由指向 None。

具体 Route Table 的配置如下:

Azure ARM 模式下 VNet 配置中需要注意的几点事项

将此 Route Table 关联到 APP 的 Subnet 就 OK 了。

图中还画了一个虚线的 VIP 负载均衡地址。这个地址的主要功能是给 Azure 的 PaaS 添加白名单使用。通过这个 VIP 固定公网 IP 地址,使得 Azure PaaS 的白名单容易部署。

两种方式都可以实现对外访问的精细控制。但在一种情况下,Route Table 的模式比 NSG 的模式好:当 VM 开启了 PIP 地址,由于 NSG 不能对 ICMP 进行控制,这时的表现是:可以 Ping 通外部网络,但不能访问。而用 Route Table 进行控制就可以阻止 Ping 通外网。

总结:在 Azure 的 VNet 中,每个 VM 都有 DIP、PIP、VIP 三种地址。另外对各个 Subnet 的安全控制,需要通过 NSG、Route Table 等功能实现。不同的 Subnet 有不同的策略和实现方式。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137345.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3634字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中