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

سیاستی که می‌توانید در یک خط بیان کنید آزمون‌پذیر است۔ سیاستی که با عنوان مرور سریع‌تر توصیف می‌شود چنین نیست، و به شما نمی‌گوید وقتی درخواست به راه اشتباه می‌رود کدام قاعده را تغییر دهید۔

کارخواه قواعد را نصب می‌کند، هسته انتخاب را انجام می‌دهد

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

به همین دلیل یک تونل تقسیم‌شده می‌تواند دلبخواه به نظر برسد۔ دو مقصد در یک برنامه ممکن است فقط به این دلیل مسیرهای متفاوتی بگیرند که یک پیشوند باریک‌تر از دیگری است۔

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

پیوند هر برنامه و پیشوندهای مقصد دو ابزار متفاوتند

سیاست مقصد می‌پرسد بسته به کجا می‌رود و با جدول مسیر یا قاعده سیاست مشورت می‌کند۔ سیاست هر برنامه می‌پرسد کدام برنامه سوکت را باز کرده، و سکو آن برنامه را روی واسط تونل نگه می‌دارد حتی وقتی مسیری مشخص‌تر به جای دیگری اشاره می‌کند۔ دومی قوی‌تر است چون از تغییرات جدول جان سالم به در می‌برد، اما تنها فرایندهایی را پوشش می‌دهد که سکو می‌تواند به آن‌ها نسبت دهد۔ یک فرایند کمکی، یک مرورگر جاسازی‌شده، یا سرویسی که اتصال خودش را باز می‌کند ممکن است پیوندی را که فرض کرده‌اید به ارث نبرد۔

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

DNS و کلید قطع اضطراری از قواعد خودشان پیروی می‌کنند

حل نام تصمیمی جدا از مسیریابی بسته است، و تونل تقسیم‌شده معمولاً دو حل‌کننده می‌خواهد: حل‌کننده شرکت برای نام‌های درونی، و حل‌کننده محلی برای بقیه چیزها۔ کارخواه ممکن است تنظیمات DNS هر واسط را نصب کند، پرس‌وجوها را به یک حل‌کننده واسط بدهد، یا پیش‌فرض سامانه را دست‌نخورده بگذارد۔ مرورگری با حل‌کننده رمزنگاری‌شده خودش هر سه ترتیب را دور می‌زند۔ به جای فرض اینکه حل‌کننده مسیر را دنبال کرده، یک جست‌وجو را بیازمایید۔

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

جدایی را از هر دو سو بررسی کنید

مسیر شامل و مسیر مستثنا را جداگانه بیازمایید، و نتیجه را با نام واسط بسنجید نه با یک نشانی عمومی۔ این فرمان‌ها میزبان لینوکس با دستگاه تونل از پیش بالا را فرض می‌کنند۔ 203.0.113.10 را با مقصدی جایگزین کنید که سیاست شما آن را به درون مسیریابی می‌کند، و 198.51.100.25 را با مقصدی که به بیرون می‌فرستد۔

ip route get 203.0.113.10
ip route get 198.51.100.25
resolvectl query intranet.example.com
curl -s --interface tun0 https://example.com -o /dev/null -w '%{http_code}\n'

دو پاسخ نخست را با هم بخوانید، چون واسطی که در هر یک نام برده می‌شود نشان می‌دهد آیا جدایی آن مقصد را روی تونل گذاشته است یا نه۔ پرس‌وجوی حل‌کننده نشان می‌دهد کدام کارساز به نام درونی پاسخ داد، و فرمان آخر ثابت می‌کند دستگاه تونل اصلاً می‌تواند درخواستی را حمل کند۔ شکست در خط دوم در حالی که خط اول موفق است یعنی سیاست دقیقاً همان کاری را می‌کند که به آن گفته شده۔

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

مقالات مرتبط