MOSPF
Multicast Open Shortest Path First (MOSPF) kann in Rechnernetzen zur Abwicklung von Paketversand nach dem Multicast-Prinzip genutzt werden. Es handelt sich bei MOSPF um die Multicast-Erweiterung zum Intradomain-Routingprotokoll OSPF (Open Shortest Path First). MOSPF ermöglicht das Multicast-Routing innerhalb einer OSPF-Domain. Hierbei ist aber besonderes Augenmerk auf die Tatsache zu legen, dass diese Domain nicht beliebig groß sein/werden darf und dass die Routing-Berechnung effizient und schnell funktioniert.
Funktionsweise
In OSPF verwaltet jeder Router eine komplette Datenbank, welche die gesamte Netztopologie beschreibt. Durch Einführen eines neuen Link-State-Record-Typs – dem Group-Membership-LSA – wird es bei MOSPF möglich, den Standort aller Multicast-Teilnehmer einer Multicast-Gruppe in der Topologie-Datenbank zu speichern. Da OSPF ein Link-State-Protokoll ist, steht diese Information somit auf allen Routern der Domain zur Verfügung. Group-Membership-LSAs werden von denjenigen Routern erzeugt, welche an einem Subnetz (LAN) über IGMP die Gruppenmitgliedschaft feststellen. Diese LSAs verbleiben, genauso wie herkömmliche Router- und Network-LSAs, nur innerhalb einer OSPF-Area, werden also nicht an andere Areas oder gar andere Autonome Systeme weitergeleitet.
In Kombination mit den herkömmlichen Router- und Network-LSAs (Topology Database) kann somit ausgehend von demjenigen Router, hinter welchem sich eine Multicast-Quelle (Source) befindet, für jede Quelle ein impliziter Source Base Tree – ein Kürzester-Wege-Baum, engl. Shortest Path Tree (kurz SPT), welcher die Multicast-Quelle als Wurzel hat – durch das Netzwerk berechnet werden. Es wird dazu kein zusätzliches Multicast-Routing-Protokoll benötigt, da das herkömmliche Unicast-Routing von OSPF mitgenutzt wird.
On-Demand-Berechnung
Theoretisch kann die Berechnung des SPT via RPF (Reverse Path Forwarding) und Pruning jeweils am Router erfolgen, bevor ein Multicast-Paket verschickt wird (da die gesamte Topologiedatenbank in jedem Router zur Verfügung steht). Dies kann aber zu Performance-Problemen führen, da der Router für jede Multicast-Quelle einen eigenen SPT berechnen muss. Diese Berechnungen können auch Router, welche mit vergleichsweise leistungsstarken CPUs ausgestattet sind, in die Knie zwingen.
Statt dieser automatischen Berechnung aller SPTs werden die SPTs daher nach Bedarf berechnet (computation on demand): Der SPT wird erst dann berechnet, wenn das erste Multicast-Paket einer Multicast-Quelle für eine bestimmte Multicast Gruppe eintrifft. Mögliche Zweige in diesem berechneten SPT, welche über keine Multicast-Empfänger verfügen, werden vom Baum entfernt (pruning). Trotzdem kann dieses Verfahren ebenfalls zu einem Performance-Problem führen, wenn sich hinter einem Router viele verschiedene Quellen befinden und sich viele Multicast-Empfänger häufig an- und abmelden. Ein solches Verhalten führt wiederum zu ständigen Neuberechnungen des SPT.
Wenn es nun zu einer Berechnung eines SPT gekommen ist, wird diese Information am Router in einem Cache zwischengespeichert und für spätere Kommunikation zwischen der Multicast-Quelle und der entsprechenden Multicast-Gruppe genutzt.
Inter-Area-Routing
OSPF ermöglicht es, eine OSPF-Domain (z. B. ein Autonomes System) in mehrere sogenannte Areas zu unterteilen. Wird dies getan, so verfügt nicht mehr jeder Router über eine vollständige Topologie-Karte der OSPF-Domain. Stattdessen kennt jeder Router nur seine Area(s), während die Kommunikation zwischen Areas über die ABRs (Area Border Router) erfolgt. Dies ist zwar für Unicast-OSPF vorteilhaft; allerdings können somit bei Multicast-OSPF keine vollständigen SPTs berechnet werden. Dies führt u. U. zu ineffizientem Multicast-Routing.
Damit MOSPF zwischen zwei Areas funktioniert, müssen die Area-Border-Router über das Multicast-Verhalten des Netzwerkes Bescheid wissen. Solche Router werden als Multicast Area Border Routers (MABR) bezeichnet. Ein MABR wird sämtliche Multicast-Informationen zusammenfassen und die entsprechende LSAs in die Area 0 schicken (Hinweis: Die Area 0 verteilt diese empfangenen Informationen nicht wieder an andere Areas, d. h. diese Vorgehensweise ist nur dann brauchbar, wenn sich die Multicast-Quellen in der Area 0 befinden). Sollten Multicast-Quellen aber auch außerhalb der Area 0 liegen, so wird dieses Problem durch Setzen eines Wildcard-Bit im Router-LSA eines jeden MABR gelöst. Dieses Bit führt dazu, dass jeder MABR Mitglied einer jeden Multicast-Gruppe wird und somit auch den Multicastverkehr einer Source ansaugt, die nicht in der Area 0 liegt. Damit gelangt der Multicastverkehr zur Area 0 und diese kann dann gemäß den in Area 0 bekannten Gruppenmitgliedschaften den Multicastverkehr zu den betroffenen Areas weiterleiten. Dies kann aber zu unerwünschtem Netzwerkverkehr (Traffic) führen, wenn keine „echten“ Multicast-Quellen existieren.