در آژور سه شیء متفاوت «نشانی دروازه» نامیده می‌شوند. نشانی خصوصی از GatewaySubnet تخصیص می‌یابد. نشانی عمومی یک منبع IP عمومی جداگانه است که پیکربندی IP دروازه به آن اشاره می‌کند. اشتراک و محیط ابری زمینه‌ای هستند که پوسته شما با آن یکی از این دو را پیدا می‌کند. یکی را تغییر دهید و دو مورد دیگر سر جای خود می‌مانند، و به همین دلیل کار روی نشانی‌ها اغلب نیمه‌کاره می‌ماند.

این تغییرها را در چهار مرحله انجام می‌دهم: فهرست کردن اشیا، تصمیم درباره اینکه IP عمومی روی دروازه موجود جابه‌جا شود یا دروازه از نو ساخته شود، اعمال تغییر در حالی که نشانی قدیمی هنوز در دست است، و سپس بررسی هر تونل از دو سو پیش از حذف هر چیز. مرحله‌ای که مردم از آن می‌گذرند همان فهرست است.

کدام یک از سه شیء را واقعاً تغییر می‌دهید

پیش از باز کردن پرتال، شیء را نام‌گذاری کنید. دروازه VPN نشانی خصوصی خود را از زیرشبکه‌ای می‌گیرد که باید دقیقاً GatewaySubnet نام داشته باشد و آژور آن را از همان پیشوند تخصیص می‌دهد؛ فیلد عمومی برای تثبیت آن وجود ندارد. نشانی فقط به این دلیل پایدار به نظر می‌رسد که زیرشبکه پایدار است. زیرشبکه را دوباره نشانه‌گذاری کنید یا دروازه را از نو بسازید تا با آن‌ها جابه‌جا شود.

نشانی عمومی قابل ویرایش است، اما قواعد SKU تعیین می‌کند آیا ویرایش مجاز است. دروازه Basic با IP عمومی پویای Basic جفت می‌شود، SKUهای VpnGw به یک Standard ایستا نیاز دارند و دروازه افزونه‌دار ناحیه‌ای به IP عمومی Standard با همان ناحیه‌ها نیاز دارد. SKU نادرست پیش از افتادن تونل رد می‌شود.

ObjectWhere it livesWhat a change forces
Private addressGatewaySubnet prefix, assigned at deploymentSubnet resize or rebuild, then routes, NSGs and peer review
Public addressPublic IP resource referenced by the IP configurationGateway reprovision, peer and allowlist edits, new client profiles
Subscription contextYour PowerShell or CLI sessionNothing in Azure, and it clears most not-found errors

فهرست پیش از آنکه چیزی جابه‌جا شود

نخست اشتراک را اثبات کنید، زیرا بدون آن بقیه فهرست بی‌ارزش است. دروازه، پیکربندی‌های IP و هر اتصالی که روی آن پایان می‌یابد را ثبت کنید و خروجی را کنار سابقه تغییر نگه دارید.

Get-AzContext | Select-Object Subscription, Tenant, Environment
Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub |
  Select-Object Name, Sku, EnableActiveActive, IpConfigurations
Get-AzVirtualNetworkGatewayConnection -ResourceGroupName rg-hub |
  Select-Object Name, ConnectionStatus, ConnectionType

شناسه منابع از نام‌ها مهم‌تر است. یک اتصال ارجاع‌هایی به دروازه و به دروازه شبکه محلی نگه می‌دارد و این شناسه‌ها در اسکریپت‌ها، هشدارها و تخصیص‌های سیاستی ظاهر می‌شوند که کسی به یاد ندارد. آنچه بیرون آژور است را هم فهرست کنید: نام DNS که به نشانی می‌رسد، فهرست مجوز شریک و دیوار آتش شعبه که IP قدیمی را تثبیت می‌کند.

تعویض IP عمومی روی دروازه در حال کار

نخست نشانی جانشین را در همان منطقه و با مجموعه ناحیه‌های همخوان دروازه بسازید و منبع قدیمی را سر جایش بگذارید. سپس پیکربندی IP را دوباره بسازید و به‌روزرسانی را با یک فراخوانی بفرستید. آن فراخوانی کل مجموعه پیکربندی را جایگزین می‌کند، بنابراین دروازه فعال-فعال به هر دو نیاز دارد وگرنه یک تونل می‌ماند و دیگری از دست می‌رود.

$gw = Get-AzVirtualNetworkGateway -ResourceGroupName rg-hub -Name gw-hub
$pip = New-AzPublicIpAddress -Name pip-gw-hub-2 -ResourceGroupName rg-hub `
  -Location westeurope -AllocationMethod Static -Sku Standard
$conf = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 `
  -SubnetId $gw.IpConfigurations[0].Subnet.Id -PublicIpAddressId $pip.Id
Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw -IpConfigurations $conf

