OpenVPN دوبارہ شروع ہونے کے بعد IPv6 اخراج مر جاتا ہے: سابقہ کی ملکیت جانچیں
ٹنل دوبارہ بننے کے بعد IPv6 مر جاتا ہے۔ کچھ بھی دوبارہ شروع کرنے سے پہلے طے کریں کہ تفویض شدہ سابقہ، کلائنٹ پتے اور واپسی راستہ کس کے پاس ہے۔
IPv6 ٹریفک گزرنے دینا بند کر دیتا ہے اسی لمحے جب OpenVPN دوبارہ شروع ہوتا ہے، اور IPv4 کام کرتا رہتا ہے۔ ٹنل انٹرفیس دوبارہ بنایا گیا، اور اس کی IPv6 حالت سنبھالنے والی کوئی اور چیز یا تو پتہ کھو بیٹھی یا وہ راستہ کھو بیٹھی جو سابقہ کو قابل رسائی بناتا ہے۔ حالت کے تین الگ حصے شامل ہیں، اور ہر ایک کا الگ مالک ہے: فراہم کنندہ کا تفویض شدہ سابقہ اور اس کی عمر، VPN کلائنٹس کو دیے گئے پتے، اور اوپری راستہ جو اس کلائنٹ سابقہ کو سرور کی طرف واپس بھیجتا ہے۔ کسی بھی ڈیمن کو چھونے سے پہلے ہر ایک کا مالک شناخت کریں، کیونکہ غلط کو دوبارہ شروع کرنا مسئلہ ایک دن چھپا دیتا ہے اور اگلے کنکشن پر واپس لے آتا ہے۔
IPv6 حالت کے تین حصے، تین مالک
| State | Typical owner | What breaks when it is wrong |
|---|---|---|
| Delegated prefix and lifetime | Upstream router or provider via DHCPv6-PD | Clients keep addresses that the upstream no longer routes |
| Client addresses inside the tunnel | OpenVPN server config or a delegation daemon | No global address, or an address outside the routed prefix |
| Return route for the client prefix | Upstream router, or the server's own routing table | Outbound works, replies never arrive |
ٹنل کے اندر عالمی دائرے کا پتہ اکیلا کافی نہیں ہے۔ اوپری راؤٹرز کو وہ سابقہ اب بھی VPN سرور کی طرف واپس بھیجنا ہوتا ہے، اور وہ صرف اس لیے ایسا نہیں کریں گے کہ سرور کے پاس اس میں سے کوئی پتہ اتفاقاً موجود ہے۔
اسی لیے کسی عوامی /64 کو ٹنل پول میں نقل کرنا بھی خطرناک ہے۔ سرور کی طرف روٹ کیا گیا سابقہ وہ نہیں جو اوپری جانب on-link سمجھتا ہے، اور پڑوسی کی کھوج یہ خلا نہیں بھرے گی۔
کچھ بھی بدلنے سے پہلے سرور کی حالت پڑھیں
حالت دو بار قلمبند کریں، ایک بار جب IPv6 کام کر رہا ہو اور ایک بار دوبارہ شروع کرنے کے بعد، پھر موازنہ کریں۔ صرف پڑھنے کے منظر کافی ہیں، اور دیکھ بھال کی کھڑکی میں ان کا کوئی خرچ نہیں:
ip -6 addr show
ip -6 route show table all
ip -6 rule show
sysctl net.ipv6.conf.all.forwarding
تین مخصوص فرق تلاش کریں: ایک غائب ہو گیا راستہ، ایک پتہ جو پرانی یا غیر معتبر عمر میں چلا گیا، اور ایک سابقہ جو دوبارہ تفویض کے بعد بدل گیا جبکہ VPN ترتیب اب بھی پرانے کا اعلان کر رہی ہے۔
اگر پتہ غائب ہو گیا لیکن سابقہ نہیں بدلا، تو اسے مختص کرنے والا ڈیمن انٹرفیس سنبھالنا بند کر چکا ہے۔ اگر سابقہ بدلا لیکن پتے نہیں، تو کلائنٹ ترتیب پرانی ہے۔ دونوں ناکامیاں براؤزر سے یکساں دکھتی ہیں اور ان میں کچھ بھی مشترک نہیں۔
طے کریں کہ آیا dhcpcd کو ٹنل سنبھالنا چاہیے
dhcpcd انٹرفیس دریافت کر سکتا ہے اور DHCPv6 سابقہ کے حصے نچلے انٹرفیس کو تفویض کر سکتا ہے، اور اس کی ترتیب تفویض کے اہداف کو واضح طور پر نام دے سکتی ہے۔ واضح ہدف کے بغیر، اس کا مستند رویہ دوسرے انٹرفیس شامل کر سکتا ہے، اور اسی طرح ٹنل کو وہ پتہ مل جاتا ہے جس کی کسی نے منصوبہ بندی نہیں کی تھی۔
دو شرطیں آپ کو ٹنل کی مستقل پتہ بندی OpenVPN کے سپرد کرنے کی طرف دھکیلنی چاہئیں: سرور اپنی ترتیب میں مقررہ پتے دھکیلتا ہے، اور دوبارہ جڑنے پر ٹنل کا نام بدلتا ہے۔ اگر دونوں درست ہوں، تو ٹنل کو تفویض ڈیمن سے جان بوجھ کر خارج رکھیں، وجہ بتانے والی تبصرہ کے ساتھ۔
اگر اس کے بجائے ٹنل کی طرف تفویض جان بوجھ کر ہو، سابقہ تبدیلی کی سنبھال نافذ کریں۔ اس کا مطلب ہے کہ جب تفویض شدہ سابقہ یا اس کی عمر بدلے تو ردعمل دیں، سرور کا اعلان کردہ کلائنٹ سابقہ اپ ڈیٹ کریں، اور راستہ دوبارہ شامل کریں۔ اس ڈیزائن میں انٹرفیس خارج کرنا نئے سابقہ کو جاننے والا واحد جزو ہٹا دیتا ہے۔
dhcpcd کو دوبارہ شروع کرنا چیزیں درست کرتا دکھ سکتا ہے کیونکہ یہ حالت دوبارہ بناتا ہے، لیکن یہ ان انٹرفیس کی ترتیب بھی تجدید یا واپس لیتا ہے جن کے بارے میں آپ نے نہیں سوچا تھا۔ وہ بحالی اسے ہر VPN دوبارہ شروع کرنے کے بعد لازمی نہیں بناتی۔ یہ ان کاؤنٹروں کو بھی ری سیٹ کرتا ہے جو آپ بطور ثبوت استعمال کر رہے تھے۔ آپ نے واقعی جو انٹرفیس بدلا اس کی ہدف شدہ دوبارہ لوڈنگ کو ترجیح دیں۔
IPv6 کو IPv4 NAT سے الگ جانچیں
تصدیق کریں کہ فارورڈنگ فعال ہے اور اوپری راستہ اصل کلائنٹ سابقہ کی طرف اشارہ کرتا ہے، پھر ایک نیا اجازت شدہ IPv6 کنکشن بنائیں۔ کلائنٹ کی اپنی IPv6 راستہ جدول بھی جانچیں، کیونکہ عوامی پتہ دکھانے والا کلائنٹ یہ ثابت نہیں کرتا کہ اس کی درخواست نے ٹنل استعمال کیا۔
IPv4 ماسکریڈنگ ایک مختلف مسئلہ حل کرتی ہے: نجی ذرائع کے لیے واپسی راستہ۔ یہ واپس لیے گئے IPv6 سابقہ کے لیے کچھ نہیں کرتی، اور اسے شامل کرنا IPv6 کو واپس نہیں لائے گا۔
ملکیت کے ریکارڈ کے ساتھ ختم کریں: کون سا جزو سابقہ تفویض کرتا ہے، کون کلائنٹ پتے مختص کرتا ہے، کون واپسی راستہ رکھتا ہے، اور دوبارہ جڑنے پر ہر ایک کے ساتھ کیا ہوتا ہے۔ رن بک میں چار سطریں اگلے شخص کو اہم ڈیمن تلاش کرنے کے لیے تین ڈیمن دوبارہ شروع کرنے سے بچاتی ہیں۔