PBR با IP SLA و Track#

مقدمه#

Static route برای همهٔ sourceها یکسان تصمیم می‌گیرد. PBR می‌تواند ترافیک یک host را به next-hop دیگری بفرستد، حتی اگر routing table مقصد را جای دیگری برده باشد. خود PBR از up یا down بودن آن next-hop باخبر نیست. IP SLA همان همسایه را با icmp-echo می‌سنجد و Track هنگام قطع و وصل، down script و up script را اجرا می‌کند.

در این آزمایش static route با next-hop برابر 200.1.2.99 یک blackhole است؛ روی لینک چنین همسایه‌ای وجود ندارد. تا وقتی policy روی ge3 نباشد، ping از n4 شکست می‌خورد. با PBR همان ترافیک از next-hop برابر 200.1.2.2 عبور می‌کند.

مرور سناریو#

access-list با نام PBR-LAN فقط n4 را انتخاب می‌کند. route-map مقدار next-hop را 200.1.2.2 می‌گذارد و روی جهت in اینترفیس ge3 اعمال می‌شود. IP SLA شمارهٔ ۱ هر پنج ثانیه به همین IP بستهٔ icmp-echo می‌فرستد. script با نام pbr-down سیاست را برمی‌دارد و pbr-up آن را برمی‌گرداند.

توضیح توپولوژی#

توپولوژی سناریو

n4 با IP برابر 1.1.1.10 به ge3 روتر n1 وصل است. تنها لینک واقعی بین روترها ge1 با شبکهٔ 200.1.2.0/24 است. n5 با IP برابر 2.1.1.10 پشت n2 است. IP برابر 200.1.2.99 روی این لینک همسایه‌ای ندارد و فقط blackhole مسیر عادی است.

پیش‌نیازها#

  • آشنایی با route-map و access-list

  • آشنایی با IP SLA و Track

  • امکان ذخیرهٔ script روی روتر با نام script:pbr-down و script:pbr-up

  • سناریو بدون IP روی روتر بالا می‌آید؛ IP اینترفیس‌ها در گام‌های زیر وارد می‌شود

پیکربندی مرحله‌به‌مرحله#

PBR و IP SLA روی n1#

اول blackhole را بگذارید و یک‌بار ping را ناموفق ببینید. بعد policy را اعمال کنید. scriptها باید پیش از Track وجود داشته باشند.

روی روتر SooDar n1:

interface ge1
 ip address 200.1.2.1/24
 no shutdown
!
interface ge3
 ip address 1.1.1.1/24
 no shutdown
!
ip route 2.1.1.0/24 200.1.2.99
!
ip access-list PBR-LAN
 permit 1.1.1.10/32 any
!
route-map PBR-LAN permit 10
 match ip address PBR-LAN
 set ip next-hop 200.1.2.2
!
interface ge3
 ip policy route-map PBR-LAN
!
ip sla 1
 icmp-echo 200.1.2.2
 frequency 5
!
ip sla schedule 1 start-time now
!
track 1 ip sla 1 reachability upscript script:pbr-up downscript script:pbr-down
!
show track 1
show ip sla statistics 1

نوع عملیات SLA فقط هنگام ساخت عملیات نوشته می‌شود. show track 1 باید پس از چند دوره وضعیت up را نشان دهد.

متن script با نام pbr-down را با همین نام ذخیره کنید:

enable
conf t
!
interface ge3
 no ip policy route-map PBR-LAN

این script وقتی Track به down می‌رود policy را از ge3 برمی‌دارد تا ترافیک دوباره تابع routing table شود.

متن script با نام pbr-up را با همین نام ذخیره کنید:

enable
conf t
!
interface ge3
 ip policy route-map PBR-LAN

route برگشت و قطع لینک روی n2#

n2 باید شبکهٔ n4 را بشناسد، وگرنه جواب ping حتی با PBR درست هم برنمی‌گردد. shutdown و no shutdown روی ge1 محرک SLA است.

روی روتر SooDar n2:

interface ge1
 ip address 200.1.2.2/24
 no shutdown
!
interface ge3
 ip address 2.1.1.1/24
 no shutdown
!
ip route 1.1.1.0/24 200.1.2.1
!
interface ge1
 shutdown
 no shutdown

shutdown را بعد از up شدن Track اجرا کنید. چند ثانیه بعد Track باید down شود و خط ip policy route-map PBR-LAN از running-config اینترفیس ge3 حذف شود. سپس no shutdown را بزنید تا up script سیاست را برگرداند.

میزبان‌ها#

روی میزبان n4:

ip route replace default via 1.1.1.1
ping -c 3 2.1.1.10

روی میزبان n5:

ip route replace default via 2.1.1.1

صحت‌سنجی و تست#

  • با route به 200.1.2.99 و بدون policy، ping از n4 ناموفق است.

  • بعد از ip policy route-map PBR-LAN همان ping موفق است.

  • show track 1 پیش از قطع لینک وضعیت up دارد و show ip sla statistics 1 خروجی دارد.

  • پس از shutdown روی ge1 روتر n2، Track پایین می‌آید و running-config دیگر ip policy route-map PBR-LAN ندارد.

  • پس از no shutdown، Track دوباره up می‌شود، policy برمی‌گردد و ping موفق است.

جمع‌بندی#

PBR تصمیم را از روی source می‌گیرد و برای همان ترافیک routing table را کنار می‌گذارد. ماندن این تصمیم به سلامت next-hop وابسته است. Track با script، policy را هنگام قطع برمی‌دارد و هنگام برگشت همسایه دوباره اعمال می‌کند.