⁧⁩البرنامج التعليمي: إنشاء وإدارة الشبكات الافتراضية في Azure للأجهزة الافتراضية التي تعمل بنظام Windows باستخدام Azure PowerShell⁧⁩

ينطبق على: ✔️ أجهزة Windows الظاهرية

تستخدم أجهزة Azure الظاهرية شبكة Azure لاتصالات الشبكة الداخلية والخارجية. يستعرض هذا البرنامج التعليمي نشر جهازين ظاهريين وتكوين شبكة Azure لهذه الأجهزة الظاهرية. تفترض الأمثلة في هذا البرنامج التعليمي أن الأجهزة الظاهرية تستضيف تطبيق ويب مع قاعدة بيانات خلفية، ومع ذلك لم يتم نشر التطبيق في البرنامج التعليمي. في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء شبكة ظاهرية وشبكة فرعية
  • إنشاء عنوان IP عام
  • إنشاء VM أمامي
  • تأمين حركة مرور الشبكة
  • إنشاء جهاز ظاهري خلفي

نظرة عامة على شبكات الأجهزة الظاهرية

تعمل شبكات Azure الظاهرية على تمكين اتصالات الشبكة الآمنة بين الأجهزة الظاهرية والإنترنت وخدمات Azure الأخرى مثل Azure SQL Database. يتم تقسيم الشبكات الظاهرية إلى مقاطع منطقية تسمى الشبكات الفرعية. تُستخدم الشبكات الفرعية للتحكم في تدفق الشبكة وكحد أمان. عند نشر جهاز ظاهري، يتضمن بشكل عام واجهة شبكة ظاهرية، والتي يتم إرفاقها بشبكة فرعية.

أثناء إكمال هذا البرنامج التعليمي، يمكنك مشاهدة هذه الموارد التي تم إنشاؤها:

شبكة اتصال ظاهرية مع شبكتين فرعيتين

  • myVNet - الشبكة الظاهرية التي تستخدمها الأجهزة الظاهرية للتواصل مع بعضها البعض ومع الإنترنت.
  • myFrontendSubnet - الشبكة الفرعية في myVNet المستخدمة بواسطة موارد الواجهة الأمامية.
  • myPublicIPAddress - عنوان IP العام المستخدم للوصول إلى myFrontendVM من الإنترنت.
  • myFrontendNic -- واجهة الشبكة المستخدمة من قبل myFrontendVM للتواصل مع myBackendVM.
  • myFrontendVM -- الجهاز الظاهري المستخدم للتواصل بين الإنترنت وmyBackendVM.
  • myBackendNSG - مجموعة أمان الشبكة التي تتحكم في الاتصال بين myFrontendVM و myBackendVM.
  • myBackendSubnet - الشبكة الفرعية المرتبطة بـ myBackendNSG والمستخدمة بواسطة موارد النهاية.
  • myFrontendNic -- واجهة الشبكة المستخدمة من قبل myFrontendVM للتواصل مع myBackendVM.
  • myBackendVM - الجهاز الظاهري الذي يستخدم المنفذ 1433 للاتصال مع myFrontendVM.

تشغيل Azure Cloud Shell

Azure Cloud Shell عبارة عن واجهة تفاعلية مجانية يُمكنك استخدامها لتنفيذ الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة والمثبتة مسبقاً والتي تم تكوينها للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد "Try it" من الزاوية العليا اليسرى لكتلة التعليمة البرمجية. يمكنك أيضاً تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com/powershell. حدد "Copy" لنسخ كتل التعليمة البرمجية، ولصقها في Cloud Shell، ثم اضغط على "enter" لتشغيلها.

إنشاء شبكة فرعية

في هذا البرنامج التعليمي، يتم إنشاء شبكة ظاهرية واحدة مع اثنتين من الشبكات الفرعية. شبكة فرعية أمامية لاستضافة تطبيق ويب، وشبكة فرعية خلفية لاستضافة خادم قاعدة بيانات.

قبل أن تتمكن من إنشاء شبكة اتصال ظاهرية، قم بإنشاء مجموعة موارد باستخدام New-AzResourceGroup. في المثال التالي، سيتم إنشاء مجموعة موارد باسمmyRGNetwork في موقع EastUS:

New-AzResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

أنشئ تكوين شبكة فرعية باسم myFrontendSubnet بستخدام New-AzVirtualNetworkSubnetConfig:

$frontendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myFrontendSubnet `
  -AddressPrefix 10.0.0.0/24

وأنشئ تكوين شبكة فرعية باسم myBackendSubnet:

$backendSubnet = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

إنشاء شبكة ظاهرية

إنشاء شبكة ظاهرية اسمها myVNet باستخدام myFrontendSubnet وmyBackendSubnet وباستخدام New-AzVirtualNetwork:

$vnet = New-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $frontendSubnet, $backendSubnet

عند هذه النقطة، تم إنشاء شبكة وتقسيمها إلى شبكتين فرعيتين، واحدة للخدمات الأمامية، وأخرى للخدمات الخلفية. في القسم التالي، يتم إنشاء الأجهزة الظاهرية وتوصيلها بهذه الشبكات الفرعية.

إنشاء عنوان IP عام

يتيح عنوان IP العام إمكانية الوصول إلى موارد Azure على الإنترنت. يمكن تكوين طريقة تخصيص عنوان IP العام على أنها ديناميكية أو ثابتة. بشكل افتراضي، يتم تخصيص عنوان IP العام ديناميكيًا. يتم إصدار عناوين IP الديناميكية عند إلغاء تخصيص الجهاز الظاهري. يؤدي هذا السلوك إلى تغيير عنوان IP أثناء أي عملية تتضمن إلغاء تخصيص الجهاز الظاهري.

يمكن تعيين أسلوب التخصيص على ثابت، مما يضمن بقاء عنوان IP مخصصاً لجهاز ظاهري، حتى أثناء حالة إلغاء التخصيص. إذا كنت تستخدم عنوان IP ثابتاً، فلا يمكن تحديد عنوان IP نفسه. بدلاً من ذلك، يتم تخصيصه من مجموعة من العناوين المتوفرة.

أنشئ عنوان IP عاماً باسم myPublicIPAddress باستخدام New-AzPublicIpAddress:

$pip = New-AzPublicIpAddress `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -AllocationMethod Dynamic `
  -Name myPublicIPAddress

يمكنك تغيير المعلمة -AllocationMethod Static لتعيين عنوان IP عام ثابت.

إنشاء جهاز ظاهري أمامي

كي يتصل الجهاز الظاهري في شبكة ظاهرية، فإنه يحتاج إلى واجهة شبكة ظاهرية (NIC). إنشاء NIC باستخدام New-AzNetworkInterface:

$frontendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontend `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id

عيِّن اسم المستخدم وكلمة المرور المطلوبة لحساب المسؤول على الجهاز الظاهري باستخدام Get-Credential. يمكنك استخدام بيانات الاعتماد هذه للاتصال بالجهاز الظاهري في خطوات إضافية:

$cred = Get-Credential

إنشاء أجهزة ظاهرية باستخدام New-AzVM.

New-AzVM `
   -Credential $cred `
   -Name myFrontend `
   -PublicIpAddressName myPublicIPAddress `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -Size Standard_D1 `
   -SubnetName myFrontendSubnet `
   -VirtualNetworkName myVNet

تأمين حركة نقل البيانات عبر الشبكة

تحتوي مجموعة أمان الشبكة (NSG) على قائمة بقواعد الأمان التي تسمح بحركة مرور الشبكة إلى الموارد المتصلة بشبكات Azure الظاهرية (VNet) أو ترفضها. يمكن ربط مجموعات NSG بالشبكات الفرعية أو واجهات الشبكة الفردية. اقتران NSG بواجهة شبكة اتصال ينطبق فقط على الجهاز الظاهري المقترن. عندما يتم ربط NSG بشبكة فرعية، تنطبق القواعد على جميع الموارد المتصلة بالشبكة الفرعية.

قواعد مجموعة أمان الشبكة

تحدد قواعد NSG منافذ الشبكات التي يُسمح فيها بحركة المرور أو يتم رفضها. يمكن أن تتضمن القواعد نطاقات عناوين IP للمصدر والوجهة بحيث يتم التحكم في حركة المرور بين أنظمة أو شبكات فرعية محددة. تتضمن قواعد NSG أيضًا أولوية (بين 1 و4096). يتم تقييم القواعد بترتيب الأولوية. يتم تقييم القاعدة ذات الأولوية 100 قبل القاعدة ذات الأولوية 200.

