uRPF چیست

سیسکو uRPF چیست ؟

روتر در حالت عادی فقط به مقصد بسته نگاه می‌کند: «این بسته کجا می‌رود و از کدام اینترفیس بفرستمش؟» آدرس مبدأ اصلاً بررسی نمی‌شود. همین نقطه ضعف، راه را برای IP Spoofing باز می‌کند: مهاجم بسته‌ای با آدرس مبدأ جعلی می‌سازد و روتر بی‌سؤال آن را عبور می‌دهد. بسیاری از حملات DDoS بازتابی (Reflection و Amplification) دقیقاً روی همین بنا شده‌اند.

Unicast Reverse Path Forwarding یا uRPF راه‌حل سیسکو برای این مشکل است: پیش از عبور هر بسته، روتر از خودش می‌پرسد «اگر بخواهم به آدرس مبدأ این بسته جواب بدهم، از کدام مسیر می‌روم؟» و اگر جواب قانع‌کننده نبود، بسته را دور می‌ریزد. در این مطلب حالت‌های Strict و Loose ، گزینه‌های allow-default و ACL ، جای درست استفاده، دام مسیریابی نامتقارن، ترکیب با Black Hole و دستورهای بررسی را مرور می‌کنیم.

uRPF در یک نگاه

هدف دور ریختن بسته‌های با آدرس مبدأ جعلی یا غیرقابل برگشت
پیش‌نیاز CEF فعال (ip cef) ؛ uRPF روی جدول FIB کار می‌کند
Strict ip verify unicast source reachable-via rx ؛ مسیر برگشت باید از همان اینترفیس ورودی باشد
Loose ip verify unicast source reachable-via any ؛ فقط کافی است مسیری به مبدأ وجود داشته باشد
جای Strict لبه شبکه با مسیر متقارن: اینترفیس مشتری، شعبه، اتصال تک‌خانه به ISP
جای Loose اتصال‌های چندخانه و BGP با مسیر نامتقارن؛ همراه با Black Hole

uRPF چطور کار می‌کند

وقتی بسته‌ای روی اینترفیسی که uRPF دارد وارد می‌شود، روتر آدرس مبدأ را در جدول FIB (همان جدول CEF) جست‌وجو می‌کند. بسته به حالت، دو سؤال پرسیده می‌شود:

سؤال Strict Loose
آیا برای آدرس مبدأ مسیری در FIB هست؟ بله، لازم است بله، لازم است
آیا بهترین مسیر به مبدأ از همان اینترفیسی است که بسته آمده؟ بله، لازم است بررسی نمی‌شود
مسیری که به Null0 اشاره کند قبول است؟ خیر خیر
default route (0.0.0.0/0) کافی است؟ فقط با allow-default فقط با allow-default

اگر پاسخ منفی باشد، بسته دور ریخته می‌شود؛ مگر اینکه یک ACL استثنا تعریف کرده باشید.

حالت Strict

uRPF حالت Strict در روتر سیسکو
uRPF در حالت Strict : مسیر برگشت به مبدأ باید از همان اینترفیس ورودی باشد

در شکل بالا، روتر بسته‌ای با مبدأ 10.1.1.10 را روی اینترفیس Gi0/0 دریافت می‌کند. چون مسیر برگشت به 10.1.1.0/24 هم از Gi0/0 است، بسته پذیرفته می‌شود. اگر همین بسته از Gi0/1 می‌آمد، دور ریخته می‌شد؛ چون روتر می‌داند آن شبکه پشت Gi0/0 است و بسته‌ای که از جای دیگری با آن آدرس بیاید، جعلی است.

Aka-Core(config)# interface GigabitEthernet0/0
Aka-Core(config-if)# ip verify unicast source reachable-via rx
Aka-Core# show ip interface GigabitEthernet0/0 | include verify
  IP verify source reachable-via RX

Strict دقیق‌ترین حالت است و بهترین جای استفاده‌اش لبه شبکه است: اینترفیسی که به یک مشتری، شعبه یا VLAN کاربران وصل است و فقط یک مسیر دارد. این همان توصیه BCP 38 برای جلوگیری از خروج ترافیک جعلی از شبکه شماست.

حالت Loose

uRPF حالت Loose در روتر سیسکو
uRPF در حالت Loose : فقط وجود مسیر به مبدأ بررسی می‌شود

در حالت Loose ، روتر فقط بررسی می‌کند که برای آدرس مبدأ مسیری وجود دارد، از هر اینترفیسی که باشد. پس بسته‌های با مبدأ رزرو یا واگذارنشده (که هیچ مسیری برای‌شان نیست یا به Null0 می‌روند) دور ریخته می‌شوند، ولی مسیریابی نامتقارن مشکلی ایجاد نمی‌کند.

Aka-Core(config)# interface GigabitEthernet0/1
Aka-Core(config-if)# ip verify unicast source reachable-via any
Aka-Core# show ip interface GigabitEthernet0/1 | include verify
  IP verify source reachable-via ANY

