كيفية تكوين BGP لبوابة Azure VPN: CLI

تساعدك هذه المقالة على تمكين BGP على اتصالات VPN من موقع إلى موقع (S2S) عبر أماكن العمل واتصالات VNet-to-VNet باستخدام Azure CLI. يمكنك أيضا إنشاء هذا التكوين باستخدام مدخل Microsoft Azure أو خطوات PowerShell .

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

لمزيد من المعلومات حول فوائد BGP وفهم المتطلبات والاعتبارات التقنية لاستخدام BGP، راجع حول BGP وبوابة Azure VPN.

يساعدك كل جزء من هذه المقالة في تكوين لبنة أساسية لتمكين BGP في اتصال الشبكة لديك. إذا أكملت جميع الأجزاء الثلاثة (تكوين BGP على البوابة واتصال S2S واتصال VNet-to-VNet) يمكنك إنشاء المخطط كما هو موضح في الرسم التخطيطي 1.

الرسم التخطيطي 1

رسم تخطيطي يوضح بنية الشبكة وإعداداتها.

يمكنك دمج الأقسام معاً لبناء شبكة عبور أكثر تعقيداً ومتعددة القفزات تلبي احتياجاتك.

المتطلبات الأساسية

تمكين BGP لبوابة VPN

هذا القسم مطلوب قبل تنفيذ أي من الخطوات الموجودة في قسمي التكوين الآخرين. تقوم خطوات التكوين التالية بإعداد معلمات BGP لبوابة Azure VPN كما هو موضح في الرسم التخطيطي 2.

الرسم التخطيطي 2

رسم تخطيطي يوضح إعدادات بوابة الشبكة الظاهرية.

إنشاء وتكوين TestVNet1

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

ينشئ المثال التالي مجموعة موارد تسمى TestRG1 في موقع "eastus". إذا كانت لديك بالفعل مجموعة موارد في المنطقة التي تريد إنشاء شبكتك الظاهرية فيها، يمكنك استخدام هذه المجموعة بدلاً من ذلك.

az group create --name TestRG1 --location eastus

2. إنشاء TestVNet1

يقوم المثال التالي بإنشاء شبكة ظاهرية باسم TestVNet1 وثلاث شبكات فرعية: GatewaySubnet وFrontEnd وBackEnd. عندما تستبدل القيم، من المهم دوماً تسمية الشبكة الفرعية للبوابة الخاصة بك وخصوصاً GatewaySubnet. إذا أعطيتها اسماً آخر، فسيفشل إنشاء البوابة الخاصة بك.

يقوم الأمر الأول بإنشاء مساحة عنوان الواجهة الأمامية والشبكة الفرعية FrontEnd. ينشئ الأمر الثاني مساحة عنوان إضافية للشبكة الفرعية BackEnd. يقوم الأمران الثالث والرابع بإنشاء الشبكة الفرعية BackEnd وGatewaySubnet.

az network vnet create -n TestVNet1 -g TestRG1 --address-prefix 10.11.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.11.0.0/24
az network vnet update -n TestVNet1 --address-prefixes 10.11.0.0/16 10.12.0.0/16 -g TestRG1
 
az network vnet subnet create --vnet-name TestVNet1 -n BackEnd -g TestRG1 --address-prefix 10.12.0.0/24
 
az network vnet subnet create --vnet-name TestVNet1 -n GatewaySubnet -g TestRG1 --address-prefix 10.12.255.0/27

إنشاء بوابة VPN ل TestVNet1 باستخدام معلمات BGP

1. إنشاء عنوان IP العام

طلب عنوان IP عام. سيتم تخصيص عنوان IP العام لبوابة VPN التي تنشئها للشبكة الظاهرية.

az network public-ip create -n GWPubIP -g TestRG1 --allocation-method Dynamic 

2. قم بإنشاء بوابة VPN برقم AS

إنشاء بوابة الشبكة الظاهرية لـTestVNet1. يتطلب بروتوكول BGP بوابة VPN مستندة إلى المسار. تحتاج أيضاً إلى المعلمة -Asn الإضافية لتعيين رقم النظام المستقل (ASN) لـTestVNet1. قد يستغرق إنشاء بوابة 45 دقيقة أو أكثر، اعتماداً على بوابة SKU المحددة.

إذا قمت بتشغيل هذا الأمر باستخدام المعلمة --no-wait، فلن ترى أي ملاحظات أو مخرجات. تسمح المعلمة --no-wait بإنشاء البوابة في الخلفية. هذا لا يعني أن بوابة VPN يتم إنشاؤها على الفور.

az network vnet-gateway create -n VNet1GW -l eastus --public-ip-address GWPubIP -g TestRG1 --vnet TestVNet1 --gateway-type Vpn --sku HighPerformance --vpn-type RouteBased --asn 65010 --no-wait

بعد إنشاء البوابة، يمكنك استخدام هذه البوابة لإنشاء اتصال عبر المباني أو اتصال VNet-to-VNet مع BGP.

