پہلا آغاز /dev/net/tun یا کھولی نہ جانے والی TUN/TAP ڈیوائس کے پیغام کے ساتھ ناکام ہوتا ہے۔ سرٹیفکیٹ ابھی پڑھے نہیں گئے، اس لیے پروفائل میں کچھ بھی قصوروار نہیں۔ ڈیمن کرنل سے ایسی چیز مانگ رہا ہے جو اس مہمان کے پاس نہیں۔

وہ چیز tun ماڈیول کی فراہم کردہ کریکٹر ڈیوائس ہے۔ آپ اسے بنا سکتے ہیں یا نہیں، یہ اس پر منحصر ہے کہ کرنل کس کی ملکیت ہے۔

ڈیمن کرنل سے کیا مانگتا ہے

OpenVPN /dev/net/tun کھولتا ہے اور ڈرائیور سے انٹرفیس مانگتا ہے۔ ڈرائیور tun ماڈیول ہے، اور ڈیوائس نوڈ وہ ہینڈل ہے جس سے صارف کی سپیس اس تک پہنچتی ہے۔ اگر ماڈیول لوڈ نہ ہو تو نوڈ غائب ہو سکتا ہے یا کھلنا ناکام ہو سکتا ہے۔ دونوں حالتیں server.conf کی تدوین سے درست نہیں ہوتیں۔

اس خرابی کو پہلے پلیٹ فارم کے سوال کے طور پر پڑھیں۔ کنفیگ کی خرابی ڈیوائس کھلنے کے بعد ظاہر ہوتی ہے، پہلے نہیں۔

VM یا کرنل مشترک کرنے والا مہمان

KVM، Xen یا کسی اور مکمل ورچوئل مشین پر کرنل آپ کے کنٹرول میں ہے۔ آپ ماڈیول لوڈ کر سکتے ہیں اور نوڈ بنا سکتے ہیں۔ OpenVZ، Virtuozzo یا LXC طرز کے کنٹینر میں مہمان میزبان کا کرنل مشترک کرتا ہے، اس لیے اندر کا root وہ ماڈیول لوڈ نہیں کر سکتا جو میزبان نے لوڈ نہ کیا ہو۔

لہٰذا اسی ناکامی کے دو بالکل مختلف مالک ہیں۔ پہلی صورت میں آپ اسے انسٹانس کے اندر سے درست کر سکتے ہیں۔ دوسری میں آپ میزبان یا فراہم کنندہ سے کچھ ظاہر کرنے کی درخواست کر رہے ہیں۔

یہ طے کرنے سے پہلے کہ آپ کس صورت میں ہیں، ls -l /dev/net/tun، lsmod | grep tun اور ip -brief link show چلائیں۔

VM پر بوٹ کے وقت ماڈیول لوڈ کریں

ورچوئل مشین پر modprobe tun عام طور پر ڈیوائس نوڈ بناتا ہے۔ دیکھیں کہ وہ ظاہر ہوا، پھر ایک بار لکھے گئے کمانڈ پر انحصار کے بجائے ڈسٹری بیوشن کی ماڈیول کنفیگ کے ذریعے لوڈنگ کو مستقل کریں۔ ری بوٹ کے بعد غائب ہونے والا نوڈ اگلے مہینے وہی ٹکٹ بن جاتا ہے۔

یہ بھی دیکھیں کہ آپ نے جو کرنل بوٹ کیا اس میں یہ ماڈیول ہے بھی یا نہیں۔ کٹا ہوا وینڈر کرنل اس سے خالی ہو سکتا ہے۔

اگر نوڈ موجود ہے مگر کھلنا پھر بھی ناکام ہوتا ہے، تو اگلے مشتبہ اجازتیں اور ڈیوائس کے major/minor نمبر ہیں۔ یہ مقامی اصلاحات ہیں، فراہم کنندہ سے درخواستیں نہیں۔

کنٹینر میں ڈیوائس میزبان کی ملکیت ہوتی ہے

کنٹینر میں ڈیوائس اور صلاحیت دو الگ تقاضے ہیں۔ رن ٹائم کو /dev/net/tun گزرنے دینا ہوگا، اور کنٹینر کو انٹرفیس بنانے کے لیے نیٹ ورک صلاحیت چاہیے۔ بغیر root والا رن ٹائم جو دونوں نہ دے وہی کھلنے کی خرابی پیدا کرتا رہے گا، پروفائل جیسے بھی لکھا جائے۔ بہت سے OpenVZ میزبان گاہک پینل میں TUN/TAP ٹوگل دیتے ہیں، اور اسے آن کر کے ری اسٹارٹ کرنا اکثر پورا حل ہوتا ہے۔

فراہم کنندہ سے دو واضح سوال پوچھیں: کیا میزبان پر tun ماڈیول لوڈ ہے، اور کیا اس انسٹانس کے اندر ڈیوائس دستیاب ہے؟ مبہم ٹکٹ کو مبہم جواب ملتا ہے۔

ماڈیول دوبارہ بنانا کم ہی کیوں مدد کرتا ہے

مہمان کے اندر ماڈیول بنانا کم ہی مدد کرتا ہے۔ کمپائل کے لیے عین چل رہے کرنل کی کنفیگ درکار ہے، اور /proc/config.gz اختیاری ہے اور کم سے کم امیجز پر اکثر نہیں ہوتا۔ کام کرنے والا ماڈیول بھی ایسے کرنل میں نہیں ڈالا جا سکتا جس کا مالک کنٹینر نہ ہو۔

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

یہ الگ شہادتوں والے الگ سوالات ہیں۔ ڈیوائس کا نہ ہونا پیشگی شرط کی ناکامی ہے؛ موجود ہو کر کچھ نہ لے جانے والی سرنگ پالیسی کی ناکامی ہے۔

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