<div id="tutorialrahmen"> Was wird gemacht?: ...
Zielgruppe: ...
Dauer: ca. xx Minuten </div>

VirtuellesNetzwerk

Es gibt - insbesondere bei xBooks - Situationen, in denen es nützlich ist, das man seinen Mac unter einer oder mehrerer IP Adressen ansprechen kann, auch wenn keine physikalische Netzwerkverbindung besteht.

Ein Beispiel wäre das Testen von Zugriffen auf Apache unter verschiedenen Adressen auf Reisen.

Dazu hab ich mir einen Hack ausgedacht, den ich hier kurz demonstriere. Der Trick besteht darin, das Loopbackinterface, das immer zur Verfügung steht, mit virtuellen Adressen zu versehen.

Wie geht das

Dazu kann man ein Skript schreiben, das ich euch hier zeigen möchte. Ich habe es "ping-me" genannt.

 #!/bin/sh
 #
 # ping-me
 # richtet alias Adressen auf dem Loopback Interface ein
 # 2004-03-28
 # maceis
 #
 # 2do: Kontrollstrukturen einbinden
 # 2do: Kontrolle der Subnetzmaske über Parameter
 # 2do: Funktion zum Aufheben der Zuweisung einbinden
 # 2do: Benutzerführung einbinden
 #
 for i in $*
 do
 ifconfig lo0 $i/24 alias
 done

Wie Ihr seht, ist das nur die Basis. Komfort und Sicherheit kan man aber auch noch erweitern, doch darum geht es hier erstmal nicht Der Aufruf funktioniert so:

 ping-me ip-adresse1 [ ip-adresse2 ... ]

Es wird eine bzw. mehrere alias Adresse/n im Bereich der Klasse C angelegt. Das heisst, die Subnetzmaske ist 255.255.255.0. Wer andere Subnetzmasken benötigt muss dazu den Wert "/24" entsprechend ändern.

Die Schreibweise ip-Adresse/n ist vielleicht nicht allen bekannt. Sie kommt aus dem sog. Classless InterDomain Routing (CIDR)

 /24 entspricht 255.255.255.0 = 11111111.11111111.11111111.00000000
 /16 entspricht 255.255.000.0 = 11111111.11111111.00000000.00000000

und so weiter, wobei hinten immer die binär Schreibweise dargestellt ist. Die Anzahl der Einsen = n ergibt /n Beim CIDR sind auch solche Subnetzmasen wie zB 255.255.192.0 möglich (wäre dann /18)

Zu guter Letzt gibt es noch ein Beispiel, bei dem man sieht, dass das Skript natürlich mit sudo aufgerufen werden muss. chmod + x ist natürlich klar, aber auf das SUID-Bit würde ich aus Sicherheitsgründen in jedem Fall verzichten

 PHP-Code:


 [saturn:~/bin/_tests] maceis% sudo ./ping-me 192.168.100.45 192.168.100.46 192.168.100.47
 [saturn:~/bin/_tests] maceis%
 [saturn:~/bin/_tests] martin% ifconfig lo0
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
         inet6 ::1 prefixlen 128
         inet6 fe80::1 prefixlen 64 scopeid 0x1
         inet 127.0.0.1 netmask 0xff000000
         inet 192.168.100.45 netmask 0xffffff00
         inet 192.168.100.46 netmask 0xffffff00
         inet 192.168.100.47 netmask 0xffffff00

Die Adressen sind übrigens nur temporär zugewiesen nach einem Neustart ist alles wieder beim Alten. Die netmask wird hier wie bei "ifconfig" üblich als hex-Wert ausgegeben.

====

Kategorie

Tutorials, MacGyver


Zuletzt geändert am 19.10.2005 19:15 Uhr von Hombre ( Besuche)

© 2004 – 2024 ApfelWiki

Impressum - Datenschutz

cb