تونل‌ها هنگام تأمین دوباره دروازه می‌افتند. سمت دور به برنامه نیاز دارد: دیوار آتش شریک تا کسی آن را ویرایش نکند نشانی قدیمی را پیشنهاد می‌کند و اتصالی که انتهای دورش IP پیشین را انتظار دارد، هر چقدر آژور سالم به نظر برسد پایین می‌ماند. پیش از پنجره، TTL دی‌ان‌اس را کم کنید.

کارخواهان نقطه‌به‌سایت به نمایه تازه نیاز دارند، زیرا بسته دانلودشده نقطه پایانی را حمل می‌کند. نام DNS سفارشی در جلوی دروازه شما را از توزیع دوباره بی‌نیاز می‌کند: نام را نگه دارید، رکورد را تغییر دهید.

انتقال دروازه به اشتراک دیگر

انتقال منبع یک مجموعه را جابه‌جا می‌کند و دروازه به‌تنهایی کم‌فایده‌ترین عضو آن است. شبکه مجازی، منابع IP عمومی، دروازه‌های شبکه محلی و اتصال‌ها با هم سفر می‌کنند چون هر یک به دیگری ارجاع دارد. اشتراک مقصد باید در همان مستأجر باشد، Microsoft.Network باید آنجا ثبت شده باشد و به دسترسی نوشتن در دو سو نیاز دارید.

اعتبارسنجی پیش از هر تغییری اجرا می‌شود، پس انتقال ردشده منابع را سر جایشان می‌گذارد. به همین دلیل انتقال پیش از بازسازی ارزش یک تلاش را دارد: انتقال موفق IP عمومی را با خود می‌برد، پس همتایان و فهرست‌های مجوز کار می‌کنند، در حالی که دروازه بازسازی‌شده به‌ندرت همان نشانی را برمی‌گرداند.

az resource move --destination-group rg-hub `
  --destination-subscription-id 00000000-0000-0000-0000-000000000000 `
  --ids /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub

خطای اعتبارسنجی را بخوانید نه اینکه دوباره تلاش کنید. علت‌های معمول وابستگی جاگذاشته، نوع منبعی که جابه‌جا نمی‌شود یا قفلی روی یکی از گروه‌های منابع است. اگر انتقال ناممکن است، در مقصد بازسازی و تغییر مسیر دهید: مسیریابی و احراز هویت را از زیرشبکه آزمایشی تأیید کنید، اتصال‌های قدیمی را به‌جای حذف متوقف کنید و سپس مسیر قدیمی را در پنجره بعدی بردارید.

وقتی دروازه گم‌شده به نظر می‌رسد، زمینه را بررسی کنید

خطای پیدا نشد معمولاً خطای دامنه است. حسابی با چند اشتراک یک cmdlet را به اشتباه هدایت می‌کند و پیام منبع را سرزنش می‌کند. شیء را با شناسه کامل منبع جستجو کنید: شناسه اشتراک خود را حمل می‌کند، پس اگر حل شود چیزی گم نشده و زمینه پیش‌فرض شما نادرست است.

دو ناسازگاری دیگر هم همین‌گونه خوانده می‌شوند. دروازه ابر تجاری در نشستی که به محیط دولتی یا چین نشانه رفته وجود ندارد و نسخه‌های قدیمی‌تر ماژول شکل‌های منبعی را که API از پیش برمی‌گرداند نمی‌بینند. اشتراک را تثبیت کنید، محیط را همتا کنید و سپس پرونده باز کنید.

Set-AzContext -SubscriptionId 11111111-1111-1111-1111-111111111111
Get-AzResource -ResourceId /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg-hub/providers/Microsoft.Network/virtualNetworkGateways/gw-hub

پیش از پاک‌سازی از دو سو بررسی کنید

«متصل» یک وضعیت است نه مدرک. وضعیت تونل را به تفکیک اتصال، وضعیت همتای BGP را اگر مسیریابی پویا دارید و مسیرهای مؤثر را روی زیرشبکه بار بررسی کنید. سپس یک درخواست واقعی را از برنامه‌ای که به تونل وابسته است بگذرانید. اتصال می‌تواند خود را متصل گزارش کند در حالی که پیشوند موردنیاز در جدول مسیرها نیست.

Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName gw-hub -ResourceGroupName rg-hub
Get-AzEffectiveRouteTable -NetworkInterfaceName nic-app -ResourceGroupName rg-app

IP عمومی قدیمی را به‌جای حذف، جدا نگه دارید تا پنجره بازگشت بسته شود و ویرایش‌های همتا و دیوار آتش را بنویسید تا به ترتیب بازگردانده شوند.

  • زمینه به اشتراکی که مالک دروازه است تثبیت شده
  • IP عمومی قدیمی نگه داشته و وابستگی‌هایش نوشته شده
  • هر اتصال سبز و یک درخواست واقعی از آن
  • کاربران نقطه‌به‌سایت به نمایه تازه‌شده منتقل شده‌اند
  • رکورد DNS تغییر کرد و مقدار پیشینش ثبت شد

مقالات مرتبط