جب kill switch سرنگ کو گرتا ہے تو DNS کا راستہ بھی ساتھ لے جاتا ہے، اور بچ جانے والا resolver شاذ و نادر ہی وہی ہوتا ہے جس کی آپ توقع کرتے ہیں۔ دو ڈیزائن اس لمحے کو بہت مختلف طریقے سے نبھاتے ہیں: سرنگ کے اندر نہ ہونے والے ہر DNS پیکٹ کو بلاک کرنا، یا ایک resolver کو استثنا کے طور پر کھڑا رہنے دینا۔ دونوں ہی جائز ہیں۔ براؤزر ٹیب سے علامات تقریباً یکساں دکھتی ہیں، اس لیے پہلا کام یہ جاننا ہے کہ آپ نے واقعی کون سا ڈیزائن نافذ کیا ہے۔

میں یہ فرق اپنے سامنے رکھتا ہوں کیونکہ درستی ہر معاملے میں اُلٹی ہے۔ ایک ڈیزائن کو زیادہ کشادہ استثنا چاہیے، دوسرے کو زیادہ تنگ۔ اندازہ لگانا آپ کو یا تو رازداری کا یا آدھے دن کا نقصان پہنچاتا ہے۔

ایک ہی خرابی کے لیے دو DNS ڈیزائن

ڈیزائن A resolver کو سرنگ کے پیچھے ایک عام سروس سمجھتا ہے۔ فائر وال کے قواعد UDP اور TCP 53 کی اجازت صرف سرنگ کے انٹرفیس پر دیتے ہیں، اور کلائنٹ کو دیا جانے والا پتہ سرنگ کے اندر کا resolver ہے۔ سرنگ گرنے پر تلاش رک جاتی ہے، اور یہ خرابی نہیں بلکہ مطلوبہ نتیجہ ہے۔

ڈیزائن B مقامی نیٹ ورک پر resolver کو قابلِ رسائی رکھتا ہے، عام طور پر 192.168.1.1 پر روٹر یا 127.0.0.53 پر آپریٹنگ سسٹم کا stub، اس دلیل پر کہ ناموں کا حل سرنگ کے ساتھ نہیں مرنا چاہیے۔ گھریلو LAN میں یہ سہولت دیتا ہے، جہاں روٹر پورے گھر کے لیے حل کرتا ہے۔ ہوٹل یا ہوائی اڈے کے Wi-Fi پر وہی استثنا کسی اور کے سرور کی طرف اشارہ کرتی ہے، اور آپ کا لکھا ہر نام ظاہر ہو جاتا ہے، اگرچہ آپ کی ویب ٹریفک بلاک ہی رہے۔

حد یہ ہے کہ resolver کس کا ہے۔ اگر آپ مقامی پر بھروسا کرتے ہیں تو استثنا ایک چھوٹا اور دیانت دار سوراخ ہے۔ اگر نہیں، تو صرف سرنگ والا ڈیزائن ہی قائم رہتا ہے، اور قیمت یہ ہے کہ گری ہوئی سرنگ تمام نام ساتھ لے جاتی ہے۔

VPN کلائنٹ کی اپنی تلاش اب بھی کیوں کام کرتی ہے

کلائنٹ کو سرنگ وجود میں آنے سے پہلے گیٹ وے کا ہوسٹ نام حل کرنا پڑتا ہے، اس لیے سخت بلاک کو کلائنٹ کے بوٹ اسٹریپ راستے کو نہیں ڈھانپنا چاہیے۔ زیادہ تر کلائنٹ یا تو اینڈ پوائنٹ کا پتہ کیش کرتے ہیں یا اسی ایک ہوسٹ کے لیے دستاویزی بوٹ اسٹریپ استثنا دیتے ہیں۔ اگر آپ کا قواعد کا مجموعہ اُس تلاش کو بلاک کر دے تو سرنگ کبھی واپس نہیں آتی اور لاگ ایسا کلائنٹ دکھاتے ہیں جو اپنے ہی سرور تک نہیں پہنچ سکتا؛ یہ DNS کی نہیں، پالیسی کی خرابی ہے۔