3. الحصول على عنوان IP النظير Azure BGP

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

تشغيل الأمر التالي.

az network vnet-gateway list -g TestRG1

دون ملاحظة عن bgpSettings القسم في أعلى الإخراج. ستستخدم هذا

"bgpSettings": { 
      "asn": 65010, 
      "bgpPeeringAddress": "10.12.255.30", 
      "peerWeight": 0 
    }

إذا كنت لا ترى BgpPeeringAddress معروضا كعنوان IP، فلا يزال يتم تكوين البوابة الخاصة بك. حاول مرة أخرى عند اكتمال البوابة.

إنشاء اتصال عبر المباني مع BGP

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

رسم تخطيطي 3

رسم تخطيطي يوضح تكوين IPsec.

إنشاء بوابة الشبكة المحلية وتكوينها

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

  • يمكن أن تكون بوابة الشبكة المحلية في الموقع ومجموعة الموارد نفسيهما مثل بوابة VPN، أو يمكن أن تكون في موقع ومجموعة موارد مختلفين. يعرض هذا المثال بوابات في مجموعات موارد مختلفة في مواقع مختلفة.
  • الحد الأدنى للبادئة التي تحتاج إلى الإعلان عنها لبوابة الشبكة المحلية هي عنوان المضيف لعنوان IP الخاص بـBGP Peer IP على جهاز VPN الخاص بك. في هذه الحالة، تكون البادئة /32 من 10.51.255.254/32.
  • للتذكير، يجب عليك استخدام شبكات ASN BGP مختلفة بين الشبكات المحلية وشبكة Azure الظاهرية. إذا كانت هي نفسها، فأنت بحاجة إلى تغيير VNet ASN إذا كانت أجهزة VPN المحلية تستخدم بالفعل ASN للتناظر مع جيران BGP الآخرين.

قبل المتابعة، تأكد من إكمال قسم تمكين BGP لبوابة VPN في هذا التمرين. لاحظ أنه في هذا المثال، يمكنك إنشاء مجموعة موارد جديدة. لاحظ أيضاً المعلمتين الإضافيتين لبوابة الشبكة المحلية: Asn وBgpPeerAddress.

az group create -n TestRG5 -l westus 
 
az network local-gateway create --gateway-ip-address 23.99.221.164 -n Site5 -g TestRG5 --local-address-prefixes 10.51.255.254/32 --asn 65050 --bgp-peering-address 10.51.255.254

توصيل بوابة الشبكة الظاهرية وبوابة الشبكة المحلية

في هذه الخطوة، يمكنك إنشاء الاتصال من TestVNet1 إلى Site5. يجب عليك تحديد المعلمة --enable-bgp لتمكين بروتوكول BGP لهذا الاتصال.

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

1. احصل على معرف مورد VNet1GW

استخدم نتيجة الأمر التالي للحصول على معرف مورد VNet1GW:

az network vnet-gateway show -n VNet1GW -g TestRG1

في النتيجة، ابحث عن الخط "id":. تحتاج إلى القيم الموجودة داخل علامات الاقتباس لإنشاء الاتصال في القسم التالي.

مثال على الإخراج:

