Azure:无法通过 RDP 访问另一个分支虚拟网络中的 VM

标签 azure azure-virtual-machine azure-virtual-network

我有以下Vnet

enter image description here

vnet-hub-poc-hubspoke 是中心 Vnet

它有以下子网

enter image description here

防火墙

enter image description here

并与Prod & Dev Vnets对等

enter image description here

enter image description here

Prod Vnet 配置如下所示

enter image description here

enter image description here

Dev Vnet 配置如下所示

enter image description here

enter image description here

我创建了以下虚拟机 - 每个 Vnet 中都有一个

enter image description here

遵循以下规则

enter image description here

enter image description here

我有以下路由表

enter image description here

使用以下配置

enter image description here

enter image description here

我可以从两个虚拟机 ping 到防火墙,但无法使用 RDP

enter image description here

enter image description here

我错过了什么?

更新::我猜请求是发送到防火墙 (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

enter image description here

更新#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:我也尝试创建网关

# 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

最佳答案

Remote Desktop can't connect to the remote computer for one of these reasons:

  1. Remote access to the service is not enabled
  2. The remote computer is turned off Verified through the Azure Portal it is turned on because Start is faded, while Restart and Stop are not
  3. The remote computer is not available on the network.

要解决此问题,请检查您的虚拟机资源运行状况是否处于健康状态,这可能会影响与 Azure 平台中虚拟机的连接。如果不健康,您可以诊断并解决问题。

enter image description here

  • 尝试仅重置密码配置,这将有助于在远程连接停用或 RDP 被 Windows 防火墙规则阻止时阻止 RDP 配置。并尝试访问 RDP
  • enter image description here

  • 确保您已配置Boot diagnostics尝试启用诊断,您可以查看启动诊断的屏幕截图并下载串行日志的屏幕截图并调查控制台日志的问题并验证控制台日志的其他信息确定 RDP 在您的情况下不起作用的原因。 enter image description here

  • 尝试重置您的用户凭据并提供用户名和密码并进行更新。它重置本地管理员密码并尝试访问 RDP

  • enter image description here

  • Orelse,在虚拟机中 -> 设置下的网络 -> 单击您的网络接口(interface)(Web 服务器) -> 在网络接口(interface)中 -> IP 配置,单击私有(private) IP 地址
  • enter image description here

    尝试将分配更改为静态并提供不同的静态 IP 地址并保存,并在 RDP 连接后尝试通过 RDP 访问虚拟机更改为动态

    enter image description here

    假设您无法访问 RDP,请尝试按如下方式重新部署。如果有任何潜在问题或网络问题,我们可以通过重新部署解决此问题,并且临时磁盘数据将丢失,动态 IP 地址将丢失与虚拟机关联的内容已更新。

    关于Azure:无法通过 RDP 访问另一个分支虚拟网络中的 VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73738270/

    相关文章:

    sql-server - Azure 自动化 DSC - 权限和模块问题

    azure - 如何修改 Azure API 基本策略而不完全覆盖它?

    使用自定义 docker run 命令部署容器的 Azure Web 应用程序

    azure - 如何将dns设置为azure aks?

    azure - 将 Azure VM 公开到 Internet 的最佳实践

    Azure 前门缓存 VS 用于 blob 存储的 Azure CDN

    web-services - "Failed to mount the azure file share. Your clouddrive won' 不可用”

    azure - 适用于 Azure VM 规模集的高级 (SSD) 托管磁盘

    azure - 删除/var/lib/azsec 下的文件是否安全? Azure 虚拟机

    Azure 虚拟网络混合连接