تكوين الاتصال النفقي

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

يمكن تكوين النفق الإجباري باستخدام Azure PowerShell. لا يمكن تكوينه باستخدام بوابة Azure. تساعدك هذه المقالة على تكوين الأنفاق القسرية للشبكات الظاهرية التي تم إنشاؤها باستخدام نموذج نشر إدارة الموارد. إذا كنت ترغب في تكوين الأنفاق القسرية لنموذج النشر التقليدي، فراجع الأنفاق القسرية - التقليدية.

حول الأنفاق القسرية

يوضح الرسم البياني التالي كيفية عمل الأنفاق القسرية.

Diagram shows forced tunneling.

في هذا المثال، لا يتم فرض نفق الشبكة الفرعية للواجهة الأمامية. يمكن أن تستمر أحمال العمل في الشبكة الفرعية الأمامية في قبول طلبات العملاء من الإنترنت والاستجابة لها مباشرة. تتصل الشبكات الفرعية من المستوى المتوسط والواجهة الخلفية نفقياً. سيتم فرض أي اتصالات خارجية من هاتين الشبكتين الفرعيتين على الإنترنت أو إعادة توجيهها مرة أخرى إلى موقع محلي عبر أحد أنفاق VPN (من موقع إلى موقع) (S2S).

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

المتطلبات والاعتبارات

كُوّن الاتصال النفقي في Azure باستخدام مسارات الشبكة الظاهرية المخصصة والمعرفة من قبل المستخدم. يتم التعبير عن إعادة توجيه نسبة استخدام الشبكة إلى موقع محلي كمسار افتراضي إلى بوابة Azure VPN. لمزيد من المعلومات حول التوجيه المعرف من قبل المستخدم والشبكات الظاهرية، راجع المسارات المخصصة المعرفة من قبل المستخدم.

  • تحتوي كل شبكة فرعية للشبكة الافتراضية على جدول توجيه مدمج للنظام. يحتوي جدول توجيه النظام على المجموعات الثلاث التالية من المسارات:

    • مسارات VNet المحلية: مباشرة إلى الأجهزة الظاهرية الوجهة في نفس الشبكة الظاهرية.
    • المسارات المحلية: إلى بوابة Azure VPN.
    • المسار الافتراضي: مباشرة إلى الإنترنت. يتم إسقاط الحزم الموجهة إلى عناوين IP الخاصة غير المشمولة بالمسارات السابقة.
  • يجب أن يكون الاتصال النفقي مقترناً بشبكة ظاهرية تحتوي على بوابة VPN مستندة إلى المسارات. سيتجاوز تكوين الأنفاق القسري المسار الافتراضي لأي شبكة فرعية في VNet. تحتاج إلى تعيين "موقع افتراضي" بين المواقع المحلية عبر المباني المتصلة بالشبكة الافتراضية. أيضًا، يجب تكوين جهاز VPN المحلي باستخدام 0.0.0.0/0 كمحددات حركة نقل البيانات.

  • لا يتم تكوين الأنفاق القسرية ExpressRoute عبر هذه الآلية، ولكن بدلا من ذلك، يتم تمكينها عن طريق الإعلان عن مسار افتراضي عبر جلسات النظراء ExpressRoute BGP. لمزيد من المعلومات، راجع وثائق ExpressRoute.

نظرة عامة على التكوين

يساعدك الإجراء التالي على إنشاء مجموعة موارد وVNet. ستقوم بعد ذلك بإنشاء بوابة VPN وتكوين الأنفاق القسرية. في هذا الإجراء، تحتوي الشبكة الافتراضية "MultiTier-VNet" على ثلاث شبكات فرعية: "الواجهة الأمامية" و "الطبقة المتوسطة" و "الواجهة الخلفية"، مع أربعة اتصالات عبر المباني: "DefaultSiteHQ"، وثلاثة فروع.

تقوم خطوات الإجراء بتعيين "DefaultSiteHQ" كاتصال موقع افتراضي للأنفاق القسرية، وتكوين الشبكات الفرعية "Midtier" و "Backend" لاستخدام الأنفاق القسرية.

قبل أن تبدأ

قم بتثبيت أحدث إصدار من أوامر Azure Resource Manager PowerShell. يرجى الاطلاع على كيفية تثبيت وتكوين Azure PowerShell للحصول على مزيد من المعلومات حول تثبيت PowerShell cmdlets.

هام

يلزم تثبيت أحدث إصدار من أوامر cmdlets الخاصة ب PowerShell. وإلا، قد تتلقى أخطاء التحقق من الصحة عند تشغيل بعض cmdlets.

لتسجيل الدخول

إذا كنت تقوم بتشغيل PowerShell محليًا، فافتح وحدة تحكم PowerShell ذات الامتيازات المرتفعة واتصل بحساب Azure خاصتك. يطالبك cmdlet الاتصال-AzAccount ببيانات الاعتماد. بعد المصادقة، يقوم بتنزيل إعدادات حسابك بحيث تكون متاحة إلى Azure PowerShell.

