بلاکنگ کو بائی پاس کرنے کے لیے BGP کو ترتیب دینا، یا "میں نے ڈرنا کیسے چھوڑا اور RKN سے محبت کر لی"

ٹھیک ہے، "محبت" کے بارے میں ایک مبالغہ آرائی ہے۔ بلکہ، "ساتھ ساتھ رہنے کے قابل تھا۔"

جیسا کہ آپ سب جانتے ہیں، 16 اپریل 2018 سے، Roskomnadzor انٹرنیٹ پر وسائل تک رسائی کو انتہائی وسیع پیمانے پر روک رہا ہے، جس میں "ڈومین ناموں کے یونیفائیڈ رجسٹر، انٹرنیٹ پر سائٹس کے پیج انڈیکس اور نیٹ ورک ایڈریسز شامل کیے گئے ہیں جو سائٹس کی شناخت کرنے کی اجازت دیتے ہیں۔ انٹرنیٹ پر" ایسی معلومات پر مشتمل ہے جس کی تقسیم روسی فیڈریشن میں ممنوع ہے" (متن میں - صرف ایک رجسٹر) کبھی کبھی /10 تک۔ نتیجے کے طور پر، روسی فیڈریشن کے شہری اور کاروباری اداروں کو مشکلات کا سامنا ہے، وہ مکمل طور پر قانونی وسائل تک رسائی کھو چکے ہیں جن کی انہیں ضرورت ہے۔

جب میں نے Habré کے مضمون میں سے ایک کے تبصرے میں کہا کہ میں ایک بائی پاس سکیم قائم کرنے میں متاثرین کی مدد کرنے کے لیے تیار ہوں، کئی لوگ میرے پاس اس طرح کی مدد مانگنے آئے۔ جب سب کچھ ان کے لئے کام کرتا ہے، تو ان میں سے ایک نے ایک مضمون میں تکنیک کو بیان کرنے کی سفارش کی. کچھ سوچنے کے بعد، میں نے سائٹ پر اپنی خاموشی کو توڑنے کا فیصلہ کیا اور ایک بار کے لیے کوشش کی کہ کسی پروجیکٹ اور فیس بک پوسٹ کے درمیان درمیانی چیز لکھوں، یعنی۔ habrapost نتیجہ آپ کے سامنے ہے۔

اعلانِ لاتعلقی

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

اس کے علاوہ، چونکہ میں بنیادی طور پر پیشے، پیشہ اور زندگی کے راستے کے لحاظ سے ایک نیٹ ورک آرکیٹیکٹ ہوں، پروگرامنگ اور لینکس میرے مضبوط نکات نہیں ہیں۔ لہذا، یقیناً، اسکرپٹ کو بہتر طور پر لکھا جا سکتا ہے، VPS میں سیکیورٹی کے مسائل کو زیادہ گہرائی سے حل کیا جا سکتا ہے، وغیرہ۔ آپ کی تجاویز کو شکریہ کے ساتھ قبول کیا جائے گا، اگر وہ کافی تفصیل سے ہیں - مجھے انہیں مضمون کے متن میں شامل کرنے میں خوشی ہوگی۔

TL؛ ڈاکٹر

ہم رجسٹری اور BGP پروٹوکول کی ایک کاپی کا استعمال کرتے ہوئے آپ کی موجودہ سرنگ کے ذریعے وسائل تک رسائی کو خودکار بناتے ہیں۔ مقصد یہ ہے کہ سرنگ میں مسدود وسائل کی طرف جانے والی تمام ٹریفک کو ہٹا دیا جائے۔ کم از کم وضاحتیں، زیادہ تر مرحلہ وار ہدایات۔

آپ کو اس کے لیے کیا چاہیے؟

