كيفية تكوين BGP على بوابات Azure VPN باستخدام PowerShell

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

نبذة عن BGP

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

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

بدء استخدام BGP على بوابات Azure VPN

ترشدك هذه المقالة خلال الخطوات اللازمة للقيام بالمهام التالية:

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

BGP topology

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

الجزء 1 - تكوين BGP على بوابة Azure VPN

تقوم خطوات التكوين بإعداد معلمات BGP لبوابة Azure VPN كما هو موضح في الرسم التخطيطي التالي:

BGP Gateway

قبل أن تبدأ

الخطوة 1 - إنشاء وتكوين VNet1

1. قم بتعريف المتغيرات الخاصة بك

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

$Sub1 = "Replace_With_Your_Subscription_Name"
$RG1 = "TestBGPRG1"
$Location1 = "East US"
$VNetName1 = "TestVNet1"
$FESubName1 = "FrontEnd"
$BESubName1 = "Backend"
$GWSubName1 = "GatewaySubnet"
$VNetPrefix11 = "10.11.0.0/16"
$VNetPrefix12 = "10.12.0.0/16"
$FESubPrefix1 = "10.11.0.0/24"
$BESubPrefix1 = "10.12.0.0/24"
$GWSubPrefix1 = "10.12.255.0/27"
$VNet1ASN = 65010
$DNS1 = "8.8.8.8"
$GWName1 = "VNet1GW"
$GWIPName1 = "VNet1GWIP"
$GWIPconfName1 = "gwipconf1"
$Connection12 = "VNet1toVNet2"
$Connection15 = "VNet1toSite5"

2. الاتصال إلى اشتراكك وإنشاء مجموعة موارد جديدة

لاستخدام Resource Manager cmdlets، تأكد من التبديل إلى وضع PowerShell. لمزيد من المعلومات، راجع استخدام Windows PowerShell مع Resource Manager.

افتح وحدة تحكم PowerShell واتصل بحسابك. استخدم المثال التالي لمساعدتك على الاتصال:

Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1

3. إنشاء TestVNet1

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

$fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
$besub1 = New-AzVirtualNetworkSubnetConfig -Name $BESubName1 -AddressPrefix $BESubPrefix1
$gwsub1 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName1 -AddressPrefix $GWSubPrefix1

New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 -Location $Location1 -AddressPrefix $VNetPrefix11,$VNetPrefix12 -Subnet $fesub1,$besub1,$gwsub1

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

1. أنشئ تكوينات الشبكة الفرعية وعنوان IP

اطلب عنوان IP عام لتخصيصه للبوابة التي ستقوم بإنشائها لشبكة VNet الخاصة بك. ستحدد أيضًا تكوينات الشبكة الفرعية وIP المطلوبة.

$gwpip1 = New-AzPublicIpAddress -Name $GWIPName1 -ResourceGroupName $RG1 -Location $Location1 -AllocationMethod Dynamic

$vnet1 = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
$gwipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName1 -Subnet $subnet1 -PublicIpAddress $gwpip1

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

إنشاء بوابة الشبكة الظاهرية لـTestVNet1. يتطلب BGP بوابة VPN Route-Based، وكذلك معلمة الإضافة، -Asn، لتعيين ASN (رقم AS) لـTestVNet1. إذا لم تقم بتعيين المعلمة ASN، يتم تعيين ASN 65515. قد يستغرق إنشاء بوابة بعض الوقت (30 دقيقة أو أكثر لإكمالها).

New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 -Location $Location1 -IpConfigurations $gwipconf1 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet1ASN

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

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

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet1gw.BgpSettingsText

يعرض الأمر الأخير تكوينات BGP المقابلة على بوابة Azure VPN. على سبيل المثال:

$vnet1gw.BgpSettingsText
{
    "Asn": 65010,
    "BgpPeeringAddress": "10.12.255.30",
    "PeerWeight": 0
}

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

الجزء 2 - إنشاء اتصال عبر المباني مع BGP

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

BGP for Cross-Premises

قبل المتابعة، تأكد من إكمال الجزء 1 من هذا التمرين.

الخطوة 1 - إنشاء بوابة الشبكة المحلية وتكوينها

1. قم بتعريف المتغيرات الخاصة بك

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

$RG5 = "TestBGPRG5"
$Location5 = "East US 2"
$LNGName5 = "Site5"
$LNGPrefix50 = "10.52.255.254/32"
$LNGIP5 = "Your_VPN_Device_IP"
$LNGASN5 = 65050
$BGPPeerIP5 = "10.52.255.254"

هناك أمران يجب ملاحظتهما فيما يتعلق بمعلمات بوابة الشبكة المحلية:

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

