Prinsip PIM

Protokol PIM adalah seperangkat protokol untuk mentransmisikan multicast pada jaringan antar router. Hubungan tetangga dibangun dengan cara yang sama seperti dalam kasus protokol routing dinamis. PIMv2 mengirimkan pesan Hello setiap 30 detik ke alamat multicast yang disediakan 224.0.0.13 (Semua-PIM-Router). Pesan berisi Hold Timers - biasanya 3.5 * Hello Timer, yaitu 105 detik secara default.
Gambar saya
PIM menggunakan dua mode operasi utama - Mode padat dan Jarang. Mari kita mulai dengan mode Dense.
Pohon Distribusi Berbasis Sumber.
Mode mode padat disarankan untuk digunakan jika ada banyak klien dari berbagai grup multicast. Ketika router menerima lalu lintas multicast, hal pertama yang dilakukan adalah memeriksanya untuk aturan RPF. RPF - aturan ini digunakan untuk memeriksa sumber multicast dengan tabel routing unicast. Diperlukan kunjungan ke antarmuka tempat host ini disembunyikan sesuai dengan versi tabel routing unicast. Mekanisme ini memecahkan masalah terjadinya loop selama transmisi multicast.
Gambar saya
R3 dari pesan multicast akan mengenali sumber multicast (Sumber IP) dan memeriksa dua aliran dari R1 dan R2 dari tabel unicastnya. Aliran dari antarmuka yang ditunjukkan oleh tabel (R1 ke R3) akan ditransmisikan lebih lanjut, dan aliran dari R2 akan turun, karena untuk sampai ke sumber multicast, perlu mengirim paket melalui S0 / 1.
Pertanyaannya adalah, apa yang terjadi jika Anda memiliki dua rute yang setara dengan metrik yang sama? Dalam hal ini, router akan memilih next-hop untuk rute ini. Siapa yang memiliki alamat ip lebih tinggi, ia menang. Jika Anda perlu mengubah perilaku ini, Anda dapat menggunakan ECMP. Lebih detail di sini .
Setelah memeriksa aturan RPF, router mengirim paket multicast ke semua tetangga PIM-nya, kecuali yang menerima paket tersebut. Router PIM lain mengulangi proses ini. Jalur yang paket multicast telah lulus dari sumber ke penerima akhir membentuk pohon yang disebut - pohon distribusi berbasis sumber, pohon jalur terpendek (SPT), pohon sumber. Tiga nama berbeda, pilih salah satu.
Cara mengatasi masalah dengan fakta bahwa beberapa router tidak melepaskan aliran multicast dan tidak ada yang mengirimnya, dan router tingkat yang lebih tinggi mengirimkannya. Untuk ini, mekanisme Prune diciptakan.
Pesan Prune.
Sebagai contoh, R2 akan terus mengirim R3 multicast, meskipun R3 dengan aturan RPF menjatuhkannya. Mengapa memuat saluran? R3 mengirim Pesan PIM Prune dan R2, setelah menerima pesan ini, menghapus antarmuka S0 / 1 dari daftar antarmuka keluar untuk aliran ini, daftar antarmuka dari mana lalu lintas ini harus dikirim.
Berikut ini adalah definisi yang lebih formal dari pesan PIM Prune:
Pesan PIM Prune dikirim oleh satu router ke router kedua untuk menyebabkan router kedua menghapus tautan yang menerima Prune dari SPT (S, G) tertentu.

Setelah menerima pesan Pangkas, R2 mengatur timer Pangkas menjadi 3 menit. Setelah tiga menit, itu akan mulai mengirim lalu lintas lagi sampai menerima pesan Prune berikutnya. Ini ada di PIMv1.
Dan di PIMv2 timer State Refresh ditambahkan (secara default 60 detik). Segera setelah pesan Pangkas dikirim dari R3, timer ini dimulai pada R3. Setelah penghitung waktu ini berakhir, R3 akan mengirim pesan Refresh Negara yang akan mengatur ulang Prune Timer 3 menit ke R2 untuk grup ini.
Alasan mengirim pesan Prune:
  • Ketika paket multicast gagal melakukan pemeriksaan RPF.
  • Ketika tidak ada klien yang terhubung secara lokal yang meminta grup multicast (IGMP Bergabung) dan tidak ada tetangga PIM yang lalu lintas multicastnya dapat dikirim (Non-Prune Interface).

