د DNSTap او BGP سره د ILV بلاک کول بای پاس کړئ

د DNSTap او BGP سره د ILV بلاک کول بای پاس کړئ

موضوع ډیره وهل شوې ده، زه پوهیږم. د مثال په توګه، یو لوی دی مقاله، مګر یوازې د بلاک لیست IP برخه هلته په پام کې نیول کیږي. موږ به ډومینونه هم اضافه کړو.

د دې حقیقت له امله چې محکمې او RKN هرڅه ښي او کیڼ بندوي ، او چمتو کونکي هڅه کوي چې د ریویزورو لخوا صادر شوي جریمې لاندې راشي ، د بلاک کولو پورې اړوند زیانونه خورا لوی دي. او د "قانوني" بلاک شوي سایټونو په مینځ کې ډیری ګټورې شتون لري (سلام، روټرکر)

زه د RKN له واک څخه بهر ژوند کوم، مګر زما مور او پلار، خپلوان او ملګري په کور کې پاتې دي. نو دا پریکړه وشوه چې د IT څخه لرې خلکو لپاره د بای پاس بلاک کولو لپاره یوه اسانه لار ومومئ ، په غوره توګه د دوی له ګډون پرته.

په دې یادښت کې، زه به د شبکې بنسټیز شیان په مرحلو کې بیان نه کړم، مګر زه به عمومي اصول بیان کړم چې دا سکیم څنګه پلي کیدی شي. نو پدې اړه پوهه چې څنګه شبکه په عمومي ډول کار کوي او په ځانګړي توګه په لینکس کې باید ولري.

د قلفونو ډولونه

لومړی، راځئ چې د هغه څه په اړه خپل حافظه تازه کړو چې بند شوي دي.

د RKN څخه نه پورته شوي XML کې ډیری ډولونه شتون لري:

  • IP
  • دنده
  • URL

د سادگي لپاره، موږ به دوی دوه ته راټیټ کړو: IP او ډومین، او موږ به په ساده ډول د URL لخوا د بلاک کولو څخه ډومین وباسو (په دقیق ډول، دوی لا دمخه زموږ لپاره دا کار کړی دی).

د ښه خلکو څخه Roskomsvoboda په زړه پورې پوه شو APIد دې له لارې موږ کولی شو هغه څه ترلاسه کړو چې موږ ورته اړتیا لرو:

بلاک شوي سایټونو ته لاسرسی

د دې کولو لپاره، موږ ځینې کوچني بهرني VPS ته اړتیا لرو، په غوره توګه د لامحدود ټرافیک سره - د 3-5 پیسو لپاره ډیری یې شتون لري. تاسو اړتیا لرئ دا په نږدې بهر کې واخلئ ترڅو پینګ خورا لوی نه وي ، مګر بیا په پام کې ونیسئ چې انټرنیټ او جغرافیه تل سره نه وي. او له هغه ځایه چې د 5 ډالرو لپاره هیڅ SLA شتون نلري ، نو دا به غوره وي چې د غلطۍ زغم لپاره د مختلف چمتو کونکو څخه 2+ ټوټې واخلئ.

بل ، موږ اړتیا لرو د پیرودونکي روټر څخه VPS ته یو کوډ شوی تونل تنظیم کړو. زه وایرګارډ د تنظیم کولو ترټولو ګړندی او اسانه په توګه کاروم. زه د لینوکس پر بنسټ د پیرودونکي روټرونه هم لرم (APU2 یا په OpenWRT کې یو څه). د ځینې مایکروټیک / سیسکو په حالت کې ، تاسو کولی شئ په دوی کې موجود پروتوکولونه وکاروئ لکه OpenVPN او GRE-over-IPSEC.

د ګټو ټرافیک پیژندنه او بیرته راستنول

تاسو کولی شئ، البته، د بهرنیو هیوادونو له لارې ټول انټرنیټ ټرافیک بند کړئ. مګر، ډیری احتمال، د محلي منځپانګې سره د کار سرعت به له دې څخه ډیر زیانمن شي. برسیره پردې، په VPS کې د بینډ ویت اړتیاوې به خورا لوړې وي.