إذا كنت تستخدم Azure Cloud Shell بدلًا من تشغيل PowerShell محلياً، فستلاحظ أنك لست بحاجة إلى تشغيل Connect-AzAccount. يتصل Azure Cloud Shell بحساب Azure خاصتك تلقائياً بعد تحديد جربه.

  1. إذا كنت تستخدم PowerShell محلياً، فقم بتسجيل الدخول.

    Connect-AzAccount
    
  2. إذا كان لديك أكثر من اشتراك واحد، فاحصل على قائمة باشتراكات Azure.

    Get-AzSubscription
    
  3. حدد الاشتراك الذي تريد استخدامه.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

تكوين الاتصال النفقي

ملاحظة

قد ترى تحذيرات تقول "سيتم تعديل نوع عنصر الإخراج لهذا cmdlet في إصدار مستقبلي". هذا سلوك متوقع ويمكنك تجاهل هذه التحذيرات بأمان.

  1. إنشاء مجموعة موارد.

    New-AzResourceGroup -Name 'ForcedTunneling' -Location 'North Europe'
    
  2. إنشاء شبكة افتراضية وتحديد الشبكات الفرعية.

    $s1 = New-AzVirtualNetworkSubnetConfig -Name "Frontend" -AddressPrefix "10.1.0.0/24"
    $s2 = New-AzVirtualNetworkSubnetConfig -Name "Midtier" -AddressPrefix "10.1.1.0/24"
    $s3 = New-AzVirtualNetworkSubnetConfig -Name "Backend" -AddressPrefix "10.1.2.0/24"
    $s4 = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix "10.1.200.0/28"
    $vnet = New-AzVirtualNetwork -Name "MultiTier-VNet" -Location "North Europe" -ResourceGroupName "ForcedTunneling" -AddressPrefix "10.1.0.0/16" -Subnet $s1,$s2,$s3,$s4
    
  3. إنشاء بوابات الشبكة المحلية.

    $lng1 = New-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.111" -AddressPrefix "192.168.1.0/24"
    $lng2 = New-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.112" -AddressPrefix "192.168.2.0/24"
    $lng3 = New-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.113" -AddressPrefix "192.168.3.0/24"
    $lng4 = New-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -GatewayIpAddress "111.111.111.114" -AddressPrefix "192.168.4.0/24"
    
  4. إنشاء بوابة شبكة افتراضية. قد يستغرق إنشاء بوابة 45 دقيقة أو أكثر، اعتماداً على بوابة SKU المحددة. إذا ظهرت لك أخطاء ValidateSet المتعلقة بقيمة GatewaySKU، فتحقق من تثبيت أحدث إصدار من cmdlets PowerShell. يحتوي أحدث إصدار من أوامر cmdlets PowerShell على القيم الجديدة التي تم التحقق من صحتها لأحدث وحدات SKU Gateway.

    $pip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -AllocationMethod Dynamic
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $ipconfig = New-AzVirtualNetworkGatewayIpConfig -Name "gwIpConfig" -SubnetId $gwsubnet.Id -PublicIpAddressId $pip.Id
    New-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -IpConfigurations $ipconfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -EnableBgp $false
    
  5. تعيين موقع افتراضي إلى بوابة الشبكة الظاهرية. -GatewayDefaultSite هي معلمة cmdlet التي تسمح لتكوين التوجيه القسري بالعمل، لذا احرص على تكوين هذا الإعداد بشكل صحيح.

    $LocalGateway = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling"
    $VirtualGateway = Get-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    Set-AzVirtualNetworkGatewayDefaultSite -GatewayDefaultSite $LocalGateway -VirtualNetworkGateway $VirtualGateway
    
  6. قم بإنشاء اتصالات VPN من موقع إلى موقع.

    $gateway = Get-AzVirtualNetworkGateway -Name "Gateway1" -ResourceGroupName "ForcedTunneling"
    $lng1 = Get-AzLocalNetworkGateway -Name "DefaultSiteHQ" -ResourceGroupName "ForcedTunneling" 
    $lng2 = Get-AzLocalNetworkGateway -Name "Branch1" -ResourceGroupName "ForcedTunneling" 
    $lng3 = Get-AzLocalNetworkGateway -Name "Branch2" -ResourceGroupName "ForcedTunneling" 
    $lng4 = Get-AzLocalNetworkGateway -Name "Branch3" -ResourceGroupName "ForcedTunneling" 
    
    New-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng1 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection2" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng2 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection3" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng3 -ConnectionType IPsec -SharedKey "preSharedKey"
    New-AzVirtualNetworkGatewayConnection -Name "Connection4" -ResourceGroupName "ForcedTunneling" -Location "North Europe" -VirtualNetworkGateway1 $gateway -LocalNetworkGateway2 $lng4 -ConnectionType IPsec -SharedKey "preSharedKey"
    
    Get-AzVirtualNetworkGatewayConnection -Name "Connection1" -ResourceGroupName "ForcedTunneling"