Multicast-Routing: PIM

July 23, 2015

Multicast-Routing ist kein triviales Thema. Dieser Post zeigt einen Vergleich zwischen verschiedenen Multicast-Routing Protokollen und deren Konfiguration auf Cisco-Devices.

Cisco bietet 3 Wege für die Realisierung von PIM Sparse-mode (IPv4):

  • static
  • automatisch mit AutoRP (proprietär)
  • automatisch mit BSR (standard)

Der PIM sparse-mode unterscheidet sich grundlegend vom dense-mode.

  • keine “Push”-Technologie wie dense-mode.
  • sondern “pull”-Technologie

—> PIM SPARSE-MODE ist die bevorzugte Methode, da deutlich weniger traffic/flooding.

# statisch

rendezvous point

  • Das zentrale Element des sparse-mode !
  • Alle “Multicast-Server” schicken ihren Multicast-Traffic dorthin.
  • Clients bekommen den Multicast-Traffic von dort.

-> Die Clients “pullen” den Traffic vom RP.

Konfiguration
(sparse-mode auf alle interfaces die daran teilnehmer sollen)

ip multicast-routing
ip pim sparse-mode	

show ip pim neighbor

Client simulieren

  • Auf interface: ip igmp join-group 239.4.4.4
  • bisher sollte der Multicast noch failen, weil noch keine RPs konfiguriert sind.
  • test: ping 239.4.4.4 source INTF -> fail!

RP auf jedem Router adden (auch auf dem RP selbst):

ip pim rp-address IP-OF-RP

# Automatisch - AutoRP

  • RP wird assigned durch Multicast Group, also mit Hilfe eines RP.
  • chicken/egg Paradox (wie soll der RP assignt werden, wenn es noch keinen RP gibt?)
  • Dafür gibt es Lösungen/Möglichkeiten, die im Folgenden betrachtet werden.

    Hier wird davon ausgegangen, dass die Basisbefehle schon auf jedem Router sind: ip multicast-routing, ip pim sparse-mode

show ip mroute
(*, 224.0.1.40), 9w2d/00:02:21, RP 172.23.192.252, flags: SJPCL
Incoming interface: GigabitEthernet1/0/8, RPF nbr 192.168.20.17
Outgoing interface list: Null

–> Cisco erfand den “sparse-dense” mode, damit kein chicken/egg Problem mehr:

  • es wird zuerst dense genutzt, bis die RPs ausgetauscht wurden
  • dann wird zum sparse mode gewechselt

–> schlecht weil weiterhin viel dense und somit traffic/floodings.
–> deshalb eher “ip pim autorp listener” nutzen. (siehe unten)

AutoRP konfigurieren

  • “candidate RP” = RP (send-rp-announce)
  • “mapping agent” = device, dass den anderen sagt wer der RP ist (send-rp-discovery)

–> beide Rollen könnten auch auf die gleiche Maschine.

Konfiguration
R1 als RP konfigurieren, bzw. sagen dass das Device der RP werden will: ip pim send-rp-announce [IP|INTF] scope 8
(scope = wie viel Hops gültig)
R5 als mapping agent: ip pim send-rp-discovery [IP|INTF] scope 8

–> bisher ist noch kein RP für die “Auto-RP Groups” vorhanden. (chicken/egg Problem besteht gerade).
ping 239.4.4.4 source INTF

-> 3 mögliche Lösungen:

  • ip pim sparse-dense mode
  • hardcoded RP IP for the 2 groups
  • ip pim autorp listener (auf jedem Router, auch dem wannabe-RP und mapping-agent) -> das beste!!

VERIFICATION COMMAND:

show ip pim rp mapping

# Automatisch - BSR to be done

Back...