ونڈوز میں فی ایپ VPN ٹرگر بمقابلہ منقسم ٹنل: کون الگ کرتا ہے
ایپ سے چلنے والا ونڈوز VPN پروفائل صرف ایک ٹنل کھولتا ہے۔ روٹ شدہ منقسم ٹنل طے کرتا ہے کہ اندر کیا آئے گا، اور دونوں ایک ایپ کے لیے مختلف طور پر ناکام ہوتے ہیں۔
ونڈوز کی دو سیٹنگز سیٹنگز میں ایک جیسی دکھتی ہیں اور بالکل ایک جیسا برتاؤ نہیں کرتیں۔ ایک کاپی شدہ VPN پروفائل ہے جس میں ایپ ٹرگر ہے، لہٰذا ایک ایگزیکیوٹیبل فائل چلانے سے ٹنل بلند ہو جاتی ہے۔ دوسری منقسم ٹنل والا پروفائل ہے جس کی روٹ فہرست اتفاقاً وہ کچھ ڈھانپتی ہے جس سے وہ ایپ بات کرتی ہے۔ پہلی بتاتی ہے ٹنل کب موجود ہے۔ دوسری بتاتی ہے کون سے پیکٹ اندر آتے ہیں، اور صرف دوسری باقی مشین کو طبعی لنک پر چھوڑتی ہے جبکہ ایپ منسلک رہتی ہے۔
ٹرگر زندگی کے دور کا قاعدہ ہے، روٹنگ کا قاعدہ نہیں
Add-VpnConnectionTriggerApplication ایک ایگزیکیوٹیبل راستے کو پروفائل نام سے باندھتا ہے۔ جب وہ عمل شروع ہوتا ہے، ریموٹ ایکسیس کنکشن مینیجر پروفائل کو کال کرتا ہے، اور جب ٹرگر کی شرط ختم ہو تو کنکشن گر سکتا ہے۔ اس تبادلے میں کچھ بھی ساکٹس کی جانچ نہیں کرتا۔ کمانڈ کو بلند shell، بائنری کا مکمل راستہ اور -Force موجودہ اندراج بدلتے وقت ضرورت ہوتی ہے۔ تصدیق کریں کہ تعلق برقرار رہا بذریعہ Get-VpnConnectionTrigger پرامپٹ پر بھروسا کرنے کے بجائے؛ Microsoft کی Add-VpnConnectionTriggerApplication حوالہ پیرامیٹرز اور مثالیں گنواتا ہے۔
دو حدیں „ٹرگر کچھ نہیں کرتا“ والی زیادہ تر رپورٹوں کی وضاحت کرتی ہیں۔ ٹرگر تمام صارفین کے پروفائلز کے گرد بنائے جاتے ہیں، اس لیے پروفائل کا دائرہ پہلی چیز ہے جو طے کرنی ہے، اور ایپ کا راستہ اُس بائنری سے میل کھانا چاہیے جو واقعی چلتا ہے، نہ کہ شارٹ کٹ یا ایسے لانچر سے جو دوسرا عمل پیدا کرے۔ دوسری حد جان بوجھ کر ہے: ایسی نیٹ ورک پر جسے ونڈوز قابلِ اعتماد قرار دیتا ہے، ٹرگر بیکار رہتا ہے، کیونکہ پروفائل دفتر سے باہر کام کے لیے بنایا گیا ہے۔
Add-VpnConnectionTriggerApplication -Name "APP_VPN" -ApplicationID "C:\Program Files\Vendor\app.exe" -Force
Get-VpnConnectionTrigger -Name "APP_VPN" | Format-List *
Get-VpnConnection -Name "APP_VPN" | Format-List Name,ConnectionStatus,SplitTunneling,AllUserConnection
منقسم ٹنل طے کرتی ہے کہ ٹنل سے کیا گزرے
منقسم ٹنل بند ہونے پر ونڈوز VPN انٹرفیس پر کم میٹرک والا کلاس پر مبنی ڈیفالٹ روٹ نصب کرتا ہے۔ ہر ساکٹ اُس کی پیروی کرتا ہے، بشمول براؤزر اور اپ ڈیٹ سروس، اس لیے اُس ترتیب میں ٹرگر پوری مشین کو ہلاتا ہے جب تک پروفائل منسلک ہے۔ ٹرگر پھر بھی صرف زندگی کے دور کا قاعدہ ہے؛ اثر کا دائرہ روٹ سے آیا۔
منقسم ٹنل کھلی ہونے پر پروفائل صرف وہ سابقے اٹھاتا ہے جو گیٹ وے دھکیلتا ہے یا جو آپ VPN انٹرفیس پر شامل کرتے ہیں۔ باقی سب طبعی ڈیفالٹ روٹ استعمال کرتا رہتا ہے۔ یہی وہ ترتیب ہے جسے لوگ عام طور پر „ایک ایپ الگ اخراج سے“ کہتے ہیں، اور یہ شروع سے آخر تک روٹنگ کا فیصلہ ہے۔
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
روٹ شدہ تقسیم کہاں آپ کی ایپ کو الگ کرنا چھوڑ دیتی ہے
عام ناکامی وہ منزل ہے جو ٹنل کی روٹ فہرست میں کبھی ظاہر نہیں ہوتی۔ ایسی ایپ جو ایک پتے پر لاگ ان ہو کر پھر CDN سے سٹریم کرتی ہے، یا درجن بھر بدلتے اختتامی مقامات حل کرتی ہے، کچھ کنکشنز VPN انٹرفیس پر اور باقی Wi-Fi پر رکھے گی۔ IPv6 الگ جدول ہے، اس لیے صرف IPv4 سابقے دھکیلنے والا پروفائل درست دکھ سکتا ہے جبکہ ایپ کی IPv6 ٹریفک مقامی رہتی ہے۔
دو چھوٹے اثرات بھی اتنے ہی اہم ہیں۔ سب سے لمبا سابقہ میل جیتتا ہے، اس لیے زیادہ مخصوص on-link روٹ، انتظامی میزبان کے لیے دھکیلا گیا /32، یا دوسرے اڈاپٹر کا ذیلی نیٹ اوہی پتہ جس کی آپ کو فکر ہے کے لیے ٹنل کو ہرا سکتے ہیں۔ نام کا حل بھی روٹنگ سے پہلے ہوتا ہے: جب تک پروفائل کے DNS سرورز یا NRPT قاعدہ نام کو نہ ڈھانپیں، ایپ طبعی اڈاپٹر سے حل کر کے ایسا پتہ لے سکتی ہے جو کبھی ٹنل شدہ سابقوں کے اندر نہ تھا۔
تین شکلیں، اور ہر ایک کیا خریدتی ہے
جدول وہ حصہ ہے جو میں دیوار پر چپکاؤں گا، کیونکہ فیصلہ خصوصیات کا نہیں اثر کے دائرے کا ہے۔ اگر ایپ کی منزلیں مستحکم سابقے ہیں جنہیں آپ گنوا سکتے ہیں، تو روٹ شدہ تقسیم سب سے چھوٹے نقش کے ساتھ الگاؤ دیتی ہے۔ اگر نہیں، تو VM یا دوسرے آلے کے پیچھے ڈیفالٹ روٹ والا پروفائل ایک سے زیادہ عمل ہلانے کی قیمت پر علیحدگی دیانت دار رکھتا ہے۔
| Shape | What starts the tunnel | What enters it | Pick it when |
|---|---|---|---|
| Trigger plus routed split | Process start | Only pushed or added prefixes | The app's endpoints are stable prefixes and the host should stay direct |
| Trigger plus default route | Process start | Everything, machine-wide | You need one exit for all traffic and accept the wider scope |
| Separate VM or device | Guest boot or login | Everything inside that guest | The app's destinations rotate, or the host must keep its own public address |
ان میں سے کوئی بھی میزبان پر ساکٹ کی سطح پر پابندی پیش نہیں کرتا۔ ونڈوز کے کلاسیکی VPN کلائنٹ میں ایسا قاعدہ نہیں کہ یہ عمل لازماً وہ اڈاپٹر استعمال کرے؛ ٹرگر اور روٹ فلٹر مختلف تہوں میں رہتے ہیں، اور انٹرفیس چننے والی تہہ روٹنگ جدول ہے۔ اگر کوئی رہنما صرف کاپی شدہ پروفائل سے فی ایپ نفاذ کا وعدہ کرے، تو پوچھیں کون سا روٹ یا کون سا فلٹر کام کر رہا ہے۔
جوڑے کو ایک پاس میں جانچیں
زندگی کے دور اور روٹنگ کو الگ الگ جانچیں، اسی ترتیب سے۔ ایپ بند کریں، تصدیق کریں کہ پروفائل Disconnected بتاتا ہے، پھر ایپ شروع کریں اور دیکھیں کہ حالت بدلی ہے۔ ٹنل بلند ہونے کے بعد ہی پوچھیں کہ کوئی مخصوص منزل کہاں جاتی ہے، اور اندازے کے بجائے وہی پتہ استعمال کریں جو ایپ واقعی کال کرتی ہے۔
$app = Get-Process app | Select-Object -First 1
Get-VpnConnection -Name "APP_VPN" | Select-Object ConnectionStatus
Get-NetTCPConnection -OwningProcess $app.Id -State Established | Select-Object RemoteAddress,RemotePort
Find-NetRoute -RemoteIPAddress 203.0.113.10
Find-NetRoute انٹرفیس اور اگلا قدم بتاتا ہے جو وہ منزل لے جائے گا۔ وہاں طبعی عرف کا مطلب ہے کہ ٹنل بلند ہے اور اُس بہاؤ کے لیے غیر متعلق: دھکیلے گئے سابقے دیکھیں، پھر زیادہ مخصوص روٹ، پھر IPv6۔ اگر حالت بالکل نہ بدلے، ٹرگر نہیں چلا، اور ایگزیکیوٹیبل کا راستہ، پروفائل کا دائرہ اور VPN کلائنٹ کا آپریشنل لاگ تین جگہیں ہیں جہاں دیکھنا ہے۔
صفائی سے ہٹائیں تاکہ اگلا امتحان دیانت دار ہو
اُسی الٹی ترتیب میں ہٹائیں جس میں بنایا: پہلے ایپ ٹرگر، پھر پروفائل۔ ٹرگر رہتے ہوئے پروفائل مٹانا ایک لٹکتا تعلق چھوڑتا ہے جو اگلی کوشش کو الجھا دیتا ہے، اور Remove-VpnConnection -Force ہمیشہ ایسا فون بک اندراج صاف نہیں کرتا جو کمانڈز سے باہر بنایا گیا ہو۔
فی صارف اندراجات صارف کے rasphone.pbk میں Roaming پروفائل کے تحت رہتے ہیں؛ تمام صارفین کے اندراجات ProgramData کے تحت رہتے ہیں۔ پروفائل کے دائرے سے میل کھانے والا اسٹور دیکھیں، رکھا ہوا پروفائل دوبارہ منسلک کریں اور تصدیق کریں کہ اُس کے روٹ اور DNS اب بھی درست برتاؤ کرتے ہیں، تاکہ بعد کا امتحان آپ کی کی گئی تبدیلی ناپے نہ کہ بچی ہوئی حالت۔
- ٹنل عمل شروع ہونے پر بلند ہوتی ہے، لاگ ان پر نہیں۔
- VPN انٹرفیس پر صرف مطلوبہ سابقے ظاہر ہوتے ہیں۔
- ایپ کا اصل دور دراز پتہ VPN عرف میں حل ہوتا ہے۔
- پروفائل ہٹانے کے بعد کوئی لٹکتا ٹرگر باقی نہیں رہتا۔