تعرف على كيفية إنشاء شبكة Azure الظاهرية (VNet) باستخدام مدخل Microsoft Azure وAzure CLI وAzure PowerShell وقالب Azure Resource Manager (ARM) وقالب Bicep وTerraform. يتم نشر جهازين ظاهريين ومضيف Azure Bastion لاختبار الاتصال بين الأجهزة الظاهرية في نفس الشبكة الظاهرية. يسهل مضيف Azure Bastion اتصال RDP وSSH الآمن والسلس بالأجهزة الظاهرية مباشرة في مدخل Azure عبر SSL.
الشبكة الظاهرية هي اللبنة الأساسية للشبكات الخاصة في Azure. تمكن شبكة Azure الظاهرية موارد Azure مثل الأجهزة الظاهرية من الاتصال بأمان مع بعضها البعض ومع الإنترنت.
إنشاء مجموعة موارد
سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب Azure الخاص بك.
في مربع البحث في أعلى المدخل، أدخل «Resource group». حدد "Resource groups" في نتائج البحث.
حدد + إنشاء.
في تبويب الأساسيات في إنشاء مجموعة موارد، أدخل، أو اختر المعلومات التالية:
| الإعدادات |
القيمة |
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
أدخل test-rg. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد "Review + create".
حدد إنشاء.
إنشاء شبكة ظاهرية
في مربع البحث أعلى البوابة، أدخل Virtual network. حدد الشبكات الظاهرية في نتائج البحث.
حدد + إنشاء.
في علامة التبويب Basics في Create virtual network، أدخل المعلومات التالية أو حددها:
| الإعدادات |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| اسم |
أدخل vnet-1. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد التالي للمتابعة إلى علامة التبويب الأمان .
حدد التالي للمتابعة إلى علامة التبويب عناوين IP.
في مربع مساحة العنوان في الشبكات الفرعية، حدد الشبكة الفرعية الافتراضية.
في الشبكة الفرعية التحريرية، أدخل، أو اختر المعلومات التالية:
| الإعدادات |
القيمة |
|
تفاصيل الشبكة الفرعية |
|
| قالب الشبكة الفرعية |
اترك الافتراضي الافتراضي. |
| اسم |
أدخل subnet-1. |
| عنوان البدء |
اترك الإعداد الافتراضي 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 الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| اسم |
أدخل bastion. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
| Tier |
اختر المطور. |
|
تكوين الشبكات الظاهرية |
|
| الشبكة الظاهرية |
حدد vnet-1. |
حدد "Review + create".
حدد إنشاء.
أنشئ الأجهزة الظاهرية
ينشئ الإجراء التالي جهازين ظاهريين باسم vm-1 وvm-2 في الشبكة الظاهرية:
في المدخل، ابحث عن الأجهزة الظاهرية وحددها.
في Virtual machines، حدد + Create، ثم حدد Azure virtual machine.
في علامة التبويب أساسيات، قم بإنشاء جهاز ظاهري، وأدخل أو حدد المعلومات التالية:
| الإعدادات |
القيمة |
|
تفاصيل المشروع |
|
| الاشتراك |
حدد Subscription الخاص بك. |
| مجموعة الموارد |
حدد test-rg. |
|
تفاصيل المثيل |
|
| اسم الجهاز الظاهري |
أدخل vm-1. |
| المنطقة |
حدد شرق الولايات المتحدة 2. |
| خيارات التوفر |
حدد No infrastructure redundancy required. |
| نوع الأمان |
اترك الإعداد الافتراضي "Standard". |
| الصورة |
حدد Ubuntu Server 22.04 LTS - x64 Gen2. |
| بنية الجهاز الظاهري |
اترك الإعداد الافتراضي x64. |
| حجم |
حدد حجما. |
|
حساب المسؤول |
|
| نوع المصادقة |
حدد المفتاح العمومي SSH. |
| اسم مستخدم |
أدخل azureuser. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يدخل vm-1-key. |
|
قواعد المنفذ الوارد |
|
| المنافذ العامة الواردة |
حدد لا شيء. |
حدد علامة التبويب Networking. أدخل المعلومات التالية أو حددها:
| الإعدادات |
القيمة |
|
واجهة الشبكة |
|
| الشبكة الظاهرية |
حدد vnet-1. |
| الشبكة الفرعية |
حدد subnet-1 (10.0.0.0/24). |
| عنوان IP عام |
حدد لا شيء. |
| المجموعة الأمنية للشبكة NIC |
حدد خيارات متقدمة. |
| تكوين مجموعة أمان الشبكة |
حدد إنشاء جديد.
أدخل nsg-1 للاسم.
اترك الباقي في الإعدادات الافتراضية وحدد موافق. |
اترك بقية الإعدادات في الإعدادات الافتراضية وحدد Review + create.
راجع الإعدادات وحدد Create.
انتظر حتى يتم نشر الجهاز الظاهري الأول ثم كرر الخطوات السابقة لإنشاء جهاز ظاهري ثان بالإعدادات التالية:
| الإعدادات |
القيمة |
| اسم الجهاز الظاهري |
أدخل vm-2. |
| مصدر المفتاح العام SSH |
حدد إنشاء زوج مفاتيح جديد. |
| اسم زوج المفاتيح |
هنا يأتي دور vm-2-key. |
| الشبكة الظاهرية |
حدد vnet-1. |
| الشبكة الفرعية |
حدد subnet-1 (10.0.0.0/24). |
| عنوان IP عام |
حدد لا شيء. |
| المجموعة الأمنية للشبكة NIC |
حدد خيارات متقدمة. |
| تكوين مجموعة أمان الشبكة |
حدد nsg-1. |
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف 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 لإنشاء مجموعة موارد لاستضافة الشبكة الظاهرية. قم بتشغيل التعليمات البرمجية التالية لإنشاء مجموعة موارد تسمى test-rg في منطقة eastus2 Azure:
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
إنشاء شبكة ظاهرية
استخدم New-AzVirtualNetwork لإنشاء شبكة ظاهرية تسمى vnet-1 مع بادئة عنوان IP 10.0.0.0/16 في مجموعة موارد test-rg وموقع eastus2 :
$vnet = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
ينشر Azure الموارد إلى شبكة فرعية داخل شبكة ظاهرية. استخدم Add-AzVirtualNetworkSubnetConfig لإنشاء تكوين شبكة فرعية باسم subnet-1 مع بادئة العنوان 10.0.0.0/24:
$subnet = @{
Name = 'subnet-1'
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.
$ip = @{
ResourceGroupName = 'test-rg'
Name = 'public-ip'
Location = 'eastus2'
AllocationMethod = 'Static'
Sku = 'Standard'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip
استخدم أمر New-AzBastion لإنشاء مضيف جديد لوحدة SKU الأساسية في AzureBastionSubnet:
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء نشر Bastion على شبكتك الظاهرية.
أنشئ الأجهزة الظاهرية
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري باستخدام New-AzVM. ينشئ المثال التالي جهازا ظاهريا باسم vm-1 في الشبكة الظاهرية vnet-1 .
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "eastus2"
Name = "vm-1"
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
PublicIpAddressName = "" # No public IP address
SshKeyName = "vm-1-ssh-key"
GenerateSshKey = $true
}
# Create the virtual machine
New-AzVM @vmParams
إنشاء الجهاز الظاهري الثاني
# Create a credential object
$cred = Get-Credential
# Define the virtual machine parameters
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "eastus2"
Name = "vm-2"
Image = "Ubuntu2204"
Size = "Standard_DS1_v2"
Credential = $cred
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
PublicIpAddressName = "" # No public IP address
SshKeyName = "vm-2-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 لإنشاء مجموعة موارد لاستضافة الشبكة الظاهرية. استخدم التعليمات البرمجية التالية لإنشاء مجموعة موارد تسمى test-rg في منطقة eastus2 Azure:
az group create \
--name test-rg \
--location eastus2
إنشاء شبكة ظاهرية وشبكة فرعية
استخدم az network vnet create لإنشاء شبكة ظاهرية تسمى vnet-1 مع شبكة فرعية تسمى subnet-1 في مجموعة موارد test-rg :
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--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.
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
إنشاء عنوان IP عام ل Bastion. يتم استخدام عنوان IP هذا للاتصال بمضيف Bastion من الإنترنت. استخدم az network public-ip create لإنشاء عنوان IP عام يسمى public-ip في مجموعة موارد test-rg :
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
استخدم az network bastion create لإنشاء مضيف Bastion في AzureBastionSubnet لشبكتك الظاهرية:
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2 \
--sku Basic
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء نشر Bastion على شبكتك الظاهرية.
أنشئ الأجهزة الظاهرية
أنشئ الجهاز الظاهري الأول
إنشاء جهاز ظاهري باستخدام az vm create. ينشئ المثال التالي جهازا ظاهريا باسم vm-1 في الشبكة الظاهرية vnet-1 . إذا لم تكن مفاتيح SSH موجودة بالفعل في موقع مفتاح افتراضي، يقوم الأمر بإنشائها. يقوم الخيار --no-wait بإنشاء الجهاز الظاهري في الخلفية، حتى تتمكن من المتابعة إلى الخطوة التالية.
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys \
--no-wait
إنشاء الجهاز الظاهري الثاني
أنشئ آلة افتراضية باسم vm-2 في شبكة vnet-1 الافتراضية.
az vm create \
--resource-group test-rg \
--name vm-2 \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--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.
إنشاء الشبكة الظاهرية والأجهزة الظاهرية
يستخدم هذا التشغيل السريع قالب جهازين ظاهريين في VNET 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.