له همدې امله، موږ به اړتیا ولرو چې په یو ډول بلاک شوي سایټونو ته ترافیک تخصیص کړو او په غوره توګه یې تونل ته لارښود کړو. حتی که ځینې "اضافي" ترافیک هلته راشي، دا لاهم د تونل له لارې د هرڅه چلولو څخه خورا ښه دی.

د ترافیک اداره کولو لپاره ، موږ به د BGP پروتوکول وکاروو او زموږ د VPS څخه پیرودونکو ته اړین شبکې ته لارې اعلان کړو. راځئ چې BIRD یو له خورا فعال او مناسب BGP ډیمونونو څخه واخلو.

IP

د IP لخوا بلاک کولو سره ، هرڅه روښانه دي: موږ په ساده ډول د VPS سره ټول بلاک شوي IPs اعلان کوو. ستونزه دا ده چې په لیست کې شاوخوا 600 زره فرعي سایټونه شتون لري چې API بیرته راګرځي، او ډیری یې /32 کوربه دي. دا شمیر لارې کولی شي ضعیف پیرودونکي راوټرونه ګډوډ کړي.

له همدې امله، کله چې د لیست پروسس کول، پریکړه وشوه چې د شبکې / 24 ته لنډیز ورکړئ که چیرې دا 2 یا ډیر کوربه ولري. په دې توګه، د لارو شمیر ~ 100 زره ته راټیټ شو. د دې لپاره سکریپټ به تعقیب شي.

ډومینونه

دا ډیر پیچلی دی او ډیری لارې شتون لري. د مثال په توګه، تاسو کولی شئ په هر پیرودونکي روټر کې یو شفاف سکویډ نصب کړئ او هلته HTTP مداخله وکړئ او په لومړي قضیه کې غوښتل شوي یو آر ایل او په دویمه کې د SNI څخه ډومین ترلاسه کولو لپاره د TLS هینډشیک ته وګورئ.

مګر د هر ډول نوي شوي TLS1.3 + eSNI له امله، د HTTPS تحلیل هره ورځ لږ او لږ واقع کیږي. هو، او د پیرودونکي اړخ زیربنا خورا پیچلې کیږي - تاسو باید لږترلږه OpenWRT وکاروئ.

له همدې امله ما پریکړه وکړه چې د DNS غوښتنو ته د ځوابونو مداخلې لاره غوره کړم. دلته هم، هر ډول DNS-over-TLS/HTTPS ستاسو په سر باندې ځړول پیل کوي، مګر موږ کولی شو (اوس لپاره) دا برخه په پیرودونکي کنټرول کړو - یا یې غیر فعال کړو یا د DoT / DoH لپاره خپل سرور وکاروو.

د DNS مخنیوی څنګه؟

دلته هم کېدای شي څو لارې وي.

  • د PCAP یا NFLOG له لارې د DNS ترافیک مداخله
    د مداخلې دا دواړه میتودونه په افادیت کې پلي کیږي sidmat. مګر دا د اوږدې مودې لپاره نه دی ملاتړ شوی او فعالیت خورا ابتدايي دی ، نو تاسو لاهم اړتیا لرئ د دې لپاره یو لاسی ولیکئ.
  • د DNS سرور لاګونو تحلیل
    له بده مرغه، ما ته پیژندل شوي تکرارونکي د ځوابونو د ننوتلو توان نلري، مګر یوازې غوښتنې. په اصل کې، دا منطقي ده، ځکه چې د غوښتنو برعکس، ځوابونه پیچلي جوړښت لري او د متن په بڼه یې لیکل ستونزمن دي.
  • DNSTap
    خوشبختانه ، ډیری یې دمخه د دې هدف لپاره د DNSTap ملاتړ کوي.

DNSTap څه شی دی؟

د DNSTap او BGP سره د ILV بلاک کول بای پاس کړئ

دا د DNS سرور څخه د جوړښت شوي DNS پوښتنو او ځوابونو راټولونکي ته د لیږد لپاره د پروتوکول بفرونو او چوکاټ سټریمونو پراساس د پیرودونکي - سرور پروتوکول دی. په لازمي ډول، د DNS سرور د پوښتنې او ځواب میټاډاټا (د پیغام ډول، د پیرودونکي/سرور IP، او نور) او د (بائنری) بڼه کې د DNS بشپړ پیغامونه لیږدوي په کوم کې چې دا په شبکه کې د دوی سره کار کوي.

دا مهمه ده چې پوه شئ چې د DNSTap تمثیل کې، د DNS سرور د پیرودونکي په توګه کار کوي او راټولونکی د سرور په توګه کار کوي. دا دی، د DNS سرور د راټولونکي سره نښلوي، او برعکس نه.

نن ورځ DNSTap په ټولو مشهور DNS سرورونو کې ملاتړ کیږي. مګر، د مثال په توګه، BIND په ډیری توزیعونو کې (لکه اوبنټو LTS) ډیری وختونه د دې ملاتړ پرته د کوم دلیل لپاره جوړیږي. نو راځئ چې د بیا راټولولو سره زحمت ونکړو ، مګر یو روښانه او ګړندی تکرار واخلئ - بې بانډ.

د DNSTap څنګه نیول؟

موجود دي ځینې د د DNSTap پیښو جریان سره کار کولو لپاره د CLI اسانتیاوې ، مګر دا زموږ د ستونزې حل کولو لپاره مناسب ندي. له همدې امله، ما پریکړه وکړه چې خپل بایسکل اختراع کړم چې هر څه به اړین وي: dnstap-bgp

د کار الګوریتم:

  • کله چې پیل شي، دا د متن فایل څخه د ډومینونو لیست پورته کوي، دوی یې بدلوي (habr.com -> com.habr)، مات شوي لینونه، نقلونه او فرعي ډومینونه خارجوي (د مثال په توګه که لیست habr.com او www.habr.com ولري، دا به یوازې لومړی پورته شي) او د دې لیست له لارې د ګړندي لټون لپاره یو مخکینۍ ونه جوړوي
  • د DNSTap سرور په توګه عمل کول، دا د DNS سرور څخه پیوستون ته انتظار کوي. په اصل کې، دا د UNIX او TCP ساکټ دواړه ملاتړ کوي، مګر د DNS سرورونه چې زه پوهیږم یوازې د UNIX ساکټونه کارولی شي
  • راتلوونکي DNSTap کڅوړې لومړی د پروټوبف جوړښت ته بې ترتیبه ​​کیږي ، او بیا د بائنری DNS پیغام پخپله ، د پروټوبف په یوه برخه کې موقعیت لري ، د DNS RR ریکارډونو کچې ته تحلیل کیږي.
  • دا کتل کیږي چې ایا غوښتل شوي کوربه (یا د هغې اصلي ډومین) په بار شوي لیست کې دی، که نه، ځواب له پامه غورځول کیږي
  • یوازې A/AAAA/CNAME RRs له ځواب څخه غوره شوي او ورته IPv4/IPv6 پتې له دوی څخه ایستل شوي
  • IP پتې د ترتیب وړ TTL سره زیرمه شوي او ټولو ترتیب شوي BGP ملګرو ته اعلان شوي
  • کله چې یو ځواب ترلاسه کړئ چې دمخه زیرمه شوي IP ته اشاره کوي ، د دې TTL تازه کیږي
  • د TTL پای ته رسیدو وروسته، ننوتل د کیچ او BGP اعلاناتو څخه لیرې کیږي

اضافي فعالیت:

  • د SIGHUP لخوا د ډومینونو لیست بیا لوستل
  • د کیچ ساتل د نورو مثالونو سره همغږي کول dnstap-bgp د HTTP/JSON له لارې
  • په ډیسک کې کیچ نقل کړئ (په BoltDB ډیټابیس کې) ترڅو د بیا پیل کولو وروسته د هغې مینځپانګې بیرته راوباسئ
  • د مختلف شبکې نوم ځای ته د بدلولو لپاره ملاتړ (ولې دا اړتیا ده لاندې به تشریح شي)
  • د IPv6 ملاتړ

محدودیتونه:

  • IDN ډومینونه لا تر اوسه نه ملاتړ کیږي
  • د BGP لږ ترتیبات

ما راټول کړل RPM او DEB د اسانه نصبولو لپاره کڅوړې. باید په ټولو نسبتا وروستي OS کې د سیسټمډ سره کار وکړي. دوی هیڅ انحصار نلري.

دا پلان

نو، راځئ چې د ټولو برخو سره یوځای کولو پیل وکړو. د پایلې په توګه، موږ باید د دې شبکې ټوپولوژي په څیر یو څه ترلاسه کړو:
د DNSTap او BGP سره د ILV بلاک کول بای پاس کړئ

د کار منطق، زما په اند، د ډیاګرام څخه روښانه دی:

  • پیرودونکي زموږ سرور د DNS په توګه تنظیم کړی دی، او د DNS پوښتنې باید په VPN کې هم لاړ شي. دا اړینه ده چې چمتو کونکي نشي کولی د بلاک کولو لپاره د DNS مداخله وکاروي.
  • کله چې سایټ خلاصیږي، پیرودونکي د DNS پوښتنه لیږي لکه "د xxx.org IPs څه دي"
  • انباونډ xxx.org حل کوي (یا یې د کیچ څخه اخلي) او پیرودونکي ته ځواب لیږي "xxx.org داسې او داسې IP لري"، دا د DNSTap له لارې په موازي ډول نقل کوي
  • dnstap-bgp دا پتې په کې اعلانوي برډ د BGP له لارې که چیرې ډومین په بند شوي لیست کې وي
  • برډ سره دې IPs ته لاره اعلانوي next-hop self د پیرودونکي روټر
  • د پیرودونکي څخه دې IPs ته راتلونکي کڅوړې د تونل له لارې تیریږي

په سرور کې، بلاک شوي سایټونو ته د لارو لپاره، زه د BIRD دننه یو جلا جدول کاروم او دا په هیڅ ډول د OS سره نه نښلي.

دا سکیم یو نیمګړتیا لري: د پیرودونکي څخه لومړی SYN پاکټ، ډیری احتمال به د کورني چمتو کونکي له لارې د وتلو وخت ولري. لاره سمدستي نه اعلانیږي. او دلته اختیارونه د دې پورې اړه لري چې چمتو کونکي څنګه بلاک کوي. که هغه یوازې ترافیک پریږدي، نو کومه ستونزه نشته. او که هغه دا یو څه DPI ته وګرځوي، نو بیا (نظرياتي) ځانګړي اغیزې ممکن دي.

دا هم ممکنه ده چې پیرودونکي د DNS TTL معجزو ته درناوی ونه کړي، کوم چې کولی شي پیرودونکي د Unbound غوښتنه کولو پر ځای د هغې له خراب شوي زیرمې څخه ځینې زاړه ننوتنې وکاروي.

په عمل کې، نه لومړی او نه دویم زما لپاره ستونزې رامینځته کوي، مګر ستاسو مایل ممکن توپیر ولري.

د سرور توننګ

د رول کولو اسانتیا لپاره، ما لیکلي د ځواب وړ لپاره رول. دا کولی شي دواړه سرورونه او پیرودونکي د لینکس پراساس تنظیم کړي (د ډیب پراساس توزیع لپاره ډیزاین شوي). ټول ترتیبات خورا څرګند دي او تنظیم شوي دي inventory.yml. دا رول زما د لوی لوبو کتاب څخه قطع شوی ، نو دا ممکن غلطۍ ولري - د غوښتنو غوښتنه کول ښه راغلاست 🙂

راځئ چې د اصلي برخو له لارې لاړ شو.

BGP

په ورته کوربه کې د دوه BGP ډیمونونو چلول یوه اساسي ستونزه لري: BIRD نه غواړي د BGP پییرنګ د ځایی کوربه (یا کوم ځایی انٹرفیس) سره تنظیم کړي. په ټوله کې د کلمې څخه. ګوګل کول او د بریښنالیک لیست لوستل مرسته نه کوي، دوی ادعا کوي چې دا د ډیزاین له مخې دی. شاید یو څه لاره وي، مګر ما دا ونه موندله.

تاسو کولی شئ بل BGP ډیمون هڅه وکړئ ، مګر زه BIRD خوښوم او دا زما لخوا هرچیرې کارول کیږي ، زه نه غواړم ادارې تولید کړم.

له همدې امله ، ما د شبکې نوم ځای کې dnstap-bgp پټ کړ ، کوم چې د ویت انٹرفیس له لارې له ریښې سره وصل دی: دا د پایپ په څیر دی ، چې پای یې په مختلف نوم ځایونو کې پاتې کیږي. په دې هر یو کې، موږ شخصي p2p IP پتې ځړوو چې د کوربه څخه بهر نه ځي، نو دوی هر څه کیدی شي. دا ورته میکانیزم دی چې دننه پروسو ته د لاسرسي لپاره کارول کیږي د ټولو سره مینه ډاکر او نور کانټینرونه.

د دې لپاره دا لیکل شوی و سکریپټ او هغه فعالیت چې مخکې یې د ویښتو په واسطه خپل ځان د بل نوم ځای ته راښکته کولو لپاره پورته تشریح شوی په dnstap-bgp کې اضافه شوی. د دې له امله، دا باید د روټ په توګه وګرځول شي یا د CAP_SYS_ADMIN بائنری ته د setcap کمانډ له لارې صادر شي.

د نوم ځای د جوړولو لپاره د مثال سکریپټ

#!/bin/bash

NS="dtap"

IP="/sbin/ip"
IPNS="$IP netns exec $NS $IP"

IF_R="veth-$NS-r"
IF_NS="veth-$NS-ns"

IP_R="192.168.149.1"
IP_NS="192.168.149.2"

/bin/systemctl stop dnstap-bgp || true

$IP netns del $NS > /dev/null 2>&1
$IP netns add $NS

$IP link add $IF_R type veth peer name $IF_NS
$IP link set $IF_NS netns $NS

$IP addr add $IP_R remote $IP_NS dev $IF_R
$IP link set $IF_R up

$IPNS addr add $IP_NS remote $IP_R dev $IF_NS
$IPNS link set $IF_NS up

/bin/systemctl start dnstap-bgp

dnstap-bgp.conf

namespace = "dtap"
domains = "/var/cache/rkn_domains.txt"
ttl = "168h"

[dnstap]
listen = "/tmp/dnstap.sock"
perm = "0666"

[bgp]
as = 65000
routerid = "192.168.149.2"

peers = [
    "192.168.149.1",
]

bird.conf

router id 192.168.1.1;

table rkn;

# Clients
protocol bgp bgp_client1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.2 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    export all;
    import none;
}

# DNSTap-BGP
protocol bgp bgp_dnstap {
    table rkn;
    local as 65000;
    neighbor 192.168.149.2 as 65000;
    direct;
    passive on;
    rr client;
    import all;
    export none;
}

# Static routes list
protocol static static_rkn {
    table rkn;
    include "rkn_routes.list";
    import all;
    export none;
}

rkn_routes.list

route 3.226.79.85/32 via "ens3";
route 18.236.189.0/24 via "ens3";
route 3.224.21.0/24 via "ens3";
...

ډی

په ډیفالټ کې ، په اوبنټو کې ، انباونډ بائنری د AppArmor پروفایل لخوا کلیک شوی ، کوم چې دا د DNSTap ساکټونو هر ډول سره وصل کیدو څخه منع کوي. تاسو کولی شئ دا پروفایل حذف کړئ، یا یې غیر فعال کړئ:

# cd /etc/apparmor.d/disable && ln -s ../usr.sbin.unbound .
# apparmor_parser -R /etc/apparmor.d/usr.sbin.unbound

دا باید د لوبې کتاب کې اضافه شي. دا مثالی دی، البته، د پروفایل سمولو او اړین حقونه صادرول، مګر زه ډیر سست وم.

unbound.conf

server:
    chroot: ""
    port: 53
    interface: 0.0.0.0
    root-hints: "/var/lib/unbound/named.root"
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    access-control: 192.168.0.0/16 allow

remote-control:
    control-enable: yes
    control-use-cert: no

dnstap:
    dnstap-enable: yes
    dnstap-socket-path: "/tmp/dnstap.sock"
    dnstap-send-identity: no
    dnstap-send-version: no

    dnstap-log-client-response-messages: yes

د لیست ډاونلوډ او پروسس کول

د IP پتې لیست ډاونلوډ او پروسس کولو لپاره سکریپټ
دا لیست ډاونلوډ کوي، مخکینۍ ته راټولوي pfx. د شامل نه کړئ и لنډیز مه کوئ تاسو کولی شئ IPs او شبکو ته ووایاست چې پریږدئ یا لنډیز ونه کړئ. ما ورته اړتیا درلوده. زما د VPS فرعي شبکه په بلاک لیست کې وه 🙂

په زړه پورې خبره دا ده چې د RosKomSvoboda API د ډیفالټ Python کارونکي اجنټ سره غوښتنې بندوي. داسې ښکاري چې سکریپټ - ماشوم یې ترلاسه کړ. له همدې امله، موږ دا اوګنلیس ته بدلوو.

تر اوسه پورې، دا یوازې د IPv4 سره کار کوي. د IPv6 ونډه کوچنۍ ده، مګر دا به اسانه وي چې حل شي. پرته لدې چې تاسو باید bird6 هم وکاروئ.

rkn.py

#!/usr/bin/python3

import json, urllib.request, ipaddress as ipa

url = 'https://api.reserve-rbl.ru/api/v2/ips/json'
pfx = '24'

dont_summarize = {
    # ipa.IPv4Network('1.1.1.0/24'),
}

dont_add = {
    # ipa.IPv4Address('1.1.1.1'),
}

req = urllib.request.Request(
    url,
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
ips = json.loads(f.read().decode('utf-8'))

prefix32 = ipa.IPv4Address('255.255.255.255')

r = {}
for i in ips:
    ip = ipa.ip_network(i)
    if not isinstance(ip, ipa.IPv4Network):
        continue

    addr = ip.network_address

    if addr in dont_add:
        continue

    m = ip.netmask
    if m != prefix32:
        r[m] = [addr, 1]
        continue

    sn = ipa.IPv4Network(str(addr) + '/' + pfx, strict=False)

    if sn in dont_summarize:
        tgt = addr
    else:
        tgt = sn

    if not sn in r:
        r[tgt] = [addr, 1]
    else:
        r[tgt][1] += 1

o = []
for n, v in r.items():
    if v[1] == 1:
        o.append(str(v[0]) + '/32')
    else:
        o.append(n)

for k in o:
    print(k)

سکریپټ د تازه کولو لپاره
زه دا په ورځ کې یو ځل په تاج باندې چلوم ، شاید دا په هر 4 ساعتونو کې د ایستلو ارزښت ولري. دا، زما په نظر، د تجدید موده ده چې RKN د چمتو کونکو څخه اړتیا لري. سربیره پردې ، دوی یو څه نور خورا عاجل بلاکونه لري ، کوم چې ممکن ګړندي راشي.

لاندې کارونه کوي:

  • لومړی سکریپټ چلوي او د لارو لیست تازه کوي (rkn_routes.list) د BIRD لپاره
  • BIRD بیا پورته کړئ
  • د dnstap-bgp لپاره د ډومینونو لیست تازه او پاکوي
  • dnstap-bgp بیا پورته کړئ

rkn_update.sh

#!/bin/bash

ROUTES="/etc/bird/rkn_routes.list"
DOMAINS="/var/cache/rkn_domains.txt"

# Get & summarize routes
/opt/rkn.py | sed 's/(.*)/route 1 via "ens3";/' > $ROUTES.new

if [ $? -ne 0 ]; then
    rm -f $ROUTES.new
    echo "Unable to download RKN routes"
    exit 1
fi

if [ -e $ROUTES ]; then
    mv $ROUTES $ROUTES.old
fi

mv $ROUTES.new $ROUTES

/bin/systemctl try-reload-or-restart bird

# Get domains
curl -s https://api.reserve-rbl.ru/api/v2/domains/json -o - | jq -r '.[]' | sed 's/^*.//' | sort | uniq > $DOMAINS.new

if [ $? -ne 0 ]; then
    rm -f $DOMAINS.new
    echo "Unable to download RKN domains"
    exit 1
fi

if [ -e $DOMAINS ]; then
    mv $DOMAINS $DOMAINS.old
fi

mv $DOMAINS.new $DOMAINS

/bin/systemctl try-reload-or-restart dnstap-bgp

دوی د ډیر فکر پرته لیکل شوي، نو که تاسو یو څه وګورئ چې ښه کیدی شي - د هغې لپاره لاړ شئ.

د پیرودونکي تنظیم کول

دلته به زه د لینکس روټرونو لپاره مثالونه ورکړم، مګر د مایکروټیک / سیسکو په حالت کې دا باید خورا اسانه وي.

لومړی، موږ BIRD تنظیم کړ:

bird.conf

router id 192.168.1.2;
table rkn;

protocol device {
    scan time 10;
};

# Servers
protocol bgp bgp_server1 {
    table rkn;
    local as 65000;
    neighbor 192.168.1.1 as 65000;
    direct;
    bfd on;
    next hop self;
    graceful restart;
    graceful restart time 60;
    rr client;
    export none;
    import all;
}

protocol kernel {
    table rkn;
    kernel table 222;
    scan time 10;
    export all;
    import none;
}

په دې توګه، موږ به د BGP څخه ترلاسه شوي لارې د کرنل روټینګ جدول نمبر 222 سره همغږي کړو.

له هغې وروسته، دا بسیا ده چې د کرنل څخه وغواړئ چې دا پلیټ وګورئ مخکې له دې چې ډیفالټ وګورئ:

# ip rule add from all pref 256 lookup 222
# ip rule
0:  from all lookup local
256:    from all lookup 222
32766:  from all lookup main
32767:  from all lookup default

هرڅه ، دا په روټر کې د DHCP تنظیم کولو لپاره پاتې دي ترڅو د سرور تونل IP پته د DNS په توګه توزیع کړي ، او سکیم چمتو دی.

نيمګړتياوې

د ډومینونو لیست رامینځته کولو او پروسس کولو لپاره د اوسني الګوریتم سره ، پدې کې د نورو شیانو په مینځ کې شامل دي ، youtube.com او د هغې CDNs.

او دا د دې حقیقت لامل کیږي چې ټولې ویډیوګانې به د VPN له لارې تیریږي ، کوم چې کولی شي ټول چینل بند کړي. شاید دا د مشهور ډومینونو لیست ترتیبولو ارزښت لري - د وتلو لپاره چې RKN د اوس وخت لپاره بلاک کوي ، زړونه پتلي دي. او د پارس کولو پر مهال یې پریږدئ.

پایلې

تشریح شوی میتود تاسو ته اجازه درکوي نږدې هر ډول بلاک کول چې چمتو کونکي اوس مهال پلي کوي.

په اصل کې، dnstap-bgp د کوم بل هدف لپاره کارول کیدی شي چیرې چې د ډومین نوم پراساس د ترافیک کنټرول ځینې کچې ته اړتیا وي. یوازې په یاد ولرئ چې زموږ په وخت کې، زرګونه سایټونه په ورته IP پته کې ځړول کیدی شي (د ځینې کلاوډ فلیر شاته، د بیلګې په توګه)، نو دا طریقه خورا ټیټ دقت لري.

مګر د بای پاس کولو لاکونو اړتیاو لپاره ، دا خورا کافی دی.

اضافې، ایډیټونه، غوښتنې غوښتنې - ښه راغلاست!

سرچینه: www.habr.com

Add a comment