PIM
PIM مخفف Protocol Independent Multicast است. pimd از PIM-SM (PIM Sparse Mode) و همچنین IGMP v2 و v3 پشتیبانی میکند. PIM از VRF آگاه است و میتواند در محیط VRF برای انجام S,G multicast routing کار کند.
PIM یک پروتکل مسیریابی multicast است که برای توزیع ترافیک multicast در شبکهها استفاده میشود. برخلاف مسیریابی unicast که هر بسته به یک مقصد مشخص ارسال میشود، مسیریابی multicast اجازه میدهد یک بسته به چندین مقصد به طور همزمان ارسال شود.
مفاهیم پایه
PIM Sparse Mode (PIM-SM)
PIM-SM یک پروتکل multicast است که در آن فرض میشود گروههای multicast نادر هستند و اعضای گروه در شبکه پراکنده هستند. در این حالت، تمام پیامهای join به سمت یک RP (Rendezvous Point) هدایت میشوند.
Rendezvous Point (RP)
RP نقطه ملاقات در شبکه PIM-SM است. تمام روترها در شبکه PIM باید روی RP مشخص شده توافق داشته باشند. RP نقطه مرکزی است که:
پیامهای join از دریافتکنندگان را دریافت میکند
پیامهای register از منابع (sources) را دریافت میکند
درخت multicast را مدیریت میکند
Shortest Path Tree (SPT)
در PIM-SM، ترافیک ابتدا از طریق درخت مشترک (shared tree) که به RP متصل است ارسال میشود. سپس روترهای دریافتکننده میتوانند به درخت کوتاهترین مسیر (SPT) به منبع switch کنند تا بهینهسازی انجام شود.
Reverse Path Forwarding (RPF)
RPF مکانیزمی است که PIM برای جلوگیری از حلقه در ترافیک multicast استفاده میکند. PIM بستههای multicast را فقط از اینترفیس RPF قبول میکند.
Source Specific Multicast (SSM)
SSM اجازه میدهد که گروههای multicast فقط از منابع مشخص شده استفاده کنند. در SSM، نیازی به RP نیست و ترافیک مستقیماً از منبع به دریافتکنندگان ارسال میشود.
Any Source Multicast (ASM)
ASM حالت استاندارد PIM-SM است که در آن هر منبعی میتواند به یک گروه multicast ارسال کند و RP برای هماهنگی استفاده میشود.
پیکربندی PIM
تنظیم Rendezvous Point (RP)
برای استفاده از PIM، لازم است یک RP برای ارسال پیامهای join پیکربندی شود. در حال حاضر تنها روش برای انجام این کار از طریق دستورات static RP است. تمام روترها در شبکه PIM باید روی این مقادیر توافق داشته باشند.
- ip pim rp <A.B.C.D> <A.B.C.D/M>
این دستور RP را برای شبکه PIM پیکربندی میکند. اولین آدرس IP آدرس RP است و مقدار دوم پیشوند تطبیق محدوده گروههای پوشش داده شده است. این دستور VRF-aware است و برای پیکربندی در VRF، باید وارد submode VRF شوید.
soodar(config)# ip pim rp 192.168.1.100 224.0.0.0/4
میتوانید چندین RP برای محدودههای مختلف گروهها پیکربندی کنید:
soodar(config)# ip pim rp 192.168.1.100 224.0.0.0/4
soodar(config)# ip pim rp 192.168.1.200 239.0.0.0/8
برای پیکربندی RP در VRF، ابتدا وارد VRF mode شوید:
soodar(config)# vrf Customer-A
soodar(config-vrf)# ip pim rp 10.1.1.100 224.0.0.0/4
soodar(config-vrf)# exit
پارامترهای پیکربندی PIM
- ip pim rp keep-alive-timer (1-65535)
مقدار timeout برای جریان S,G را از 1 تا 65535 ثانیه در RP تغییر میدهد. دوره keepalive پیشفرض برای KAT(S,G) 210 ثانیه است. با این حال، در RP، دوره keepalive باید حداقل Register_Suppression_Time باشد، یا RP ممکن است وضعیت (S,G) را قبل از رسیدن Null-Register بعدی timeout کند.
Note
در حال انتخاب مقدار کمتر از 31 ثانیه توجه داشته باشید که برخی پلتفرمهای سختافزاری نمیتوانند دادههای جاری را در بازههای بهتر از 30 ثانیه ببینند.
این دستور VRF-aware است.
soodar(config)# ip pim rp keep-alive-timer 180
- ip pim register-accept-list PLIST
هنگامی که PIM یک بسته register از FHR (First Hop Router) دریافت میکند، آدرس منبع بسته با prefix-list مشخص شده مقایسه میشود. اگر نتیجه permit باشد، پردازش عادی ادامه مییابد و بسته register پذیرفته میشود. اگر نتیجه deny باشد، یک پیام register stop به FHR ارسال میشود و منبع اجازه register کردن نخواهد داشت.
soodar(config)# ip prefix-list allowed-sources permit 192.168.1.0/24
soodar(config)# ip pim register-accept-list allowed-sources
- ip pim spt-switchover infinity-and-beyond [prefix-list PLIST]
در روتر آخرین hop (Last Hop Router - LHR)، به صورت پیشفرض PIM به درخت کوتاهترین مسیر (SPT) switch میکند. اگر بخواهید روتر همیشه از درخت مشترک (shared tree) استفاده کند و به SPT switch نکند، این دستور را پیکربندی کنید. پارامتر اختیاری prefix-list میتواند برای کنترل انتخابی اینکه کدام گروهها switch شوند یا نشوند استفاده شود.
soodar(config)# ip pim spt-switchover infinity-and-beyond
یا با prefix-list برای کنترل انتخابی:
soodar(config)# ip prefix-list spt-groups deny 239.100.0.0/16
soodar(config)# ip pim spt-switchover infinity-and-beyond prefix-list spt-groups
- ip pim ecmp
اگر PIM برای یک RPF خاص چندین nexthop ECMP در دسترس داشته باشد، PIM باعث میشود جریانهای S,G بین nexthopها توزیع شوند. اگر این دستور مشخص نشود، اولین nexthop یافت شده استفاده میشود.
soodar(config)# ip pim ecmp
- ip pim ecmp rebalance
اگر PIM از ECMP استفاده میکند و یک اینترفیس down شود، PIM را وادار میکند تمام جریانهای S,G را در بین nexthopهای باقیمانده rebalance کند.
soodar(config)# ip pim ecmp
soodar(config)# ip pim ecmp rebalance
- ip pim join-prune-interval (1-65535)
بازه join/prune که PIM استفاده میکند را تغییر میدهد. زمان بر حسب ثانیه مشخص میشود.
Note
زمان پیشفرض 60 ثانیه است. اگر مقدار کوچکتر از 60 ثانیه وارد کنید، توجه داشته باشید که این میتواند و بر همگرایی در مقیاس تأثیر بگذارد.
soodar(config)# ip pim join-prune-interval 30
- ip pim keep-alive-timer (1-65535)
مقدار timeout برای جریان S,G را از 1 تا 65535 ثانیه تغییر میدهد.
soodar(config)# ip pim keep-alive-timer 210
- ip pim packets (1-255)
هنگام پردازش بستههای PIM از یک neighbor، این دستور تعداد بستههای ورودی را که در یک بار پردازش میشوند، مشخص میکند. قبل از پردازش دسته بعدی، این تعداد بسته پردازش میشود و سپس پردازنده به کار دیگری میپردازد. مقدار پیشفرض 3 بسته است. این دستور فقط در محیطهای مقیاس بزرگ با تعداد زیاد بستههای کنترل PIM مفید است.
soodar(config)# ip pim packets 5
- ip pim register-suppress-time (1-65535)
زمانی که PIM register suppression را فعال میکند را تغییر میدهد. هنگامی که register suppression فعال است، FHR ارسال پیامهای register به RP را متوقف میکند تا از ترافیک غیرضروری جلوگیری شود. این زمان مشخص میکند که FHR برای چه مدتی باید از ارسال register خودداری کند.
soodar(config)# ip pim register-suppress-time 60
- ip pim send-v6-secondary
هنگام ارسال بستههای PIM hello، به PIM بگویید که آدرسهای secondary v6 را روی اینترفیس ارسال کند. این اطلاعات برای اجازه استفاده PIM از nexthop v6 در تصمیم خود برای RPF lookup استفاده میشود.
soodar(config)# ip pim send-v6-secondary
- ip pim ssm prefix-list WORD
محدوده آدرسهای گروه را از طریق prefix-list مشخص میکند که PIM را مجبور میکند برای این گروهها از SSM (Source Specific Multicast) استفاده کند و هرگز SM (Sparse Mode) انجام ندهد. برای گروههایی که در این prefix-list قرار دارند، نیازی به RP نیست و ترافیک مستقیماً از منبع به دریافتکنندگان ارسال میشود.
soodar(config)# ip prefix-list ssm-range permit 232.0.0.0/8
soodar(config)# ip pim ssm prefix-list ssm-range
- ip multicast rpf-lookup-mode WORD
نحوه انجام RPF lookup در جدول routing zebra توسط PIM را تغییر میدهد. میتوانید از گزینههای زیر استفاده کنید:
longer-prefix: RPF را در هر دو جدول با استفاده از longest prefix به عنوان match جستجو میکند
lower-distance: RPF را در هر دو جدول با استفاده از lower distance به عنوان match جستجو میکند
mrib-only: فقط در Multicast RIB جستجو میکند
mrib-then-urib: ابتدا در Multicast RIB سپس در Unicast RIB جستجو میکند و اولین یافت شده را برمیگرداند. این مقدار پیشفرض lookup است
urib-only: فقط در Unicast RIB جستجو میکند
soodar(config)# ip multicast rpf-lookup-mode longer-prefix
پیکربندی اینترفیس PIM
PIM interface commands به شما اجازه میدهند اینترفیس را به عنوان دریافتکننده یا اینترفیسی که میخواهید neighbor های PIM تشکیل دهید پیکربندی کنید. برای پیکربندی اینترفیس در VRF، ابتدا وارد VRF mode شوید و سپس اینترفیس را پیکربندی کنید.
فعال کردن PIM در اینترفیس
در کلیه اینترفیسهایی که برای multicast استفاده میشوند، چه اینترفیسهایی که داده ارسال میکنند و چه اینترفیسهایی که درخواست ترافیک multicast میدهند، باید PIM به شکل زیر فعال شود:
soodar(config)# int ge0
soodar(config-if)# ip pim
دستورات پیکربندی اینترفیس
- ip pim active-active
فعالسازی پیکربندی PIM active-active را برای اینترفیس Vxlan روشن میکند. این دستور اگر قابلیت پیادهسازی MLAG ندارید، کاری انجام نمیدهد.
soodar(config-if)# ip pim active-active
- ip pim bsm
به PIM بگویید که میخواهیم از این اینترفیس برای پردازش پیامهای bootstrap استفاده کنیم. این به طور پیشفرض فعال است. فرم
noاین دستور برای محدود کردن پیامهای bsm در این اینترفیس استفاده میشود.
soodar(config-if)# ip pim bsm
soodar(config-if)# no ip pim bsm # غیرفعال کردن BSM
- ip pim unicast-bsm
به PIM بگویید که میخواهیم به اینترفیس اجازه دهیم پیامهای bootstrap unicast را پردازش کند. این به طور پیشفرض فعال است.
soodar(config-if)# ip pim unicast-bsm
- ip pim drpriority (1-4294967295)
اولویت DR (Designated Router) را برای اینترفیس تنظیم میکند. روتری با بالاترین اولویت DR به عنوان DR انتخاب میشود. در صورت برابر بودن اولویت، روتری با بالاترین آدرس IP به عنوان DR انتخاب میشود. این دستور برای تأثیرگذاری بر انتخاب روتر به عنوان DR در یک شبکه LAN مفید است.
soodar(config-if)# ip pim drpriority 10
پیکربندی IGMP
IGMP (Internet Group Management Protocol) پروتکلی است که برای مدیریت عضویت در گروههای multicast در شبکههای محلی استفاده میشود.
فعال کردن IGMP در اینترفیس
در اینترفیسهایی که به کلاینتها متصل هستند باید IGMP به شکل زیر فعال شود:
soodar(config)# int ge3
soodar(config-if)# ip igmp
دستورات IGMP
- ip igmp generate-query-once [version (2-3)]
تولید یک IGMP query (نسخه 2 یا 3) را بلافاصله و بر اساس درخواست کاربر انجام میدهد. این دستور بدون توجه به timer IGMP general query موجود، یک query را تولید و ارسال میکند. اگر نسخه مشخص نشود، نسخه IGMP فعال روی اینترفیس استفاده میشود.
soodar(config-if)# ip igmp generate-query-once version 3
- ip igmp watermark-warn (1-65535)
تنظیم آستانه هشدار (watermark) برای حد محدودیت گروه IGMP را پیکربندی میکند. هنگامی که تعداد گروههای IGMP فعال به مقدار پیکربندی شده برسد و گروه جدیدی اضافه شود، یک هشدار تولید میشود. این هشدار فقط یک بار تولید میشود تا از تولید مکرر هشدار جلوگیری شود. فرم
noاین دستور تولید هشدار را غیرفعال میکند.
soodar(config-if)# ip igmp watermark-warn 100
نمایش اطلاعات PIM
نمایش اطلاعات Neighbor های PIM
- show ip pim neighbor
اطلاعات neighbor های PIM را نمایش میدهد.
soodar# show ip pim neighbor
Interface Neighbor Uptime/Expires DR
ge0 192.168.1.1 01:23:45/00:01:20 Yes
ge1 192.168.2.1 00:45:30/00:01:20 No
نمایش اطلاعات RP
- show ip pim [vrf NAME] rp-info [A.B.C.D/M] [json]
اطلاعات RPهای پیکربندی شده روی این روتر را نمایش میدهد.
soodar# show ip pim rp-info
RP address group/prefix-list OIF I am RP Source Group-Type
192.168.10.123 225.0.0.0/24 ge2 yes Static ASM
192.168.10.123 239.0.0.0/8 ge2 yes Static ASM
نمایش وضعیت PIM
- show ip pim state
اطلاعات S,Gهای شناخته شده و اینترفیس ورودی و همچنین OIL و نحوه انتخاب آنها را نمایش میدهد.
soodar# show ip pim state
Interface Source Group State Uptime
ge0 192.168.1.10 239.1.1.1 Forward 00:15:30
نمایش Multicast Routes
- show ip mroute [vrf NAME] [json]
اطلاعات مربوط به S,G mroutes نصب شده در kernel را نمایش میدهد.
soodar# show ip mroute
(192.168.1.10, 239.1.1.1) Iif: ge0 Oifs: ge1 ge2 State: Forward
- show ip mroute [vrf NAME] count [json]
اطلاعات مربوط به S,G mroutes و همچنین دادههایی درباره جریان بسته برای mroutes را نمایش میدهد.
soodar# show ip mroute count
(192.168.1.10, 239.1.1.1) Packets: 1250 Bytes: 256000
نمایش اطلاعات اینترفیس PIM
- show ip pim interface
اطلاعات مربوط به اینترفیسهایی که PIM استفاده میکند را نمایش میدهد.
soodar# show ip pim interface
Interface State Nbrs Join Prune DR DR Priority
ge0 Up 2 15 5 192.168.1.10 10
ge1 Up 1 8 3 192.168.1.20 5
نمایش اطلاعات RPF
- show ip pim rpf
اطلاعات مربوط به S,Gهایی که در حال استفاده هستند و اطلاعات RPF lookup آنها را نمایش میدهد.
soodar# show ip pim rpf
Source RPF Interface RPF Neighbor Metric
192.168.1.10 ge0 192.168.1.1 10
عیبیابی PIM
دستورات Debug
- debug pim events
دیباگ را برای رویدادهای سیستم PIM روشن میکند. به خصوص timer ها.
soodar(config)# debug pim events
- debug pim packets
اطلاعات مربوط به تولید بسته برای ارسال و مدیریت بسته از بسته دریافت شده را روشن میکند.
soodar(config)# debug pim packets
- debug pim nht
دیباگ را برای tracking nexthop PIM روشن میکند. اطلاعات مربوط به RPF lookup و اطلاعات مربوط به زمانی که nexthop تغییر میکند را نمایش میدهد.
soodar(config)# debug pim nht
- debug igmp
دیباگ را برای فعالیت پروتکل IGMP روشن میکند.
soodar(config)# debug igmp
- debug mroute
دیباگ را برای تعامل PIM با MFC cache kernel روشن میکند.
soodar(config)# debug mroute
دستورات Clear
- clear ip mroute
Multicast routes را reset میکند.
soodar# clear ip mroute
- clear ip pim interfaces
اینترفیسهای PIM را reset میکند.
soodar# clear ip pim interfaces
- clear ip pim oil
OIL (Output Interface List) PIM را مجدداً اسکن میکند.
soodar# clear ip pim oil
سناریوهای عملی و کاربردی
در این بخش چند سناریوی عملی و کاربردی برای استفاده از PIM در محیطهای واقعی بررسی میشود.
سناریو ۱: پیکربندی پایه PIM-SM برای ویدئو استریمینگ
در این سناریو، یک سازمان میخواهد سیستم ویدئو استریمینگ داخلی راهاندازی کند که از multicast استفاده میکند. تمام روترهای شبکه باید PIM را فعال کنند و روی یک RP مشترک توافق داشته باشند. منبع ویدئو ترافیک را به یک گروه multicast ارسال میکند و کلاینتها با join کردن به این گروه، ترافیک را دریافت میکنند.
توپولوژی
Source Server (192.168.1.10)
|
Router1 (RP: 192.168.1.1)
/ \
/ \
Router2 Router3
| |
Client1 Client2
تنظیمات در Router1 (RP)
Router1(config)# ip pim rp 192.168.1.1 224.0.0.0/4
Router1(config)# ip pim keep-alive-timer 210
Router1(config)# ip pim join-prune-interval 60
Router1(config)# int ge0
Router1(config-if)# ip address 192.168.1.1/24
Router1(config-if)# ip pim
Router1(config-if)# int ge1
Router1(config-if)# ip address 10.1.1.1/24
Router1(config-if)# ip pim
Router1(config-if)# int ge2
Router1(config-if)# ip address 10.2.1.1/24
Router1(config-if)# ip pim
تنظیمات در Router2
Router2(config)# ip pim rp 192.168.1.1 224.0.0.0/4
Router2(config)# int ge0
Router2(config-if)# ip address 10.1.1.2/24
Router2(config-if)# ip pim
Router2(config-if)# int ge1
Router2(config-if)# ip address 172.16.1.1/24
Router2(config-if)# ip igmp
تنظیمات در Router3
Router3(config)# ip pim rp 192.168.1.1 224.0.0.0/4
Router3(config)# int ge0
Router3(config-if)# ip address 10.2.1.2/24
Router3(config-if)# ip pim
Router3(config-if)# int ge1
Router3(config-if)# ip address 172.16.2.1/24
Router3(config-if)# ip igmp
مشاهده وضعیت
Router1# show ip pim rp-info
RP address group/prefix-list OIF I am RP Source Group-Type
192.168.1.1 224.0.0.0/4 ge0 yes Static ASM
Router1# show ip pim neighbor
Interface Neighbor Uptime/Expires DR
ge1 10.1.1.2 00:05:30/00:01:20 Yes
ge2 10.2.1.2 00:05:30/00:01:20 Yes
Router2# show ip mroute
(192.168.1.10, 239.1.1.1) Iif: ge0 Oifs: ge1 State: Forward
سناریو ۲: PIM با ECMP و Rebalance
در این سناریو، یک سازمان میخواهد ترافیک multicast را بین چندین لینک ECMP توزیع کند. در صورت down شدن یکی از لینکها، ترافیک باید به طور خودکار rebalance شود.
Source Server
|
Router1
/ | \
/ | \
R2 R3 R4
\ | /
\ | /
Router5
تنظیمات در Router1
Router1(config)# ip pim rp 10.1.1.1 224.0.0.0/4
Router1(config)# ip pim ecmp
Router1(config)# ip pim ecmp rebalance
Router1(config)# int ge0
Router1(config-if)# ip address 10.1.1.1/24
Router1(config-if)# ip pim
Router1(config-if)# int ge1
Router1(config-if)# ip address 10.2.1.1/24
Router1(config-if)# ip pim
Router1(config-if)# int ge2
Router1(config-if)# ip address 10.3.1.1/24
Router1(config-if)# ip pim
Router1(config-if)# int ge3
Router1(config-if)# ip address 10.4.1.1/24
Router1(config-if)# ip pim
مشاهده توزیع ECMP
Router1# show ip pim rpf
Source RPF Interface RPF Neighbor Metric
192.168.1.10 ge1 10.2.1.2 10
192.168.1.10 ge2 10.3.1.2 10
192.168.1.10 ge3 10.4.1.2 10
Router1# show ip mroute
(192.168.1.10, 239.1.1.1) Iif: ge1(ECMP) Oifs: ge0 State: Forward
با فعال کردن ip pim ecmp rebalance، در صورت down شدن یکی از اینترفیسها (مثلاً ge1)، تمام جریانهای S,G که قبلاً روی ge1 بودند، به طور خودکار بین اینترفیسهای باقیمانده (ge2 و ge3) rebalance میشوند. بدون این دستور، فقط جریانهایی که مستقیماً از ge1 استفاده میکردند تحت تأثیر قرار میگیرند.
سناریو ۳: PIM در محیط VRF (ISP Multicast VPN)
در این سناریو، یک ISP میخواهد سرویس multicast VPN برای چندین مشتری ارائه دهد. هر مشتری در VRF جداگانهای قرار دارد و RP جداگانهای دارد.
ISP Router
├── VRF: Customer-A (RP: 10.1.1.100)
│ ├── Source: 10.1.2.10
│ └── Clients: 10.1.3.0/24
├── VRF: Customer-B (RP: 10.2.1.100)
│ ├── Source: 10.2.2.10
│ └── Clients: 10.2.3.0/24
└── VRF: Customer-C (RP: 10.3.1.100)
├── Source: 10.3.2.10
└── Clients: 10.3.3.0/24
تنظیمات برای Customer-A
ابتدا وارد VRF mode میشویم و تنظیمات PIM را انجام میدهیم:
ISP-Router(config)# vrf Customer-A
ISP-Router(config-vrf)# ip pim rp 10.1.1.100 224.0.0.0/4
ISP-Router(config-vrf)# ip pim keep-alive-timer 210
ISP-Router(config-vrf)# ip pim join-prune-interval 60
ISP-Router(config-vrf)# exit
سپس اینترفیسها را در VRF پیکربندی میکنیم:
ISP-Router(config)# vrf Customer-A
ISP-Router(config-vrf)# int ge0
ISP-Router(config-if)# ip address 10.1.1.100/24
ISP-Router(config-if)# ip pim
ISP-Router(config-if)# exit
ISP-Router(config-vrf)# int ge1
ISP-Router(config-if)# ip address 10.1.2.1/24
ISP-Router(config-if)# ip pim
ISP-Router(config-if)# exit
ISP-Router(config-vrf)# int ge2
ISP-Router(config-if)# ip address 10.1.3.1/24
ISP-Router(config-if)# ip igmp
ISP-Router(config-if)# exit
تنظیمات برای Customer-B
ISP-Router(config)# vrf Customer-B
ISP-Router(config-vrf)# ip pim rp 10.2.1.100 224.0.0.0/4
ISP-Router(config-vrf)# exit
ISP-Router(config)# vrf Customer-B
ISP-Router(config-vrf)# int ge3
ISP-Router(config-if)# ip address 10.2.1.100/24
ISP-Router(config-if)# ip pim
ISP-Router(config-if)# exit
ISP-Router(config-vrf)# int ge4
ISP-Router(config-if)# ip address 10.2.2.1/24
ISP-Router(config-if)# ip pim
ISP-Router(config-if)# exit
ISP-Router(config-vrf)# int ge5
ISP-Router(config-if)# ip address 10.2.3.1/24
ISP-Router(config-if)# ip igmp
استفاده از SSM برای گروههای خاص
برای استفاده از SSM برای محدوده خاصی از گروهها در VRF:
ISP-Router(config)# ip prefix-list ssm-range permit 232.0.0.0/8
ISP-Router(config)# vrf Customer-A
ISP-Router(config-vrf)# ip pim ssm prefix-list ssm-range
نکته
prefix-list در سطح global تعریف میشود اما میتواند در VRF استفاده شود.
مشاهده وضعیت
ISP-Router# show ip pim vrf Customer-A rp-info
RP address group/prefix-list OIF I am RP Source Group-Type
10.1.1.100 224.0.0.0/4 ge0 yes Static ASM
ISP-Router# show ip mroute vrf Customer-A
(10.1.2.10, 239.1.1.1) Iif: ge1 Oifs: ge2 State: Forward
ISP-Router# show ip mroute vrf Customer-A count
(10.1.2.10, 239.1.1.1) Packets: 5000 Bytes: 1024000
سناریو ۴: کنترل Register با prefix-list
در این سناریو، میخواهیم فقط منابع خاصی اجازه register داشته باشند تا امنیت شبکه بهبود یابد.
RP Router
|
Source1 (192.168.1.10) - Allowed
Source2 (192.168.2.10) - Allowed
Source3 (192.168.3.10) - Denied
تنظیمات در RP
RP-Router(config)# ip prefix-list allowed-sources permit 192.168.1.0/24
RP-Router(config)# ip prefix-list allowed-sources permit 192.168.2.0/24
RP-Router(config)# ip pim register-accept-list allowed-sources
RP-Router(config)# ip pim rp 10.1.1.100 224.0.0.0/4
با این تنظیم:
منابع از 192.168.1.0/24 و 192.168.2.0/24 میتوانند register کنند
منابع از 192.168.3.0/24 register stop دریافت میکنند
سناریو ۵: جلوگیری از SPT Switchover
در برخی موارد، ممکن است بخواهید ترافیک multicast همیشه از طریق shared tree (که به RP متصل است) عبور کند و به SPT switch نکند. این میتواند برای کنترل بهتر ترافیک مفید باشد.
Source → RP → Receivers
تنظیمات
برای جلوگیری از SPT switchover برای همه گروهها:
Router(config)# ip pim spt-switchover infinity-and-beyond
برای جلوگیری از SPT switchover فقط برای گروههای خاص:
Router(config)# ip prefix-list no-spt-groups permit 239.100.0.0/16
Router(config)# ip pim spt-switchover infinity-and-beyond prefix-list no-spt-groups
با این تنظیم، ترافیک برای گروههای 239.100.0.0/16 همیشه از طریق shared tree عبور میکند.
نکات مهم در پیادهسازی
انتخاب RP مناسب: RP باید در مکان مرکزی شبکه قرار گیرد تا بهینهسازی انجام شود. برای محیطهای بزرگ، از multiple RP برای محدودههای مختلف گروهها استفاده کنید.
تنظیم timer ها: timer های keep-alive و join-prune را بر اساس نیاز شبکه تنظیم کنید. مقادیر کوچکتر همگرایی سریعتر اما ترافیک کنترل بیشتر ایجاد میکنند.
استفاده از ECMP: برای محیطهای با چندین مسیر برابر،
ip pim ecmpوip pim ecmp rebalanceرا فعال کنید تا load balancing و resiliency بهبود یابد.امنیت Register: با استفاده از
ip pim register-accept-listفقط منابع مجاز را اجازه register دهید.SSM برای کاربردهای خاص: برای کاربردهایی که نیاز به منابع مشخص دارند، از SSM استفاده کنید تا نیاز به RP حذف شود.
نظارت بر عملکرد: به طور منظم از
show ip mroute countوshow ip pim rpfبرای نظارت بر عملکرد multicast استفاده کنید.عیبیابی: در صورت مشکل، از
debug pim eventsوdebug pim packetsبرای عیبیابی استفاده کنید.