في هذا التشغيل السريع، تعرف على كيفية إنشاء شبكة Azure الظاهرية (VNet) باستخدام مدخل Azure وAzure CLI وAzure PowerShell وقالب Resource Manager وقالب Bicep وTerraform. يتم نشر جهازين ظاهريين ومضيف Azure Bastion لاختبار الاتصال بين الأجهزة الظاهرية في نفس الشبكة الظاهرية. يسهل مضيف Azure Bastion اتصال RDP وSSH الآمن والسلس بالأجهزة الظاهرية مباشرة في مدخل Azure عبر SSL.
الشبكة الظاهرية هي اللبنة الأساسية للشبكات الخاصة في Azure. تتيح شبكة Azure الظاهرية لموارد Azure مثل الأجهزة الظاهرية الاتصال بأمان مع بعضها البعض والإنترنت.
تسجيل الدخول إلى Azure
سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب Azure الخاص بك.
إنشاء شبكة ظاهرية ومضيف Azure Bastion
ينشئ الإجراء التالي شبكة ظاهرية مع شبكة فرعية لمورد وشبكة فرعية Azure Bastion ومضيف Bastion:
في المدخل، ابحث عن Virtual networks وحددها.
في صفحة الشبكة الظاهرية، حدد + إنشاء.
في علامة التبويب Basics في Create virtual network، أدخل المعلومات التالية أو حددها:
الإعدادات |
القيمة |
تفاصيل المشروع |
|
الاشتراك |
حدد Subscription الخاص بك. |
مجموعة الموارد |
حدد إنشاء جديد.
أدخل test-rg للاسم.
حدد موافق. |
تفاصيل المثيل |
|
اسم |
أدخل vnet-1. |
المنطقة |
حدد شرق الولايات المتحدة 2. |
حدد التالي للمتابعة إلى علامة التبويب الأمان .
في قسم Azure Bastion ، حدد Enable Azure Bastion.
يستخدم Bastion المستعرض للاتصال بالأجهزة الظاهرية في شبكتك الظاهرية عبر Secure Shell (SSH) أو بروتوكول سطح المكتب البعيد (RDP) باستخدام عناوين IP الخاصة بها. لا تحتاج الأجهزة الظاهرية إلى عناوين IP عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات، راجع ما هو Azure Bastion؟.
إشعار
يبدأ التسعير بالساعة من اللحظة التي يتم فيها نشر Bastion، بغض النظر عن استخدام البيانات الصادرة. لمزيد من المعلومات، راجع التسعير ووحدات SKU. إذا كنت تقوم بنشر Bastion كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه.
في Azure Bastion، أدخل المعلومات التالية أو حددها:
الإعدادات |
القيمة |
اسم مضيف Azure Bastion |
أدخل bastion. |
عنوان IP العام ل Azure Bastion |
حدد إنشاء عنوان IP عام.
أدخل public-ip-bastion في Name.
حدد موافق. |
حدد التالي للمتابعة إلى علامة التبويب عناوين IP.
في مربع مساحة العنوان في الشبكات الفرعية، حدد الشبكة الفرعية الافتراضية.
في تحرير الشبكة الفرعية، أدخل المعلومات التالية أو حددها:
الإعدادات |
القيمة |
الغرض من الشبكة الفرعية |
اترك الإعداد الافتراضي الافتراضي. |
اسم |
أدخل subnet-1. |
IPv4 |
|
نطاق عناوين IPv4 |
اترك الإعداد الافتراضي 10.0.0.0/16. |
عنوان البدء |
اترك الإعداد الافتراضي 10.0.0.0. |
حجم |
اترك القيمة الافتراضية ل /24 (256 عنوانا) . |
حدد حفظ.
حدد Review + create في أسفل النافذة. بعد تجاوز التحقق من الصحة، حدد 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. |
حجم |
حدد حجما. |
حساب المسؤول |
|
نوع المصادقة |
اختر كلمة السر. |
اسم مستخدم |
أدخل azureuser. |
كلمة المرور |
إدخال «password». |
تأكيد كلمة المرور |
أعد إدخال كلمة المرور. |
قواعد المنفذ الوارد |
|
المنافذ العامة الواردة |
حدد لا شيء. |
حدد علامة التبويب Networking. أدخل المعلومات التالية أو حددها:
الإعدادات |
القيمة |
واجهة الشبكة |
|
الشبكة الظاهرية |
حدد vnet-1. |
الشبكة الفرعية |
حدد subnet-1 (10.0.0.0/24). |
عنوان IP عام |
حدد لا شيء. |
المجموعة الأمنية للشبكة NIC |
حدد خيارات متقدمة. |
تكوين مجموعة أمان الشبكة |
حدد إنشاء جديد.
أدخل nsg-1 للاسم.
اترك الباقي في الإعدادات الافتراضية وحدد موافق. |
اترك بقية الإعدادات في الإعدادات الافتراضية وحدد Review + create.
راجع الإعدادات وحدد Create.
انتظر حتى يتم نشر الجهاز الظاهري الأول ثم كرر الخطوات السابقة لإنشاء جهاز ظاهري ثان بالإعدادات التالية:
الإعدادات |
القيمة |
اسم الجهاز الظاهري |
أدخل vm-2. |
الشبكة الظاهرية |
حدد 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 عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات حول 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 Bastion قياسي جديد في 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 وvm-2 في الشبكة الفرعية subnet-1 للشبكة الظاهرية. عند مطالبتك ببيانات الاعتماد، أدخل أسماء المستخدمين وكلمات المرور للأجهزة الظاهرية.
لإنشاء الجهاز الظاهري الأول، استخدم التعليمات البرمجية التالية:
# Set the administrator and password for the VM. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create a network interface for the VM. ##
$nic = @{
Name = "nic-1"
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration. ##
$vmsz = @{
VMName = "vm-1"
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = "vm-1"
Credential = $cred
}
$vmimage = @{
PublisherName = 'Canonical'
Offer = '0001-com-ubuntu-server-jammy'
Skus = '22_04-lts-gen2'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the VM. ##
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus2'
VM = $vmConfig
}
New-AzVM @vm
لإنشاء الجهاز الظاهري الثاني، استخدم التعليمات البرمجية التالية:
# Set the administrator and password for the VM. ##
$cred = Get-Credential
## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
## Create a network interface for the VM. ##
$nic = @{
Name = "nic-2"
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create a virtual machine configuration. ##
$vmsz = @{
VMName = "vm-2"
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = "vm-2"
Credential = $cred
}
$vmimage = @{
PublisherName = 'Canonical'
Offer = '0001-com-ubuntu-server-jammy'
Skus = '22_04-lts-gen2'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the VM. ##
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus2'
VM = $vmConfig
}
New-AzVM @vm
بقشيش
يمكنك استخدام -AsJob
الخيار لإنشاء جهاز ظاهري في الخلفية أثناء متابعة المهام الأخرى. على سبيل المثال، قم بتشغيل New-AzVM @vm1 -AsJob
. عندما يبدأ Azure في إنشاء الجهاز الظاهري في الخلفية، تحصل على شيء مثل الإخراج التالي:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
يستغرق 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 كجزء من برنامج تعليمي أو اختبار، نوصي بحذف هذا المورد بعد الانتهاء من استخدامه. لمزيد من المعلومات حول 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
يستغرق نشر موارد Bastion حوالي 10 دقائق. يمكنك إنشاء أجهزة ظاهرية في القسم التالي أثناء توزيع Bastion على شبكتك الظاهرية.
أنشئ الأجهزة الظاهرية
استخدم az vm create لإنشاء جهازين ظاهريين باسم vm-1 وvm-2 في الشبكة الفرعية subnet-1 للشبكة الظاهرية. عند مطالبتك ببيانات الاعتماد، أدخل أسماء المستخدمين وكلمات المرور للأجهزة الظاهرية.
لإنشاء الجهاز الظاهري الأول، استخدم الأمر التالي:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-1 \
--image Ubuntu2204 \
--public-ip-address ""
لإنشاء الجهاز الظاهري الثاني، استخدم الأمر التالي:
az vm create \
--resource-group test-rg \
--admin-username azureuser \
--authentication-type password \
--name vm-2 \
--image Ubuntu2204 \
--public-ip-address ""
بقشيش
يمكنك أيضا استخدام --no-wait
الخيار لإنشاء جهاز ظاهري في الخلفية أثناء متابعة المهام الأخرى.
يستغرق إنشاء الأجهزة الظاهرية بضع دقائق. بعد إنشاء Azure لكل جهاز ظاهري، يقوم Azure CLI بإرجاع إخراج مشابه للرسالة التالية:
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.5",
"publicIpAddress": "",
"resourceGroup": "test-rg"
"zones": ""
}
إشعار
لا تحتاج الأجهزة الظاهرية في شبكة ظاهرية مع مضيف 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 عامة أو برامج عميل أو تكوين خاص. لمزيد من المعلومات حول 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 من قائمة مجموعات الموارد.
في صفحة Overview ل TestRG، راجع جميع الموارد التي قمت بإنشائها، بما في ذلك الشبكة الظاهرية والأجهزة الظاهرية ومضيف Bastion.
حدد الشبكة الظاهرية VNet . في صفحة نظرة عامة على VNet، لاحظ مساحة العنوان المحددة 10.0.0.0/16.
في القائمة اليسرى، حدد Subnets. في صفحة الشبكات الفرعية، لاحظ الشبكات الفرعية المنشورة من backendSubnet وAzureBastionSubnet مع القيم المعينة من ملفات Bicep.