منقسم DNS وہ دوسری جگہ ہے جہاں یہ ظاہر ہوتا ہے۔ کلائنٹ اندرونی زون کو نجی resolver کی طرف دھکیلتا ہے اور باقی سب سسٹم resolver پر چھوڑ دیتا ہے۔ گرنے کے بعد عوامی نام شاید اب بھی حل ہوں جبکہ اندرونی نام وقت ختم ہونے پر ناکام ہوں، کیونکہ نجی زون کے پاس اب کوئی راستہ نہیں۔ صارف کے لیے یہ "VPN نے انٹرنیٹ توڑ دیا" ہے؛ resolver لاگ کے لیے یہ وہ استفسار ہے جو کبھی نہیں پہنچا۔

systemd-resolved کے تحت آپ تقسیم براہِ راست دیکھ سکتے ہیں۔resolvectl status ہر لنک کے DNS سرورز اور روٹنگ ڈومینز کی فہرست دیتا ہے، اور سرنگ کے نیچے جانے کے بعد اندرونی ڈومین ایسے لنک کے سرور کی طرف اشارہ کرتا رہتا ہے جو اب موجود نہیں۔ 127.0.0.53 کا stub استفسار اب بھی قبول کرتا ہے، پھر ایسے اپ اسٹریم کا انتظار کرتا ہے جو جواب نہیں دے گا، اور اسی لیے ناکامی فوراً واپس آنے کے بجائے چند سیکنڈ لیتی ہے۔

خفیہ کردہ DNS پیکٹ فلٹر کو نہیں بچکتا

DNS over HTTPS اور DNS over TLS 443 اور 853 پر سفر کرتے ہیں، اس لیے پورٹ 53 بلاک کرنے والا قاعدہ اُن کے بارے میں کچھ نہیں کہتا۔ پورٹ کے لحاظ سے "DNS" بلاک کرنا پورٹ کی پالیسی ہے، نام کے حل کی نہیں۔ اگر آپ کا kill switch سرنگ سے باہر کی تمام ٹریفک بلاک کرتا ہے تو DoH حادثاتی طور پر ڈھک جاتا ہے۔ اگر آپ نے captive portal یا عوامی resolver کے لیے چھوٹ نکالی ہے تو ڈھکا نہیں جاتا۔

کلائنٹ کی طرف کے کنٹرول سستا راستہ ہیں۔ Firefox اپنا DoH resolver چھوڑ دیتا ہے جب کینری نام use-application-dns.net حل نہ ہو، اور اسی لیے منظم نیٹ ورک اُس ڈومین کو NXDOMAIN کے طور پر شائع کرتے ہیں؛ انٹرپرائز پالیسی اسے بند کر کے پن بھی کر سکتی ہے۔ Android Private DNS اور Chrome کے محفوظ DNS کے اپنے سوئچ اور اپنی ڈیفالٹ قدریں ہیں۔ اُنہیں بند کرنا resolver پتوں کے پیچھے بھاگنے سے زیادہ قابلِ بھروسا ہے، کیونکہ پتوں کی فہرست بدلتی ہے اور آپ کے قواعد کا مجموعہ نہیں بدلتا۔

اس کی ایک صورت ایسی بھی ہے جو کسی بھی طرح لیک سے متعلق نہیں۔ پن شدہ resolver والی ایپ کو وہاں پہنچنے کے لیے نیٹ ورک راستہ پھر بھی چاہیے۔ خفیہ کاری یہ بدلتی ہے کہ استفسار کون پڑھ سکتا ہے، یہ نہیں کہ پیکٹ مشین سے نکل سکتا ہے یا نہیں، اس لیے پورے آلے کا بلاک ترتیب کو چھوئے بغیر اُسے ہرا دیتا ہے۔

علامت کو پرت سے ملائیں