قبل المتابعة، تأكد من أنك لا تزال متصلًا بالاشتراك 1.

2. إنشاء بوابة الشبكة المحلية لـSite5

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

New-AzResourceGroup -Name $RG5 -Location $Location5

New-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5 -Location $Location5 -GatewayIpAddress $LNGIP5 -AddressPrefix $LNGPrefix50 -Asn $LNGASN5 -BgpPeeringAddress $BGPPeerIP5

الخطوة 2 - الاتصال بوابة VNet وبوابة الشبكة المحلية

1. احصل على البوابتين

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1  -ResourceGroupName $RG1
$lng5gw  = Get-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5

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

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

New-AzVirtualNetworkGatewayConnection -Name $Connection15 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -LocalNetworkGateway2 $lng5gw -Location $Location1 -ConnectionType IPsec -SharedKey 'AzureA1b2C3' -EnableBGP $True

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


- Site5 ASN            : 65050
- Site5 BGP IP         : 10.52.255.254
- Prefixes to announce : (for example) 10.51.0.0/16 and 10.52.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.

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

يضيف هذا القسم اتصال VNet-to-VNet مع BGP، كما هو موضح في الرسم البياني التالي:

Diagram that shows a V Net to V Net connection.

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

الخطوة 1 - إنشاء TestVNet2 وبوابة VPN

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

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

1. قم بتعريف المتغيرات الخاصة بك

تأكد من استبدال القيم بالقيم التي تريد استخدامها للتكوين.

$RG2 = "TestBGPRG2"
$Location2 = "West US"
$VNetName2 = "TestVNet2"
$FESubName2 = "FrontEnd"
$BESubName2 = "Backend"
$GWSubName2 = "GatewaySubnet"
$VNetPrefix21 = "10.21.0.0/16"
$VNetPrefix22 = "10.22.0.0/16"
$FESubPrefix2 = "10.21.0.0/24"
$BESubPrefix2 = "10.22.0.0/24"
$GWSubPrefix2 = "10.22.255.0/27"
$VNet2ASN = 65020
$DNS2 = "8.8.8.8"
$GWName2 = "VNet2GW"
$GWIPName2 = "VNet2GWIP"
$GWIPconfName2 = "gwipconf2"
$Connection21 = "VNet2toVNet1"
$Connection12 = "VNet1toVNet2"

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

New-AzResourceGroup -Name $RG2 -Location $Location2

$fesub2 = New-AzVirtualNetworkSubnetConfig -Name $FESubName2 -AddressPrefix $FESubPrefix2
$besub2 = New-AzVirtualNetworkSubnetConfig -Name $BESubName2 -AddressPrefix $BESubPrefix2
$gwsub2 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName2 -AddressPrefix $GWSubPrefix2

New-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2 -Location $Location2 -AddressPrefix $VNetPrefix21,$VNetPrefix22 -Subnet $fesub2,$besub2,$gwsub2

الخطوة 3 - إنشاء بوابة VPN لـTestVNet2 باستخدام معلمات BGP

اطلب تخصيص عنوان IP عام للبوابة التي ستقوم بإنشائها لـVNet الخاص بك وتحديد تكوينات الشبكة الفرعية وIP المطلوبة.

$gwpip2    = New-AzPublicIpAddress -Name $GWIPName2 -ResourceGroupName $RG2 -Location $Location2 -AllocationMethod Dynamic

$vnet2     = Get-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2
$subnet2   = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet2
$gwipconf2 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName2 -Subnet $subnet2 -PublicIpAddress $gwpip2

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

New-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2 -Location $Location2 -IpConfigurations $gwipconf2 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet2ASN

الخطوة 2 - الاتصال بوابات TestVNet1 وTestVNet2

في هذا المثال، كلتا البوابتين في نفس الاشتراك. يمكنك إكمال هذه الخطوة في نفس جلسة عمل PowerShell.

1. احصل على كلتا البوابتين

تأكد من تسجيل الدخول والاتصال بالاشتراك 1.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet2gw = Get-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2

2. إنشاء كلا الاتصالين

في هذه الخطوة، يمكنك إنشاء الاتصال من TestVNet1 إلى TestVNet2 والاتصال من TestVNet2 إلى TestVNet1.

New-AzVirtualNetworkGatewayConnection -Name $Connection12 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet2gw -Location $Location1 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

New-AzVirtualNetworkGatewayConnection -Name $Connection21 -ResourceGroupName $RG2 -VirtualNetworkGateway1 $vnet2gw -VirtualNetworkGateway2 $vnet1gw -Location $Location2 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

هام

تأكد من تمكين BGP لكلا الاتصالين.

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

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

BGP for VNet-to-VNet

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

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