Virtuelles Netzwerk einrichten

Dieses Thema im Forum "MacUser Tipps und Tricks" wurde erstellt von maceis, 28.03.2004.

  1. maceis

    maceis Thread Starter MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    hallo zusammen,

    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 Loobbackinterface, das immer zur Verfügung steht mit virtuellen Adressen zu versehen.

    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 :D
    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:
    [saturn:~/bin/_testsmaceissudo ./ping-me 192.168.100.45 192.168.100.46 192.168.100.47
    [saturn:~/bin/_testsmaceis%
    [
    saturn:~/bin/_testsmartinifconfig lo0
    lo0
    flags=8049<UP,LOOPBACK,RUNNING,MULTICASTmtu 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
     
    Zuletzt bearbeitet: 28.03.2004
Die Seite wird geladen...

Diese Seite empfehlen