زیادہ تر رپورٹیں ایک جملے میں آتی ہیں، اور وہ جملہ عموماً پرت کا نام پہلے ہی بتا دیتا ہے۔ نیچے دیا گیا جدول وہی ہے جو میں کسی قاعدے کو چھونے سے پہلے دیکھتا ہوں؛ مقصد یہ طے کرنا ہے کہ استفسار بلاک ہوا، غلط سمت گیا، یا بھیجا ہی نہیں گیا۔

SymptomLikely layerFirst check
Every name fails at once, instantlyResolver answering with a refusalQuery the resolver by address, not by name
Lookups hang for seconds, then time outPackets dropped with no responseWatch port 53 on the physical link
Public names resolve, internal ones do notSplit-DNS routing domainPer-link DNS servers on the tunnel
Names resolve, the page still failsNot DNS: routing or MTUConnect to the IP directly
Only one application failsPinned resolver or cached answerCheck that app's DNS setting

پہلی دو سطریں وہی ہیں جن کی لوگ غلط تشخیص کرتے ہیں۔ خاموش گرنا اور انکار دونوں براؤزر میں "DNS ٹوٹ گیا" جیسے دکھتے ہیں، مگر اِن میں سے صرف ایک کا مطلب ہے کہ آپ کا kill switch اپنا کام کر رہا ہے۔ انکار کا مطلب ہے کہ کسی نے جواب دیا، اس لیے بلاک وہاں نہیں جہاں آپ سمجھتے ہیں۔

resolver پالیسی بحال کریں، پھر اُسے ثابت کریں

ڈیزائن درست کریں، علامت نہیں۔ صرف سرنگ کے اندر حل کے لیے سرنگ کے انٹرفیس پر 53 کی اجازت دیں، اندرونی resolver کو سرنگ کی ترتیب کے ساتھ دھکیلیں، اور طبعی لنک کو کسی بھی DNS اجازت کے بغیر چھوڑ دیں۔ wg-quick میں resolver کو انٹرفیس ترتیب میں لکھنے والی سطر DNS = ہے، اس لیے اُسے چھوڑ دینے والی سرنگ پرانا resolver اپنی جگہ رہنے دیتی ہے اور ہر استفسار غلط راستے پر جاتا ہے۔wg-quick کتابچہ ہر پلیٹ فارم کے لیے یہ رویہ دستاویز کرتا ہے۔

پھر اسی ترتیب سے جانچیں۔ Linux پر resolvectl status فعال لنک دکھاتا ہے،dig +short example.com عوامی نام جانچتا ہے،dig @10.8.0.1 internal.example.com نجی نام جانچتا ہے، اور sudo tcpdump -ni any port 53 دکھاتا ہے کہ دونوں چلاتے وقت پیکٹ کون سا انٹرفیس استعمال کرتے ہیں۔ Windows پر Get-DnsClientServerAddress -AddressFamily IPv4 اور Resolve-DnsName example.com وہی دو حقائق دیتے ہیں: کون ترتیب شدہ ہے، اور کون جواب دیتا ہے۔

منفی امتحان پر ختم کریں۔ سرنگ منقطع کریں، تصدیق کریں کہ نیا عوامی نام ناکام ہوتا ہے، تصدیق کریں کہ نجی نام ناکام ہوتا ہے، اور تصدیق کریں کہ پورٹ 53 کا کوئی پیکٹ طبعی اڈاپٹر سے باہر نہیں گیا۔ جو بلاک صرف کیش شدہ جوابات کے لیے قائم رہے وہ بالکل قائم نہیں رہتا۔

ٹکٹ بند کرنے سے پہلے چیک لسٹ:

  • خرابی کے دوران استعمال ہونے والا resolver وہی ہے جس کا پالیسی ارادہ کرتی ہے۔
  • کلائنٹ کی اپنی اینڈ پوائنٹ تلاش کیش یا استثنا کے ذریعے اب بھی اجازت یافتہ ہے۔
  • DoH اور DoT یا بلاک میں شامل ہیں یا پالیسی سے بند ہیں۔
  • سرنگ جانے کے بعد نجی زون کھلے نہیں، بند حالت میں ناکام ہوتے ہیں۔

متعلقہ مضامین