Pesan Cangkok.
Bayangkan R3 tidak menginginkan lalu lintas dari R2, mengirim Prune dan menerima multicast dari R1. Tapi tiba-tiba, saluran jatuh antara R1-R3 dan R3 dibiarkan tanpa multicast. Anda dapat menunggu 3 menit hingga Prune Timer kedaluwarsa pada R2. 3 menit untuk menunggu lama, agar tidak menunggu, Anda perlu mengirim pesan yang langsung menampilkan antarmuka ini S0 / 1 pada R2 dari status pruned. Pesan ini akan menjadi pesan Graft. Setelah menerima pesan Graft, R2 akan mengirimkan Graft-ACK sebagai tanggapan.
Pangkas Override.
Gambar saya
Mari kita lihat skema ini. R1 menyiarkan multicast di segmen dengan dua router. R3 menerima dan menyiarkan lalu lintas, R2 menerima, tetapi tidak ada yang menyiarkan lalu lintas. Ini mengirimkan pesan Prune ke R1 di segmen ini. R1 harus menghapus Fa0 / 0 dari daftar dan berhenti siaran di segmen ini, tetapi apa yang akan terjadi pada R3? Dan R3 berada di segmen yang sama, ia juga menerima pesan ini dari Prune dan menyadari tragedi situasinya. Sebelum R1 berhenti siaran, ini mengatur timer ke 3 detik dan berhenti siaran setelah 3 detik. 3 detik - begitu banyak waktu untuk R3, agar tidak kehilangan multicast Anda. Karenanya, R3, sesegera mungkin, mengirimkan pesan Pim Join untuk grup ini dan R1 tidak lagi berpikir untuk berhenti siaran. Tentang Gabung posting di bawah ini.
Pesan tegas.
Gambar saya
Bayangkan situasi ini: dua router disiarkan ke jaringan yang sama sekaligus. Mereka menerima aliran yang sama dari sumbernya, dan keduanya menyiarkannya ke jaringan yang sama di belakang antarmuka e0. Karena itu, mereka perlu menentukan siapa yang akan menjadi satu-satunya penyiar tunggal untuk jaringan ini. Pesan tegas digunakan untuk ini. Ketika R2 dan R3 mendeteksi duplikasi lalu lintas multicast, yaitu multicast yang mereka siarankan pada R2 dan R3, yang mereka broadcast sendiri, router mengerti bahwa ada sesuatu yang salah di sini. Dalam hal ini, router mengirim pesan tegas, yang mencakup Jarak Administratif dan metrik rute dimana sumber multicast tercapai - 10.1.1.10. Pemenang ditentukan sebagai berikut:
  1. Yang dengan AD lebih rendah.
  2. Jika AD sama, maka siapa yang memiliki metrik lebih rendah.
  3. Jika ada kesetaraan, maka yang memiliki IP lebih tinggi dalam jaringan yang mereka tayangkan multicast ini.

Memenangkan suara ini, router menjadi Router yang Ditunjuk. Pim Hello juga digunakan untuk memilih DR. Di awal artikel, pesan Halo PIM ditampilkan, di sana Anda dapat melihat bidang DR. Pemenangnya adalah yang memiliki alamat IP lebih tinggi pada tautan ini.
Piring yang berguna:
Gambar saya
Tabel MROUTE.
Setelah tinjauan awal operasi protokol PIM, kita perlu mencari cara untuk bekerja dengan tabel routing multicast. Tabel mroute menyimpan informasi tentang aliran mana yang diminta oleh klien dan aliran mana yang mengalir dari server multicast.
Misalnya, ketika menerima Laporan Keanggotaan IGMP atau PIM Bergabung pada beberapa antarmuka, entri tipe (*, G) ditambahkan ke tabel routing:
Gambar saya
Entri ini berarti bahwa permintaan lalu lintas diterima dengan alamat 238.38.38.38. Bendera DC berarti multicast akan berfungsi dalam mode Dense dan C berarti bahwa penerima terhubung langsung ke router, yaitu, router menerima Laporan Keanggotaan IGMP, dan PIM Bergabung.
Jika ada catatan seperti (S, G) berarti kami memiliki aliran multicast:
Gambar saya
Di bidang S - 192.168.1.11, kami telah mendaftarkan alamat IP sumber multicast, itu akan diperiksa oleh aturan RPF. Jika terjadi masalah, hal pertama yang harus dilakukan adalah memeriksa tabel Unicast untuk rute ke sumber. Di bidang Antarmuka Masuk menunjukkan antarmuka tempat kedatangan multicast. Di tabel perutean unicast, rute ke sumber harus merujuk ke antarmuka yang ditentukan di sini. Outgoing Interface menunjukkan di mana multicast akan dialihkan. Jika kosong, maka tidak ada permintaan untuk lalu lintas ini ke router. Informasi lebih lanjut tentang semua bendera dapat ditemukan di sini .
Mode PIM Jarang.
Strategi mode Jarang adalah kebalikan dari mode Padat. Ketika mode Jarang menerima lalu lintas multicast, itu akan mengirimkan lalu lintas hanya melalui antarmuka di mana ada permintaan untuk aliran ini, misalnya, pesan Pim Bergabung atau Laporan IGMP yang meminta lalu lintas ini.
Elemen serupa untuk SM dan DM:
  • Hubungan tetangga dibangun dengan cara yang sama seperti di PIM DM.
  • Aturan RPF berfungsi.
  • Pilihan DR serupa.
  • Mesin Prune Overrides dan pesan Assert serupa.

Untuk mengontrol siapa yang membutuhkan di mana, di mana, dan lalu lintas multicast apa yang diperlukan di jaringan, diperlukan pusat informasi umum. Pusat seperti itu kita akan memiliki Rendezvous Point (RP). Siapa pun yang menginginkan semacam lalu lintas multicast atau seseorang mulai menerima lalu lintas multicast dari sumbernya, lalu ia mengirimkannya ke RP.
Ketika RP menerima lalu lintas multicast, ia akan mengirimkannya ke router yang sebelumnya meminta lalu lintas ini.
Gambar saya
Bayangkan topologi seperti itu di mana RP adalah R3. Segera setelah R1 menerima lalu lintas dari S1, ia merangkum paket multicast ini dalam pesan PIM Register unicast dan mengirimkannya ke RP. Bagaimana dia tahu siapa itu RP? Dalam hal ini, ini dikonfigurasi secara statis, dan kita akan berbicara tentang penyetelan RP dinamis nanti.
ip pim rp-address 3.3.3.3

RP akan terlihat - apakah ada informasi dari seseorang yang ingin menerima lalu lintas ini? Misalkan tidak. Kemudian RP akan mengirimkan R1 pesan PIM Register-Stop, yang berarti tidak ada yang membutuhkan multicast ini, pendaftaran ditolak. R1 tidak akan mengirim multicast. Tetapi sumber multicast akan mengirimkannya, jadi R1, setelah menerima Register-Stop, akan memulai timer Register-Suppression, yaitu 60 detik. 5 detik sebelum waktu ini berakhir, R1 akan mengirim pesan Register kosong dengan bit Null-Register (yaitu, tanpa paket multicast enkapsulasi) ke sisi RP. RP pada gilirannya akan bertindak seperti ini:
  • Jika tidak ada dan tidak ada penerima, maka itu akan merespons dengan pesan Register-Stop.
  • Jika penerima muncul, maka ia tidak akan menjawabnya dengan cara apa pun. R1, setelah tidak menerima penolakan untuk pendaftarannya dalam waktu 5 detik, akan senang dan akan mengirim Daftarkan pesan dengan multicast yang dienkapsulasi ke RP.

Ketika multicast mencapai RP, sepertinya akan beres, sekarang mari kita coba menjawab pertanyaan tentang bagaimana RP membawa lalu lintas ke penerima. Di sini Anda perlu memperkenalkan konsep baru - root-path tree (RPT). RPT adalah pohon dengan akar dalam RP yang tumbuh ke arah penerima yang bercabang pada setiap router PIM-SM. RP membuatnya dengan menerima pesan PIM Gabung dan menambahkan cabang baru ke struktur pohon. Dan begitu pula setiap router hilir. Aturan umum terlihat seperti ini:
  • Ketika perute PIM-SM menerima pesan Gabung PIM pada antarmuka apa pun, kecuali untuk antarmuka tempat RP disembunyikan, ia menambah cabang baru ke struktur pohon.
  • Cabang juga ditambahkan ketika router PIM-SM menerima Laporan Keanggotaan IGMP dari host yang terhubung langsung.

Bayangkan kita memiliki klien multicast di router R5 untuk grup 228.8.8.8. Segera setelah R5 menerima Laporan Keanggotaan IGMP dari tuan rumah, R5 mengirimkan PIM Bergabung ke arah RP, dan itu sendiri menambahkan antarmuka melihat host ke pohon. Selanjutnya, R4 menerima Gabung PIM dari R5, menambahkan antarmuka Gi0 / 1 ke pohon, dan mengirimkan Gabung PIM ke arah RP. Akhirnya, RP (R3) menerima PIM Bergabung dan menambahkan Gi0 / 0 ke pohon. Dengan demikian, pendaftaran penerima multicast diperoleh. Kami sedang membangun pohon dengan root R3-Gi0 / 0 → R4-Gi0 / 1 → R5-Gi0 / 0.
Setelah itu, PIM Join akan dikirim ke R1 dan R1 akan mulai mengirimkan lalu lintas multicast. Penting untuk dicatat bahwa jika tuan rumah meminta lalu lintas sebelum penyiaran multicast dimulai, maka RP tidak akan mengirim PIM Bergabung dan tidak akan mengirim apa pun ke sisi R1 sama sekali.
Jika tiba-tiba ketika multicast dikirim, tuan rumah berhenti ingin menerimanya, segera setelah RP menerima PIM Prune pada antarmuka Gi0 / 0, maka ia segera mengirimkan PIM Register-Stop langsung ke R1, dan kemudian pesan PIM Prune melalui antarmuka Gi0 / 1. Pemberhentian Pendaftaran PIM dikirim oleh Unicast ke alamat asal pendaftaran PIM.
Seperti yang kami katakan sebelumnya, segera setelah router mengirim Gabung PIM ke yang lain, misalnya, R5 pada R4, maka sebuah entri ditambahkan ke R4:
Gambar saya
Dan penghitung waktu memulai untuk mengatur ulang penghitung waktu ini, R5 harus terus-menerus PIM Bergabung pesan, jika tidak R4 akan dikeluarkan dari daftar keluar. R5 akan mengirim setiap 60 pesan PIM Gabung.
Peralihan Pohon Jalur Terpendek.
Kami akan menambahkan antarmuka antara R1 dan R5, lihat bagaimana lalu lintas akan mengalir dengan topologi ini.
Gambar saya
Katakanlah lalu lintas dikirim dan diterima sesuai dengan skema lama R1-R2-R3-R4-R5 dan di sini kita terhubung dan mengkonfigurasi antarmuka antara R1 dan R5.
Pertama-tama, kita harus membangun kembali tabel routing unicast pada R5 dan sekarang jaringan 192.168.1.0/24 dicapai melalui antarmuka R5 Gi0 / 2. Sekarang, ketika R5 menerima multicast pada antarmuka Gi0 / 1, ia memahami bahwa aturan RPF tidak puas dan akan lebih logis untuk menerima multicast pada Gi0 / 2. Ini harus terputus dari RPT dan membangun pohon yang lebih pendek yang disebut Shortest-Path Tree (SPT). Untuk melakukan ini, melalui Gi0 / 2, ia mengirim PIM Bergabung ke R1 dan R1 mulai mengirim multicast melalui Gi0 / 2 juga. Sekarang R5 harus berhenti berlangganan dari RPT, agar tidak mendapatkan dua salinan. Untuk melakukan ini, ia mengirim pesan Prune yang menunjukkan alamat ip sumber dan memasukkan bit khusus - RPT-bit. Ini berarti bahwa saya tidak perlu mengirim traffic, saya punya pohon yang lebih baik di sini. RP juga mengirim pesan ke sisi P1 PIM Prune, tetapi tidak mengirim pesan Register-Stop. Fitur lain: R5 sekarang akan terus-menerus mengirim PIM Prune ke RP, karena R1 terus mengirim PIM Register ke RP setiap menit. RP sampai ada orang baru yang berharap lalu lintas ini akan menolaknya. R5 memberi tahu RP bahwa ia terus menerima multicast melalui SPT.
Pencarian RP dinamis.
RP-Otomatis
Teknologi ini adalah milik dari Cisco dan tidak terlalu populer, tetapi masih hidup. Auto-RP terdiri dari dua langkah utama:
1) RP mengirim pesan RP-Umumkan ke alamat yang dipesan - 224.0.1.39, menyatakan dirinya RP baik untuk semua atau untuk grup tertentu. Pesan ini dikirim setiap menit.
2) Diperlukan agen pemetaan RP yang akan mengirim pesan RP-Discovery yang menunjukkan kelompok mana yang akan didengarkan RP. Dari pesan ini bahwa router PIM biasa akan menentukan RP sendiri. Agen Pemetaan dapat berupa router RP itu sendiri atau router PIM lainnya. RP-Discovery dikirim ke alamat 224.0.1.40 dengan penghitung waktu satu menit.
Mari kita lihat prosesnya secara lebih rinci:
Setel R3 sebagai RP:
ip pim send-rp-announce loopback 0 scope 10

