1. 课程导入与Azure企业网络全景
欢迎进入《Azure企业网络与安全边界》课程。在动手创建第一台虚拟机之前,我们需要先建立一张"地图":企业网络在Azure中到底由哪些部件构成,安全边界又画在哪里。很多初学者一上来就急着配NSG、建防火墙,结果发现流量不通、路由绕行、DNS解析失败,根本原因往往不是某个命令写错了,而是对整体结构缺乏认知。本章的目标就是先把这张地图画清楚,再搭建一套贯穿全课程的实战环境。
学习目标
完成本章后,你应当能够:用自己的话解释企业网络与安全边界的核心概念;说出Azure网络组件的分层关系以及它们各自解决的问题;独立创建一套包含虚拟网络、子网、网络安全组和虚拟机的实验环境,并验证基本连通性。这三个目标分别对应"概念—结构—动手"三个层次,后续29章都会在这套环境上展开。
企业网络与安全边界的核心概念
企业网络(Enterprise Network)指的是一个组织内部用于承载业务系统、办公终端、数据中心与外部访问的互联体系。它通常具备几个特征:地址空间经过规划、流量路径可预测、访问受策略控制、关键区域之间有明确隔离。传统企业网络以物理设备(核心交换机、防火墙、专线)为中心,而Azure企业网络把这些能力虚拟化,用软件定义的方式重新实现。
安全边界(Security Boundary)是理解本课程的关键。它不是一个"墙"的概念,而是一组"信任级别的分界"。在传统数据中心里,边界往往就是防火墙所在的位置:外网到DMZ是一道边界,DMZ到内网是另一道边界。在Azure中,边界被拆解成多个层次:订阅与资源组构成管理边界,虚拟网络构成网络边界,子网与NSG构成流量边界,Azure Firewall或NVA构成策略边界,Private Endpoint构成数据访问边界。理解"边界在哪一层、由谁执行、控制什么"比记住某个服务的名字重要得多。
Azure网络组件总览
Azure网络组件可以按"承载—连接—控制—安全—发布"五个维度来理解,而不是零散地记忆服务名。
- 承载层:Virtual Network(VNet)与Subnet提供地址空间和网段划分;Network Interface(NIC)把虚拟机接入子网;Private IP与Public IP决定寻址方式。
- 连接层:VNet Peering实现VNet之间私网互通;VPN Gateway与ExpressRoute连接本地数据中心;Azure Bastion提供安全的运维入口。
- 控制层:User Defined Route(UDR)与Route Server控制流量路径;Azure DNS与Private DNS Zone负责名称解析;Service Endpoint与Private Endpoint控制对PaaS服务的访问方式。
- 安全层:Network Security Group(NSG)做子网/NIC级五元组过滤;Azure Firewall做集中式L3-L7策略;Web Application Firewall(WAF)防护HTTP应用层攻击;DDoS Protection提供流量清洗。
- 发布层:Load Balancer(L4)与Application Gateway(L7)把内部服务暴露给用户;Front Door提供全球入口。
这些组件不是并列关系,而是有明确的层次和依赖。下图用一张结构关系图把它们组织起来,帮助你在脑中建立"从地址到策略、从内部到外部"的整体视图。
图中有一个容易被忽略的细节:流量方向与设计顺序是相反的。实际工程中,我们总是先规划地址空间和子网划分,再决定安全边界放在哪一层,最后才考虑如何对外发布。如果顺序颠倒,很容易出现"服务已经上线,却发现子网地址不够用"或"防火墙策略无法插入"的返工。
实战环境搭建
接下来搭建一套贯穿全课程的实验环境。设计目标:一个中心VNet承载共享服务,一个业务VNet承载应用,两者通过Peering互通,业务VNet内用NSG隔离Web子网与数据子网。以下参数为教学示例,你可以按自己的订阅调整,但建议保持网段规划思路一致。
| 对象 | 名称 | 地址空间 / 关键参数 |
|---|---|---|
| 资源组 | rg-netlab-eastus | 区域 East US |
| 中心VNet | vnet-hub | 10.10.0.0/16 |
| 中心子网 | snet-shared | 10.10.1.0/24 |
| 业务VNet | vnet-spoke | 10.20.0.0/16 |
| Web子网 | snet-web | 10.20.1.0/24 |
| 数据子网 | snet-data | 10.20.2.0/24 |
| NSG | nsg-web | 允许 80/443 入站,拒绝其余 |
| NSG | nsg-data | 仅允许来自 10.20.1.0/24 的 1433 |
创建VNet与子网的核心命令如下,注意地址前缀必须落在VNet地址空间内,否则会报错:
az network vnet create \
--resource-group rg-netlab-eastus \
--name vnet-hub \
--address-prefixes 10.10.0.0/16 \
--subnet-name snet-shared \
--subnet-prefixes 10.10.1.0/24
az network vnet create \
--resource-group rg-netlab-eastus \
--name vnet-spoke \
--address-prefixes 10.20.0.0/16 \
--subnet-name snet-web \
--subnet-prefixes 10.20.1.0/24
az network vnet subnet create \
--resource-group rg-netlab-eastus \
--vnet-name vnet-spoke \
--name snet-data \
--address-prefixes 10.20.2.0/24
建立Peering时要注意它是双向的:从vnet-hub到vnet-spoke创建一次,再从vnet-spoke到vnet-hub创建一次,只做单向会导致反向流量不通。创建完成后,用以下命令确认状态为Connected:
az network vnet peering create \
--resource-group rg-netlab-eastus \
--name hub-to-spoke \
--vnet-name vnet-hub \
--remote-vnet vnet-spoke \
--allow-vnet-access
az network vnet peering list \
--resource-group rg-netlab-eastus \
--vnet-name vnet-hub \
--query "[].{name:name,state:peeringState}" -o table
验证环节建议分三步:第一,在两台测试虚拟机上用 ping 或 Test-NetConnection 检查跨VNet连通性;第二,在nsg-data上临时添加一条拒绝规则,确认Web到数据的1433连接被阻断,再删除规则恢复;第三,用 az network watcher show-topology 查看拓扑,确认Peering关系被正确识别。只有"能通"和"能断"都验证过,才算真正理解了边界的作用。
az group delete --name rg-netlab-eastus --yes --no-wait。后续章节会重新创建所需资源,不必担心环境丢失。本章建立的分层视图和实验环境,是后面所有内容的基础。当你遇到"流量为什么不通"这类问题时,回到这张结构图,按承载、连接、安全、发布四层逐层排查,通常能快速定位问题所在。