تحتوي جميع مجموعات NSG على مجموعة من القواعد الافتراضية. لا يمكن حذف القواعد الافتراضية، ولكن نظراً لأنها تم تعيينها بأولوية أقل، يمكن تجاوزها بالقواعد التي تنشئها.

  • الشبكة الظاهرية - يسمح بنقل البيانات التي تنشأ وتنتهي في شبكة ظاهرية في كل من الاتجاهات الواردة والصادرة.
  • الإنترنت - يُسمح بحركة المرور الصادرة، ولكن يتم حظر حركة المرور الواردة.
  • موازن التحميل - اسمح لموازن تحميل Azure بفحص حالة الأجهزة الظاهرية ومثيلات الأدوار. إذا كنت لا تستخدم مجموعة موازنة الحمل، فإنه يمكنك تجاوز هذه القاعدة.

إنشاء مجموعات أمان الشبكة

أنشئ قاعدة واردة تسمى myFrontendNSGRule للسماح بنقل البينات الواردة عبر شبكة الإنترنت على myFrontendVM باستخدام New-AzNetworkSecurityRuleConfig:

$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

يمكنك تقييد نقل البينات الداخلي إلى myBackendVM من myFrontendVM فقط عن طريق إنشاء NSG للشبكة الفرعية الخلفية. المثال التالي يوضح إنشاء قاعدة NSG باسم myBackendNSGRule:

$nsgBackendRule = New-AzNetworkSecurityRuleConfig `
  -Name myBackendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix 10.0.0.0/24 `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 1433 `
  -Access Allow

إضافة مجموعة أمان شبكة الاتصال باسم myFrontendNSG باستخدام New-AzNetworkSecurityGroup:

$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

والآن، أضف مجموعة أمان شبكة الاتصال باسم myBackendNSG باستخدام New-AzNetworkSecurityGroup:

$nsgBackend = New-AzNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNSG `
  -SecurityRules $nsgBackendRule

إضافة مجموعات أمان الشبكة إلى الشبكات الفرعية:

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Name myVNet
$frontendSubnet = $vnet.Subnets[0]
$backendSubnet = $vnet.Subnets[1]
$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myFrontendSubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend
$backendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myBackendSubnet `
  -AddressPrefix $backendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgBackend
Set-AzVirtualNetwork -VirtualNetwork $vnet

إنشاء جهاز ظاهري خلفي

أسهل طريقة لإنشاء جهاز ظاهري خلفي لهذا البرنامج التعليمي هو باستخدام صورة SQL Server. يقزم هذا البرنامج التعليمي فقط بإنشاء جهاز ظاهري مع خادم قاعدة البيانات، ولكن لا يوفر معلومات حول الوصول إلى قاعدة البيانات.

إنشاء myBackendNic:

$backendNic = New-AzNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackend `
  -SubnetId $vnet.Subnets[1].Id

عيّن اسم المستخدم وكلمة المرور المطلوبة لحساب المسؤول على الجهاز الظاهري مع الحصول على بيانات الاعتماد:

$cred = Get-Credential

قم بإنشاء myBackendVM.

New-AzVM `
   -Credential $cred `
   -Name myBackend `
   -ImageName "MicrosoftSQLServer:SQL2016SP1-WS2016:Enterprise:latest" `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -SubnetName MyBackendSubnet `
   -VirtualNetworkName myVNet

الصورة في هذا المثال مُثبت بها SQL Server، ولكن لا يتم استخدامه في هذا البرنامج التعليمي. يتم تضمينه ليُظهر لك كيف يمكنك تكوين جهاز ظاهري للتعامل مع نقل البيانات عبر شبكة الإنترنت و تكوين جهاز ظاهري للتعامل مع إدارة قاعدة البيانات.

الخطوات التالية

في هذا البرنامج التعليمي، قمت بإنشاء شبكات Azure وتأمينها فيما يتعلق بالأجهزة الظاهرية.

  • إنشاء شبكة ظاهرية وشبكة فرعية
  • إنشاء عنوان IP عام
  • إنشاء VM أمامي
  • تأمين حركة مرور الشبكة
  • إنشاء جهاز ظاهري خلفي

لمعرفة المزيد حول حماية أقراص الجهاز الظاهري راجع النسخ الاحتياطي واسترداد البيانات بعد عطل فادح للأقراص.