تمرين - إنشاء بوابة VPN من موقع إلى موقع باستخدام أوامر Azure CLI

مكتمل

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

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

إنشاء بوابة VPN من جانب Azure

أولًا، ستنشئ بوابة VPN لنهاية Azure للاتصال. قد يستغرق إنشاء بوابة شبكة ظاهرية ما يصل إلى 45 دقيقة. لتوفير الوقت، ستستخدم أوامر Azure CLI مع --no-wait المعلمة. تتيح لك هذه المعلمة إنشاء كلا بوابتي الشبكة الظاهرية في وقتٍ واحدٍ لتقليل الوقت الإجمالي المطلوب لإنشاء هذه الموارد.

  1. تشغيل الأمر التالي في Cloud Shell لإنشاء عنوان IP العام PIP-VNG-Azure-VNet-1.

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --allocation-method Dynamic
    
  2. تشغيل الأمر التالي في Cloud Shell لإنشاء الشبكة الظاهرية VNG-Azure-VNet-1.

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --subnet-name GatewaySubnet 
    
  3. تشغيل الأمر التالي في Cloud Shell لإنشاء بوابة الشبكة الظاهرية VNG-Azure-VNet-1.

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --public-ip-addresses PIP-VNG-Azure-VNet-1 \
        --vnet VNG-Azure-VNet-1 \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    

إنشاء بوابة VPN الداخلية

بعد ذلك، ستنشئ بوابة VPN لمحاكاة جهاز VPN داخلي.

  1. تشغيل الأمر التالي في Cloud Shell لإنشاء عنوان IP العام PIP-VNG-HQ-Network.

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --allocation-method Dynamic
    
  2. تشغيل الأمر التالي في Cloud Shell لإنشاء الشبكة الظاهرية VNG-HQ-Network.

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --subnet-name GatewaySubnet 
    
  3. تشغيل الأمر التالي في Cloud Shell لإنشاء الشبكة الظاهرية VNG-HQ-Network.

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --public-ip-addresses PIP-VNG-HQ-Network \
        --vnet VNG-HQ-Network \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    
  4. يستغرق إنشاء البوابة ما يقرب من 30 دقيقة حتى يكتمل. لمراقبة تقدم إنشاء البوابة، شغَّل الأمر التالي. إننا نستخدم الأمر Linux watch لتشغيل az network vnet-gateway list الأمر دوريًا، مما يمكنك من مراقبة التقدم.

    watch -d -n 5 az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
  5. بعد أن تظهر كل بوابة VPN ProvisioningState حالة Succeeded، فأنت على استعداد للمتابعة. اضغط على Ctrl + C لإيقاف الأمر بعد إنشاء البوابة.

    ActiveActive    EnableBgp    EnablePrivateIpAddress   GatewayType    Location        Name              ProvisioningState    ResourceGroup                         ResourceGuid                          VpnType
    --------------  -----------  ------------------------ -------------  --------------  ----------------  -------------------  -----------------------------  ------------------------------------  ----------
    False           False        False                    Vpn            southcentralus  VNG-Azure-VNet-1  Succeeded            <rgn>[sandbox resource group name]</rgn>  48dc714e-a700-42ad-810f-a8163ee8e001  RouteBased
    False           False        False                    Vpn            southcentralus  VNG-HQ-Network    Succeeded            <rgn>[sandbox resource group name]</rgn>  49b3041d-e878-40d9-a135-58e0ecb7e48b  RouteBased
    

حدِّث مراجع IP الخاصة ببوابة الشبكة الداخلية

هام

يجب نشر بوابات الشبكة الظاهرية الخاصة بك بنجاح قبل أن تبدأ التمرين التالي. قد يستغرق إكمال البوابة ما يصل إلى 30 دقيقة. إذا لم تظهر ProvisioningState "Succeeded" حتى الآن، فأنت بحاجة إلى الانتظار.

