Netzlaufwerk automatisch einbinden - Überprüfung LAN oder VPN

Zazu12

Newbie
Registriert
Aug. 2018
Beiträge
2
Guten Tag zusammen!

Ich bin gerade dabei mein Netzwerk etwas auszubauen und habe im Netz keine passenden Hilfestellungen gefunden - folgendes Problem:

Im lokalen Netzwerk ist eine NAS eingebunden, welche ich auch ohne Probleme einbinden kann. Da die Daten auch von extern erreichbar sein müssen, habe ich einen VPN-Server dazu installiert. Die Verbindung zum VPN-Server funktioniert - ebenso das einbinden der Netzwerklaufwerke über VPN.

Was ich möchte:
Eine Lösung/ Batch-Datei, die überprüft in welchen Netzwerk sich das Notebook befindet.
1. Internes Netzwerk --> Automatisches Verbinden der Netzwerklaufwerke (\\10.10.10.2\share1)
2. Externes Netzwerk - VPN aktiv: --> Automatisches Verbinden der Netzwerklaufwerke (\\10.8.0.1\share1)


Kann mir wer dazu eine kleine Hilfestellung geben?
Ich bedanke mich schon vorab für Lösungsvorschläge.
 
Hi,

wieso nicht einfach beide einbinden bzw. eingebunden lassen? Stört ja nicht wenn einer fehlschlägt, oder?

VG,
Mad
 
Hi,

Gib den NAS einen Namen. Wenn der Name in beiden Netzen aufloesbar ist auf die entsprechende IP brauchst Du nur eine Laufwerksverbindung. Oder bau Dir ein Script, was den Namen auf die entsprechende IP aufloest und das per IP mountet.

BFF
 
Gibt verschiedene Möglichkeiten:
-Prüfen, welche IP verfügbar
-Prüfen, welche IP per DHCP zugewiesen wurde
-Prüfen ob der VPN-Dienst gestartet ist
etc. etc.

Code:
@echo off
ping /n 1 10.8.0.1
if errorlevel 1 goto DAHEIM

REM VPN AKTIV / NICHT DAHEIM
net use z: \\10.8.0.1\share1
goto ENDE

:DAHEIM
REM Zuhause / kein VPN
net use z: \\10.10.10.2\share1
goto ENDE

:ENDE
Exit
 
Wenn du eine VPN-Verbindung aufbaust, dann bist du doch im selben Netz wie die NAS?!
Mit was hast du den VPN-Tunnel realisiert und wo ist er eingerichtet?
 
Ach ich will mal nicht so sein. ;)

PHP:
#include <WinNet.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>
#include <Inet.au3>

; Unmount all existing network drives

$var = DriveGetDrive ( "NETWORK" )

If Not @error Then
    For $i = 1 to $var[0]
        DriveMapDel($var[$i])
    Next
EndIf

sleep(1000)

TCPStartup()

$nas = "DCDNK"

; Convert Name to IP

$var = TCPNameToIP($nas)

If $var Then

; Mount network drive

DriveMapAdd("H:", "\\" & $var & "\Documents", 0)

    If Not @error then
        TrayTip("", "Drive H: is ready.", 20)
        Sleep(10000)
    EndIf
Else
    Msgbox(0+16,"Warning!","Drive H: not avaiable!")
EndIf

TCPShutdown()

Exit

; End of script

Das ist mein Krams in AutoIT. Umbauen/Kompilieren musst Du selbst. :D

BFF
 
Madman1209 schrieb:
Hi,

wieso nicht einfach beide einbinden bzw. eingebunden lassen? Stört ja nicht wenn einer fehlschlägt, oder?

VG,
Mad

Bei einem Netzlaufwerk wäre das eine "schlampige Lösung", mit der ich Leben könnte. Allerdings werden mehrere Netzwerklaufwerke eingebunden - wenn dort immer alle Doppelt sind, wirds mit der Zeit unübersichtlich.

___

snakesh1t schrieb:
Wenn du eine VPN-Verbindung aufbaust, dann bist du doch im selben Netz wie die NAS?!
Mit was hast du den VPN-Tunnel realisiert und wo ist er eingerichtet?

Umgesetzt ist die VPN-Verbindung mit dem QNAP-eigenen OpenVPN Server, beim Notebook ist der Client von OpenVPN installiert.

Wie erwähnt - ich bin zwar im selben Netzwerk, dennoch ist die NAS nur über die IP-Adresse der VPN-Verbindung erreichbar (10.8.0.1) und nicht wie beim lokalen LAN (10.10.10.2).

___

@BFF - vielen Dank, seh ich mir gleich in Ruhe an und versuche den Code zu verstehen. Vlt. kannst du mir noch kurz helfen, wie ich das Kompilieren muss? In eine Batch-Datei?
 
Man kann in der client.conf auch via route-up Skript direkt beim Verbinden des VPNs ein Netzlaufwerk per Batch anbinden - da das ja nur bei VPN der Fall wäre, eben auch direkt mit der VPN-IP.

Ansonsten könnte man auch eine separate Batch für das Netzlaufwerk bauen, die explizit den VPN Tunnel prüft. Rudimentär könnte das mittels Ping geprüft werden oder gar etwas komplexer über die Management-Konsole des OpenVPN Dienstes. Das ist ein Telnet-Server, der mit dem VPN gestartet wird und somit externe Kontrolle über den Tunnel gibt. Darüber kann man zB den Status des Tunnels, etc. abfragen oder gar von außen einen programmatisches Reconnect auslösen.

Der Ping ist sicher am einfachsten und solange man die übrigen Funktionen des Management Interfaces nicht braucht, ist es den Aufwand nicht wert - machbar ist es dennoch.

Aber: Wenn der Server selbst das Netzlaufwerk stellt, kann man ihn in der Regel bzw. mit ein paar Anpassungen auch direkt anbinden, über die IP im heimischen Netzwerk. Füge der client.conf und/oder server.conf eine entsprechende Route ins Heimnetz hinzu und der Client wird auch die 10.10.10.2 anbinden können, ganz wie daheim ohne VPN.
Das geht prinzipiell auch wenn das Netzlaufwerk nicht auf dem VPN-Server läuft, sondern auf einem anderen Gerät im Netzwerk, aber dann kommen die dortige Firewall und/oder das NAT im VPN-Server ins Spiel.
Ergänzung ()

Freihand am Handy:

client.conf --> route 10.10.10.0 255.255.255.0

Das müsste das 10.10.10er Subnetz implizit über 10.8.0.1 routen, den VPN-Server. Den Server selbst müsstest du dann sowohl mit 10.8.0.1 als auch mit seiner 10.10.10er IP ansprechen können. Sonstige Geräte im Heimnetzwerk antworten allerdings nicht zwangsläufig, weil hinter dem Server dann u.a. das Routing stimmen muss - oder der Server macht quick'n'dirty einfach NAT vom VPN Tunnel ins Heimnetz.
 
Zuletzt bearbeitet:
Zurück
Oben