گزینه‌های allow-default ، allow-self-ping و ACL

! allow a default route to satisfy the check
ip verify unicast source reachable-via rx allow-default
! let the router ping itself through this interface
ip verify unicast source reachable-via rx allow-self-ping
! exceptions and logging with an ACL
access-list 199 permit ip 192.168.50.0 0.0.0.255 any
access-list 199 deny   ip any any log
ip verify unicast source reachable-via rx 199

وقتی ACL به دستور اضافه شود، بسته‌ای که آزمون uRPF را رد کند، هنوز یک فرصت دارد: اگر ACL آن را permit کند، عبور می‌کند؛ اگر deny با log باشد، دور ریخته و ثبت می‌شود. این برای عیب‌یابی و استثناهای موقت عالی است. allow-default را با احتیاط به کار ببرید؛ روی روتری که فقط default route دارد، با این گزینه uRPF عملاً چیزی را فیلتر نمی‌کند.

دام مسیریابی نامتقارن

بزرگ‌ترین اشتباه در استفاده از uRPF ، فعال کردن حالت Strict روی اینترفیس‌هایی است که مسیر رفت و برگشت‌شان یکی نیست:

  • روتر مرزی با دو ISP که ترافیک ورودی از یکی و خروجی از دیگری است.
  • دو روتر با HSRP که ترافیک برگشت به‌جای روتر فعال از روتر دیگر عبور می‌کند.
  • لینک‌های بین روترها با ECMP یا وزن‌های متفاوت.

در همه این حالت‌ها Strict ترافیک سالم را هم دور می‌ریزد. قاعده ساده: Strict برای لبه متقارن، Loose برای هسته و اتصال‌های چندخانه.

ترکیب با Black Hole و BOGON

قدرت واقعی حالت Loose وقتی دیده می‌شود که با مسیرهای Null0 ترکیب شود. اگر آدرسی به Null0 مسیریابی شده باشد، uRPF بسته‌های با آن مبدأ را هم دور می‌ریزد. دو کاربرد رایج:

  • فیلتر BOGON: فهرست BOGONها را از Team Cymru دریافت و به Null0 می‌فرستید؛ با uRPF Loose ، بسته‌های با مبدأ BOGON هم حذف می‌شوند. کانفیگ کامل را در BOGON و راه رهایی از آن ببینید.
  • Source-based RTBH: در زمان حمله DDoS ، آدرس مهاجم را روی روترهای مرزی با BGP به Null0 می‌فرستید تا بسته‌هایش همان لبه دور ریخته شوند.

پشتیبانی روی پلتفرم‌ها

پلتفرم نکته
روترهای ISR ، ISR 4000 ، Catalyst 8000 ، ASR 1000 Strict و Loose برای IPv4 و IPv6 ؛ روی IOS XE در سخت‌افزار (QFP)
سوئیچ‌های Catalyst 9000 روی SVI و اینترفیس‌های routed پشتیبانی می‌شود؛ جزئیات و محدودیت‌ها را در راهنمای Security همان نسخه ببینید
IPv6 ipv6 verify unicast source reachable-via rx

بررسی و عیب‌یابی

Router# show ip interface GigabitEthernet0/0 | include verify|drops
  IP verify source reachable-via RX
   12450 verification drops
   0 suppressed verification drops
Router# show ip traffic | include RPF
  0 no route, 12450 unicast RPF, 0 forced drop
Router# show cef interface GigabitEthernet0/0 | include RPF

اگر پس از فعال کردن uRPF شکایت قطعی دارید، اول شمارنده verification drops را ببینید و با یک ACL لاگ‌دار (گزینه ACL در دستور uRPF) بفهمید کدام مبدأها drop می‌شوند؛ معمولاً پای یک مسیر نامتقارن در میان است.

پرسش‌های متداول

uRPF جای ACL ضد Spoofing را می‌گیرد؟
تا حد زیادی بله، و مزیتش این است که با تغییر جدول مسیریابی خودش به‌روز می‌شود. اما ACL زیرساخت برای حفاظت از خود روتر همچنان لازم است.

روی لینک ISP کدام حالت؟
اگر فقط یک ISP و default route دارید، روی اینترفیس داخلی (به سمت LAN) Strict بگذارید تا ترافیک جعلی از شبکه شما خارج نشود. روی لینک ISP در شبکه چندخانه Loose.

uRPF روی CPU فشار می‌آورد؟
روی پلتفرم‌هایی که CEF و فورواردینگ سخت‌افزاری دارند، بار ناچیزی دارد.

منابع رسمی

مطالب مرتبط: ایمن‌سازی روتر سیسکو و Control Plane و حفاظت از منابع روتر.

مشاوره با AKA NET

برای طراحی ضد Spoofing ، uRPF و RTBH در شبکه‌های چندخانه با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *