تجاوز حجب ILV باستخدام DNSTap و BGP

تجاوز حجب ILV باستخدام DNSTap و BGP

لقد تم ضرب الموضوع بشكل كبير ، أعلم. على سبيل المثال ، هناك ملف مقالة، ولكن يتم اعتبار جزء IP فقط من قائمة الحظر هناك. سنضيف أيضا المجالات.

نظرًا لحقيقة أن المحاكم و RKN يحظرون كل شيء يمينًا ويسارًا ، ويحاول مقدمو الخدمة جاهدين عدم الوقوع تحت الغرامات الصادرة عن Revizorro ، فإن الخسائر المرتبطة بالحظر كبيرة جدًا. ومن بين المواقع المحجوبة "بشكل قانوني" هناك العديد من المواقع المفيدة (مرحبًا ، rutracker)

أعيش خارج نطاق سلطة RKN ، لكن والدي وأقاربي وأصدقائي بقوا في المنزل. لذلك تقرر ابتكار طريقة سهلة للأشخاص البعيدين عن تكنولوجيا المعلومات لتجاوز الحظر ، ويفضل أن يكون ذلك بدون مشاركتهم على الإطلاق.

في هذه المذكرة ، لن أصف الأشياء الأساسية للشبكة في خطوات ، لكنني سأصف المبادئ العامة لكيفية تنفيذ هذا المخطط. لذا فإن معرفة كيفية عمل الشبكة بشكل عام وفي Linux بشكل خاص أمر لا بد منه.

أنواع الأقفال

أولاً ، دعنا نعيد تنشيط ذاكرتنا لما تم حظره.

هناك عدة أنواع من الأقفال في XML غير المحمل من RKN:

  • IP
  • اسم النطاق
  • URL

من أجل التبسيط ، سنقوم بتقليلها إلى قسمين: IP والمجال ، وسنسحب المجال ببساطة من الحظر بواسطة عنوان URL (بتعبير أدق ، لقد فعلوا ذلك بالفعل لنا).

أهل الخير من روسكومسفوبودا أدركت رائعة APIوالتي من خلالها نحصل على ما نحتاجه:

الوصول إلى المواقع المحجوبة

للقيام بذلك ، نحتاج إلى بعض VPS الأجنبية الصغيرة ، ويفضل أن يكون ذلك مع حركة مرور غير محدودة - هناك العديد منها مقابل 3-5 دولارات. تحتاج إلى أن تأخذها في الخارج القريب بحيث لا يكون ping كبيرًا جدًا ، ولكن مرة أخرى ، ضع في الاعتبار أن الإنترنت والجغرافيا لا يتطابقان دائمًا. ونظرًا لعدم وجود اتفاقية مستوى خدمة (SLA) مقابل 5 دولارات ، فمن الأفضل الحصول على قطعتين أو أكثر من مزودين مختلفين للتسامح مع الخطأ.

بعد ذلك ، نحتاج إلى إعداد نفق مشفر من موجه العميل إلى VPS. أستخدم Wireguard باعتباره الأسرع والأسهل في الإعداد. لدي أيضًا أجهزة توجيه للعميل تعتمد على Linux (أبو2 أو شيء ما في OpenWRT). في حالة بعض أجهزة Mikrotik / Cisco ، يمكنك استخدام البروتوكولات المتاحة عليها مثل OpenVPN و GRE-over-IPSEC.

تحديد وإعادة توجيه حركة المرور ذات الأهمية

يمكنك بالطبع إيقاف تشغيل جميع حركات المرور على الإنترنت عبر الدول الأجنبية. ولكن ، على الأرجح ، ستعاني سرعة العمل مع المحتوى المحلي بشكل كبير من هذا. بالإضافة إلى ذلك ، ستكون متطلبات النطاق الترددي على VPS أعلى من ذلك بكثير.

لذلك ، سنحتاج إلى تخصيص حركة المرور بطريقة ما إلى المواقع المحجوبة وتوجيهها بشكل انتقائي إلى النفق. حتى لو وصلت بعض حركة المرور "الإضافية" إلى هناك ، فإنها لا تزال أفضل بكثير من قيادة كل شيء عبر النفق.

لإدارة حركة المرور ، سنستخدم بروتوكول BGP ونعلن عن المسارات إلى الشبكات الضرورية من الخادم الافتراضي الخاص بنا إلى العملاء. لنأخذ BIRD كواحد من أكثر شياطين BGP عملية وملائمة.

IP

مع الحظر بواسطة IP ، يكون كل شيء واضحًا: نحن ببساطة نعلن عن جميع عناوين IP المحظورة باستخدام VPS. تكمن المشكلة في وجود حوالي 600 ألف شبكة فرعية في القائمة التي تعرضها واجهة برمجة التطبيقات ، والغالبية العظمى منهم / 32 مضيفًا. يمكن أن يؤدي هذا العدد من المسارات إلى إرباك أجهزة توجيه العميل الضعيفة.

