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

راستہ موجود ہے مگر کچھ باہر نہیں جاتا

پہلے کلائنٹ کی راستہ جدول دیکھیں۔ default via 10.147.20.5 dev zt0 جیسی سطر ثابت کرتی ہے کہ راستہ نصب ہوا، یہ نہیں کہ منزل ٹریفک قبول کرے گی۔ اگلی چھلانگ ایسا رکن ہونا چاہیے جو اسے آگے بھیجنے کے لیے تیار اور قابل ہو۔

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

یہی فرق طے کرتا ہے کہ کہاں کام کرنا ہے۔ تبدیلی سے پہلے اور بعد عوامی پتے کا موازنہ اُس راستے کو کبھی استعمال نہ ہونے والے راستے سے جدا کرتا ہے جو استعمال ہو کر پھینک دیا گیا، اور پوری کنفیگریشن کے جائزے کے بجائے ایک ہی حکم مانگتا ہے۔ کچھ اور بدلنے سے پہلے موازنہ کریں، تاکہ دونوں نتائج ایک ہی ابتدائی حالت سے آئیں۔

تین حصے جو سب درست ہونے چاہئیں

ایگزٹ ایک زنجیر ہے، اور سب سے کمزور کڑی علامت طے کرتی ہے۔ نیچے دی گئی جدول کڑیوں کو اُس ترتیب میں دیتی ہے جس میں وہ عام طور پر ناکام ہوتی ہیں۔

PartWhere it livesWhat a failure looks like
Forwarding and NATExit node kernel and firewallTraffic arrives, no reply
Managed default routeZeroTier network controllerNo default via the tunnel on the member
Client acceptanceMember's per-network settingRoute offered but not installed
DNS behaviorClient resolver configurationPages fail by name, IP works

پہلی سطر وہ ہے جسے آپشن کا نام چھپاتا ہے۔ رکن تب ہی ایگزٹ بنتا ہے جب اس کا کرنل ZeroTier انٹرفیس اور انٹرنیٹ کی طرف والے انٹرفیس کے درمیان پیکٹ آگے بھیجے، اور جب جواب کا راستہ سرنگ میں واپس ترجمہ ہو۔ اس فارورڈنگ کے بغیر رکن ساتھی ہے، گیٹ وے نہیں۔

کنٹرولر کی سطر اجازت ہے، کنفیگریشن نہیں۔ کسی رکن کے ذریعے 0.0.0.0/0 کا اعلان ہر کلائنٹ کو بتاتا ہے کہ ایگزٹ کہاں ہے؛ اس سے وہ رکن ٹریفک اٹھانے کے قابل نہیں ہوتا۔ یہ یہ بھی تصدیق نہیں کرتا کہ رکن کے پاس انٹرنیٹ تک کام کرنے والا راستہ ہے۔ ZeroTier کی ایگزٹ نوڈ دستاویز نوڈ، راستے اور کلائنٹ کے درمیان یہی تقسیم بیان کرتی ہے۔

ایگزٹ نوڈ کو آگے بھیجنے اور ترجمہ کے لیے ترتیب دیں

IPv4 فارورڈنگ مستقل طور پر فعال کریں، پھر WAN انٹرفیس چھوڑنے والے ٹریفک کے لیے ماخذ NAT شامل کریں۔ فلٹر قواعد کو فارورڈ شدہ بہاؤ دونوں سمتوں میں اجازت دینی چاہیے، کیونکہ فارورڈنگ اور ترجمہ اجازت سے الگ ہیں:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

zt0 اور eth0 کی جگہ میزبان کے نام رکھیں؛ مثال انٹرفیس کے لیے محفوظ قاعدہ حقیقی انٹرفیس پر پیکٹ کی پیروی نہیں کرتا۔ قواعد کے مالک فائر وال مینیجر کے ذریعے تبدیلیاں مستقل کریں، کیونکہ انٹرایکٹو شیل میں دیا گیا حکم اگلی ری بوٹ پر غائب ہو جاتا ہے۔

اگر میزبان UFW یا firewalld جیسا فائر وال مینیجر چلاتا ہے، تو کنارے پر iptables سطریں جمع کرنے کے بجائے اسی مینیجر کے ذریعے قواعد شامل کریں۔ ایک ہی زنجیروں میں ترمیم کرنے والے دو مالک بوٹ ترتیب پر منحصر پالیسی بناتے ہیں۔ ترتیب اُس وقت اہم ہوتی ہے جب مینیجر اپنی زنجیریں بناتا ہے۔ مینیجر دوبارہ لوڈ کرنے کے بعد کلائنٹ سے تجربہ کریں، پہلے نہیں۔

راستہ اعلان کریں اور کلائنٹ پر اسے قبول کریں

نیٹ ورک کنٹرولر پر 0.0.0.0/0 کے لیے منظم راستہ شامل کریں جس کی اگلی چھلانگ ایگزٹ رکن کا ZeroTier پتہ ہو۔ پھر جس رکن کو یہ استعمال کرنا چاہیے اس پر اُس نیٹ ورک کے لیے اوور رائیڈ کی اجازت دیں۔ اجازت مقامی ہے: یہ دوسرے ارکان کو دوبارہ کنفیگر نہیں کرتی اور کنٹرولر تبدیل نہیں کرتی۔

zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1

آخری حکم کو ZeroTier انٹرفیس اور ایگزٹ رکن کا پتہ بتانا چاہیے۔ اگر یہ اب بھی فزیکل انٹرفیس بتاتا ہے، تو راستہ غائب ہے یا مقابل ڈیفالٹ کا میٹرک بہتر ہے۔

ترتیب کو صرف اُس نیٹ ورک تک محدود رکھیں جسے اس کی ضرورت ہے۔ ڈیفالٹ راستہ قبول کرنے کو عالمی سطح پر فعال کرنا، یا ایسے نیٹ ورک پر جسے صرف نجی سب نیٹ دینا ہے، ٹریفک کو ایسے ایگزٹ سے بھیجتا ہے جو کبھی اس کے لیے ناپا نہیں گیا۔

ایگزٹ کی تصدیق کریں اور دوسرے پتہ خاندان دیکھیں

ماخذ بتانے والی خدمت سے عوامی پتہ مانگیں، اور اس کا ایگزٹ نوڈ کے WAN پتے سے موازنہ کریں۔ پھر نام سے سائٹ لوڈ کریں تاکہ تصدیق ہو کہ DNS اب بھی حل کرتا ہے، اور صرف براؤزر نہیں بلکہ ایک اہم ایپلیکیشن بھی جانچیں۔

دوہری اسٹیک والا کلائنٹ اپنا مقامی IPv6 راستہ استعمال کرتا رہ سکتا ہے جبکہ IPv4 ZeroTier سے باہر جاتا ہے۔ اگر مقصد تمام ٹریفک چھپانا یا کنٹرول کرنا ہے، تو الگ ::/0 راستہ اور ایگزٹ پر IPv6 فارورڈنگ ضروری ہے، اور IPv4 تجربہ ان کے بارے میں کچھ نہیں بتاتا۔

Linux کی معکوس راستہ فلٹرنگ کلائنٹ پر درست ایگزٹ ٹریفک بھی گرا سکتی ہے۔ ZeroTier شریک ارکان کے لیے rp_filter پر غور دستاویز کرتا ہے؛ اُس ترتیب کو جان بوجھ کر اور صرف راستہ اور NAT کی تصدیق کے بعد بدلیں، پہلے تجربے کے طور پر نہیں۔

اگر ضرورت NAS یا ایک دفتری سب نیٹ تک رسائی ہے، تو اُس سابقے کے لیے منظم راستہ مکمل ایگزٹ سے چھوٹی اور محفوظ تبدیلی ہے۔ تمام براؤزنگ کسی دوسرے آلے سے بھیجنا ایک نجی وسیلے تک پہنچنے سے مختلف فیصلہ ہے، اور یہ الگ جائزے کا مستحق ہے۔

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