بدقسمتی سے، یہ پوسٹ سب کے لیے نہیں ہے۔ اس تکنیک کو استعمال کرنے کے لیے، آپ کو کئی عناصر کو ایک ساتھ رکھنے کی ضرورت ہوگی:

  1. آپ کے پاس بلاکنگ فیلڈ سے باہر کہیں لینکس سرور ہونا ضروری ہے۔ یا کم از کم ایسا سرور رکھنے کی خواہش - خوش قسمتی سے اب اس کی قیمت $9/سال، اور ممکنہ طور پر کم ہے۔ اگر آپ کے پاس علیحدہ VPN ٹنل ہے تو یہ طریقہ بھی موزوں ہے، پھر سرور بلاک کرنے والے فیلڈ کے اندر واقع ہوسکتا ہے۔
  2. آپ کا راؤٹر اتنا سمارٹ ہونا چاہیے کہ اس کے قابل ہو۔
    • کوئی بھی VPN کلائنٹ جسے آپ پسند کرتے ہیں (میں OpenVPN کو ترجیح دیتا ہوں، لیکن یہ PPTP، L2TP، GRE+IPSec یا کوئی دوسرا آپشن ہو سکتا ہے جو ٹنل انٹرفیس بناتا ہے)؛
    • BGPv4 پروٹوکول۔ جس کا مطلب ہے کہ SOHO کے لیے یہ Mikrotik یا OpenWRT/LEDE/اسی طرح کے کسٹم فرم ویئر والا کوئی بھی راؤٹر ہو سکتا ہے جو آپ کو Quagga یا Bird انسٹال کرنے کی اجازت دیتا ہے۔ پی سی روٹر کا استعمال بھی ممنوع نہیں ہے۔ انٹرپرائز کے معاملے میں، اپنے بارڈر روٹر کے لیے دستاویزات میں BGP سپورٹ تلاش کریں۔
  3. آپ کو لینکس کے استعمال اور نیٹ ورکنگ ٹیکنالوجیز بشمول BGP پروٹوکول کی سمجھ ہونی چاہیے۔ یا کم از کم ایسا خیال حاصل کرنا چاہتے ہیں۔ چونکہ میں اس بار وسعت کو قبول کرنے کے لیے تیار نہیں ہوں، اس لیے آپ کو اپنے طور پر کچھ ایسے پہلوؤں کا مطالعہ کرنا پڑے گا جو آپ کے لیے ناقابلِ فہم ہیں۔ تاہم، یقیناً، میں تبصروں میں مخصوص سوالات کے جوابات دوں گا اور میرے پاس صرف ایک ہی جواب دینے کا امکان نہیں ہے، لہذا پوچھنے میں ہچکچاہٹ محسوس نہ کریں۔

مثال میں کیا استعمال کیا گیا ہے۔

  • رجسٹر کی ایک کاپی - سے https://github.com/zapret-info/z-i 
  • VPS - Ubuntu 16.04
  • روٹنگ سروس - پرندہ 1.6.3   
  • راؤٹر - Mikrotik hAP ac
  • ورکنگ فولڈرز - چونکہ ہم روٹ کے طور پر کام کر رہے ہیں، اس لیے زیادہ تر ہر چیز روٹ کے ہوم فولڈر میں موجود ہوگی۔ بالترتیب:
    • /root/blacklist - تالیف اسکرپٹ کے ساتھ کام کرنے والا فولڈر
    • /root/zi - github سے رجسٹری کی کاپی
    • /etc/bird - پرندوں کی خدمت کی ترتیبات کے لیے معیاری فولڈر
  • روٹنگ سرور اور ٹنل ٹرمینیشن پوائنٹ کے ساتھ VPS کا بیرونی IP ایڈریس 194.165.22.146، ASN 64998 ہے؛ روٹر کا بیرونی IP پتہ - 81.177.103.94، ASN 64999
  • سرنگ کے اندر IP پتے بالترتیب 172.30.1.1 اور 172.30.1.2 ہیں۔

بلاکنگ کو بائی پاس کرنے کے لیے BGP کو ترتیب دینا، یا "میں نے ڈرنا کیسے چھوڑا اور RKN سے محبت کر لی"

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

