📅  最后修改于: 2023-12-03 15:29:33.574000             🧑  作者: Mango
Azure Virtual Network (VNet) 是基于 Azure 云平台建立的虚拟网络组件。 你可以将 Azure 资源部署到 VNet 中,并可利用 Azure VNet 的丰富功能实现安全、可靠的网络连接。
Azure 支持的 VNet 连接方式包括以下几种。
VPN 网关是 Azure VNet 连接的重要组件之一。 通过 VPN 网关建立的连接支持点对站、站对站、站对点等连接方式。
ExpressRoute 提供了一种直接连接 Azure 云和数据中心、办公室等本地网络的种子。 它可在 VPN 连接的基础上提供更加高级的功能,如 QoS 和 SLA。
# 声明变量
$virtualNetworkName = "testvnet"
$resourceGroupName = "testresourcegroup"
$location = "chinanorth"
# 创建 VNet
$virtualNetwork = New-AzVirtualNetwork `
-Name $virtualNetworkName `
-ResourceGroupName $resourceGroupName `
-Location $location `
-AddressPrefix "10.10.0.0/16"
# 创建子网
$subnet = New-AzVirtualNetworkSubnetConfig `
-Name "subnet1" `
-AddressPrefix "10.10.0.0/24"
$virtualNetwork.Subnets.Add($subnet)
# 创建 VNet 连接
$virtualNetworkGateway = New-AzVirtualNetworkGateway `
-ResourceGroupName $resourceGroupName `
-Location $location `
-Name "vnetGateway" `
-IpConfigurations @($gwIpconfig) `
-GatewayType Vpn `
-VpnType RouteBased `
-EnableBgp $false `
-GatewaySku VpnGw1 `
-VpnGatewayGeneration Generation1
# 等待连接创建完成
while ($virtualNetworkGateway.ProvisioningState -ne "Succeeded") {
$virtualNetworkGateway = Get-AzVirtualNetworkGateway `
-ResourceGroupName $resourceGroupName `
-Name "vnetGateway"
Start-Sleep -s 10
}
# 创建本地网络设备 IP 配置信息
$localGatewayIpAddress = "131.107.72.22"
$localGateway = New-AzLocalNetworkGateway `
-ResourceGroupName $resourceGroupName `
-Location $location `
-Name "localGateway" `
-GatewayIpAddress $localGatewayIpAddress `
-AddressPrefix @("192.168.0.0/16")
# 创建连接
$gatewayConnection = New-AzVirtualNetworkGatewayConnection `
-Name "vnetGatewayConnection" `
-ResourceGroupName $resourceGroupName `
-Location $location `
-VirtualNetworkGateway1 $virtualNetworkGateway `
-LocalNetworkGateway2 $localGateway `
-ConnectionType IPsec `
-RoutingWeight 10 `
-SharedKey "testSharedKey"
# 等待连接创建完成
while ($gatewayConnection.ProvisioningState -ne "Succeeded") {
$gatewayConnection = Get-AzVirtualNetworkGatewayConnection `
-Name "vnetGatewayConnection" `
-ResourceGroupName $resourceGroupName
Start-Sleep -s 10
}
# 输出连接状态
Write-Output ("VPN gateway connection status: " + $gatewayConnection.ConnectionStatus)