ہینڈ شیک چل رہا ہے، پتہ گیا: WireGuard کی تین حالتیں
نیا ہینڈ شیک ثابت کرتا ہے کہ پیر نے جواب دیا، یہ نہیں کہ انٹرفیس اپنا پتہ رکھتا ہے یا اگلا پیکٹ مطلوبہ اوپری لنک سے جاتا ہے۔
WireGuard ایک ہی وقت میں نیا ہینڈ شیک اور کوئی پتہ نہ ہونا دونوں رکھ سکتا ہے، اور یہ حالت متضاد نہیں بلکہ ہم آہنگ ہے۔ ہینڈ شیک پیر کا واقعہ ہے، پتہ انٹرفیس کا ہے، اور راستہ طے کرتا ہے کہ پیکٹ کس اوپری لنک سے نکلتا ہے۔ تین تہیں، تین مالک، اور باقی دو صحت مند دکھنے کے باوجود ہر ایک ناکام ہو سکتا ہے۔
انہیں ایک ہی حالت کے طور پر پڑھنا ہی دو منٹ کی تشخیص کو خدمات دوبارہ شروع کرنے میں گزرنے والی پوری دوپہر میں بدل دیتا ہے۔
ہینڈ شیک پیر کا واقعہ ہے، پتہ دینے کا واقعہ نہیں
WireGuard کا ہینڈ شیک ثابت کرتا ہے کہ کنفیگر کیا گیا پیر درست کلید کے ساتھ جواب دیا اور سیشن کلیدیں موجودہ ہیں۔ یہ انٹرفیس پر موجود مقامی پتے کے بارے میں کچھ نہیں کہتا، اور نہ یہ کہ کوئی راستہ وہاں کی طرف اشارہ کرتا ہے۔ پتہ کوئی مددگار یا نیٹ ورک مینیجر تفویض کرتا ہے، جبکہ پروٹوکول کنفیگریشن صرف پیر اور کلیدوں کے نام گناتی ہے۔ ان دونوں کو ملانا ہی صحت مند ہینڈ شیک کو چلتی ٹنل کے طور پر پڑھنے کی وجہ ہے۔
اسی لیے wg show ایسے انٹرفیس پر سیکنڈوں پرانا ہینڈ شیک بتا سکتا ہے جو کسی ایپلیکیشن سے ایک بھی پیکٹ نہیں لے سکتا۔
انٹرفیس دوبارہ بنانے والا مینیجر پیر کنفیگریشن کو چھوئے بغیر پتہ گرا سکتا ہے، اور اگلا ہینڈ شیک فوراً کامیاب ہوتا ہے کیونکہ کلیدیں کبھی تبدیل نہیں ہوئیں۔ کامیاب ہینڈ شیک کے بارے میں لاگ لائن درست ہے اور خرابی سے بے تعلق ہے۔
| Observation | Which layer it belongs to | Wrong conclusion it invites |
|---|---|---|
| Handshake a few seconds old | Peer and keys | The tunnel is usable for application traffic |
Address present on wg0 | Interface configuration | Traffic actually egresses through it |
Route points at wg0 | Forwarding table | The outer packet uses the intended uplink |
انٹرفیس کے پتے کا اپنا مالک ہوتا ہے
ٹنل ڈیوائس پر پتہ مددگار کی Address لائن سے، انٹرفیس پر چلنے والے DHCP کلائنٹ سے، یا کنیکٹ کے وقت اسے بنانے والے مینجمنٹ ڈیمون سے آ سکتا ہے۔ جو بھی ہو، وہی جزو پتے کا مالک ہے اور اپنی منطق کے مطابق اسے بحال کرے گا یا نہیں۔ مالک کا نام لیے بغیر پتہ پڑھنا آپ کو یہ بتانے سے قاصر چھوڑ دیتا ہے کہ وہ کیوں غائب ہوا۔
ایک انٹرفیس پر دو مالک عام خرابی ہے۔ ایک ہی ڈیوائس پر مددگار اور ڈیسک ٹاپ نیٹ ورک مینیجر چلانے سے ایسی دوڑ بنتی ہے جس میں ایک وہ ہٹا دیتا ہے جو دوسرے نے ابھی کنفیگر کیا تھا، اور اینڈ پوائنٹ سارا وقت جواب دیتا رہتا ہے۔
ایک مالک چنیں اور دوسرے آلے کو سنبھالنے کے بجائے دیکھنے دیں۔ یہ فیصلہ لکھنے کے قابل ہے، کیونکہ علامت ہفتوں بعد ظاہر ہوتی ہے اور پتے کے بے ترتیب ضیاع جیسی لگتی ہے۔
اوپری لنک راستہ چنتا ہے، انٹرفیس نہیں
wg0 کی طرف اشارہ کرنے والا اندرونی راستہ ٹریفک ٹنل میں داخل ہوتا ہے یہ طے کرتا ہے۔ الگ فیصلہ خفیف شدہ بیرونی پیکٹ پیر کی طرف بھیجتا ہے، اور کئی اوپری لنک والے ہوسٹ پر وہ فیصلہ فارورڈنگ ٹیبل اور پالیسی قواعد سے آتا ہے۔ Wi-Fi رومنگ اندرونی پتے کو چھوئے بغیر بیرونی راستہ بدل سکتی ہے۔
اس لیے چلتی ٹنل اور ناقابل رسائی پیر ہم آہنگ حالتیں ہیں، اور درست پیر نیز ٹوٹا اندرونی راستہ بھی۔ تینوں مشاہدے اکٹھے، ایک ہی لمحے میں لیے جانے چاہئیں، ورنہ موازنہ بے معنی ہے۔
تینوں حالتوں کا ایک ہی پاس میں موازنہ کریں
صرف پڑھنے والے تین کمانڈ تین سوالوں کا جواب اس ترتیب سے دیتے ہیں جو خرابی کو سب سے تیزی سے الگ کرتا ہے۔ انہیں درمیان میں کچھ بدلے بغیر چلائیں۔
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
پہلا دکھاتا ہے کہ انٹرفیس کے پاس پتہ ہے بھی یا نہیں، اور دوسرا دکھاتا ہے کہ کوئی مخصوص منزل اب کون سی ڈیوائس استعمال کرے گی۔ تیسرا آخری ہینڈ شیک کا وقت اور بائٹ کاؤنٹر بتاتا ہے، اور تینوں میں سے یہی اکیلا ہے جو مقامی ہوسٹ کے بجائے پیر کو بیان کرتا ہے۔
ٹائم اسٹیمپ کے ساتھ کاؤنٹر بھی پڑھیں۔ منتقلی کے سپاٹ رہنے کے دوران مسلسل تازہ ہوتا ہینڈ شیک مطلب پیر جواب دے رہا ہے مگر کوئی کارآمد چیز پار نہیں ہو رہی، جو کلیدوں کی طرف نہیں بلکہ روٹنگ یا ACL کی طرف اشارہ کرتا ہے۔ پتہ موجود ہونے کے باوجود ٹائم اسٹیمپ کا آگے بڑھنا رک جانا الٹا اوپر کی طرف اشارہ کرتا ہے۔ دونوں پڑھائیاں ایک ہی آؤٹ پٹ لائن سے آتی ہیں، اور صرف یہ جانچیں کہ ہینڈ شیک موجود ہے تو کوئی بھی نظر نہیں آتی۔
غلط مخصوص حالت درست کریں، پھر ٹنل نہیں بلکہ ایپلیکیشن دوبارہ جانچیں۔ نیا ہینڈ شیک پیر کے بارے میں ثبوت ہے، اور پیر کے بارے میں ثبوت یہ ثبوت نہیں کہ آپ کے براؤزر کی اگلی درخواست پتہ، راستہ اور چلتی اوپری لنک پا لے گی۔ wg-quick دستی واضح طور پر بتاتا ہے کہ ان میں سے کون سا مددگار سیٹ کرتا ہے اور کون سا پروٹوکول کا ہے۔