مختصراً - حل کی منطق

  1. تیاری کے اقدامات
    1. VPS حاصل کرنا
    2. راؤٹر سے VPS تک سرنگ بڑھانا
  2. ہم رجسٹری کی ایک کاپی وصول کرتے اور باقاعدگی سے اپ ڈیٹ کرتے ہیں۔
  3. روٹنگ سروس کو انسٹال اور کنفیگر کرنا
  4. ہم رجسٹری کی بنیاد پر روٹنگ سروس کے لیے جامد راستوں کی فہرست بناتے ہیں۔
  5. ہم روٹر کو سروس سے جوڑتے ہیں اور سرنگ کے ذریعے تمام ٹریفک بھیجنے کو ترتیب دیتے ہیں۔

اصل حل

تیاری کے اقدامات

انٹرنیٹ پر بہت سی خدمات ہیں جو انتہائی مناسب قیمتوں پر VPS فراہم کرتی ہیں۔ اب تک میں نے $9/سال کا آپشن ڈھونڈ لیا ہے اور استعمال کر رہا ہوں، لیکن اگر آپ زیادہ پریشان نہ ہوں تو بھی ہر کونے پر 1E/ماہ کے لیے بہت سے اختیارات موجود ہیں۔ VPS کا انتخاب کرنے کا سوال اس مضمون کے دائرہ کار سے بہت باہر ہے، لہذا اگر کوئی اس کے بارے میں کچھ نہیں سمجھتا ہے، تو تبصروں میں پوچھیں۔

اگر آپ VPS کو نہ صرف روٹنگ سروس کے لیے استعمال کرتے ہیں، بلکہ اس پر موجود ایک سرنگ کو ختم کرنے کے لیے بھی استعمال کرتے ہیں، تو آپ کو اس سرنگ کو بلند کرنے کی ضرورت ہے اور، تقریباً یقینی طور پر، اس کے لیے NAT کو ترتیب دینا ہوگا۔ انٹرنیٹ پر ان کارروائیوں کے حوالے سے بڑی تعداد میں ہدایات موجود ہیں، میں انہیں یہاں نہیں دہراؤں گا۔ ایسی سرنگ کی بنیادی ضرورت یہ ہے کہ اسے آپ کے راؤٹر پر ایک علیحدہ انٹرفیس بنانا چاہیے جو VPS کی طرف سرنگ کو سپورٹ کرے۔ زیادہ تر استعمال شدہ وی ​​پی این ٹیکنالوجیز اس ضرورت کو پورا کرتی ہیں - مثال کے طور پر، ٹون موڈ میں اوپن وی پی این کامل ہے۔

رجسٹری کی کاپی حاصل کرنا

جیسا کہ جبرائیل نے کہا، "جو ہمیں روکے گا وہ ہماری مدد کرے گا۔" چونکہ RKN ممنوعہ وسائل کا ایک رجسٹر بنا رہا ہے، اس لیے ہمارے مسئلے کو حل کرنے کے لیے اس رجسٹر کا استعمال نہ کرنا گناہ ہوگا۔ ہمیں گیتھب سے رجسٹری کی ایک کاپی موصول ہوگی۔

ہم آپ کے لینکس سرور پر جاتے ہیں، روٹ سیاق و سباق میں آتے ہیں (sudo su -) اور گٹ انسٹال کریں اگر یہ پہلے سے انسٹال نہیں ہے۔

apt install git

اپنی ہوم ڈائریکٹری پر جائیں اور رجسٹری کی ایک کاپی نکالیں۔

cd ~ && git clone --depth=1 https://github.com/zapret-info/z-i 

ہم نے ایک کرون اپ ڈیٹ ترتیب دیا ہے (میں اسے ہر 20 منٹ میں ایک بار کرتا ہوں، لیکن آپ کوئی بھی وقفہ منتخب کر سکتے ہیں جس میں آپ کی دلچسپی ہو)۔ ایسا کرنے کے لیے ہم لانچ کرتے ہیں۔ crontab -e اور اس میں درج ذیل لائن شامل کریں:

*/20 * * * * cd ~/z-i && git pull && git gc

ہم ایک ہک کو جوڑتے ہیں جو رجسٹری کو اپ ڈیٹ کرنے کے بعد روٹنگ سروس کے لیے فائلیں بنائے گا۔ ایسا کرنے کے لئے، ایک فائل بنائیں /root/zi/.git/hooks/post-merge مندرجہ ذیل مواد کے ساتھ:

