Wie lege ich eine IP-Adresse für die TUN-Schnittstelle unter OSX fest (ohne Zieladresse)?

8

Wie lege ich eine IP-Adresse für eine TUN-Schnittstelle unter OSX fest? Ich kann nicht herausfinden, wie man eine IP-Adresse für meine Schnittstelle einrichtet, ohne eine Ziel-IP anzugeben. Ich möchte das nicht tun - ich möchte mehr oder weniger zu einem späteren Zeitpunkt einen Tunnel zu einer beliebigen Adresse aufbauen. Vorherige Fragen, die nicht hilfreich sind:

  1. Es gibt eine Frage eine unklare Antwort, also habe ich versucht, der Referenz zu folgen.
  2. Diese Frage setzt a Point-to-Point-IP-Adresse für ein Tun-Gerät, so hat es ein Ziel, das ist genau das, was ich nicht will.

Auf der Seite für osxtuntap steht:

%Vor%

Ich kann dies nicht mit OSX 10.6 für eine TUN-Schnittstelle machen:

%Vor%

Das Hinzufügen einer Netzmaske hilft nicht - OSX scheint eine Zieladresse zu verlangen:

%Vor%

Für Linux verstehe ich, wie es funktioniert. Laut dieser Seite öffnen Sie () die Schnittstelle und verwenden Sie den Befehl ip und Tun Sie dies, und ich habe dies zuvor mit null Problemen gemacht:

%Vor%

Alles, was ich tun möchte, ist dasselbe, was ich in Linux tun kann.

BEARBEITEN:

Ich schreibe eine kleine UDP-Tunnel-App. Wie so:

tun1 - & gt; UDP-App # 1 - & gt; UDP-Tunnel - & gt; UDP-App # 2 - & gt; tun2

Wenn sich die udp-Apps auf verschiedenen Computern befinden (zum Beispiel lokal und remote), möchte ich ihre jeweiligen tun-Geräte mit einer IP-Adresse verknüpfen, damit ich ein Paket von lokal nach remote über den Tunnel senden kann, indem ich das Paket an die IP-Adresse des Tun-Geräts auf dem Entfernungscomputer.

Um mehr aus dem Linux-Lernprogramm zu entlocken, richtet der Autor ein tun-Gerät auf local und remote ein, verknüpft ips und führt eine einfache Tunneling-App aus und pingt dann das andere Ende des Tunnels:

%Vor%     
nflacco 07.07.2013, 07:09
quelle

1 Antwort

9

Standardmäßig arbeiten tun-Geräte im Layer-3-Modus, auch Point to Point genannt. Sie fragen nach dem Layer 2-Modus, der einem generischen Ethernet-Gerät ähnlicher ist. Linux ruft diese Tap-Geräte auf. In OpenBSD können Sie mit "ifconfig tun0 link0" ein Tun-Gerät in den Layer-2-Modus schalten. Der Macintosh-tuntaposx-Treiber ahmt Linux-Gerätescheime nach; Öffne stattdessen ein Tap-Gerät.

Sie können Ссылка überprüfen, um festzustellen, ob Sie Geräte wirklich tippen möchten. Sie fügen ein wenig Overhead hinzu. Wenn Sie nur zwei Felder benötigen, um IP-Pakete untereinander zu übertragen und kein Bridging oder Broadcasting zu einem größeren Subnetz durchzuführen, sollte Punkt zu Punkt ausreichend sein.

Wenn Sie beispielsweise zwei Maschinen haben, eine mit "local" mit einer LAN-IP-Adresse wie 192.168.0.12 und eine andere mit "remote" mit einer LAN-IP-Adresse wie 192.168.1.14, können Sie Tunnel-IP-Adressen zuweisen so:

%Vor%

auf dem lokalen System und:

%Vor%

auf dem Remote-System. Beachten Sie die umgekehrte Perspektive auf dem Remotecomputer. Setzen Sie Ihren Punkt nicht auf Punktadressen zu irgendetwas in einem vorhandenen Subnetz; es wird nicht richtig routen.

Ich kann das nicht genug betonen: lese und lese die Manpages ("man ifconfig" und "man tun", wahrscheinlich andere) noch einmal, bis sie Sinn ergeben. Meine obigen ifconfig-Beispiele unterscheiden sich möglicherweise geringfügig von Ihrem Betriebssystem.

Und für eine andere Perspektive könnten Sie in GRE-Tunnel schauen, da ihre Funktionalität das widerspiegelt, was Sie für Ihr Programm beschreiben. Allerdings ist GRE in heutigen TCP-zentrischen Netzwerken wahrscheinlich nicht praktikabel, noch ist es aufgrund von großen Sicherheitsproblemen eine gute Idee.

Wenn es Ihr Ziel ist, eine übermächtige Firewall zu umgehen, beachten Sie, dass viele solcher Firewalls UDP-Pakete (und insbesondere GRE-Pakete) blockieren. Versuchen Sie in einem solchen Fall SSH-Schnittstellen-Tunneling, um tun / tap-Schnittstellen einzurichten und Pakete weiterzuleiten. Sie erhalten Verschlüsselung und optional auch Komprimierung. :)

    
dobbs 07.07.2013, 12:06
quelle

Tags und Links