Kenapa ada multicast itu contohnya kira2 seperti ini:
“Klo gw ada 3-4 client minta File dari server…berarti gw harus proses 1-1 itu request (unicast)…gimana kalo ratusan yang minta….jebol ini network”
(gambar diambil dari ARCH [642-874] course…)
Multicast ALWAYS use UDP…why not TCP? Karena TCP itu connection-oriented…jelas source-nya, jelas pula destination-nya (unicast transmission)
Dalam Multicast itu ada pepatah…”gw ga terlalu perduli tujuannya (unknown destination), yang penting sumbernya (valid source)”
Biasanya kan gini “yang penting gw tau ini paket mau dikirim kemana (valid destination), ga penting sumber darimana (unknown source)”
Karena itulah Multicast ga akan cocok pake TCP…
Trus klo tujuannya ga penting…dia kirim kemana?!? Kirim ke alamat kelas D (224.0.0.0 sampe 239.255.255.255)
Jadi begitu ada paket dengan IP 224.0.0.10 (contoh)…si router akan tau
“ooh…ada paket EIGRP minta di kirimin dengan metode multicast…”
Kapan dan dimana ini teknologi digunain…?!? MULTIMEDIA…!!! IPTV !! STREAMING !!! *setidaknya itu yang paling kena efek advantage nya Multicast
Yang namanya multicast kan ada yang node/router yang ga dapet dong? Klo dapet semua namanya jadi broadcast, ya ga?!…gimana tuh?!?
Nah, dalam Multicast itu ada namanya “grouping”….jadi yang termasuk group tertentu aja yang kena multicast
Multicast Components
- Source: seperti yang uda gw bilang…yang penting itu source…tempat server nya
- Router: lalu alat buat bikin multicast-nya….router
- Client: si “penadah” nya…client hanya akan dapet multicast klo dia request/di-approve untuk join multicast group
- Routing Protocol: Multicast Routing Protocol…Routing protocol yang dibuat secara khusus untuk nyebarin multicast, contohnya: PIM (Protocol Independent Multicast)
- Group Management Protocol: protocol yang isinya definisi2 bagaimana cara host join, leave, request multicast group…contohnya: IGMP (Internet Group Management Protocol)
=============================================
IP Multicast
Multicast itu dari 224.0.0.0 sampe 239.255.255.255 alias kelas D
kelas D (yang emang di-reserve) ini di bagi2 lagi
-
Link-Local Scoped = 224.0.0.1 sampe 224.0.0.255
- TTL (time-to-live) packet nya = 1 (alias masa hidup multicast nya cuma di LAN aja…singkat sih)
- Contohnya: 224.0.0.1 (Host), 224.0.0.2 (Multicasting Router), 224.0.0.5 dan 6 (OSPF Router dan OSPF DR Router), dan 224.0.0.10 (EIGRP)
-
Global Reserved = 224.0.1.0 sampe 224.0.1.255
- TTL-nya lebih dari 1…contohnya…multicast untuk NTP (network time protocol dengan IP 224.0.1.1) yang memang harus di-multicast across network
-
Administratively Scoped = 239.0.0.0 sampe 239.255.255.255
- Ini tuh…IP Private-nya Multicast alias bisa kita pake sendiri buat kepentingan organisasi
- 239.253.0.0 /16 dinamakan Site-Local = bisa kita pake untuk multicast aplikasi buatan kita.
- 239.192.0.0 /14 dinamakan Organizational = buat multicast organisasi/perusahaan kita
-
SSM (Source Specific Multicast) = 232.0.0.0 sampe 232.255.255.255
- Alamat ini dipake klo kita mau receive traffic dari spesifik device/server
-
GLOP = 233.0.0.0 sampe 233.255.255.255
- Alamat ini dipake IANA, permanen, di-burn ke software
- Bisa dipake untuk multicast BGP (AS Number di-insert di tengah2 oktet IP-nya)…233.X.X.255
- GLOP ini ga ada singkatannya…
L2 Multicast Addressing
Klo kita pake IP Multicast (L3), berarti kita juga harus define L2 addressingnya
Supaya switch tau klo ada mac-address tertentu…dia harus nyebarin ini frame via Multicast
23 bit dari IP Address Multicast…di konversi jadi Hexadecimal-nya mac-address
Kenapa kok Cuma 23 bit aja?? Ini cuma masalah sejarah…(hint: baca buku “Deploying IP Multicast Network” from Cisco Press)
Kuncinya adalah…klo switch ketemu mac-address dengan kode 01:00:5E:00:00:00 sampe 01:00:5E:7F:FF:FF, itu tandanya mac-address buat multicast
IGMP
IGMP = Internet Group Management Protocol
IGMP ini protokol yang bahas masalah bagaimana sebuah host join multicast group dan bagaimana router handle multicast request-nya
Taro lah H3 dan H2 jadi member sebuah multicast group…ketika si router ngirim multicast packet…yang nerima Cuma H2 dan H3
IGMP secara default ngecek “membership” tiap 60 detik sekali
Nah…karena ini multicast…artinya bisa lewat switch…switch juga punya mekanisme untuk “mapping” port mana aja yang kena multicast (di taro di Multicast CAM Table)…namanya IGMP Snooping
- IGMP v1: Define how router determine which groups are active, provide mechanism how host can join or leave group (RFC 1112)
- IGMP v2: Bisa kirim sinyal untuk leave group, join specific group, dan maksimum query response time/timer (RFC 2236)
- IGMP v3: Bisa kirim sinyal ke group tertentu, dari source tertentu pula…”multicast source filtering” (RFC 3337) via 224.0.0.22, versi 3 inilah yang dipake buat SSM (Source Specific Multicast)
Yang perlu diperhatikan adalah…Switch bisa jadi akan “treat” multicast frame/IGMP ini seperti broadcast…kenapa?? Karena STP (Spanning-Tree Protocol)
Ketika Switch nerima TCN (Topology Change Notification)-nya STP…itu “snooping-snooping-an” akan di treat seperti broadcast…(maklum…jaga2 biar ga looping), biasanya pas upstream link berubah…ato ganti switch link
Don’t worry…kita bisa disable TCN flooding atau kasi “count” berapa kali flooding dilakukan sebelum switch “treat” alias memperlakukan multicast frame secara normal kembali
=============================================
L3 Multicast
Untuk nyebarin multicast…ato “mapping” siapa aja yang dapet multicast…kita balik lagi dulu ke dasar Unicast dan Multicast
Multicast Routing vs Unicast Routing
Unicast Routing = “paket ini mau kemana?”
Multicast Routing = “paket ini dari mana?”
Ada banyak Protocol buat Multicast, yang paling umum dipakai adalah PIM (Protocol Independent Multicast)
Disebut independen karena untuk nyebarin multicast…dia ga terlalu pusingin pake routing protocol apa…pake static juga bisa…yang penting ada jalan/rute nya aja
PIM sendiri dibagi 2: Dense Mode (uda jadul punya ini) dan Sparse Mode
Dense Mode: si multicast router akan ngirim kesemua node/router itu paket multicast (via 224.0.0.13) lalu dia akan ngarepin reply balik dari semua router yang kena multicast, baik yang ikut group multicast maupun yang tidak, metode ini biasa disebut PUSH Method karena behavior-nya yang kirim kesemua node…toh, nanti hanya router2/node2 yang ikut group aja yang akan reply untuk ikut “streaming”…sisanya yang nolak akan di-supress oleh si multicast router (pruning)
Tau VTP Pruning? Di Multicast juga ada namanya Multicast Pruning….konsep nya mirip
efeknya apa klo Dense Mode? Inisialisasi pas Multicast itu makan bandwidth…begitu ada multicast…WUUUSSHH…bandwidth kemakan semua…baru de berangsur2 normal bandwitdh-nya
Sparse Mode (RFC 4601): kebalikan dari Dense Mode, PULL Method, multicast router cuma nunggu…”hayo…hayo…siapa yang mau ikut cicilan motor murah *ehem* multicast maksudnya…“, nunggu node/router lain minta join multicast (pake IGMP), multicast router dengan tipe ini ga makan bandwidth…soalnya pasif…makanya disebut PULL karena behavior-nya yang suka narik pelanggan *ehem*
Si router tempat nunggu request2 untuk join multicast (atau tempat nampung multicast2 dari server) dan sering jadi agen nyebarin flyer2 cicilan motor *ngaco nih* disebut Rendevouz Point (RP) dalam Sparse Mode
Nah, begitu selesai “mapping” (baik pake DENSE atau SPARSE), terbentuklah sebuah “tree”…tree ini berguna untuk nyebarin multicast “enaknya” lewat mana, trus biar avoid looping (inget ini bukan Unicast !!, harus ada mekanisme sendiri buat avoid looping)…logic nya masih pake SPF (Shortest Path First, sama kek logic yang dipake OSPF)…
Khusus untuk Sparse Mode…dia ga hanya pake SPF (Source Tree, yang dipake di Dense Mode), dia juga pake Shared Tree (kalkulasi dari Sender ke RP, dan juga kalkulasi dari RP ke Receiver, alias di RP dia kalkulasi 2 Tree sekaligus)
Di Multicast tree ini disebut Reverse Path Forwarding (RPF) – tabel RPF ini di Data Plane yang sama dengan CEF, karena nge-cek sumber multicast nya…backward crosscheck-lah ibaratnya
Jadi isinya “tree” Multicast ini tentang informasi source (S) dan Group (G) tempat multicast dikirim, disingkat (S,G)…di RP juga ada informasi tentang all source (*) juga…jadi dia ada (*,G)
Ketik aja “show ip mroute” saat praktek multicast, nanti ketauan kok (S,G) dan (*,G) ini
Oooh gw tau….jadi tiap ada user mau join…si router harus bikin “tree” lagi?? Betul…
nah, trus klo banyak yang join..repot dong?? Yup…from Router Control Plane point-of-view…akan ada banyak tree tentang (S,G)
cara solving nya?? Bidirectional PIM, PIM ini hanya akan nge-share (*,G) alias rute/tree/jalan dari user yang request ke RP aja…engga ke semua jalan dikasi alias (S,G) ato rute2 tertentu ke router lain ga akan dikasi (ya iya la…ngapain juga)
Bidirectional PIM ini akan nunjuk Designated Forwarder (DF) untuk nunjukin jalan dari user ke RP
“cui…ada yang request ikut multicast nih ke gw (RP)…tolong tunjukin jalan buat user itu ke tempat gw ya”
PIM sendiri ada 2 versi:
- V1 = yang biasa
- V2 = default, uda support BSR (di section bawah) dan support Backup BSR (backup RP)
=============================================
Auto-RP
Untuk nge-set RP ini ada 2 cara:
- Statis (setting sendiri siapa router yang jadi RP)
-
Dinamis:
- Auto-RP (Cisco Propiertary)
- BSR (Bootstrap Router, Open Standard)
Untuk bikin Auto-RP…berarti kita harus define multicast group-nya, nah…supaya multicast group (SPARSE mode) ini jalan…artinya kita harus setting RP-nya dulu…
Laaah…katanya Auto-RP…berarti otomatis dong?? Klo RP-nya setting sendiri….ga jadi Auto dong…gimana sih??kok jadi muter2 gini??
Wkwkwk…yup…gara2 alasan “chicken-egg paradox” (itu tu..debat yang ga pernah selese…siapa duluan yang muncul…telur apa ayam?) itulah kita perlu bikin DENSE mode lagi…
Wew…bikin PIM Dense-Sparse mode…?!?
Cuma untuk inisialisasi…kita pake Dense Mode…untuk meng-eliminasi kebutuhan akan RP, yang laen nanti pake Sparse Mode
Klo Auto-RP nya ilang/mati gimana?? Ya semua router jalanin Dense Mode lagi…sama aja boong yah…haha
Cisco punya fitur “auto-RP listener” yang di aktifkan dengan command ip pim autorp listener untuk ngecek keberadaan Auto-RP…biar ga jalanin Dense Mode klo RP nya ilang ato ga ada, yang artinya…no more Dense-Sparse Mode YAAAY!!!
Auto-RP punya 2 komponen:
- Candidate RP: yaitu router2 yang “mau” jadi RP (konsepnya mirip DR/BDR nya OSPF…yang paling tinggi IP nya…itu yang jadi kandidat terkuat RP)
- Mapping Agent: ini agen “penyalur” pembantu rumah tangga…hahaha…maksudnya ini router yang ngasi tau ke yang lain…”HEIII…ada yang mau jadi RP nih….“
Bisa ga 2 komponen ini berada dalam 1 device/router?? Bisa
*note: in Design Course…there is MEMORY REQUIREMENT for Router to be RP (jadi ketika kita mau deploy multicast…watchout for the requirement)
- Each (*,G) entry require 380 bytes + Outgoing Interface List (OIL) overhead
- Each (S,G) entry require 220 bytes + OIL Overhead
- OIL Overhead is 150 bytes per entry
Contoh: ada 10 multicast group, dengan 6 source per group dan 3 Outgoing Interface
10 x (380 + (3 x 150)) = 8300 byte untuk (*,G)
(10 x 6) x (220 + (3 x 150)) = 40,200 byte untuk (S,G)
Total 48,500 byte untuk maintain “show ip mroute” doang…
==========================================================
Inter-AS Multicast
The question is simple…”how to get Multicast packets…get to another side…of ISP”
The answer keyword is MSDP (Multicast Source Distribution Protocol) – RFC 3618
MSDP ini memungkinkan ISP dengan ISP berkomunikasi antar RP yang mereka punya (ngobrol antar AS RP-nya pake TCP)
Tapi bukannya klo Inter-AS pake nya BGP ya…itu kan protocol unicast?? Yup…oleh karena itu kita perlu MBGP (Multicast BGP) untuk “tuning” MSDP nya
==========================================================
IPv6 Multicast
Well…karena IPv6 sudah mulai “take over” the world…(setidaknya dalam CCNA dan CCIE, artikel2 tentang IPv6 udah dimasukin BANYAK BANGET), mau gam au gw juga harus belajar multicast dalam IPv6
Anycast dalam IPv6 itu gantiin broadcast…TIDAK ADA Broadcast dalam IPv6
Pertanyaannya adalah…”what is anycast?!?”
Ketika kita mau ngirim packet…biasanya di lempar ke 2 tempat…Default gateway…atau di Broadcast
Well…Anycast dalam IPv6 adalah…”klo ga tau mo lempar kemana ini paket…lempar aja ke yang paling deket…”
Pertanyaan selanjutnya adalah “yang paling deket?? Parameter “yang paling deket” itu apa??”
Yang paling deket berdasarkan IGP METRIC, jadi router akan kirim paket ke tetangga yang terdekat berdasarkan kalkulasi metric dari routing protocol dia
Nah, dalam multicast IPv6 pun seperti itu…nyari RP nya pake Anycast…Anycast-RP
Protocol buat nyari RP nya?? Pake MSDP lagi…
Dalam IPv6…IGMP namanya berubah jadi MLD (Multicast Listener Discovery), pas gw baca2 sih…sama aja fungsinya…Cuma namanya aja beda…
IPv6 hanya support BSR (versi open source-nya Auto-RP)
==========================================================
Segitu dulu…nanti yang kurang2 akan gw tambahin disini…
*I’m working on the LAB right know*
==========================================================
References:
Multicast Video by Anthony Sequeira (CCIE #15626, CCSI), www.youtube.com
Deep Dive Multicast Video by Brian McGahan (CCIE #8593), www.ine.com
Developing IP Multicast Network – Cisco Press, Beau Williamson (CCIE #1346)
Cisco AVVID Network Infrastructure IP Multicast Design.pdf – Solution Reference Network Design