سناریو کامل: تکنیک BGP Black Hole Routing (RTBH)

در این آموزش، به بررسی تکنیک BGP Black Hole Routing یا Remote Triggered Black Hole (RTBH) می‌پردازیم. این تکنیک برای مقابله با حملات DoS/DDoS با دور انداختن ترافیک مخرب در نزدیک‌ترین نقطه ورودی شبکه استفاده می‌شود. این روش به ارائه‌دهندگان خدمات اینترنتی (ISP) اجازه می‌دهد تا با همکاری مشتریان خود، ترافیک مخرب را به سرعت مسدود کنند، بدون اینکه نیاز به بررسی محتوای بسته‌ها باشد.


🧪 سناریو کلی شبکه و مفهوم RTBH

[ ISP Router ] | ----------------- | | [ Router A ] [ Router B ] | [ Target IP ] 
            

هدف این سناریو، مسدود کردن ترافیک ورودی به IP مورد حمله است. در این سناریو، مشتری (Router A) با مشاهده یک حمله DDoS به IP خود (203.0.113.10)، یک اعلامیه BGP با Community خاص (666:666) به سمت ISP (ISP Router) ارسال می‌کند. ISP با دریافت این Community، ترافیک مربوط به IP مورد حمله را به Null0 یا رابط مشابه در روترهای ورودی خود هدایت کرده و آن را دور می‌اندازد. این فرآیند از اشغال پهنای باند و منابع شبکه جلوگیری می‌کند.


🧩 بخش اول: تنظیمات در Cisco Router (BGP RTBH)

در روترهای سیسکو، تنظیمات زیر امکان مدیریت مسیرهای Blackhole را از طریق BGP فراهم می‌کند. این تنظیمات باید در روتر مشتری (Router A) و روترهای ISP انجام شود.

🔹 قدم اول: تعریف Null Route

در روتر ISP، ابتدا یک مسیر به Null0 (رابط مجازی که ترافیک را دور می‌اندازد) ایجاد می‌کنیم. این کار باعث می‌شود هر ترافیکی که به این آدرس هدایت شود، بدون ارسال پاسخ، حذف شود.

ip route 192.0.2.1 255.255.255.255 Null0
        

🔹 قدم دوم: تعریف route-map برای Blackhole

Route-map ترافیک را به Null Route هدایت کرده و Community BGP را تنظیم می‌کند. این route-map در روتر ISP برای پذیرش و پردازش اعلامیه‌های Blackhole استفاده می‌شود.

route-map BLACKHOLE permit 10
 set ip next-hop 192.0.2.1
 set community 666:666
        

همچنین، یک route-map دیگر در روتر مشتری (Router A) برای اعلام مسیر Blackhole به ISP تعریف می‌شود.

route-map ANNOUNCE-BH permit 10
 match ip address prefix-list BH-DEST
 set community 666:666
        

🔹 قدم سوم: تعریف prefix-list و community-list

این لیست‌ها برای شناسایی IP مورد حمله و Community مربوط به Blackhole استفاده می‌شوند. این تنظیمات در روتر مشتری و ISP مورد نیاز است.

# در روتر مشتری (Router A)
ip prefix-list BH-DEST seq 5 permit 203.0.113.10/32

# در روتر ISP
ip community-list 1 permit 666:666
        

🔹 قدم چهارم: تنظیم BGP برای قبول و اعلام مسیر Blackhole

پیکربندی BGP برای دریافت و اعمال route-map مربوط به Blackhole.
در روتر مشتری، route-map برای ارسال اعلامیه Blackhole به ISP استفاده می‌شود.

router bgp 64512
 neighbor x.x.x.x remote-as 64513
 network 203.0.113.10 mask 255.255.255.255 route-map ANNOUNCE-BH
        

در روتر ISP، route-map برای پذیرش اعلامیه Blackhole از مشتری استفاده می‌شود.

router bgp 64513
 neighbor x.x.x.x remote-as 64512
 neighbor x.x.x.x route-map BLACKHOLE in
        

🧩 بخش دوم: تنظیمات در MikroTik RouterOS (BGP Blackhole)

میکروتیک از قابلیت Blackhole routing پشتیبانی می‌کند که می‌تواند با BGP ترکیب شود.

🔹 1. تعریف static blackhole route:

ایجاد یک مسیر Blackhole برای IP مورد حمله. این دستور در روترهای ISP اجرا می‌شود.

/ip route add dst-address=203.0.113.10/32 type=blackhole
        

🔹 2. تعریف BGP Filter Rule برای community:

قانون فیلتر برای BGP که بر اساس Community Blackhole (666:666) ترافیک را دور می‌اندازد. این قانون در روترهای ISP تعریف می‌شود.

/routing filter add chain=bh-chain bgp-communities=666:666 action=discard
        

🔹 3. تعریف Peer و اتصال به فیلتر:

اتصال فیلتر به Peer BGP. این تنظیمات در روتر ISP انجام می‌شود.

/routing bgp peer set 0 in-filter=bh-chain
        

برای remote-triggered blackhole پیشرفته:

/routing filter add chain=bh-filter rule="if (bgp-communities == 666:666) { set type blackhole; accept }"
/routing bgp peer set [find name="peer1"] in-filter=bh-filter
        

🧩 بخش سوم: تنظیمات در Linux (iproute2 + BGP Daemon)

در لینوکس، می‌توانید با استفاده از iproute2 و دیمون‌های BGP مانند BIRD یا ExaBGP مسیرهای Blackhole ایجاد کنید.

🔹 1. تعریف Blackhole Route با iproute2:

اضافه کردن یک مسیر Blackhole برای IP مشخص شده. این کار در روتر لینوکسی مشتری (Router A) انجام می‌شود.

ip route add blackhole 203.0.113.10/32
        

🔹 2. برای Remote Triggered Blackhole با BIRD:

در BIRD، می‌توانید یک filter برای دریافت Community Blackhole و اعمال یک action تعریف کنید. این تنظیمات در روتر لینوکسی ISP انجام می‌شود.

# BIRD configuration file
protocol bgp {
    ...
    import filter {
        if bgp_community ~ [ (666, 666) ] then {
            set gw = 192.0.2.1;
            accept;
        }
    };
    ...
}
        

توضیح: این کد به BIRD می‌گوید اگر یک مسیر با Community 666:666 دریافت کرد، next-hop آن را به 192.0.2.1 تغییر دهد که به Null0 در روتر ISP هدایت می‌شود.


✅ جمع‌بندی: Remote Triggered Blackhole (RTBH)

RTBH یک ابزار قدرتمند برای دفاع در برابر حملات DDoS است که امکان واکنش سریع و مؤثر را فراهم می‌کند.

ویژگی شرح
🔒 امنیت بالا جلوگیری از رسیدن ترافیک حمله به سرور مقصد و محافظت از زیرساخت.
سرعت بالا امکان واکنش فوری به حمله و جلوگیری از اشغال منابع شبکه.
سازگاری بالا قابل پیاده‌سازی در اکثر تجهیزات و سیستم‌عامل‌های شبکه.
از دست دادن کل ارتباط ترافیک خوب (Good Traffic) نیز به مقصد نمی‌رسد که ممکن است باعث اختلال در سرویس شود.

این تکنیک، یک راه‌حل موقت و اضطراری برای دفع حملات DDoS است. بهترین رویکرد، استفاده از این تکنیک به همراه سایر مکانیزم‌های دفاعی مانند فایروال‌ها، سیستم‌های تشخیص نفوذ (IDS) و فیلترینگ لایه ۷ است.

برای اطلاعات بیشتر درباره اسکریپت‌های خودکارسازی یا پیکربندی‌های پیشرفته‌تر با ابزارهایی مانند BIRD، FRR یا ExaBGP، با من تماس بگیرید. به عنوان یک متخصص ارشد در حوزه امنیت شبکه و تست نفوذ، با افتخار به شما کمک خواهم کرد. می‌توانید از طریق وب‌سایت شخصی‌ام، ایمیل info@miralishahidi.ir یا شماره تلفن 00989360715710 با من در ارتباط باشید.