ماشین مجازی Azure که یک دستگاه VPN را اجرا می‌کند، درون دو سیستم تصمیم‌گیری مستقل قرار دارد. Azure تصمیم می‌گیرد بسته از کجای زیرشبکه خارج می‌شود، با استفاده از جدول‌های مسیر و تنظیم ارسال مجدد کارت شبکه. سیستم‌عامل خود دستگاه تصمیم می‌گیرد که بسته رمزگشایی‌شده را جلوتر بفرستد یا نه. تونلی که بی‌عیب بالا می‌آید باز هم می‌تواند در سیستم دوم شکست بخورد، و بیشتر این استقرارها همان‌جا متوقف می‌شوند.

سه مالک یک مسیر

یک شبکه شعبه بگیرید 192.168.50.0/24 و یک زیرشبکه بار کاری 10.0.10.0/24، با دستگاه در 10.0.0.4 در زیرشبکه خودش. یک درخواست تنها سه پیکربندی جداگانه را لمس می‌کند.

DecisionConfigured inHow it fails
Where the workload subnet sends branch trafficAzure route table entryTraffic leaves the subnet and never reaches the appliance
Whether a NIC may accept traffic not addressed to itAzure NIC IP forwardingPackets arrive and disappear at the interface
Whether the guest forwards decrypted trafficGuest OS or vendor appliance policyTunnel is up, workload is unreachable
Whether the workload accepts the sourceNSG and service policyRequests delivered, replies refused

هر سطر در بیشتر سازمان‌ها مالک تیم متفاوتی است، و به همین دلیل این خرابی معمولاً به‌جای یک تیکت در قالب سه تیکت می‌رسد.

مسیری که به دستگاه اشاره می‌کند

یک جدول مسیر را به زیرشبکه بار کاری متصل کنید و به پیشوند شعبه یک گام بعدی از نوع Virtual appliance با 10.0.0.4 به‌عنوان آدرس بدهید. از آدرس خصوصی در دسترس دستگاه استفاده کنید، هرگز نقطه ورود عمومی VPN آن. گام بعدی باید آدرسی باشد که زیرشبکه بار کاری از قبل می‌تواند به آن برسد. بقیه مسیریابی بار کاری را رها کنید مگر اینکه آگاهانه تصمیم گرفته باشید مسیر پیش‌فرض را جایگزین کنید.

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

پرچم کارت شبکه که همه فراموش می‌کنند

Azure برای هر کارت شبکه یک تنظیم ارسال مجدد IP دارد و به‌طور پیش‌فرض خاموش است. این تنظیم وجود دارد چون کارت شبکه‌ای که ارسال مجدد می‌کند بسته‌هایی دریافت می‌کند که به چیز دیگری آدرس‌دهی شده‌اند، و دور ریختن خاموش آن‌ها پیش‌فرض ایمن برای بقیه است.

az network nic update --resource-group rg-net --name appliance-nic --ip-forwarding true آن را برای یک رابط روشن می‌کند. راهنمای Microsoft درباره ارسال مجدد در کارت شبکه این تنظیم را روی هر کارت شبکه متصل که ترافیک را ارسال مجدد می‌کند لازم می‌داند، پس دستگاه تک‌کارت هم باید آن را روی همان کارت تنظیم کند.

این پرچم یک مسیر نیست و یک قاعده فایروال هم نیست. روشن کردنش اجازه می‌دهد و هیچ چیز دیگری.

مهمان با بسته رمزگشایی‌شده چه می‌کند

وقتی تونل پایان می‌یابد، پشته خود دستگاه تصمیم بعدی را می‌گیرد. روی مهمان Linux، ارسال مجدد IPv4 یک تنظیم زمان اجراست، و sysctl -w net.ipv4.ip_forward=1 تا بوت بعدی دوام می‌آورد. آن را به‌جای این در فایلی زیر /etc/sysctl.d/ ذخیره کنید. دستگاه یک فروشنده معادل خودش را دارد، و دستورهای Linux که در بستر یک فروشنده چسبانده شوند معمولاً هیچ کاری نمی‌کنند.

سیاست فایروال مهمان باز هم جداست، و همچنین گروه امنیت شبکه بار کاری. اجازه دادن UDP 500 و 4500 به آدرس عمومی ماشین مجازی از تونل محافظت می‌کند؛ اما هیچ چیزی درباره اینکه یک درخواست شعبه رمزگشایی‌شده می‌تواند به یک پورت بار کاری برسد نمی‌گوید.

یک درخواست و پاسخش را دنبال کنید

یک جریان مجاز انتخاب کنید و آن را سرتاسر دنبال کنید. شعبه به یک مسیر نیاز دارد برای 10.0.10.0/24 از طریق اتصال سایت، دستگاه به مسیر تحویل به زیرشبکه بار کاری نیاز دارد، و زیرشبکه بار کاری به یک مسیر بازگشت به سمت شعبه نیاز دارد.

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

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

مقالات مرتبط