1.13.3. Implementierungen

IP-Multicast ist erst in einigen neueren Betriebssystemen realisiert, z.B. in Linux 2.x, Solaris 2.x, HP-UX 10.x und Windows 95/NT. Diese Systeme enthalten IGMP-Implementierungen und können als Endsystem Multicast verwenden.

Bei den Multicast-Routern sind noch zwei unterschiedliche Ausführungsformen zu unterscheiden:

Das Einrichten des Multicast-Routings in einem Endsystem ist relativ einfach. Bei Linux geschieht dies z.B. so:
  route add 224.0.0.0 netmask 240.0.0.0 dev eth0
Damit werden IP-Pakete mit Multicast-Zieladressen an das (multicast-fähige) Ethernet-Interface geleitet. Man kann auch feststellen, welche Hosts am LAN multicast-fähig sind:
  ping -t 1 -c 2 224.0.0.1
Sobald man das lokale Netz verlassen will, stößt man heute meist auf die Schwierigkeit, daß nur ein kleiner Teil der Router in der Internet-Infrastruktur Multicast-Pakete routen kann (und will). Diese Schwierigkeit wird durch die Einrichtung von "Tunneln" behoben. Die Kernidee ist dabei die Verpackung der Multicast-Pakete in "gewöhnliche" IP-Pakete, um auch Teile des Netzes durchqueren zu können, in denen keine Multicast-Fähigkeiten vorhanden sind:

Derzeit werden nicht selten "gewöhnliche" Rechner mit nur einem Netzinterface als "Multicast-Router" verwendet. Damit ergibt sich folgendes Szenarium:

Jeder Tunnel besitzt zwei wesentliche Parameter:

Typische TTL-Werte sind:
TTL Verteilungsgebiet/Reichweite
1 lokales Subnetz
<= 16 eigene Organisation (LAN)
<= 24 regionale Netze
<= 32 Deutschland
<= 48 Europa
> 48 weltweit

Die bekannteste Anwendung von IP-Multicast ist der seit 1992 bestehende Multicast Backbone (MBONE). Dies ist eine weltweite Infrastruktur aus Multicast-Routern, die durch Tunnel miteinander verbunden sind. Typische Anwendung im MBONE sind:

Die meisten Applikationen nutzen das auf dem User Datagram Protocol (UDP) basierende Real Time Protocol (RTP). Die mit UDP nicht gegebene Wiederholung im Fehlerfall muß auf der Anwendungsebene organisiert werden (oder man kann Fehler ignorieren, z.B. bei Videodaten). Eine Art "multicastfähiges TCP" ist als Reliable Multicast Transport Protocol noch im Experimentalstadium.

In der Anfangszeit des MBONE wurden alle Multicastpakete weitergeleitet, solange die TTL des Paketes größer als der Schwellwert des Multicastrouters war ("truncated tunnels"). Dadurch bekamen Multicastrouter diese Pakete auch dann, wenn kein Interesse an Multicastgruppen bestand, und waren außerdem gezwungen, sie auch weiterzuleiten, da vom Sender eine große TTL gewählt wurde.

Diese ineffiziente Verfahrensweise wurde später beseitigt, indem moderne Multicastrouter das "Abschneiden unnötiger Äste" (pruning) unterstützen. Multicast mit Pruning wird auch als "echter" Multicast bezeichnet. Das bedeutet, daß Multicastpakete nur zu denjenigen Multicastroutern und dazugehörigen Subnetzen weitergeleitet werden, die wirklich ein (durch IGMP-Nachrichten bekundetes) Interesse an den Multicastgruppen haben, natürlich nur innerhalb der TTL-Festlegung des Senders. Dieses Schema, d.h. die Kombination von TTL/Schwellwert und Pruning, stellt eine relative effiziente Methode für die Verteilung von Multicastpaketen über das Internet dar.

In der Praxis sind verschiedene Probleme mit der TTL-basierten Steuerung der Verteilung von Multicast-Paketen deutlich geworden. So hat sich z.B. herausgestellt, daß die zuverlässige Implementierung dieser Technik recht kompliziert ist und daß die entstehenden Systeme schnell sehr komplex und schwer verständlich werden. Ein noch wesentlich schwerwiegenderes Problem besteht darin, daß die TTL-basierte Reichweitensteuerung das Pruning unter bestimmten Umständen wirkungslos machen kann.

Deshalb arbeitet man z.Z. an einer neuen Lösung, dem sog. Administratively Scoped IP Multicast, der u.a. in Internet-Drafts beschrieben wird. Hierbei werden die IPv4-Multicast-Adressen von 239.0.0.0 bis 239.255.255.255 in Adreßbereiche unterteilt, deren jeweiliges Verbreitungsgebiet administrativ festgelegt wird.

Für das BWIN (Breitband-Wissenschaftsnetz) existieren z.Z. folgende Bereiche:

Local Scope 239.255.x.x
BWIN-Site 239.254.x.x
BWIN-Region 239.193.x.x
BWIN-DE 239.192.x.x

Zur Untersuchung der MBONE-Infrastruktur gibt es eine Reihe von Management-Werkzeugen, von denen allerdings einige unter Unix nur durch den Nutzer root verwendet werden dürfen:

Das Konfigurieren eines Multicast-Routers auf der Basis von mrouted erfolgt durch die Konfigurationsdatei /etc/mrouted.conf. Hier ein Beispiel:

  # nicht-multicast Interface deaktivieren
  phyint ppp0 disable
  tunnel 192.1.2.3 192.7.8.9 metric 2 threshhold 32 rate_limit 500
Die folgenden beiden Kommandos gestatten die Überprüfung der korrekten Router-Einstellung:
  mrinfo host
  mtrace -I host multicast-address
Nachfolgend wollen wir uns noch ein Beispiel für die Multicast-Konfiguration in einem Cisco-Router ansehen. Die mit einem Ausrufezeichen beginnenden Zeilen sind Kommentare:
!Enable IP Multicast Routing
ip multicast-routing
!
!Configure  DVMRP Tunnel 0
interface Tunnel0
 description primary MBONE-DE to  Uni Erlangen
 ip address 10.0.1.1 255.255.255.0
!Enable PIM
 ip pim dense-mode
!Configure the TTL Threshold
 ip multicast ttl-threshold 32
!Control the Transmission Rate to a Multicast Group
 ip multicast rate-limit out 512
!Advertise networks (access list 6) to the DVMRP router
 ip dvmrp metric 1 list 6
! tunnel between cisco-cisco
 ip dvmrp unicast-routing
!Set the tunnel interface's source address
 tunnel source 188.1.7.14
!Set the tunnel interface's destination address
 tunnel destination 131.188.6.3
!
!Configure  DVMRP Tunnel 1
interface Tunnel1
 description MBONE-DE tunnel TU Berlin
 ip address 10.0.2.1 255.255.255.0
 ip mtu 1476
 ip pim dense-mode
 ip multicast ttl-threshold 32
 ip multicast rate-limit out 512
 ip dvmrp metric 1 list 6
 tunnel source 188.1.7.14
 tunnel destination 130.149.238.17
 tunnel mode dvmrp
!
!Configure  DVMRP Tunnel 2
interface Tunnel2
 description MBONE-DE tunnel TU Ilmenau
 ip address 10.0.3.1 255.255.255.0
 ip mtu 1476
 ip pim dense-mode
 ip multicast ttl-threshold 32
 ip multicast rate-limit out 512
 ip dvmrp metric 1 list 6
 tunnel source 188.1.7.14
 tunnel destination 141.24.4.9
 tunnel mode dvmrp
!
!Configure  DVMRP Tunnel 3
interface Tunnel3
 description MBONE-DE tunnel TU Dresden
 ip address 10.0.4.1 255.255.255.0
 ip mtu 1476
 ip pim dense-mode
 ip multicast ttl-threshold 32
 ip multicast rate-limit out 512
 ip dvmrp metric 1 list 6
 tunnel source 188.1.7.14
 tunnel destination 141.30.249.34
 tunnel mode dvmrp
!
!Configure  DVMRP Tunnel 4
interface Tunnel4
 description MBONE-DE tunnel Uni Hannover
 ip address 10.0.5.1 255.255.255.0
 ip mtu 1476
 ip pim dense-mode
 ip multicast ttl-threshold 32
 ip multicast rate-limit out 512
 ip dvmrp metric 1 list 6
!set metric offset (backup tunnel)
 ip dvmrp metric-offset in 5
 tunnel source 188.1.7.14
 tunnel destination 130.75.184.249
 tunnel mode dvmrp
!
!         
interface ATM1/0.200 multipoint
 ip address 134.109.200.254 255.255.255.0
 ip helper-address 134.109.2.246
!Enable PIM and IGMP
 ip pim dense-mode
 lane client ethernet N200
!
!only network 134.109.0.0
access-list 6 permit 134.109.0.0


Vertiefung:

Informationen zu IP-Multicast-Produkten, Herstellern usw.:

Buch zum Thema "MBONE":


© Uwe Hübner, Enrico Mowitz, 4.1.1999