#!/usr/bin/env bash
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
    echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_run dump.csv "/root/blacklist/makebgp"

اور اسے قابل عمل بنانا نہ بھولیں۔

chmod +x /root/z-i/.git/hooks/post-merge

ہم makebgp اسکرپٹ بنائیں گے جس کا ہک تھوڑی دیر بعد اشارہ کرتا ہے۔

روٹنگ سروس کو انسٹال اور کنفیگر کرنا

پرندوں کو انسٹال کریں۔ بدقسمتی سے، Ubuntu کے ذخیروں میں اس وقت پرندے کا جو ورژن پوسٹ کیا گیا ہے، اس کا موازنہ آرکیوپٹریکس کے فضلے سے کیا جا سکتا ہے، اس لیے ہمیں پہلے سافٹ ویئر ڈویلپرز کے آفیشل پی پی اے کو سسٹم میں شامل کرنے کی ضرورت ہے۔

add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install bird

اس کے بعد، ہم فوری طور پر IPv6 کے لیے برڈ کو غیر فعال کر دیتے ہیں - ہمیں اس انسٹالیشن میں اس کی ضرورت نہیں ہوگی۔

systemctl stop bird6
systemctl disable bird6

ذیل میں ایک مرصع برڈ سروس کنفیگریشن فائل ہے (/etc/bird/bird.conf)، جو ہمارے لیے کافی ہے (اور میں آپ کو ایک بار پھر یاد دلاتا ہوں کہ کوئی بھی آپ کی اپنی ضروریات کے مطابق آئیڈیا کو تیار کرنے اور ٹیوننگ کرنے سے منع نہیں کرتا)

log syslog all;
router id 172.30.1.1;

protocol kernel {
        scan time 60;
        import none;
#       export all;   # Actually insert routes into the kernel routing table
}

protocol device {
        scan time 60;
}

protocol direct {
        interface "venet*", "tun*"; # Restrict network interfaces it works with
}

protocol static static_bgp {
        import all;
        include "pfxlist.txt";
        #include "iplist.txt";
}

protocol bgp OurRouter {
        description "Our Router";
        neighbor 81.177.103.94 as 64999;
        import none;
        export where proto = "static_bgp";
        local as 64998;
        passive off;
        multihop;
}

روٹر آئی ڈی - روٹر شناخت کنندہ، جو بصری طور پر IPv4 ایڈریس کی طرح لگتا ہے، لیکن ایک نہیں ہے۔ ہمارے معاملے میں، یہ IPv32 ایڈریس فارمیٹ میں کوئی بھی 4 بٹ نمبر ہو سکتا ہے، لیکن آپ کے آلے کے IPv4 ایڈریس کی نشاندہی کرنا اچھی شکل ہے (اس صورت میں، VPS)۔

پروٹوکول ڈائریکٹ اس بات کی وضاحت کرتا ہے کہ کون سے انٹرفیس روٹنگ کے عمل کے ساتھ کام کریں گے۔ مثال مثال کے طور پر کچھ نام دیتی ہے، آپ دوسروں کو شامل کر سکتے ہیں۔ آپ آسانی سے لائن کو حذف کر سکتے ہیں؛ اس صورت میں، سرور IPv4 ایڈریس کے ساتھ تمام دستیاب انٹرفیس کو سن لے گا۔

protocol static ہمارا جادو ہے جو بعد کے اعلان کے لیے فائلوں سے سابقے اور IP پتوں کی فہرستیں (جو درحقیقت /32 سابقے ہیں) لوڈ کرتا ہے۔ یہ فہرستیں کہاں سے آتی ہیں اس پر ذیل میں تبادلہ خیال کیا جائے گا۔ براہ کرم نوٹ کریں کہ IP پتوں کو لوڈ کرنے پر بطور ڈیفالٹ تبصرہ کیا جاتا ہے، اس کی وجہ اپ لوڈنگ کا بڑا حجم ہے۔ موازنہ کے لیے، تحریر کے وقت، سابقوں کی فہرست میں 78 لائنیں ہیں، اور IP پتوں کی فہرست میں 85898۔ میں صرف سابقے کی فہرست پر شروع کرنے اور ڈیبگ کرنے کی پرزور سفارش کرتا ہوں، اور آیا میں IP لوڈنگ کو فعال کرنا ہے یا نہیں۔ مستقبل آپ پر منحصر ہے کہ آپ اپنے روٹر کے ساتھ تجربہ کرنے کے بعد فیصلہ کریں۔ ان میں سے ہر ایک روٹنگ ٹیبل میں 85 ہزار اندراجات کو آسانی سے ہضم نہیں کر سکتا۔

پروٹوکول بی جی پی، درحقیقت، آپ کے روٹر کے ساتھ بی جی پی پیئرنگ سیٹ کرتا ہے۔ IP ایڈریس راؤٹر کے بیرونی انٹرفیس کا پتہ ہے (یا روٹر کی طرف ٹنل انٹرفیس کا پتہ)، 64998 اور 64999 خود مختار نظاموں کے نمبر ہیں۔ اس صورت میں، انہیں کسی بھی 16-بٹ نمبروں کی شکل میں تفویض کیا جا سکتا ہے، لیکن RFC6996 - 64512-65534 کی طرف سے بیان کردہ نجی رینج سے AS نمبرز کا استعمال کرنا اچھا عمل ہے (32-bit ASNs کے لیے ایک فارمیٹ ہے، لیکن ہمارے معاملے میں یہ یقینی طور پر حد سے زیادہ ہے)۔ بیان کردہ کنفیگریشن میں ای بی جی پی پیئرنگ کا استعمال کیا گیا ہے، جس میں روٹنگ سروس اور روٹر کے خود مختار سسٹمز کی تعداد مختلف ہونی چاہیے۔

جیسا کہ آپ دیکھ سکتے ہیں، سروس کو روٹر کا IP ایڈریس جاننے کی ضرورت ہے، لہذا اگر آپ کے پاس ڈائنامک یا نان روٹیبل پرائیویٹ (RFC1918) یا مشترکہ (RFC6598) ایڈریس ہے، تو آپ کے پاس بیرونی پر پیئرنگ بڑھانے کا اختیار نہیں ہے۔ انٹرفیس، لیکن سروس پھر بھی سرنگ کے اندر کام کرے گی۔

یہ بھی بالکل واضح ہے کہ ایک سروس سے آپ کئی مختلف راؤٹرز کو روٹس فراہم کر سکتے ہیں - صرف پروٹوکول bgp سیکشن کو کاپی کرکے اور پڑوسی کا IP ایڈریس تبدیل کرکے ان کے لیے سیٹنگز کو ڈپلیکیٹ کریں۔ یہی وجہ ہے کہ مثال سرنگ سے باہر دیکھنے کی ترتیبات کو ظاہر کرتی ہے، جیسا کہ سب سے زیادہ عالمگیر ہے۔ اس کے مطابق ترتیبات میں آئی پی ایڈریس کو تبدیل کرکے انہیں سرنگ میں ہٹانا آسان ہے۔

روٹنگ سروس کے لیے رجسٹری پر کارروائی کی جا رہی ہے۔

اب ہمیں درحقیقت سابقہ ​​جات اور آئی پی ایڈریسز کی فہرستیں بنانے کی ضرورت ہے، جن کا ذکر پچھلے مرحلے میں پروٹوکول سٹیٹک میں کیا گیا تھا۔ ایسا کرنے کے لیے، ہم رجسٹری فائل لیتے ہیں اور درج ذیل اسکرپٹ کا استعمال کرتے ہوئے اس سے مطلوبہ فائلیں بناتے ہیں۔ /root/blacklist/makebgp

#!/bin/bash
cut -d";" -f1 /root/z-i/dump.csv| tr '|' 'n' |  tr -d ' ' > /root/blacklist/tmpaddr.txt
cat /root/blacklist/tmpaddr.txt | grep / | sed 's_.*_route & reject;_' > /etc/bird/pfxlist.txt
cat /root/blacklist/tmpaddr.txt | sort | uniq | grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" | sed 's_.*_route &/32 reject;_' > /etc/bird/iplist.txt
/etc/init.d/bird reload
logger 'bgp list compiled'

اسے قابل عمل بنانا نہ بھولیں۔

chmod +x /root/blacklist/makebgp

اب آپ اسے دستی طور پر چلا سکتے ہیں اور /etc/bird میں فائلوں کی ظاہری شکل کا مشاہدہ کر سکتے ہیں۔

غالباً، اس وقت پرندہ آپ کے لیے کام نہیں کر رہا ہے، کیونکہ پچھلے مرحلے میں آپ نے اسے ایسی فائلیں تلاش کرنے کے لیے کہا تھا جو ابھی موجود نہیں تھیں۔ لہذا، ہم اسے شروع کرتے ہیں اور چیک کرتے ہیں کہ یہ شروع ہوا ہے:

systemctl start bird
birdc show route

دوسری کمانڈ کے آؤٹ پٹ میں تقریباً 80 ریکارڈ دکھائے جانے چاہئیں (یہ ابھی کے لیے ہے، لیکن جب آپ اسے ترتیب دیں گے، تو سب کچھ نیٹ ورکس کو بلاک کرنے میں RKN کی جوش پر منحصر ہوگا) کچھ اس طرح:

54.160.0.0/12      unreachable [static_bgp 2018-04-19] * (200)

ٹیم

birdc show protocol

سروس کے اندر پروٹوکول کی حیثیت دکھائے گا۔ جب تک آپ راؤٹر کو کنفیگر نہیں کر لیتے (اگلا پوائنٹ دیکھیں)، ہمارا روٹر پروٹوکول اسٹارٹ سٹیٹ (کنیکٹ یا ایکٹیو فیز) میں ہو گا، اور کامیاب کنکشن کے بعد یہ اپ سٹیٹ (اسٹیبلشڈ فیز) میں چلا جائے گا۔ مثال کے طور پر، میرے سسٹم پر اس کمانڈ کی آؤٹ پٹ اس طرح نظر آتی ہے:

BIRD 1.6.3 ready.
name     proto    table    state  since       info
kernel1  Kernel   master   up     2018-04-19
device1  Device   master   up     2018-04-19
static_bgp Static   master   up     2018-04-19
direct1  Direct   master   up     2018-04-19
RXXXXXx1 BGP      master   up     13:10:22    Established
RXXXXXx2 BGP      master   up     2018-04-24  Established
RXXXXXx3 BGP      master   start  2018-04-22  Connect       Socket: Connection timed out
RXXXXXx4 BGP      master   up     2018-04-24  Established
RXXXXXx5 BGP      master   start  2018-04-24  Passive

روٹر کو جوڑنا

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

تاہم، میں آپ کو ایک دو مثالیں دکھا سکتا ہوں۔ بنیادی منطق BGP پیئرنگ کو بڑھانا اور نیکسٹ ہاپ کو تمام موصول ہونے والے سابقوں کو تفویض کرنا ہے، جو ہماری سرنگ کی طرف اشارہ کرتے ہوئے (اگر ہمیں p2p انٹرفیس کے ذریعے ٹریفک بھیجنے کی ضرورت ہے) یا nexthop IP ایڈریس اگر ٹریفک ایتھرنیٹ پر جائے گا)۔

مثال کے طور پر، RouterOS میں Mikrotik پر یہ اس طرح حل ہوتا ہے۔

/routing bgp instance set default as=64999 ignore-as-path-len=yes router-id=172.30.1.2
/routing bgp peer add in-filter=dynamic-in multihop=yes name=VPS remote-address=194.165.22.146 remote-as=64998 ttl=default
/routing filter add action=accept chain=dynamic-in protocol=bgp comment="Set nexthop" set-in-nexthop=172.30.1.1

اور سسکو IOS میں - اس طرح

router bgp 64999
  neighbor 194.165.22.146 remote-as 64998
  neighbor 194.165.22.146 route-map BGP_NEXT_HOP in
  neighbor 194.165.22.146 ebgp-multihop 250
!
route-map BGP_NEXT_HOP permit 10
  set ip next-hop 172.30.1.1

