虚拟网络和子网
设计包含子网的 Azure 虚拟网络(VNet),了解 CIDR 地址分配,并使用网络边界隔离工作负载。
虚拟网络和子网 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。
什么是 Azure 虚拟网络
Azure 虚拟网络(VNet)是 Azure 云中由您定义和控制的逻辑隔离网络。它是 Azure 网络的基础构建块,使虚拟机、数据库和应用服务等 Azure 资源能够安全地彼此通信,并与互联网和本地网络通信。VNet 的范围限定为单个 Azure 区域,以及您创建 VNet 时定义的特定 IPv4(也可选 IPv6)CIDR 地址空间。
# Create a VNet with address space 10.0.0.0/16
az network vnet create \
--resource-group myRG \
--name myVNet \
--address-prefix 10.0.0.0/16 \
--location eastusVNet 地址空间和 CIDR 表示法
创建 VNet 时,您需要使用 CIDR 表示法分配地址空间。CIDR(无类别域间路由)表示法同时指定网络地址和网络前缀所使用的位数。例如,10.0.0.0/16 为您提供 65,536 个 IP 地址(从 10.0.0.0 到 10.0.255.255)。地址空间必须是专用 IP 范围(根据 RFC 1918,为 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16)。请选择足够大的地址空间,以容纳所有计划中的子网并留出增长空间;但如果计划建立混合连接,请避免与本地网络重叠。
什么是子网
子网会将 VNet 地址空间划分为更小的网络分段。每个子网都有自己的 IP 范围(VNet 地址空间的子集),并且可以包含不同类型的资源。子网有两个用途:组织(对相关资源进行分组)和隔离(对不同资源组应用不同的安全规则)。例如,您可以创建一个用于 Web 服务器的 Web 层子网(10.0.1.0/24)、一个用于应用程序服务器的应用层子网(10.0.2.0/24),以及一个用于数据库的数据层子网(10.0.3.0/24)。
# Create a web-tier subnet within the VNet
az network vnet subnet create \
--resource-group myRG \
--vnet-name myVNet \
--name web-tier \
--address-prefix 10.0.1.0/24Azure 保留的 IP 地址
在每个子网中,Azure 会保留前四个 IP 地址和最后一个 IP 地址供自身使用。对于 10.0.1.0/24 子网:10.0.1.0(网络地址)、10.0.1.1(默认网关)、10.0.1.2 和 10.0.1.3(为 Azure DNS 保留),以及 10.0.1.255(广播地址)。因此,/24 子网中有 251 个可用 IP 地址。调整子网大小时请考虑这一保留规则 — /28 子网只有 11 个可用地址(16 个地址减去 5 个保留地址)。
资源之间的通信
默认情况下,同一 VNet 中的资源可以使用其专用 IP 地址彼此通信,即使它们位于不同的子网中。VNet 内部通信无需额外配置。默认情况下,位于不同 VNet 中的资源无法通信,您必须使用VNet 对等互连显式连接它们。同一子网中的资源共享同一网络分段,因此它们之间的通信是 Azure 软件定义网络层中最直接的路径。
互联网通信
VNet 中的 VM 默认可以向互联网发起出站连接,Azure 会通过托管 NAT 服务自动提供出站互联网访问。若要从互联网入站访问,资源需要将公共 IP 地址分配给其网络接口或负载均衡器。然后,您可以使用网络安全组(NSG)规则控制入站访问,准确指定允许使用哪些端口和协议。一种常见架构是将 Web 服务器放置在带有公共 IP 的公共子网中,并将应用程序服务器放置在只能从 Web 层访问的专用子网中。
# Assign a public IP to a VM's network interface
az network public-ip create \
--resource-group myRG \
--name myPublicIP \
--sku Standard
az network nic ip-config update \
--resource-group myRG \
--nic-name myVMNic \
--name ipconfig1 \
--public-ip-address myPublicIP路由表和自定义路由
默认情况下,Azure 会自动处理路由:子网之间的流量保留在 VNet 内,出站互联网流量通过 NAT 处理,发往 Azure 服务的流量使用 Azure 骨干网络。您可以通过路由表中的用户定义路由(UDR)覆盖这些默认行为。一种常见用途是强制所有出站互联网流量经过中心 VNet 中的网络虚拟设备(NVA)或Azure Firewall,以进行集中检查。您可以创建路由表、添加路由条目,然后将该表与一个或多个子网关联以应用这些路由。
# Force all internet traffic through Azure Firewall
az network route-table create \
--resource-group myRG \
--name myRouteTable
az network route-table route create \
--resource-group myRG \
--route-table-name myRouteTable \
--name defaultRoute \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address 10.0.0.4Azure 服务的委托子网
某些 Azure 服务(例如 Azure 应用服务(VNet 集成)、Azure Kubernetes 服务、Azure SQL 托管实例和 Azure Databricks)要求使用委托给该服务的专用子网。委托子网表示 Azure 可以代表您将特定于服务的资源(网络接口、内部 IP 地址)注入该子网。您无法在委托子网中部署其他类型的资源,因为该子网专门保留给相应的 Azure 服务使用。规划使用需要委托的服务时,请始终分配具有足够 IP 空间的专用子网。
VNet 设计最佳实践
VNet 设计的关键最佳实践包括:创建 VNet 之前先规划地址空间,因为如果不重新创建资源,就无法更改地址空间。为每个应用层使用独立子网,以便应用不同的安全策略。如果计划通过 VPN 或 ExpressRoute 进行连接,请避免与本地网络的地址空间重叠。为需要扩展的服务预留更大的子网(例如 AKS 节点池)。清晰地命名资源(例如 vnet-prod-eastus-001),以便进行大规模管理。与临时构建的 VNet 相比,设计良好的 VNet 更容易保护和排查故障。
本地网络连接到 VNet
Azure VNet 可以通过两种机制连接到本地网络:VPN 网关——通过公共互联网建立加密的 IPsec/IKE 隧道,适合中等带宽需求且成本较低;Azure ExpressRoute——通过网络提供商合作伙伴建立专用的私有光纤连接,相比 VPN 可提供更高带宽、更低延迟和更可预测的性能。对于敏感工作负载或需要保证带宽的场景,ExpressRoute 是首选方案,但其成本明显更高,配置等待时间也更长。
VNet 大小规划指南
规划 VNet 的地址空间大小时,需要同时考虑当前和未来的需求。常见的企业模式是:VNet 地址空间:/16(65,536 个地址);子网:每个工作负载层使用一个 /24(每个子网有 251 个可用地址)。一个 /16 VNet 可以包含 256 个 /24 子网,这对大多数环境来说绰绰有余。对于超大型环境,可以使用 /8,或申请多个互不重叠的范围。请始终为增长预留空间:如果今天分配 /24,而明年可能需要 /22,之后就会面临繁琐的重新编址工作。
快速检查
请测试您对本课中 Microsoft Azure 基础知识(AZ-900)概念的理解。
课程回顾
本课介绍了以下内容:Azure VNet 是一个具有明确 CIDR 地址空间、限定在单个区域内的逻辑隔离网络;子网将 VNet 划分为多个网段,以实现组织和安全策略隔离;以及Azure 会为每个子网保留 5 个 IP 地址,并且同一 VNet 中的资源默认通过私有网络相互通信,无需额外配置。接下来,我们将学习 Network Security Group 和 Application Security Group,以便筛选流量。
用 AI 导师学习 Azure Fundamentals — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「虚拟网络和子网」课时是免费的吗?
是的 — 「虚拟网络和子网」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。
「虚拟网络和子网」这节课中我会学到什么?
设计包含子网的 Azure 虚拟网络(VNet),了解 CIDR 地址分配,并使用网络边界隔离工作负载。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Azure Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「虚拟网络和子网」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Azure Fundamentals 课中编写并运行代码吗?
能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。