Prefix-list در Cisco و فیلتر کردن Routeهای EIGRP

Prefix-list در Cisco یکی از ابزارهای تمیز و دقیق برای match کردن routeهاست. اگر با access-list میشود بعضی prefixها را جدا کرد، با prefix-list این کار خواناتر و قابل کنترلتر انجام میشود؛ مخصوصا وقتی طول prefix برایمان مهم است.
در routing، خیلی وقتها بحث ما packet filtering نیست. میخواهیم مشخص کنیم کدام route وارد جدول routing شود، کدام route advertise شود، یا کدام prefix وارد route-map شود. اینجا prefix-list ابزار مناسبی است.
Prefix-list چه فرقی با ACL دارد؟
ACL معمولی بیشتر برای match کردن آدرس استفاده میشود و در خیلی جاها هم هنوز کاربرد دارد. اما prefix-list برای routeها طبیعیتر است، چون خود prefix و طول mask را مستقیم و خوانا نشان میدهد.
ip prefix-list BRANCH-NETS seq 10 permit 10.10.10.0/24
این خط دقیقا شبکه 10.10.10.0/24 را match میکند. وقتی چند ماه بعد به کانفیگ برگردید، خواندن این خط از wildcard mask سادهتر است.
ge و le در prefix-list
قدرت prefix-list وقتی مشخص میشود که از ge و le استفاده کنیم. با این دو میتوانیم محدوده طول prefix را کنترل کنیم.
ip prefix-list CUSTOMER-RANGES seq 10 permit 10.20.0.0/16 ge 24 le 28
یعنی routeهایی که داخل 10.20.0.0/16 هستند و طول prefix آنها بین /24 تا /28 است match شوند. مثلا 10.20.5.0/24 قبول میشود، ولی 10.20.0.0/16 یا 10.20.5.0/29 نه.
فیلتر کردن EIGRP با prefix-list
فرض کنیم در EIGRP فقط میخواهیم چند شبکه مشخص به یک همسایه اعلام شود. اول prefix-list را مینویسیم، بعد آن را با distribute-list روی EIGRP اعمال میکنیم.
ip prefix-list EIGRP-OUT seq 10 permit 10.10.10.0/24
ip prefix-list EIGRP-OUT seq 20 permit 10.10.20.0/24
router eigrp 100
distribute-list prefix EIGRP-OUT out GigabitEthernet0/1
در این حالت فقط routeهای match شده از آن interface به همسایه اعلام میشوند. اگر هدف کنترل routeهای دریافتی باشد، به جای out از in استفاده میکنیم.
router eigrp 100
distribute-list prefix EIGRP-IN in GigabitEthernet0/0
ترتیب خطها مهم است
Prefix-list هم مثل ACL از بالا به پایین بررسی میشود. هر خط sequence دارد و اولین match تصمیم را مشخص میکند. در انتها هم اگر چیزی match نشود، deny میشود.
برای اضافه کردن خط بین ruleهای قبلی بهتر است sequence را با فاصله بنویسید؛ مثلا 10، 20، 30. این کار بعدا امکان insert کردن rule جدید را راحتتر میکند.
ip prefix-list EIGRP-OUT seq 15 permit 10.10.15.0/24
بررسی بعد از تغییر
بعد از اعمال فیلتر routing، باید هم خود prefix-list و هم نتیجه روی EIGRP بررسی شود. تغییر routing را بدون verify رها نکنید.
show ip prefix-list
show ip protocols
show ip route eigrp
show ip eigrp topology
show ip protocols معمولا نشان میدهد distribute-list روی کدام interface و در چه جهتی فعال است. این دستور برای عیبیابی فیلترهای فراموششده خیلی کمک میکند.
اشتباه رایج
اشتباه رایج این است که prefix-list را فقط یک ACL دیگر ببینیم. Prefix-list برای route طراحی شده و وقتی طول prefix مهم است، باید با دقت از ge/le استفاده شود. یک ge/le اشتباه ممکن است routeهای بیشتری از چیزی که انتظار داریم باز کند یا routeهای سالم را حذف کند.
در شبکه production، قبل از اعمال روی همسایههای اصلی، تغییر را در lab یا حداقل با خروجی routeهای فعلی مرور کنید. فیلتر routing اگر اشتباه باشد، مشکلش همیشه فوری و واضح خودش را نشان نمیدهد.

اجرای خودکار دستور در Cisco IOS با Kron Job
فیلتر کردن Route در EIGRP با Access-list و Distribute-list
بکدور FIRESTARTER روی Cisco ASA/FTD؛ بعد از Patch هم تمام نمیشود