R2 sebagai agen pemetaan:
ip pim send-rp-discovery loopback 0 lingkup 10

Dan pada yang lainnya, kita akan mengharapkan RP melalui Auto-RP:
pendengar autop ip pim

Setelah kami mengkonfigurasi R3, itu akan mulai mengirim RP-Umumkan:
Gambar saya
Dan R2, setelah menyiapkan agen pemetaan, itu akan menunggu pesan RP-Umumkan. Hanya ketika dia menemukan setidaknya satu RP akan dia mulai mengirim RP-Discovery:
Gambar saya
Dengan demikian, segera setelah router reguler (PIM RP Listener) menerima pesan ini, mereka akan tahu ke mana harus mencari RP.
Salah satu masalah utama dari RP-Otomatis adalah bahwa untuk menerima pesan RP-Umumkan dan RP-Penemuan, Anda perlu mengirim PIM Gabung ke alamat 224.0.1.39-40, dan untuk mengirim, Anda perlu tahu di mana RP-nya. Masalah klasik ayam dan telur. Untuk mengatasi masalah ini, PIM Sparse-Dense-Mode diciptakan. Jika router tidak tahu RP, maka itu bekerja dalam mode padat, jika tahu, maka dalam mode jarang. Ketika PIM Sparse-mode dan perintah pendengar ip pim autorp dikonfigurasi pada antarmuka router biasa, router akan bekerja dalam mode padat hanya untuk multicast langsung protokol Auto-RP langsung (224.0.1.39-40).
BootStrap Router (BSR).
Fungsi ini berfungsi mirip dengan Auto-RP. Setiap RP mengirim pesan agen pemetaan, yang mengumpulkan informasi pemetaan dan kemudian memberitahu semua router lainnya. Kami menggambarkan proses yang mirip dengan Auto-RP:
1) Setelah kami mengkonfigurasi R3 sebagai kandidat untuk menjadi RP, perintah:
ip pim rp-kandidat loopback 0

R3 itu tidak akan melakukan apa pun, untuk mulai mengirim pesan khusus, ia, pada awalnya, perlu menemukan agen pemetaan. Jadi, kita lolos ke langkah kedua.
2) Konfigurasikan R2 sebagai agen pemetaan:
ip pim bsr-kandidat loopback 0

R2 mulai mengirim pesan PIM Bootstrap, di mana ia mengindikasikan dirinya sebagai agen pemetaan:
Gambar saya
Pesan ini dikirim ke alamat 224.0.013, yang digunakan protokol PIM untuk pesan lainnya. Dia mengirim mereka ke segala arah dan karena itu tidak ada masalah ayam dan telur, seperti yang terjadi di Auto-RP.
3) Segera setelah RP menerima pesan dari BSR router, RP akan segera mengirim pesan unicast ke alamat BSR router:
Gambar saya
Setelah itu, ketika BSR menerima informasi tentang RP, ia akan mengirimkannya dengan multicast ke alamat 224.0.0.13, yang didengarkan oleh semua router PIM. Oleh karena itu, tidak ada analog dari perintah pendengar ip pim autorp untuk router biasa di BSR.
Anycast RP dengan Multicast Source Discovery Protocol (MSDP).
Auto-RP dan BSR memungkinkan kita untuk mendistribusikan beban pada RP sebagai berikut: Setiap grup multicast hanya memiliki satu RP aktif. Ini tidak akan berfungsi untuk membuat distribusi beban untuk satu grup multicast beberapa RP. MSDP melakukan ini dengan mengeluarkan router RP alamat ip yang sama dengan mask dari 255.255.255.255. MSDP mengenali informasi menggunakan salah satu metode: statis, Auto-RP, atau BSR.
Gambar saya
Pada gambar kita memiliki konfigurasi Auto-RP dengan MSDP. Kedua RP dikonfigurasikan dengan alamat ip 172.16.1.1/32 pada antarmuka Loopback 1 dan digunakan untuk semua grup. Ketika RP-Umumkan, kedua router berbicara tentang diri mereka sendiri, merujuk ke alamat ini. Setelah menerima informasi, agen pemetaan Auto-RP mengirim RP-Discovery tentang RP dengan alamat 172.16.1.1/32. Tentang jaringan 172.16.1.1/32, kami memberitahu router menggunakan IGP dan, masing-masing. Dengan demikian, router PIM meminta atau mendaftar aliran dari RP yang ditunjukkan sebagai hop berikutnya pada rute ke jaringan 172.16.1.1/32. Protokol MSDP sendiri dirancang untuk RP sendiri untuk bertukar pesan informasi multicast.
Pertimbangkan topologi berikut:
Gambar saya
Switch6 menyiarkan lalu lintas ke alamat 238.38.38.38 dan sejauh ini hanya RP-R1 yang mengetahuinya. Di sini Switch7 dan Switch8 meminta grup ini. Router R5 dan R4 akan mengirim PIM Gabung ke R1 dan R3, masing-masing. Mengapa Rute sampai 13.13.13.13 pada R5 akan merujuk ke R1 sesuai dengan metrik IGP, seperti pada R4.
RP-R1 tahu tentang aliran dan mulai menyiarkannya ke arah R5, tetapi R4 tidak tahu apa-apa tentang itu, karena R1 tidak akan mengirimnya. Karena itu, MSDP diperlukan. Kami mengkonfigurasinya pada R1 dan R5:
ip msdp peer 3.3.3.3 Hubungkan-sumber Loopback1 pada R1

ip msdp peer 1.1.1.1 Hubungkan-sumber Loopback3 pada R3

Mereka akan mengajukan sesi antara satu sama lain dan setelah menerima aliran apa pun akan melaporkannya ke tetangga RP mereka.
RP-R1 segera setelah menerima aliran dari Switch6, ia akan segera mengirim Unicast MSDP Source-Active pesan yang berisi informasi seperti (S, G) - informasi tentang sumber dan tujuan multicast. Sekarang, ketika RP-R3 tahu bahwa sumber seperti Switch6, ketika menerima permintaan dari R4 untuk aliran ini, itu akan mengirim ke Switch6 PIM Bergabung, dipandu oleh tabel routing. Oleh karena itu, R1 yang telah menerima PIM Bergabung, akan mulai mengirim lalu lintas ke RP-R3.
MSDP berjalan melalui TCP, RP mengirim pesan keepalive satu sama lain untuk memverifikasi kelayakan. Pengatur waktunya 60 detik.
Fungsi membagi rekan-rekan MSDP ke dalam domain yang berbeda tetap tidak dapat dipahami, karena pesan Keepalive dan SA tidak mengindikasikan milik domain apa pun. Juga, dalam topologi ini, konfigurasi diuji dengan indikasi berbagai domain - tidak ada perbedaan dalam operasi.
Jika seseorang dapat mengklarifikasi, dengan senang hati baca di komentar.

Saya pikir ini untuk menyelesaikan artikel. Di bawah ini adalah bahan dan tautan berguna yang digunakan:
  1. Routing dan Switching CCIE v5.0 Panduan Cert Resmi, Volume 2, Edisi Kelima, Narbik Kocharians, Terry Vinson.
  2. Jaringan untuk yang terkecil. Bagian sembilan. Multicast

Source: https://habr.com/ru/post/id450582/


All Articles