Azure问题:无法通过RDP访问另一辐条虚拟网络中的VM
跨辐条VNet无法通过RDP访问VM的问题排查
已搭建的VNet架构
- 核心Hub VNet为
vnet-hub-poc-hubspoke - Hub VNet包含对应子网(配图:[Hub VNet子网信息])
- Hub VNet配置有
firewall(配图:[防火墙信息]) - Hub VNet与
Prod & Dev Vnets建立了VNet对等连接(配图:[对等连接配置])
Prod & Dev VNet配置
- Prod Vnet配置详情(配图:[Prod Vnet信息])
- Dev Vnet配置详情(配图:[Dev Vnet信息])
后续资源配置
- 每个VNet中各创建了一台VM(配图:[VM列表])
- 配置了对应NSG规则(配图:[NSG规则])
- 配置了路由表(配图:[路由表列表]),路由表详情(配图:[路由表配置])
问题现象
- 两台VM均能ping通防火墙,但无法跨VNet通过RDP访问对方(配图:[ping测试结果])
- 更新:请求已到达防火墙(10.11.253.4)但出现超时
C:\Users\kavija>tracert 10.13.2.4 Tracing route to 10.13.2.4 over a maximum of 30 hops
(配图:[路由追踪结果])
部署脚本信息
更新#2:使用以下脚本完成架构部署:
# Define Variable rgName=SpokeToSpoke location=eastus hubVNetName=vnet-hub prodVnetName=vnet-prod devVnetName=vnet-dev myFirewallPublicIPName="firewallPublicIP" azFirewallName="azFirewallName" azureworkloadRG="AzureProdWorkLoad" azureDevWorkloadRG="AzureDevWorkLoad" VmUser="demouserXXX" VmName1="ProdSever" VmName2="DevSever" fwRouteTableProdName=prod-route-table fwRouteTableDevName=dev-route-table bastionName="MyBastion" bastionPIPName="bastionpip" rdpRuleName=AllowRDP priority=200 rgroup=prod-ukw-core-rg access=Allow description="Allow RDP from office IP address" destPort=3389 direction=Inbound protocol=TCP # Create Resource Group az group create --name $rgName --location $location # Create Azure Hub VNET az network vnet create -g $rgName --name $hubVNetName --address-prefixes 10.11.0.0/16 --location $location az network vnet subnet create -g $rgName --vnet-name $hubVNetName --name Management --address-prefix 10.11.1.0/24 az network vnet subnet create -g $rgName --vnet-name $hubVNetName --name AppGatewaySubnet --address-prefix 10.11.252.0/26 az network vnet subnet create -g $rgName --vnet-name $hubVNetName --name AzureBastionSubnet --address-prefix 10.11.252.64/27 az network vnet subnet create -g $rgName --vnet-name $hubVNetName --name AzureFirewallSubnet --address-prefix 10.11.253.0/26 az network vnet subnet create -g $rgName --vnet-name $hubVNetName --name GatewaySubnet --address-prefix 10.11.254.0/27 # Create Azure Dev VNET az network vnet create -g $rgName --name $devVnetName --address-prefixes 10.12.0.0/16 --location $location az network vnet subnet create -g $rgName --vnet-name $devVnetName --name Management --address-prefix 10.12.1.0/24 az network vnet subnet create -g $rgName --vnet-name $devVnetName --name Workload1 --address-prefix 10.12.2.0/24 # Create Azure Prod VNET az network vnet create -g $rgName --name $prodVnetName --address-prefixes 10.13.0.0/16 --location $location az network vnet subnet create -g $rgName --vnet-name $prodVnetName --name Management --address-prefix 10.13.1.0/24 az network vnet subnet create -g $rgName --vnet-name $prodVnetName --name Workload1 --address-prefix 10.13.2.0/24 # Dev Subnet NSG az network nsg create -g $rgName -n Dev-Management-subnet -l $location -o table az network nsg create -g $rgName -n Dev-Workload1-subnet -l $location -o table az network vnet subnet update -g $rgName --vnet-name $devVnetName --name Management --network-security-group Dev-Management-subnet az network vnet subnet update -g $rgName --vnet-name $devVnetName --name Workload1 --network-security-group Dev-Workload1-subnet # Prod Subnet NSG az network nsg create -g $rgName -n Prod-Management-subnet -l $location -o table az network nsg create -g $rgName -n Prod-Workload1-subnet -l $location -o table az network vnet subnet update -g $rgName --vnet-name $prodVnetName --name Management --network-security-group Prod-Management-subnet az network vnet subnet update -g $rgName --vnet-name $prodVnetName --name Workload1 --network-security-group Prod-Workload1-subnet # Enable RDP at NSG Level for Dev Workload az network nsg rule create --name $rdpRuleName --nsg-name Dev-Workload1-subnet --priority $priority --resource-group $rgName --access $access --description "$description" --destination-port-ranges $destPort --direction $direction --protocol $protocol --source-address-prefixes "*" # Enable RDP at NSG Level for Prod Workload az network nsg rule create --name $rdpRuleName --nsg-name Prod-Workload1-subnet --priority $priority --resource-group $rgName --access $access --description "$description" --destination-port-ranges $destPort --direction $direction --protocol $protocol --source-address-prefixes "*" # Create Firewall az network public-ip create --name $myFirewallPublicIPName --resource-group $rgName --sku Standard --allocation-method Static az network firewall create -g $rgName -n $azFirewallName --vnet-name $hubVNetName --sku AZFW_VNet --tier Standard az network firewall ip-config create --firewall-name $azFirewallName --name FW-config1 --public-ip-address $myFirewallPublicIPName --resource-group $rgName --vnet-name $hubVNetName az network firewall update --name $azFirewallName --resource-group $rgName fwprivaddr="$(az network firewall ip-config list -g $rgName -f $azFirewallName --query "[?name=='FW-config1'].privateIpAddress" --output tsv)" # Hub-Spoke-Hub Peering az network vnet peering create -g $rgName --name HUBtoProd --vnet-name $hubVNetName --remote-vnet $prodVnetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit az network vnet peering create -g $rgName --name HUBtoDEV --vnet-name $hubVNetName --remote-vnet $devVnetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit az network vnet peering create -g $rgName --name ProdtoHUB --vnet-name $prodVnetName --remote-vnet $hubVNetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit az network vnet peering create -g $rgName --name DEVtoHUB --vnet-name $devVnetName --remote-vnet $hubVNetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit # Create Route table from Dev to Hub az network route-table create --name $fwRouteTableDevName -g $rgName -l $location --disable-bgp-route-propagation true az network route-table route create -g $rgName --name DevToProdSubnet-Route --route-table-name $fwRouteTableDevName --address-prefix 10.13.0.0/16 --next-hop-type VirtualAppliance --next-hop-ip-address $fwprivaddr az network vnet subnet update -g $rgName --vnet-name $devVnetName -n Workload1 --address-prefixes 10.12.2.0/24 --route-table $fwRouteTableDevName # Create Route table from Prod to Hub az network route-table create --name $fwRouteTableProdName -g $rgName -l $location --disable-bgp-route-propagation true az network route-table route create -g $rgName --name ProdToHubSubnet-Route --route-table-name $fwRouteTableProdName --address-prefix 10.12.0.0/16 --next-hop-type VirtualAppliance --next-hop-ip-address $fwprivaddr az network vnet subnet update -g $rgName --vnet-name $prodVnetName -n Workload1 --address-prefixes 10.13.2.0/24 --route-table $fwRouteTableProdName # Create Azure Bastion for Azure az network public-ip create --resource-group $rgName --name $bastionPIPName --sku Standard --location $location az network bastion create --name $bastionName --public-ip-address $bastionPIPName --resource-group $rgName --vnet-name $hubVNetName --location $location # Create VM in Dev Vnet - Workload1 Subnet to test Spoke-to-Spoke communication az group create --name $azureDevWorkloadRG --location $location devWorkLoadSubNetID=$(az network vnet subnet show --resource-group $rgName --name "Workload1" --vnet-name $devVnetName --query id -o tsv) az vm create --resource-group $azureDevWorkloadRG --name $VmName --image win2016datacenter --admin-username $VmUser --admin-password $AdminPassword --size Standard_B1s --use-unmanaged-disk --storage-sku Standard_LRS --subnet $devWorkLoadSubNetID --nsg "" --public-ip-address "" # Create VM in Prod VNet - Workload1 Subnet az group create --name $azureworkloadRG --location $location prodWorkLoadSubNetID=$(az network vnet subnet show --resource-group $rgName --name "Workload1" --vnet-name $prodVnetName --query id -o tsv) az vm create --resource-group $azureworkloadRG --name $VmName1 --image win2016datacenter --admin-username $VmUser --admin-password $AdminPassword --size Standard_B1s --use-unmanaged-disk --storage-sku Standard_LRS --subnet $prodWorkLoadSubNetID --nsg "" --public-ip-address ""
更新#3:尝试添加VNET网关,执行了以下脚本:
# Azure VNET Gateway az network public-ip create -g $rgName --name pip-hub-gateway --allocation-method dynamic --dns-name $hubVNetName az network vnet-gateway create -g $rgName --name vgw --vnet $hubVNetName --public-ip-address pip-hub-gateway --gateway-type vpn --client-protocol SSTP --sku Basic az network vnet peering create -g $rgName --name ProdtoHUB --vnet-name $prodVnetName --remote-vnet $hubVNetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit --use-remote-gateways az network vnet peering create -g $rgName --name DEVtoHUB --vnet-name $devVnetName --remote-vnet $hubVNetName --allow-vnet-access --allow-forwarded-traffic --allow-gateway-transit --use-remote-gateways az network route-table route create -g $rgName --name DevToProdSubnet-Route --route-table-name $fwRouteTableDevName --address-prefix 10.13.0.0/16 --next-hop-type VirtualNetworkGateway az network route-table route create -g $rgName --name ProdToHubSubnet-Route --route-table-name $fwRouteTableProdName --address-prefix 10.12.0.0/16 --next-hop-type VirtualNetworkGateway
提问
请问我遗漏了哪些配置,导致无法跨辐条Vnet通过RDP访问VM?
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