في هذا القسم، ستحدث مراجع عنوان IP للبوابة البعيدة المحددة في بوابات الشبكة الداخلية. لا يمكنك تحديث بوابات الشبكة الداخلية حتى تنشئ بوابات VPN وتعيين عنوان IPv4 لها وربطها بها.

  1. تشغيل أمر Azure CLI التالي للتحقق مما إذا كان جرى إنشاء كلا بوابتي الشبكة الظاهرية. ستظهر الحالة الأولية Updating. تريد أن ترى Succeeded على كل من VNG-Azure-VNet-1 وVNG-HQ-Network.

    az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
    Name              Location    GatewayType    VpnType     VpnGatewayGeneration    EnableBgp    EnablePrivateIpAddress    Active    ResourceGuid                        ProvisioningState    ResourceGroup
    ----------------  ----------  -------------  ----------  ----------------------  -----------  ------------------------  --------  ------------------------------------  -------------------  ------------------------------------------
    VNG-Azure-VNet-1  westus      Vpn            RouteBased  Generation1         False        False                     False     9a2e60e6-da57-4274-99fd-e1f8b2c0326d  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    VNG-HQ-Network    westus      Vpn            RouteBased  Generation1         False        False                     False     c36430ed-e6c0-4230-ae40-cf937a102bcd  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    

    تذكر أن تنتظر حتى إرجاع قوائم البوابات بنجاح. تذكر أيضًا أن موارد بوابة الشبكة الداخلية تحدد إعدادات البوابة البعيدة والشبكة التي سُميت باسمها. على سبيل المثال، تحتوي بوابة الشبكة الداخلية LNG-Azure-VNet-1 على معلومات مثل عنوان IP وشبكات Azure-VNet-1.

  2. تشغيل الأمر التالي في Cloud Shell لاسترداد عنوان IPv4 المُعين إلى PIP-VNG-Azure-VNet-1 وتخزينه في متغير.

    PIPVNGAZUREVNET1=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --query "[ipAddress]" \
        --output tsv)
    
  3. تشغيل الأمر التالي في Cloud Shell لتحديث بوابة الشبكة المحلية LNG-Azure-VNet-1 بحيث تشير إلى عنوان IP العام المرفق ببوابة الشبكة الظاهرية VNG-Azure-VNet-1.

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-Azure-VNet-1 \
        --gateway-ip-address $PIPVNGAZUREVNET1
    
  4. تشغيل الأمر التالي في Cloud Shell لاسترداد عنوان IPv4 المُعين إلى PIP-VNG-HQ-Network وتخزينه في متغير.

    PIPVNGHQNETWORK=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --query "[ipAddress]" \
        --output tsv)
    
  5. تشغيل الأمر التالي في Cloud Shell لتحديث بوابة الشبكة المحلية LNG-HQ-Network بحيث تشير إلى عنوان IP العام المرفق ببوابة الشبكة الظاهرية VNG-HQ-Network.

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-HQ-Network \
        --gateway-ip-address $PIPVNGHQNETWORK
    

إنشاء الاتصالات

ستكمل الآن التكوين عن طريق إنشاء الاتصالات من كل بوابة VPN إلى بوابة الشبكة الداخلية التي تحتوي على مراجع عناوين IP العامة للشبكة البعيدة الخاصة بالبوابة.

  1. إنشاء المفتاح المشترك لاستخدامه للاتصالات. في الأمر التالي، استخدم <shared key> سلسلة نصية كبديل لاستخدامها من أجل مفتاح IPSec المشترك مسبقًا. المفتاح المشترك مسبقًا عبارة عن سلسلة من حروف الشفرة القياسية الأمريكية لتبادل المعلومات (ASCII) القابلة للطباعة والتي لا يزيد عددها عن 128 حرفًا. لا يمكن أن تحتوي على أحرف خاصة، مثل علامات الواصلة والتلدة. ستستخدم هذا المفتاح المشترك مسبقًا على كلا الاتصالين.

    ملاحظة

    في هذا المثال، ستعمل أي مجموعة من الأرقام لمفتاح مشترك: SHAREDKEY = 123456789. في بيئات الإنتاج، نوصي باستخدام سلسلة من حروف الشفرة القياسية الأمريكية لتبادل المعلومات (ASCII) القابلة للطباعة والتي لا يزيد طولها عن 128 حرفاً بدون أحرف خاصة مثل علامات الواصلة والتلدة.

    SHAREDKEY=<shared key>
    
  2. تذكر أن LNG-HQ-Network تحتوي على مرجع لعنوان IP على جهاز VPN الداخلي الذي جرى محاكاته. تشغيل الأمر التالي في Cloud Shell لإنشاء اتصال من VNG-Azure-VNet-1 إلى LNG-HQ-Network.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network \
        --vnet-gateway1 VNG-Azure-VNet-1 \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-HQ-Network
    
  3. تذكر أن LNG-Azure-VNet-1 يحتوي على مرجع لعنوان IP العام المرتبطة ببوابة VPN VNG-Azure-VNet-1. عادةً ما يُنشأ هذا الاتصال من جهازك الداخلي. تشغيل الأمر التالي في Cloud Shell لإنشاء اتصال من VNG-HQ-Network إلى LNG-Azure-VNet-1.

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name HQ-Network-To-Azure-VNet-1  \
        --vnet-gateway1 VNG-HQ-Network \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-Azure-VNet-1
    

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

خطوات التحقق

لنؤكد أن أنفاق VPN متصلة.

  1. شغَّل الأمر التالي لتأكيد اتصال Azure-VNet-1-To-HQ-Network.

    az network vpn-connection show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network  \
        --output table \
        --query '{Name:name,ConnectionStatus:connectionStatus}'
    

    يجب أن ترى الناتج مثل المُوضح أدناه يشير إلى أن الاتصال ناجح. إذا كان ConnectionStatus يظهر مثل Connecting أو Unknown، فانتظر دقيقة أو دقيقتين ثم أعد تشغيل الأمر. يمكن أن تستغرق الاتصالات بضع دقائق للاتصال الكامل.

    Name                        ConnectionStatus
    --------------------------  ------------------
    Azure-VNet-1-To-HQ-Network  Connected
    

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

Resources deployed during unit 4 exercise.