Anzeige

Am Puls von Microsoft

Anzeige

[gelöst] Internetverbindungsfreigabe: Unzuverlässiger DNS Proxy

DAC324

kennt sich schon aus
Hallo alle,

gelegentlich nutze ich die Internetverbindungsfreigabe ("Gemeinsame Nutzung der Internetverbindung", "Internet Connection Sharing", ICS) um unterwegs die Internetverbindung via UMTS-Karte freizugeben (Hotspot).

Im Wesentlichen funktioniert das ganz gut mit folgendem Skript:
Code:
@echo off  && setlocal enabledelayedexpansion
rem *****************************************
rem * Startup Script for UMTS WLAN Hotspot  *
rem *****************************************
rem * creates a WLAN hotspot sharing UMTS   *
rem *****************************************
rem * Testversion 27.01.2015  (C) GR 2015   *
rem *****************************************
cd /d %~dp0

rem Here you can configure a different IP address for the access point
rem Default is 192.168.137.1
set APADDRESS=

rem Connection which provides Internet Access (to be shared)
set SHCONN1="Vodafone Mobile Broadband"
set SHCONN2="Mobile Broadband Connection"

rem Test which one of the mobile connections to be used
set NW=Down
call :GetStatus %SHCONN1% NW
rem echo %SHCONN1% is %NW%
set SHCONN=%SHCONN1%
if "%NW%" EQU "Down" (
     echo trying alternative...
     call :GetStatus %SHCONN2% NW
     rem echo %SHCONN2% is %NW%
)else goto :connect 

if "%NW%" EQU "Down" (
   echo both mobile interfaces down
   goto :end
) else (
   
   set SHCONN=%SHCONN2%
)
:connect
echo using %SHCONN% ...
rem WLAN Connection (Virtual WiFi Miniport) which should serve as hotspot
set APCONN="Wireless Network Connection 2"

rem reset WLAN adapter
echo Shutting down WLAN adapter
netsh interface set interface "name=Wireless Network Connection" admin = DISABLED
sleep 2

netsh interface set interface "name=Wireless Network Connection" admin = ENABLED
<nul set /p =Restarting WLAN adapter
:WAIT1
sleep 2
<nul set /p =.
netsh interface show interface "name=Wireless Network Connection" | find "Aktiviert" > nul
if errorlevel 1 goto WAIT1
echo.

for /F "tokens=3 delims=: " %%H in ('sc query SharedAccess ^| findstr "        STATE"') do (
  if /I "%%H" NEQ "RUNNING" (
   REM Put your code you want to execute here
   echo starting Internet Connection Sharing service...
   net start SharedAccess
   sleep 10
  )
)

rem Set the IP address for the access point (if configured)
if defined APADDRESS (
    for %%i in (ScopeAddress ScopeAddressBackup StandaloneDHCPAddress) do (
        REG ADD "HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters" /t REG_SZ /v %%i /d %APADDRESS% /f
    )
)

rem Switch off company proxy in case it was switched on
start "Proxy" regedit.exe /s proxy_biotest_aus.reg

rem set up virtual network adapter
netsh wlan set hostednetwork mode=allow ssid=PrivateNet key=myverysecretkey keyUsage=persistent

rem Enable Internet Connection Sharing
icsmanager enable %SHCONN% %APCONN%  force

rem Enable the hotspot
netsh wlan start hostednetwork
goto :end

rem Subroutines here
:GetStatus

set foundadapter=
for /f "tokens=1,2 delims=:" %%i in ( ' icsmanager info ' ) do (
    rem remove leading space from interface name
    set n=%%j
    set n=!n:~1%!
    if "!n!" EQU %1 set foundadapter=Y
  
    if defined foundadapter (
        set prf=%%i
        set prf=!prf:~0,6!
        
        if "!prf!" == "Status" (
            set st=%%j
            set st=!st:~1%!
            set %2=!st!
            echo %1 is !st!
            set foundadapter=
            exit /b
        )
    ) 
)

exit /b

:end
Die Verbindung wird aufgebaut, der Hotspot gestartet.

Das einzige Problem ist, dass die Weiterleitung von DNS-Anfragen der Clients aus dem WLAN nicht immer funktioniert. Man erkennt das sehr schön, wenn die Clients "kein Internetzugriff" bei ihrer WLAN-Verbindung zum Hotspot stehen haben. Eine Verbindung ist aber dennoch möglich, wenn man numerische IP-Adressen angibt - nur die Namensauflösung funktioniert nicht. Offenbar werden die DNS-Anfragen der Clients nicht ordnungsgemäß an den DNS des Providers weiter geleitet (oder die entsprechenden Antworten).

Wenn man nämlich auf den Clients statische DNS-Adressen einstellt, funktioniert alles problemlos.

Nun will ich nicht gerne auf allen Clients statische DNS-Adressen einstellen (insbesondere auf Mobiltelefonen etwas fummelig).

Kann man dem ICS irgendwie beibringen, welche DNS-Adressen via DHCP auszuliefern sind? Damit könnte man dieses Problem umgehen. Oder was kann man tun, um den DNS-Proxy etwas zuverlässiger funktionieren zu lassen? Meine Suche im Netz zu diesen Fragen blieb bisher leider ergebnislos.

In dem Zusammenhang konnte ich nur einen Hinweis finden, dass der "DNS Proxy Agent" manchmal nicht in der Lage ist, die DNS-Konfiguration der freizugebenden Verbindung auszulesen, insbesondere, wenn es sich um eine Einwählverbindung oder Mobilfunkverbindung handelt.

Deshalb habe ich auch schon probiert, den Dienst "Gemeinsame Nutzung der Internetverbindung" (SharedAccess) nach dem Aufbau der Mobilfunkverbindung neu zu starten. Allerdings kommt dann gleich mal gar keine Internetverbindung für die Clients zu Stande.

Vielen Dank schon mal für alle hilfreichen Hinweise und beste Grüße
DAC324
 
Anzeige
Hallo,

wie es aussieht, ist dieses Problem für den Großteil der Mitglieder hier im Forum eher uninteressant. Deshalb antworte ich mir mal selbst.
Die Probleme mit dem DNS Forwarding bei ICS scheinen nicht ganz selten zu sein, sind aber nicht immer nachvollziehbar. Man findet auch in den Supportforen für Software-Router hin und wieder entsprechende Anfragen.
Ursache des Problems scheint zu sein, dass der DNS Proxy Agent des ICS nicht immer in der Lage ist, die DNS-Konfiguration der Internetverbindung auszulesen. Das betrifft insbesondere Verbindungen mit automatisch zugewiesenen DNS-Adressen.

Mitunter reicht es schon, die Internetverbindung zu trennen und neu herzustellen bzw. das ICS aus- und wieder einzuschalten. Leider klappt das auch nicht immer beim ersten Versuch.

Eine mögliche Abhilfe wäre deshalb die statische Zuweisung von DNS-Adressen in den Eigenschaften der Internetverbindung (wie im Link erklärt).

Beste Grüße
DAC324
 
Zuletzt bearbeitet:
Anzeige
Oben