{ 
  "activeActive": false, 
  "bgpSettings": { 
    "asn": 65010, 
    "bgpPeeringAddress": "10.12.255.30", 
    "peerWeight": 0 
  }, 
  "enableBgp": true, 
  "etag": "W/\"<your etag number>\"", 
  "gatewayDefaultSite": null, 
  "gatewayType": "Vpn", 
  "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW",

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

"id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"

2. احصل على معرف مورد Site5

استخدم الأمر التالي للحصول على معرف مورد Site5 من النتيجة:

az network local-gateway show -n Site5 -g TestRG5

3. إنشاء اتصال TestVNet1 إلى Site5

في هذه الخطوة، يمكنك إنشاء الاتصال من TestVNet1 إلى Site5. كما تمت مناقشته سابقا، من الممكن أن يكون لديك كل من اتصالات BGP وغير BGP لنفس بوابة Azure VPN. ما لم يتم تمكين BGP في خاصية الاتصال، لن يقوم Azure بتمكين BGP لهذا الاتصال، على الرغم من تكوين معلمات BGP بالفعل على كلتا البوابتين. استبدل معرفات الاشتراك بمعرفاتك الخاصة.

az network vpn-connection create -n VNet1ToSite5 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --local-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG5/providers/Microsoft.Network/localNetworkGateways/Site5

تكوين الجهاز المحلي

يسرد المثال التالي المعلمات التي تدخلها في قسم تكوين BGP على جهاز VPN المحلي الخاص بك لهذا التمرين:

- Site5 ASN            : 65050
- Site5 BGP IP         : 10.51.255.254
- Prefixes to announce : (for example) 10.51.0.0/16
- Azure VNet ASN       : 65010
- Azure VNet BGP IP    : 10.12.255.30
- Static route         : Add a route for 10.12.255.30/32, with nexthop being the VPN tunnel interface on your device
- eBGP Multihop        : Ensure the "multihop" option for eBGP is enabled on your device if needed

ينبغي تأسيس الاتصال بعد بضع دقائق. تبدأ جلسة عمل تناظر بروتوكول BGP بعد إنشاء اتصال IPsec.

إنشاء اتصال VNet-to-VNet مع BGP

يضيف هذا القسم اتصال VNet-to-VNet مع BGP، كما هو موضح في الرسم التخطيطي 4.

الرسم التخطيطي4

رسم تخطيطي يوضح تكوين الشبكة الكامل.

تستمر الإرشادات التالية من الخطوات الواردة في الأقسام السابقة. لإنشاء وتكوين TestVNet1 وبوابة VPN ببروتوكول BGP، يجب إكمال قسم تمكين BGP لبوابة VPN الخاصة بك.

إنشاء TestVNet2 وبوابة VPN

من المهم التأكد من أن مساحة عنوان IP للشبكة الظاهرية الجديدة، TestVNet2، لا تتداخل مع أي من نطاقات الشبكة الظاهرية.

في هذا المثال، تنتمي الشبكات الظاهرية إلى نفس الاشتراك. يمكنك إعداد اتصالات VNet-to-VNet بين اشتراكات مختلفة. لمعرفة المزيد، راجع تكوين اتصال VNet-to-VNet. تأكد من إضافة -EnableBgp $True عند إنشاء الاتصالات لتمكين BGP.

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

az group create -n TestRG2 -l eastus

2. إنشاء TestVNet2 في مجموعة الموارد الجديدة

يقوم الأمر الأول بإنشاء مساحة عنوان الواجهة الأمامية والشبكة الفرعية FrontEnd. ينشئ الأمر الثاني مساحة عنوان إضافية للشبكة الفرعية BackEnd. يقوم الأمران الثالث والرابع بإنشاء الشبكة الفرعية BackEnd وGatewaySubnet.

az network vnet create -n TestVNet2 -g TestRG2 --address-prefix 10.21.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.21.0.0/24
az network vnet update -n TestVNet2 --address-prefixes 10.21.0.0/16 10.22.0.0/16 -g TestRG2
 
az network vnet subnet create --vnet-name TestVNet2 -n BackEnd -g TestRG2 --address-prefix 10.22.0.0/24
 
az network vnet subnet create --vnet-name TestVNet2 -n GatewaySubnet -g TestRG2 --address-prefix 10.22.255.0/27

3. إنشاء عنوان IP العام

طلب عنوان IP عام. سيتم تخصيص عنوان IP العام لبوابة VPN التي تنشئها للشبكة الظاهرية.

az network public-ip create -n GWPubIP2 -g TestRG2 --allocation-method Dynamic

4. قم بإنشاء بوابة VPN برقم AS

إنشاء بوابة الشبكة الظاهرية لـ TestVNet2. يجب عليك تجاوز ASN الافتراضي على بوابات Azure VPN. يجب أن تكون ASNs الخاصة بالشبكات الظاهرية المتصلة مختلفة لتمكين BGP وتوجيه النقل.

az network vnet-gateway create -n VNet2GW -l eastus --public-ip-address GWPubIP2 -g TestRG2 --vnet TestVNet2 --gateway-type Vpn --sku Standard --vpn-type RouteBased --asn 65020 --no-wait

توصيل بوابات TestVNet1 وTeestVNet2

في هذه الخطوة، يمكنك إنشاء الاتصال من TestVNet1 إلى Site5. لتمكين بروتوكول BGP لهذا الاتصال، يجب عليك تحديد المعلمة --enable-bgp.

في المثال التالي، توجد بوابة الشبكة الظاهرية وبوابة الشبكة المحلية في مجموعتي موارد مختلفتين. عندما تكون البوابتان في مجموعتي موارد مختلفتين، يجب تحديد معرف المورد بالكامل للبوابتين لإعداد اتصال بين الشبكات الظاهرية.

1. احصل على معرف مورد VNet1GW

احصل على معرف المورد الخاص بـVNet1GW من إخراج الأمر التالي:

az network vnet-gateway show -n VNet1GW -g TestRG1

مثال على قيمة مورد البوابة:

"/subscriptions/<subscripion ID value>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW"

2. احصل على معرف مورد VNet2GW

احصل على معرف المورد الخاص بـ VNet2GW من إخراج الأمر التالي:

az network vnet-gateway show -n VNet2GW -g TestRG2

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

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

az network vpn-connection create -n VNet1ToVNet2 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW
az network vpn-connection create -n VNet2ToVNet1 -g TestRG2 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW

هام

قم بتمكين BGP لكلا الاتصالين.

بعد أن تكمل هذه الخطوات، سيتم إنشاء الاتصال في بضع دقائق. سيتم تشغيل جلسة تناظر BGP بعد اكتمال اتصال VNet-to-VNet.

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

لمزيد من المعلومات حول BGP، راجع حول BGP وبوابة VPN.