Sunday, October 13, 2019

Multicast-4: IGMP Snooping

Kita akan membuktikan bahwa dengan mengaktifkan IGMP Snooping di Switch maka Host yang tidak "tertarik" dengan siaran itu, maka switch tidak akan mengirikan.

Perhatkan diagram berikut.

Sender 10.0.0.1 akan bersiaran pada group 239.1.1.1. IGMP Router akan mengingat bahwa ada S,G yang sedang bersiaran, yaitu (10.0.0.1, 239.1.1.1).

Apabila Receiver1 on, dimana sudah terset sebelumnya f0/0 nya untuk join ke 239.1.1.1, maka Receiver1 akan mengeluarkan IGMP Membership report bahwa dia berminat untuk mendengarkan siaran 239.1.1.1.

Apabila IGMP Router menerima permintaan ini maka dia akan menuliskan di multicast routing table nya (*, 239.1.1.1). Nah karena berjodoh dengan (10.0.0.1, 239.1.1.1) maka IGMP Router akan "membocorkan" siaran dari (10.0.0.1, 239.1.1.1) ini ke arah bawah.



Siaran akan mengalir ke OpenvSwitch-1.

Sebelumnya OpenvSwitch-1 sudah mendengar ada permintaan dari Receiver-1 terhadap siaran 239.1.1.1. Maka otomatis siaran yang diterima oleh OpenvSwitch-1 via eth1, akan di bocorkan ke port eth2.

Nah apakah eth4 juga akan di bocorkan oleh OpenvSwitch-1? Jawabannya tidak!

Kenapa? Karena fitur IGMP Snooping aktif.

# ovs-vsctl set Bridge br0 mcast_snooping_enable=true

Nah, bagaimana kalau IGMP Snooping dimatikan?

# ovs-vsctl set Bridge br0 mcast_snooping_enable=false

Maka terlihat di gambar paket langsung di bocorkan keluar eth4.

Selanjutnya kita coba aktifkan lagi IGMP Snooping

# ovs-vsctl set Bridge br0 mcast_snooping_enable=true

Kita berharap OpenvSwitch-1 immediatly stop membocorkan siaran 239.1.1.1 dari eth4 dia bukan?

Kenyataannya apa yang terjadi?

Ternyata siaran tetap bocor ke Receiver-2. Padahal IGMP Snooping sudah aktif.

Apa pasal?

Jadi OpenvSwitch-1 menunggu dulu IGMP Leave dari Receiver-2, ataupun IGMP Membership Report. Setelah tidak menerima beberapa kali paket IGMP Membership report terhadap siaran 239.1.1.1, maka barulah OpenvSwitch-1 yakin tidak ada lagi Host yang mau siaran tsb maka barulah dia stop membocorkan siaran 239.1.1.1 via eth4 dia.

IGMP Snooping Hanya Bekerja Jika ada IGMP Router.

Penting diperhatikan cara kerja Switch jika IGMP diaktifkan, maka switch akan "mencegat" dan "me-reroute" semua transaksi IGMP ke internal processor dia terlebih dahulu.

Switch secara spesifik mengintai (snoop) paket-paket ini dari Router:

  • IGMP General Query (0100.5e00.0001)
  • OSPF (0100.5e00.0005 and 0100.5e00.0006)
  • PIM version 1 and HSRP (0100.5e00.0006)
  • PIM version 2 (0100.5e00.000d)
  • DVMRP (0100.5e00.0004)
Apabila ada port (misal Eth2) yang dia deteksi mengeluarkan IGMP Leave, seharusnya ini diteruskan ke Router, tapi tidak demikian. Switch akan mencegat paket IGMP Leave tsb, dan akan "acting" seperti Router, dimana dia akan mengeluarkan paket IGMP Membership Query ke port Eth2.

Switch seolah "bertanya" apa benar sudah tidak ingin listen ke Group tertentu. Jika port Eth2 terhubung ke hub, dan ada satu saja host yang respon bahwa dia masih listen, maka permintaan IGMP Leave tadi akan di ignore oleh Switch.

Ada catatan: jika membeli switch murah tapi punya fitur IGMP Snooping, maka ada kelemahannya yang sangat fatal, yaitu semua multicast traffic di olah oleh main CPU. Selengkapnya baca disini.


Note: Karena Cisco 3400, atau Cisco 3725 Swicth Module nya tidak bisa diaktifkan IGMP Snooping, maka di artikel ini digunakan Switch berupa Appliance di GNS3 yaitu Open Virtual Switch.



No comments: