تعلم كيفية إنشاء شبكة افتراضية في Azure باستخدام بوابة Azure، Azure CLI، Azure PowerShell، قالب Azure Resource Manager (ARM)، قالب Beyesp، وTerraform. يتم نشر جهازين ظاهريين ومضيف Azure Bastion لاختبار الاتصال بين الأجهزة الظاهرية في نفس الشبكة الظاهرية. يسهل مضيف Azure Bastion اتصال RDP وSSH الآمن والسلس بالأجهزة الظاهرية مباشرة في مدخل Azure عبر SSL.
الشبكة الظاهرية هي اللبنة الأساسية للشبكات الخاصة في Azure. تمكن شبكة Azure الظاهرية موارد Azure مثل الأجهزة الظاهرية من الاتصال بأمان مع بعضها البعض ومع الإنترنت.
إنشاء مجموعة موارد
سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب Azure الخاص بك.
في مربع البحث في أعلى المدخل، أدخل «Resource group». حدد "Resource groups" في نتائج البحث.
حدد + إنشاء.
في تبويب الأساسيات في إنشاء مجموعة موارد، أدخل، أو اختر المعلومات التالية:
| الإعدادات |
القيمة |
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
هنا يأتي دور <مجموعة> الموارد. |
| المنطقة |
اختر <منطقة>. |
حدد "Review + create".
حدد إنشاء.
إنشاء شبكة ظاهرية
في مربع البحث أعلى البوابة، أدخل Virtual network. حدد الشبكات الظاهرية في نتائج البحث.
حدد + إنشاء.
في علامة التبويب Basics في Create virtual network، أدخل المعلومات التالية أو حددها:
| الإعدادات |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
اختر <مجموعة> الموارد. |
|
تفاصيل المثيل |
|
| اسم |
هنا يأتي دور <الشبكة> الافتراضية. |
| المنطقة |
اختر <منطقة>. |
حدد التالي للمتابعة إلى علامة التبويب الأمان .
حدد التالي للمتابعة إلى علامة التبويب عناوين IP.
في مربع مساحة العنوان في الشبكات الفرعية، حدد الشبكة الفرعية الافتراضية.
في الشبكة الفرعية التحريرية، أدخل، أو اختر المعلومات التالية:
| الإعدادات |
القيمة |
|
تفاصيل الشبكة الفرعية |
|
| قالب الشبكة الفرعية |
اترك الافتراضي الافتراضي. |
| اسم |
هنا يأتي دور <الشبكة> الفرعية. |
| عنوان البدء |
اترك الإعداد الافتراضي 10.0.0.0. |
| حجم الشبكة الفرعية |
اترك القيمة الافتراضية ل /24 (256 عنوانا) . |
حدد حفظ.
حدد Review + create في أسفل الشاشة، وعند اجتياز التحقق من الصحة، حدد Create.
نشر Azure Bastion
يستخدم Azure Bastion متصفحك للاتصال بالآلات الافتراضية (VMs) في شبكتك الافتراضية عبر بروتوكول Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بهم. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برنامج عميل أو تكوين خاص. لمزيد من المعلومات حول Azure Bastion، راجع Azure Bastion.
إشعار
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
في مربع البحث أعلى المدخل، أدخل Bastion. اختر الباستيونز في نتائج البحث.
حدد + إنشاء.
في تبويب الأساسيات في إنشاء حصن، أدخل، أو اختر المعلومات التالية:
| الإعدادات |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
اختر <مجموعة> الموارد. |
|
تفاصيل المثيل |
|
| اسم |
هنا يأتي دور <باستيون>. |
| المنطقة |
اختر <منطقة>. |
| Tier |
اختر المطور. |
|
تكوين الشبكات الظاهرية |
|
| الشبكة الظاهرية |
اختر <الشبكة> الافتراضية. |
حدد "Review + create".
حدد إنشاء.
أنشئ الأجهزة الظاهرية
الإجراء التالي ينشئ جهازين افتراضيين يحملان اسم <الآلة الافتراضية-1>والآلة< الافتراضية-2> في الشبكة الافتراضية:
في المدخل، ابحث عن الأجهزة الظاهرية وحددها.
في Virtual machines، حدد + Create، ثم حدد Azure virtual machine.
في علامة التبويب Basics في Create a virtual machine، أدخل المعلومات التالية أو حددها:
| الإعدادات |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
اختر <مجموعة> الموارد. |
|
تفاصيل المثيل |
|
| اسم الجهاز الظاهري |
هنا يأتي دور <الآلة الافتراضية-1>. |
| المنطقة |
اختر <منطقة>. |
| خيارات التوفر |
حدد No infrastructure redundancy required. |
| نوع الأمان |
اترك الإعداد الافتراضي "Standard". |
| الصورة |
حدد Ubuntu Server 22.04 LTS - x64 Gen2. |
| بنية الجهاز الظاهري |
اترك الإعداد الافتراضي x64. |
| حجم |
حدد حجما. |
|
حساب المسؤول |
|
| نوع المصادقة |
حدد المفتاح العمومي SSH. |
| اسم مستخدم |
أدخل azureuser. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يأتي دور <الآلة الافتراضية ذات مفتاح واحد>. |
|
قواعد المنفذ الوارد |
|
| المنافذ العامة الواردة |
حدد لا شيء. |
حدد علامة التبويب Networking. أدخل المعلومات التالية أو حددها:
| الإعدادات |
القيمة |
|
واجهة الشبكة |
|
| الشبكة الظاهرية |
اختر <الشبكة> الافتراضية. |
| الشبكة الفرعية |
اختر <الشبكة> الفرعية (10.0.0.0/24). |
| عنوان IP عام |
حدد لا شيء. |
| المجموعة الأمنية للشبكة NIC |
حدد خيارات متقدمة. |
| تكوين مجموعة أمان الشبكة |
حدد إنشاء جديد.
هنا يأتي دور <مجموعة> أمن الشبكة.
اترك الباقي في الإعدادات الافتراضية وحدد موافق. |
اترك بقية الإعدادات في الإعدادات الافتراضية وحدد Review + create.
راجع الإعدادات وحدد Create.
انتظر حتى يتم نشر الجهاز الظاهري الأول ثم كرر الخطوات السابقة لإنشاء جهاز ظاهري ثان بالإعدادات التالية:
| الإعدادات |
القيمة |
| اسم الجهاز الظاهري |
هنا يأتي دور <الآلة الافتراضية-2>. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يأتي دور <الآلة الافتراضية ذات المفتاح>. |
| الشبكة الظاهرية |
اختر <الشبكة> الافتراضية. |
| الشبكة الفرعية |
اختر <الشبكة> الفرعية (10.0.0.0/24). |
| عنوان IP عام |
حدد لا شيء. |
| المجموعة الأمنية للشبكة NIC |
حدد خيارات متقدمة. |
| تكوين مجموعة أمان الشبكة |
اختر <مجموعة> أمن الشبكة. |
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف Azure Bastion إلى عناوين IP عامة. يوفر Bastion عنوان IP العام، وتستخدم الأجهزة الظاهرية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة على Bastion. لمزيد من المعلومات، راجع فصل عنوان IP عام من جهاز Azure الظاهري.
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
-
يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
إنشاء مجموعة موارد
استخدم New-AzResourceGroup لإنشاء مجموعة موارد للشبكة الافتراضية. شغل الكود التالي لإنشاء مجموعة موارد تسمى <resource-group> في <منطقة> Azure:
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$rg = @{
Name = $resourceGroupName
Location = $location
}
New-AzResourceGroup @rg
إنشاء شبكة ظاهرية
استخدم شبكة New-AzVirtualNetwork لإنشاء شبكة افتراضية تسمى <الشبكة> الافتراضية مع بادئة عنوان IP 10.0.0.0/16 في <>مجموعة الموارد وموقع <المنطقة>:
# Variable declarations
$virtualNetworkName = 'vnet-1' # <virtual-network>
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vnet = @{
Name = $virtualNetworkName
ResourceGroupName = $resourceGroupName
Location = $location
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
ينشر Azure الموارد إلى شبكة فرعية داخل شبكة ظاهرية. استخدم Add-AzVirtualNetworkSubnetConfig لإنشاء تكوين شبكة فرعية باسم <subnet> مع بادئة العنوان 10.0.0.0/24:
# Variable declarations
$subnetName = 'subnet-1' # <subnet>
$subnet = @{
Name = $subnetName
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
إقران تكوين الشبكة الفرعية بالشبكة الظاهرية باستخدام Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
نشر Azure Bastion
يستخدم Azure Bastion المستعرض الخاص بك للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بهم. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برنامج عميل أو تكوين خاص. لمزيد من المعلومات حول Azure Bastion، راجع ما هو Azure Bastion؟.
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
تكوين شبكة فرعية Bastion لشبكتك الظاهرية. هذه الشبكة الفرعية محجوزة حصريا لموارد Bastion ويجب تسميتها AzureBastionSubnet.
$subnet = @{
Name = 'AzureBastionSubnet'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.1.0/26'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
تعيين التكوين:
$virtualNetwork | Set-AzVirtualNetwork
إنشاء عنوان IP عام ل Bastion. يستخدم مضيف Bastion عنوان IP العام للوصول إلى SSH وRDP عبر المنفذ 443.
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$ip = @{
ResourceGroupName = $resourceGroupName
Name = 'public-ip'
Location = $location
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
استخدم أمر New-AzBastion لإنشاء مضيف جديد لوحدة SKU الأساسية في AzureBastionSubnet:
# Variable declarations
$bastionName = 'bastion' # <bastion>
$resourceGroupName = 'test-rg' # <resource-group>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$bastion = @{
Name = $bastionName
ResourceGroupName = $resourceGroupName
PublicIpAddressRgName = $resourceGroupName
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = $resourceGroupName
VirtualNetworkName = $virtualNetworkName
Sku = 'Basic'
}
New-AzBastion @bastion
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء نشر Bastion على شبكتك الظاهرية.
أنشئ الأجهزة الظاهرية
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري باستخدام New-AzVM. المثال التالي ينشئ آلة افتراضية باسم <الآلة الافتراضية-1> في شبكة الشبكة الافتراضية<>.
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vm1Name = 'vm-1' # <virtual-machine-1>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$subnetName = 'subnet-1' # <subnet>
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = $resourceGroupName
Location = $location
Name = $vm1Name
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = $virtualNetworkName
SubnetName = $subnetName
PublicIpAddressName = "" # No public IP address
SshKeyName = "$vm1Name-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
إنشاء الجهاز الظاهري الثاني
# Variable declarations
$resourceGroupName = 'test-rg' # <resource-group>
$location = 'eastus2' # <region>
$vm2Name = 'vm-2' # <virtual-machine-2>
$virtualNetworkName = 'vnet-1' # <virtual-network>
$subnetName = 'subnet-1' # <subnet>
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = $resourceGroupName
Location = $location
Name = $vm2Name
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = $virtualNetworkName
SubnetName = $subnetName
PublicIpAddressName = "" # No public IP address
SshKeyName = "$vm2Name-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
يستغرق Azure بضع دقائق لإنشاء الأجهزة الظاهرية. عندما ينتهي Azure من إنشاء الأجهزة الظاهرية، فإنه يعيد الإخراج إلى PowerShell.
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف Bastion إلى عناوين IP عامة. يوفر Bastion عنوان IP العام ، وتستخدم الأجهزة الافتراضية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة بواسطة Bastion. لمزيد من المعلومات، راجع فصل عنوان IP عام عن آلة افتراضية في Azure.
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
-
يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
إنشاء مجموعة موارد
استخدم az group create لإنشاء مجموعة موارد لاستضافة الشبكة الظاهرية. استخدم الكود التالي لإنشاء مجموعة موارد تسمى <resource-group> في <منطقة> Azure:
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
location="eastus2" # <region>
az group create \
--name $resourceGroupName \
--location $location
إنشاء شبكة ظاهرية وشبكة فرعية
استخدم az network vnet create لإنشاء شبكة افتراضية تسمى <الشبكة> الافتراضية مع شبكة فرعية تسمى <subnet> في <مجموعة موارد مجموعة> الموارد:
# Variable declarations
virtualNetworkName="vnet-1" # <virtual-network>
resourceGroupName="test-rg" # <resource-group>
subnetName="subnet-1" # <subnet>
az network vnet create \
--name $virtualNetworkName \
--resource-group $resourceGroupName \
--address-prefix 10.0.0.0/16 \
--subnet-name $subnetName \
--subnet-prefixes 10.0.0.0/24
نشر Azure Bastion
يستخدم Azure Bastion المستعرض الخاص بك للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بهم. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برنامج عميل أو تكوين خاص.
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه. لمزيد من المعلومات حول Azure Bastion، راجع ما هو Azure Bastion؟.
استخدم az network vnet subnet create لإنشاء شبكة فرعية Bastion لشبكتك الظاهرية. هذه الشبكة الفرعية محجوزة حصريا لموارد Bastion ويجب تسميتها AzureBastionSubnet.
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
virtualNetworkName="vnet-1" # <virtual-network>
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group $resourceGroupName \
--vnet-name $virtualNetworkName \
--address-prefix 10.0.1.0/26
إنشاء عنوان IP عام ل Bastion. يتم استخدام عنوان IP هذا للاتصال بمضيف Bastion من الإنترنت. استخدم إنشاء public web network az لإنشاء عنوان IP عام باسم public-ip في <مجموعة موارد مجموعة الموارد> :
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
location="eastus2" # <region>
az network public-ip create \
--resource-group $resourceGroupName \
--name public-ip \
--sku Standard \
--location $location \
--zone 1 2 3
استخدم az network bastion create لإنشاء مضيف Bastion في AzureBastionSubnet لشبكتك الظاهرية:
# Variable declarations
bastionName="bastion" # <bastion>
resourceGroupName="test-rg" # <resource-group>
virtualNetworkName="vnet-1" # <virtual-network>
location="eastus2" # <region>
az network bastion create \
--name $bastionName \
--public-ip-address public-ip \
--resource-group $resourceGroupName \
--vnet-name $virtualNetworkName \
--location $location \
--sku Basic
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء نشر Bastion على شبكتك الظاهرية.
أنشئ الأجهزة الظاهرية
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري باستخدام az vm create. المثال التالي ينشئ آلة افتراضية باسم <الآلة الافتراضية-1> في شبكة الشبكة الافتراضية<>. إذا لم تكن مفاتيح SSH موجودة بالفعل في موقع مفتاح افتراضي، يقوم الأمر بإنشائها. يقوم الخيار --no-wait بإنشاء الجهاز الظاهري في الخلفية، حتى تتمكن من المتابعة إلى الخطوة التالية.
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
vm1Name="vm-1" # <virtual-machine-1>
virtualNetworkName="vnet-1" # <virtual-network>
subnetName="subnet-1" # <subnet>
az vm create \
--resource-group $resourceGroupName \
--name $vm1Name \
--image Ubuntu2204 \
--vnet-name $virtualNetworkName \
--subnet $subnetName \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys \
--no-wait
إنشاء الجهاز الظاهري الثاني
أنشئ آلة افتراضية باسم <الآلة الافتراضية-2> في <شبكة الشبكة الافتراضية> .
# Variable declarations
resourceGroupName="test-rg" # <resource-group>
vm2Name="vm-2" # <virtual-machine-2>
virtualNetworkName="vnet-1" # <virtual-network>
subnetName="subnet-1" # <subnet>
az vm create \
--resource-group $resourceGroupName \
--name $vm2Name \
--image Ubuntu2204 \
--vnet-name $virtualNetworkName \
--subnet $subnetName \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys
يستغرق إنشاء الجهاز الظاهري بضع دقائق.
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف Bastion إلى عناوين IP عامة. يوفر Bastion عنوان IP العام ، وتستخدم الأجهزة الافتراضية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة بواسطة Bastion. لمزيد من المعلومات، راجع فصل عنوان IP عام من جهاز Azure الظاهري.
إشعار
يوفر Azure عنوان IP افتراضيا للوصول الصادر للأجهزة الظاهرية التي لم يتم تعيين عنوان IP عام لها أو الموجودة في تجمع الواجهة الخلفية لموازن تحميل Azure الأساسي الداخلي. توفر آلية IP للوصول الصادر الافتراضي عنوان IP صادر غير قابل للتكوين.
يتم تعطيل عنوان IP الافتراضي للوصول الصادر عند حدوث أحد الأحداث التالية:
- يتم تعيين عنوان IP عام إلى الجهاز الظاهري.
- يتم وضع الجهاز الظاهري في تجمع الواجهة الخلفية لموازن التحميل القياسي، مع قواعد صادرة أو بدونها.
-
يتم تعيين مورد Azure NAT Gateway إلى الشبكة الفرعية للجهاز الظاهري.
لا تتمتع الأجهزة الظاهرية التي تقوم بإنشائها باستخدام مجموعات مقياس الجهاز الظاهري في وضع التنسيق المرن بالوصول الصادر الافتراضي.
لمزيد من المعلومات حول الاتصالات الصادرة في Azure، راجع الوصول الصادر الافتراضي في Azure واستخدام ترجمة عنوان الشبكة المصدر (SNAT) للاتصالات الصادرة.
مراجعة القالب
القالب الذي تستخدمه في هذا التشغيل السريع هو من قوالب Azure Quickstart.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.6.18.56646",
"templateHash": "10806234693722113459"
}
},
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "VNet1",
"metadata": {
"description": "VNet name"
}
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.0.0.0/16",
"metadata": {
"description": "Address prefix"
}
},
"subnet1Prefix": {
"type": "string",
"defaultValue": "10.0.0.0/24",
"metadata": {
"description": "Subnet 1 Prefix"
}
},
"subnet1Name": {
"type": "string",
"defaultValue": "Subnet1",
"metadata": {
"description": "Subnet 1 Name"
}
},
"subnet2Prefix": {
"type": "string",
"defaultValue": "10.0.1.0/24",
"metadata": {
"description": "Subnet 2 Prefix"
}
},
"subnet2Name": {
"type": "string",
"defaultValue": "Subnet2",
"metadata": {
"description": "Subnet 2 Name"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2021-08-01",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnet1Name')]",
"properties": {
"addressPrefix": "[parameters('subnet1Prefix')]"
}
},
{
"name": "[parameters('subnet2Name')]",
"properties": {
"addressPrefix": "[parameters('subnet2Prefix')]"
}
}
]
}
}
]
}
يحدد القالب موارد Azure التالية:
نشر القالب
انشر قالب Resource Manager إلى Azure:
حدد نشر إلى Azure لتسجيل الدخول إلى Azure وفتح القالب. يقوم القالب بإنشاء شبكة اتصال ظاهرية مع شبكتين فرعيتين.
في البوابة، في صفحة إنشاء شبكة افتراضية بشبكتين فرعيتين، أدخل ، أو اختر القيم التالية:
-
مجموعة الموارد: حدد إنشاء جديد، وأدخل CreateVNetQS-rg لاسم مجموعة الموارد، ثم حدد موافق.
-
اسم الشبكة الظاهرية: أدخل اسما للشبكة الظاهرية الجديدة.
حدد Review + create، ثم حدد Create.
عند انتهاء النشر، حدد الزر Go to resource لمراجعة الموارد التي قمت بنشرها.
مراجعة الموارد الموزعة
استكشف الموارد التي قمت بإنشائها باستخدام الشبكة الظاهرية عن طريق الاستعراض من خلال أجزاء الإعدادات ل VNet1:
لمعرفة المزيد حول بناء جملة JSON وخصائص شبكة ظاهرية في قالب، راجع Microsoft.Network/virtualNetworks.
إنشاء الشبكة الظاهرية والأجهزة الظاهرية
يستخدم هذا البدء السريع قالب Bicep الافتراضي للجهازين الافتراضيين في الشبكة الافتراضية من قوالب البدء السريع في Azure Resource Manager لإنشاء الشبكة الافتراضية، وشبكة الموارد الفرعية، والآلات الافتراضية. يحدد قالب Bicep موارد Azure التالية:
راجع ملف Bicep:
@description('Admin username')
param adminUsername string
@description('Admin password')
@secure()
param adminPassword string
@description('Prefix to use for VM names')
param vmNamePrefix string = 'BackendVM'
@description('Location for all resources.')
param location string = resourceGroup().location
@description('Size of the virtual machines')
param vmSize string = 'Standard_D2s_v3'
var availabilitySetName = 'AvSet'
var storageAccountType = 'Standard_LRS'
var storageAccountName = uniqueString(resourceGroup().id)
var virtualNetworkName = 'vNet'
var subnetName = 'backendSubnet'
var loadBalancerName = 'ilb'
var networkInterfaceName = 'nic'
var subnetRef = resourceId('Microsoft.Network/virtualNetworks/subnets', virtualNetworkName, subnetName)
var numberOfInstances = 2
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
}
resource availabilitySet 'Microsoft.Compute/availabilitySets@2023-09-01' = {
name: availabilitySetName
location: location
sku: {
name: 'Aligned'
}
properties: {
platformUpdateDomainCount: 2
platformFaultDomainCount: 2
}
}
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: subnetName
properties: {
addressPrefix: '10.0.2.0/24'
}
}
]
}
}
resource networkInterface 'Microsoft.Network/networkInterfaces@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${networkInterfaceName}${i}'
location: location
properties: {
ipConfigurations: [
{
name: 'ipconfig1'
properties: {
privateIPAllocationMethod: 'Dynamic'
subnet: {
id: subnetRef
}
loadBalancerBackendAddressPools: [
{
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
]
}
}
]
}
dependsOn: [
virtualNetwork
loadBalancer
]
}]
resource loadBalancer 'Microsoft.Network/loadBalancers@2023-09-01' = {
name: loadBalancerName
location: location
sku: {
name: 'Standard'
}
properties: {
frontendIPConfigurations: [
{
properties: {
subnet: {
id: subnetRef
}
privateIPAddress: '10.0.2.6'
privateIPAllocationMethod: 'Static'
}
name: 'LoadBalancerFrontend'
}
]
backendAddressPools: [
{
name: 'BackendPool1'
}
]
loadBalancingRules: [
{
properties: {
frontendIPConfiguration: {
id: resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', loadBalancerName, 'LoadBalancerFrontend')
}
backendAddressPool: {
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', loadBalancerName, 'BackendPool1')
}
probe: {
id: resourceId('Microsoft.Network/loadBalancers/probes', loadBalancerName, 'lbprobe')
}
protocol: 'Tcp'
frontendPort: 80
backendPort: 80
idleTimeoutInMinutes: 15
}
name: 'lbrule'
}
]
probes: [
{
properties: {
protocol: 'Tcp'
port: 80
intervalInSeconds: 15
numberOfProbes: 2
}
name: 'lbprobe'
}
]
}
dependsOn: [
virtualNetwork
]
}
resource vm 'Microsoft.Compute/virtualMachines@2023-09-01' = [for i in range(0, numberOfInstances): {
name: '${vmNamePrefix}${i}'
location: location
properties: {
availabilitySet: {
id: availabilitySet.id
}
hardwareProfile: {
vmSize: vmSize
}
osProfile: {
computerName: '${vmNamePrefix}${i}'
adminUsername: adminUsername
adminPassword: adminPassword
}
storageProfile: {
imageReference: {
publisher: 'MicrosoftWindowsServer'
offer: 'WindowsServer'
sku: '2019-Datacenter'
version: 'latest'
}
osDisk: {
createOption: 'FromImage'
}
}
networkProfile: {
networkInterfaces: [
{
id: networkInterface[i].id
}
]
}
diagnosticsProfile: {
bootDiagnostics: {
enabled: true
storageUri: storageAccount.properties.primaryEndpoints.blob
}
}
}
}]
output location string = location
output name string = loadBalancer.name
output resourceGroupName string = resourceGroup().name
output resourceId string = loadBalancer.id
نشر قالب Bicep
احفظ ملف Bicep على الكمبيوتر المحلي ك main.bicep.
انشر ملف Bicep باستخدام إما Azure CLI أو Azure PowerShell:
المبادره القطريه
az group create \
--name TestRG \
--location eastus
az deployment group create \
--resource-group TestRG \
--template-file main.bicep
PowerShell
$rgParams = @{
Name = 'TestRG'
Location = 'eastus'
}
New-AzResourceGroup @rgParams
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'main.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
عند انتهاء النشر، تظهر رسالة تشير إلى نجاح النشر.
نشر Azure Bastion
يستخدم Bastion المستعرض الخاص بك للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بهم. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برنامج عميل أو تكوين خاص. لمعرفة مزيد من المعلومات بخصوص Azure Bastion، راجع ما هو Azure Bastion؟
إشعار
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
استخدم Azure Bastion كقالب Service Bicep من قوالب التشغيل السريع ل Azure Resource Manager لنشر وتكوين Bastion في شبكتك الظاهرية. يحدد قالب Bicep هذا موارد Azure التالية:
راجع ملف Bicep:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'vnet01'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.1.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'new'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.1.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName string
@description('Azure region for Bastion and virtual network')
param location string = resourceGroup().location
var publicIpAddressName = '${bastionHostName}-pip'
var bastionSubnetName = 'AzureBastionSubnet'
resource publicIp 'Microsoft.Network/publicIPAddresses@2022-01-01' = {
name: publicIpAddressName
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAllocationMethod: 'Static'
}
}
// if vnetNewOrExisting == 'new', create a new vnet and subnet
resource newVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = if (vnetNewOrExisting == 'new') {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: [
vnetIpPrefix
]
}
subnets: [
{
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
]
}
}
// if vnetNewOrExisting == 'existing', reference an existing vnet and create a new subnet under it
resource existingVirtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' existing = if (vnetNewOrExisting == 'existing') {
name: vnetName
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2022-01-01' = if (vnetNewOrExisting == 'existing') {
parent: existingVirtualNetwork
name: bastionSubnetName
properties: {
addressPrefix: bastionSubnetIpPrefix
}
}
resource bastionHost 'Microsoft.Network/bastionHosts@2022-01-01' = {
name: bastionHostName
location: location
dependsOn: [
newVirtualNetwork
existingVirtualNetwork
]
properties: {
ipConfigurations: [
{
name: 'IpConf'
properties: {
subnet: {
id: subnet.id
}
publicIPAddress: {
id: publicIp.id
}
}
}
]
}
}
نشر قالب Bicep
احفظ ملف Bicep على الكمبيوتر المحلي ك bastion.bicep.
استخدم محرر نص أو تعليمة برمجية لإجراء التغييرات التالية في الملف:
- السطر 2: التغيير
param vnetName string من 'vnet01' إلى 'VNet'.
- السطر 5: التغيير
param vnetIpPrefix string من '10.1.0.0/16' إلى '10.0.0.0/16'.
- السطر 12: التغيير
param vnetNewOrExisting string من 'new' إلى 'existing'.
- السطر 15: التغيير
param bastionSubnetIpPrefix string من '10.1.1.0/26' إلى '10.0.1.0/26'.
- السطر 18: تغيير
param bastionHostName string إلى param bastionHostName = 'VNet-bastion'.
يجب أن تبدو الأسطر ال 18 الأولى من ملف Bicep الآن مثل هذا المثال:
@description('Name of new or existing vnet to which Azure Bastion should be deployed')
param vnetName string = 'VNet'
@description('IP prefix for available addresses in vnet address space')
param vnetIpPrefix string = '10.0.0.0/16'
@description('Specify whether to provision new vnet or deploy to existing vnet')
@allowed([
'new'
'existing'
])
param vnetNewOrExisting string = 'existing'
@description('Bastion subnet IP prefix MUST be within vnet IP prefix address space')
param bastionSubnetIpPrefix string = '10.0.1.0/26'
@description('Name of Azure Bastion resource')
param bastionHostName = 'VNet-bastion'
احفظ ملف bastion.bicep.
انشر ملف Bicep باستخدام إما Azure CLI أو Azure PowerShell:
المبادره القطريه
az deployment group create \
--resource-group TestRG \
--template-file bastion.bicep
PowerShell
$deploymentParams = @{
ResourceGroupName = 'TestRG'
TemplateFile = 'bastion.bicep'
}
New-AzResourceGroupDeployment @deploymentParams
عند انتهاء النشر، تظهر رسالة تشير إلى نجاح النشر.
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف Bastion إلى عناوين IP عامة. يوفر Bastion عنوان IP العام ، وتستخدم الأجهزة الافتراضية عناوين IP الخاصة للاتصال داخل الشبكة. يمكنك إزالة عناوين IP العامة من أي أجهزة ظاهرية في الشبكات الظاهرية المستضافة بواسطة Bastion. لمزيد من المعلومات، راجع فصل عنوان IP عام من جهاز Azure الظاهري.
مراجعة الموارد الموزعة
استخدم Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure لمراجعة الموارد المنشورة:
المبادره القطريه
az resource list --resource-group TestRG
PowerShell
Get-AzResource -ResourceGroupName TestRG
المدخل
في مدخل Microsoft Azure، ابحث عن مجموعات الموارد وحددها. في صفحة Resource groups ، حدد TestRG من قائمة مجموعات الموارد.
في صفحة نظرة عامة ل TestRG، راجع جميع الموارد التي قمت بإنشائها، بما في ذلك الشبكة الظاهرية والجهازين الظاهريين ومضيف Bastion.
حدد الشبكة الظاهرية VNet . في صفحة نظرة عامة على VNet، لاحظ مساحة العنوان المحددة 10.0.0.0/16.
في القائمة اليسرى، حدد Subnets. في صفحة الشبكات الفرعية، لاحظ الشبكات الفرعية المنشورة من backendSubnet وAzureBastionSubnet مع القيم المعينة من ملفات Bicep.