Chapter 8. Multicast routing

FIXME: Ersteller gesucht!

Die Multicast-HOWTO ist uralt (relativ gesehen) und ungenau oder irreführend an einigen Stellen.

Bevor du Multicast-Routing nutzen kannst, musst du den Linux-Kernel konfigurieren, um deine bevorzugte Art von Multicast-Routing zu unterstü,tzen. Dazu ist es erforderlich, dass du dich entscheidest, welche Art von Multicast-Routing du erwartest. Im Wesentlichen gibt es vier "gemeinsame" Typen - DVMRP (die Multicast-Version des RIP Unicast-Protokoll), MOSPF (das gleiche, aber für OSPF), PIM-SM ("Protocol Independent Multicast - Sparse Mode", die davon ausgeht, dass die Nutzer sich in jeder Multicast-Gruppe ausbreiten, anstatt anzuhäfen) und PIM-DM (das gleiche, aber "Dense Mode", der davon ausgeht, dass es zu erheblichen Haufen von Benutzern derselben Multicast-Gruppe kommt).

Beim Linux-Kernel, werden Sie feststellen, gibt es diese Optionen nicht. Das liegt daran, weil das Protokoll selbst durch eine Navigationsanwendung wie Zebra, mrouted oder PIMD gehandhabt wird. Allerdings solltest du eine gute Vorstellung davon haben, um die richtigen Optionen im Kernel auszuwählen.

Für jedes Multicast-Routing, wirst du definitiv "Multicasting" und "Multicast-Routing" aktivieren. Für DVMRP und MOSPF reicht es. Wenn du vorhast PIM zu verwenden, musst du PIMv1 oder PIMv2 benutzen, je nachdem, ob das Netzwerk eine Verbindung nach Version 1 oder 2 des PIM-Protokolls hergestellt.

Wenn du alles aussortiert und deinen neuen Linux-Kernel kompiliert hast, wirst du sehen, dass die beim Booten die aufgef;uuml;rhten IP-Protokolle jetzt inklusive IGMP sind. Das Protokoll zum Verwalten von Multicast-Gruppen. Zur Erstellzeit dieses Schreibens, unterstützt Linux nur IGMP in Version 1 und 2, obwohl auch die Version 3 existiert und dokumentiert wurde. Das soll uns nicht beirren, denn IGMPv3 ist noch neu genug, dass die wenigen zusätzlichen Funktionen von IGMPv3 uns nicht viel nutzen. IGMP befasst sich mit Gruppen, die Merkmale dazu sind nur in der einfachsten Version von IGMP über die gesamte Gruppe verwendet. In den meisten Fällen wird die IGMPv2 benutzt, obwohl IGMPv1 ausreichen würde.

So weit, so gut. Wir haben Multicasting aktiviert. Nun müssen wir den Linux-Kernel bekannt geben was wir tatsächlich tun wollen, um mit dem Routing beginnen zu können. Das bedeutet, das Hinzufügen des virtuellen Multicast-Netzwerks in den Router-Tabelle:

ip route add 224.0.0.0/4 dev eth0

(Vorausgesetzt natürlich, du willst Multicast über eth0! Ersetze das Gerät deiner Wahl an dessen Stelle.)

Jetzt sag Linux es soll Pakete weiter leiten...

echo 1 > /proc/sys/net/ipv4/ip_forward

An dieser Stelle kann man sich fragen, ob dies jemals etwas tut. Also, um unsere Verbindung zu testen, pingen wir die Standard-Gruppe 224.0.0.1, um zu sehen ob jemand lebt. Alle Maschinen in Ihrem LAN mit aktivierten Multicasting sollten reagieren, aber sonst keiner. Du wirst feststellen, dass keine der Maschinen die reagiert, eine IP-Adresse von 224.0.0.1 hat. Was für eine Überraschung! :) Dies ist eine Gruppenadresse (ein "Broadcast" an Teilnehmer) und alle Mitglieder der Gruppe werden mit ihrer eigenen Adresse, und nicht der Gruppenadresse reagieren.

ping -c 2 224.0.0.1

Ab diesem Punkt bist du wirklich bereit Multicast-Routing anzuwenden. Nun, vorausgesetzt hast eine Route zwischen zwei Netzwerken.

(Wird fortgesetzt!)