لذلك ، عند معالجة القائمة ، تقرر تلخيص ما يصل إلى الشبكة / 24 إذا كان لديها مضيفان أو أكثر. وبالتالي ، تم تقليل عدد المسارات إلى حوالي 2 ألف. السيناريو لهذا سيتبع.

المجالات

الأمر أكثر تعقيدًا وهناك عدة طرق. على سبيل المثال ، يمكنك تثبيت Squid شفاف على كل جهاز توجيه عميل والقيام باعتراض HTTP هناك والنظر في مصافحة TLS للحصول على عنوان URL المطلوب في الحالة الأولى والمجال من SNI في الحالة الثانية.

ولكن نظرًا لجميع أنواع TLS1.3 + eSNI الجديدة ، أصبح تحليل HTTPS أقل واقعية كل يوم. نعم ، وأصبحت البنية التحتية من جانب العميل أكثر تعقيدًا - سيتعين عليك استخدام OpenWRT على الأقل.

لذلك ، قررت أن أسير في طريق اعتراض الردود على استفسارات DNS. هنا أيضًا ، يبدأ أي DNS-over-TLS / HTTPS بالمرور فوق رأسك ، لكن يمكننا (في الوقت الحالي) التحكم في هذا الجزء على العميل - إما تعطيله أو استخدام الخادم الخاص بك لـ DoT / DoH.

كيفية اعتراض DNS؟

هنا ، أيضًا ، قد يكون هناك عدة طرق.

  • اعتراض حركة مرور DNS عبر PCAP أو NFLOG
    يتم تنفيذ كل من طرق الاعتراض هذه في الأداة المساعدة سيدمات. لكن لم يتم دعمها لفترة طويلة والوظيفة بدائية للغاية ، لذلك ما زلت بحاجة إلى كتابة أداة تسخير لها.
  • تحليل سجلات خادم DNS
    لسوء الحظ ، فإن المتكررين المعروفين لي غير قادرين على تسجيل الردود ، ولكن الطلبات فقط. من حيث المبدأ ، هذا أمر منطقي ، لأنه على عكس الطلبات ، فإن الإجابات لها بنية معقدة ومن الصعب كتابتها في شكل نصي.
  • DNSTap
    لحسن الحظ ، يدعم العديد منهم بالفعل DNSTap لهذا الغرض.

ما هو DNSTap؟

تجاوز حجب ILV باستخدام DNSTap و BGP

إنه بروتوكول خادم - عميل يعتمد على مخازن البروتوكول وتدفقات الإطارات للتحويل من خادم DNS إلى مجمع استعلامات واستجابات DNS المنظمة. بشكل أساسي ، ينقل خادم DNS البيانات الوصفية للاستعلام والاستجابة (نوع الرسالة ، عنوان IP للعميل / الخادم ، وما إلى ذلك) بالإضافة إلى رسائل DNS الكاملة في النموذج (الثنائي) الذي يعمل معهم عبر الشبكة.

من المهم أن نفهم أنه في نموذج DNSTap ، يعمل خادم DNS كعميل ويعمل المجمع كخادم. أي أن خادم DNS يتصل بالمجمع ، وليس العكس.

يتم دعم DNSTap اليوم في جميع خوادم DNS الشائعة. ولكن ، على سبيل المثال ، غالبًا ما يتم إنشاء BIND في العديد من التوزيعات (مثل Ubuntu LTS) لسبب ما دون دعمه. لذلك دعونا لا نهتم بإعادة التجميع ، ولكن نأخذ مؤشراً أخف وأسرع - غير منضم.

كيف تلتقط DNSTap؟

هنالك بعض عدد أدوات CLI المساعدة للعمل مع دفق أحداث DNSTap ، لكنها ليست مناسبة لحل مشكلتنا. لذلك ، قررت ابتكار دراجتي الخاصة التي ستفعل كل ما هو ضروري: dnstap- bgp

خوارزمية العمل:

  • عند بدء التشغيل ، يقوم بتحميل قائمة المجالات من ملف نصي ، ويعكسها (habr.com -> com.habr) ، ويستبعد الأسطر المقطوعة ، والتكرارات ، والمجالات الفرعية (على سبيل المثال ، إذا كانت القائمة تحتوي على habr.com و www.habr.com ، سيتم تحميله الأول فقط) ويبني شجرة بادئة للبحث السريع من خلال هذه القائمة
  • بصفته خادم DNSTap ، فإنه ينتظر الاتصال من خادم DNS. من حيث المبدأ ، يدعم كلاً من مآخذ UNIX و TCP ، لكن خوادم DNS التي أعرفها يمكنها فقط استخدام مآخذ UNIX
  • يتم أولاً إلغاء تسلسل حزم DNSTap الواردة في بنية Protobuf ، ثم يتم تحليل رسالة DNS الثنائية نفسها ، الموجودة في أحد حقول Protobuf ، إلى مستوى سجلات DNS RR
  • يتم التحقق مما إذا كان المضيف المطلوب (أو المجال الرئيسي) موجودًا في القائمة المحملة ، وإلا فسيتم تجاهل الاستجابة
  • يتم تحديد سجلات A / AAAA / CNAME فقط من الاستجابة ويتم استخراج عناوين IPv4 / IPv6 المقابلة منها
  • يتم تخزين عناوين IP مؤقتًا باستخدام TTL القابل للتكوين ويتم الإعلان عنها لجميع أقران BGP الذين تم تكوينهم
  • عند تلقي استجابة تشير إلى عنوان IP تم تخزينه مؤقتًا بالفعل ، يتم تحديث مدة البقاء (TTL) الخاصة به
  • بعد انتهاء مدة البقاء (TTL) ، تتم إزالة الإدخال من ذاكرة التخزين المؤقت ومن إعلانات BGP

وظائف إضافية:

  • إعادة قراءة قائمة المجالات بواسطة SIGHUP
  • الحفاظ على ذاكرة التخزين المؤقت متزامنة مع الحالات الأخرى dnstap- bgp عبر HTTP / JSON
  • قم بتكرار ذاكرة التخزين المؤقت على القرص (في قاعدة بيانات BoltDB) لاستعادة محتوياتها بعد إعادة التشغيل
  • دعم التبديل إلى مساحة اسم شبكة مختلفة (سيتم وصف سبب الحاجة إلى ذلك أدناه)
  • دعم IPv6

القيود:

  • مجالات IDN غير مدعومة حتى الآن
  • عدد قليل من إعدادات BGP

جمعت RPM و DEB حزم لسهولة التركيب. يجب أن يعمل على جميع أنظمة التشغيل الحديثة نسبيًا مع systemd. ليس لديهم أي تبعيات.

القيادة

لذا ، فلنبدأ في تجميع كل المكونات معًا. نتيجة لذلك ، يجب أن نحصل على شيء مثل طوبولوجيا الشبكة هذه:
تجاوز حجب ILV باستخدام DNSTap و BGP

أعتقد أن منطق العمل واضح من الرسم التخطيطي:

  • قام العميل بتكوين خادمنا على أنه DNS ، ويجب أن تمر استعلامات DNS أيضًا عبر VPN. يعد هذا ضروريًا حتى لا يتمكن المزود من استخدام اعتراض DNS للحظر.
  • عند فتح الموقع ، يرسل العميل استعلام DNS مثل "ما هي عناوين IP الخاصة بـ xxx.org"
  • غير منضم يحل xxx.org (أو يأخذها من ذاكرة التخزين المؤقت) ويرسل ردًا إلى العميل "xxx.org لديه عنوان IP كذا وكذا" ، يكرره بالتوازي عبر DNSTap
  • dnstap- bgp تعلن عن هذه العناوين في طائر عبر BGP إذا كان المجال موجودًا في قائمة الحظر
  • طائر يعلن عن طريق إلى عناوين IP هذه باستخدام next-hop self جهاز توجيه العميل
  • تمر الحزم اللاحقة من العميل إلى عناوين IP هذه عبر النفق

على الخادم ، بالنسبة للطرق المؤدية إلى المواقع المحجوبة ، أستخدم جدولًا منفصلاً داخل BIRD ولا يتقاطع مع نظام التشغيل بأي شكل من الأشكال.

هذا المخطط له عيب: حزمة SYN الأولى من العميل ، على الأرجح ، سيكون لديها الوقت للمغادرة من خلال المزود المحلي. لم يتم الإعلان عن المسار على الفور. وهنا تكون الخيارات ممكنة اعتمادًا على كيفية قيام المزود بالحجب. إذا أسقط حركة المرور فقط ، فلا مشكلة. وإذا أعاد توجيهه إلى بعض DPI ، فعندئذ (من الناحية النظرية) تكون التأثيرات الخاصة ممكنة.

من المحتمل أيضًا ألا يحترم العملاء معجزات DNS TTL ، مما قد يتسبب في قيام العميل باستخدام بعض الإدخالات القديمة من ذاكرة التخزين المؤقت الفاسدة بدلاً من طلب Unbound.

من الناحية العملية ، لم يتسبب الأول ولا الثاني في حدوث مشكلات بالنسبة لي ، ولكن قد يختلف عدد الأميال المقطوعة.

ضبط الخادم

لسهولة التدحرج ، كتبت دور أنسبل. يمكنه تكوين كل من الخوادم والعملاء على أساس Linux (المصمم للتوزيعات القائمة على deb). جميع الإعدادات واضحة تمامًا ويتم ضبطها المخزون. iMl. تم اقتطاع هذا الدور من كتابي الكبير ، لذا فقد يحتوي على أخطاء - سحب الطلبات اهلا وسهلا 🙂

لنستعرض المكونات الرئيسية.

BGP

تشغيل اثنين من برامج BGP على نفس المضيف لديه مشكلة أساسية: لا يريد BIRD إعداد تناظر BGP مع المضيف المحلي (أو أي واجهة محلية). من الكلمة على الإطلاق. لم يساعد البحث في Google وقراءة القوائم البريدية ، فهم يزعمون أن هذا عن طريق التصميم. ربما توجد طريقة ما ، لكني لم أجدها.

يمكنك تجربة برنامج خفي آخر لـ BGP ، لكني أحب BIRD ويتم استخدامه في كل مكان بواسطتي ، لا أريد إنتاج كيانات.

لذلك ، قمت بإخفاء dnstap-bgp داخل مساحة اسم الشبكة ، والتي تتصل بالجذر من خلال واجهة veth: إنها تشبه الأنبوب ، وتبرز نهاياته في مساحات أسماء مختلفة. في كل من هذه النهايات ، نقوم بتعليق عناوين IP الخاصة بـ p2p التي لا تتجاوز المضيف ، بحيث يمكن أن تكون أي شيء. هذه هي نفس الآلية المستخدمة للوصول إلى العمليات في الداخل محبوب من الجميع عامل ميناء وحاويات أخرى.

لهذا هو مكتوب النصي وتمت إضافة الوظيفة الموضحة أعلاه لسحب نفسك من الشعر إلى مساحة اسم أخرى إلى 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",
]

الطيور

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";
...

DNS

بشكل افتراضي ، في Ubuntu ، يتم تثبيت الملف الثنائي Unbound بواسطة ملف تعريف AppArmor ، والذي يمنعه من الاتصال بجميع أنواع مآخذ DNSTap. يمكنك إما حذف ملف التعريف هذا أو تعطيله:

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

ربما يجب أن يضاف هذا إلى كتاب التشغيل. من المثالي بالطبع تصحيح الملف الشخصي وإصدار الحقوق اللازمة ، لكنني كنت كسولًا جدًا.

غير منضم

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. في لا تضيف и لا تلخص يمكنك إخبار عناوين IP والشبكات بالتخطي أو عدم التلخيص. كنت بحاجة الى هذا. كانت الشبكة الفرعية لخادم VPS الخاص بي في قائمة الحظر 🙂

الشيء المضحك هو أن RosKomSvoboda API يحظر الطلبات باستخدام وكيل مستخدم Python الافتراضي. يبدو أن البرنامج النصي حصل عليه. لذلك ، نقوم بتغييره إلى Ognelis.

حتى الآن ، يعمل فقط مع 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

لقد تم كتابتها دون تفكير كبير ، لذلك إذا رأيت شيئًا يمكن تحسينه - فابحث عنه.

إعداد العميل

سأقدم هنا أمثلة لأجهزة توجيه Linux ، ولكن في حالة Mikrotik / Cisco يجب أن يكون الأمر أسهل.

أولاً ، أنشأنا BIRD:

الطيور

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 مع جدول توجيه kernel رقم 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 وشبكات CDN الخاصة بها.

وهذا يؤدي إلى حقيقة أن جميع مقاطع الفيديو ستمر عبر VPN ، مما قد يؤدي إلى انسداد القناة بأكملها. ربما يكون من المفيد تجميع قائمة بالمجالات-الاستبعادات الشائعة التي تحجب RKN في الوقت الحالي ، فالشجاعة ضعيفة. وتخطيها عند الاعراب.

اختتام

تسمح لك الطريقة الموصوفة بتجاوز أي حظر ينفذه الموفرون حاليًا تقريبًا.

من حيث المبدأ، dnstap- bgp يمكن استخدامها لأي غرض آخر حيث يلزم مستوى معين من التحكم في حركة المرور بناءً على اسم المجال. فقط ضع في اعتبارك أنه في عصرنا ، يمكن أن يتم تعليق آلاف المواقع على نفس عنوان IP (خلف بعض Cloudflare ، على سبيل المثال) ، لذلك فإن هذه الطريقة ذات دقة منخفضة نوعًا ما.

ولكن بالنسبة لاحتياجات تجاوز الأقفال ، فهذا يكفي تمامًا.

الإضافات والتعديلات وطلبات السحب - مرحبًا!

المصدر: www.habr.com

إضافة تعليق