اگر ایک ہی سرنگ کو BGP پیئرنگ اور کارآمد ٹریفک کی منتقلی کے لیے استعمال کیا جاتا ہے، تو اسے نیکسٹ ہاپ سیٹ کرنا ضروری نہیں ہے؛ اسے پروٹوکول کا استعمال کرتے ہوئے درست طریقے سے سیٹ کیا جائے گا۔ لیکن اگر آپ اسے دستی طور پر سیٹ کرتے ہیں، تو یہ اسے بھی خراب نہیں کرے گا۔

دوسرے پلیٹ فارمز پر، آپ کو خود ترتیب کا پتہ لگانا پڑے گا، لیکن اگر آپ کو کوئی مشکل پیش آتی ہے، تو کمنٹس میں لکھیں، میں مدد کرنے کی کوشش کروں گا۔

آپ کے بی جی پی سیشن کے شروع ہونے کے بعد، بڑے نیٹ ورکس کے راستے آ چکے ہیں اور ٹیبل میں انسٹال ہو چکے ہیں، ٹریفک ان سے پتوں تک پہنچ گئی ہے اور خوشی قریب ہے، آپ پرندوں کی خدمت پر واپس جا سکتے ہیں اور وہاں داخلے کو غیر کمنٹ کرنے کی کوشش کر سکتے ہیں جو آپ کو جوڑتا ہے۔ IP پتوں کی فہرست، اس کے بعد عمل کریں۔

systemctl reload bird

اور دیکھیں کہ آپ کے راؤٹر نے ان 85 ہزار راستوں کو کیسے منتقل کیا۔ ان پلگ کرنے کے لیے تیار رہیں اور سوچیں کہ اس کے ساتھ کیا کرنا ہے :)

مجموعی طور پر

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

یقیناً اس میں بہتری لائی جا سکتی ہے۔ مثال کے طور پر، پرل یا python کے حل کا استعمال کرتے ہوئے IP پتوں کی فہرست کا خلاصہ کرنا کافی آسان ہے۔ Net::CIDR::Lite کا استعمال کرتے ہوئے ایک سادہ پرل اسکرپٹ 85 ہزار سابقہ ​​جات کو 60 (ہزار نہیں) میں بدل دیتا ہے، لیکن یقیناً، بلاک شدہ پتوں کی ایک بہت بڑی رینج کا احاطہ کرتا ہے۔

چونکہ سروس ISO/OSI ماڈل کے تیسرے درجے پر کام کرتی ہے، یہ آپ کو کسی سائٹ/صفحہ کو بلاک کرنے سے نہیں بچائے گی اگر یہ رجسٹری میں درج غلط ایڈریس پر حل کرتی ہے۔ لیکن رجسٹری کے ساتھ ساتھ، فائل nxdomain.txt github سے آتی ہے، جو اسکرپٹ کے چند اسٹروک کے ساتھ آسانی سے ایڈریس کے ذریعہ میں بدل جاتی ہے، مثال کے طور پر، کروم میں SwitchyOmega پلگ ان۔

یہ بتانا بھی ضروری ہے کہ اگر آپ صرف انٹرنیٹ استعمال کرنے والے نہیں ہیں، بلکہ اپنے طور پر کچھ وسائل بھی شائع کرتے ہیں (مثال کے طور پر، کوئی ویب سائٹ یا میل سرور اس کنکشن پر چلتا ہے) تو اس حل میں اضافی اصلاح کی ضرورت ہے۔ راؤٹر کے ذرائع کا استعمال کرتے ہوئے، اس سروس سے باہر جانے والے ٹریفک کو اپنے عوامی پتے پر سختی سے پابند کرنا ضروری ہے، ورنہ آپ ان وسائل سے رابطہ کھو دیں گے جو روٹر کو موصول ہونے والے سابقوں کی فہرست میں شامل ہیں۔

اگر آپ کے کوئی سوالات ہیں تو پوچھیں، میں جواب دینے کے لیے تیار ہوں۔

یو پی ڈی شکریہ navion и TerAnYu گٹ کے پیرامیٹرز کے لئے جو ڈاؤن لوڈ والیوم کو کم کرنے کی اجازت دیتے ہیں۔

UPD2۔ ساتھیوں، ایسا لگتا ہے کہ میں نے مضمون میں VPS اور راؤٹر کے درمیان سرنگ قائم کرنے کی ہدایات شامل نہ کر کے غلطی کی ہے۔ اس سے بہت سے سوالات اٹھ رہے ہیں۔
صرف اس صورت میں، میں ایک بار پھر نوٹ کروں گا کہ اس گائیڈ کو شروع کرنے سے پہلے، آپ نے پہلے ہی VPN ٹنل کو اپنی ضرورت کی سمت میں ترتیب دیا ہے اور اس کی فعالیت کو چیک کیا ہے (مثال کے طور پر، وہاں ٹریفک کو بطور ڈیفالٹ یا جامد موڑ کر)۔ اگر آپ نے ابھی تک یہ مرحلہ مکمل نہیں کیا ہے، تو مضمون میں درج مراحل کی پیروی کرنا زیادہ معنی نہیں رکھتا۔ میرے پاس ابھی تک اس پر اپنا متن نہیں ہے، لیکن اگر آپ وی پی ایس پر نصب آپریٹنگ سسٹم کے نام کے ساتھ "اوپن وی پی این سرور سیٹ اپ کرنا" اور اپنے راؤٹر کے نام کے ساتھ "ایک اوپن وی پی این کلائنٹ ترتیب دینا" گوگل کرتے ہیں۔ آپ کو غالباً اس موضوع پر متعدد مضامین ملیں گے، بشمول Habré پر۔

UPD3۔ بے قربانی میں نے ایک کوڈ لکھا ہے جو dump.csv کو IP پتوں کے اختیاری خلاصہ کے ساتھ برڈ کے لیے نتیجے میں فائل میں بدل دیتا ہے۔ لہذا، "روٹنگ سروس کے لیے رجسٹری پر کارروائی" کے سیکشن کو اس کے پروگرام کو کال کرکے تبدیل کیا جا سکتا ہے۔ https://habr.com/post/354282/#comment_10782712

UPD4۔ غلطیوں پر تھوڑا سا کام (میں نے انہیں متن میں شامل نہیں کیا):
1) اس کے بجائے systemctl دوبارہ لوڈ برڈ کمانڈ استعمال کرنا سمجھ میں آتا ہے۔ birdc ترتیب.
2) میکروٹک راؤٹر میں، نیکسٹ شاپ کو سرنگ کے دوسرے سائیڈ کے آئی پی میں تبدیل کرنے کے بجائے /روٹنگ فلٹر ایڈ ایکشن = ایکسیپٹ چین = ڈائنامک ان پروٹوکول = bgp تبصرہ = » سیٹ نیکسٹ شاپ » سیٹ ان نیکسٹاپ = 172.30.1.1 بغیر ایڈریس کے ٹنل انٹرفیس تک براہ راست راستے کی وضاحت کرنا سمجھ میں آتا ہے۔ /روٹنگ فلٹر ایڈ ایکشن = قبول زنجیر = متحرک-ان پروٹوکول = bgp تبصرہ = »نیکسٹ شاپ سیٹ کریں

UPD5۔ ایک نئی سروس سامنے آئی ہے۔ https://antifilter.download، جہاں سے آپ IP پتوں کی ریڈی میڈ لسٹیں اٹھا سکتے ہیں۔ ہر آدھے گھنٹے بعد اپ ڈیٹ کیا جاتا ہے۔ کلائنٹ کی طرف، جو کچھ باقی رہ جاتا ہے وہ متعلقہ "روٹ... مسترد" کے ساتھ ریکارڈز کو فریم کرنا ہے۔
اور اس وقت، شاید، آپ کی دادی کو چیرنا اور مضمون کو اپ ڈیٹ کرنا کافی ہے۔

UPD6۔ مضمون کا ایک نظر ثانی شدہ ورژن ان لوگوں کے لیے جو اس کا پتہ نہیں لگانا چاہتے، لیکن شروع کرنا چاہتے ہیں۔ یہاں.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں