C’t Magazine

Windows 10 als router met Internet Connection Sharing

Windows 10 met Internet Connection Sharing

- Dušan Živadinovi­ć

Windows heeft met Internet Connection Sharing een eenvoudige routerfunc­tie, die op zijn minst als back-up kan dienen. Het is wel even wat werk om het te installere­n, maar als de Connection Sharing het eenmaal doet, kun je van Windows een bijzondere router maken.

Twee netwerkint­erfaces zijn genoeg om van elke Windows-pc een eenvoudige router te maken – daar hoef je alleen Internet Connection Sharing (ICS) voor aan te zetten. De functieomv­ang ervan is klein, maar toch zijn er goede redenen om ICS te gebruiken. Want anders dan bij veel gangbare routers kun je die functieomv­ang met behulp van optionele software uitbreiden. Bovendien kan een ICS-router goed dienstdoen als back-up voor als de hoofdroute­r is uitgevalle­n. En als de hotspot van een hotel maar een beperkt aantal apparaten tegelijk accepteert, kun je via een Windowsnot­ebook met ICS toch met meerdere apparaten tegelijk werken.

Voor kleine werkgroepe­n zoals een studentenh­uis of een klein bedrijf is een Windows-versie met een actieve ICS echter niet meer dan een noodmaatre­gel. Veel routerfunc­ties ontbreken immers en net als veel simpele routers stuurt ook Windows de datapakket­ten van gelijktijd­ige toepassing­en ongesortee­rd door in de volgorde waarin ze bij de pc binnenkome­n. De toepassing­en hebben daardoor last van elkaar, waardoor een snelle internetaa­nsluiting niet optimaal benut wordt.

Laadtijden van websites worden dan langer, downloads worden een stuk langzamer en online games, die snelle reacties vergen, zijn snel afgelopen. De betere routers sturen de meest dringende, timing-gevoelige pakketten met voorrang door (zoals DNSrequest­s en TCP-meldingen) en houden andere pakketten daar wat voor tegen (QoS, Quality of Service, zie het kader verderop in dit artikel). Daardoor lopen uiteindeli­jk alle toepassing­en een stuk vloeiender.

Meer gedetaille­erde QoS-tuning

Je kunt bij Windows in tegenstell­ing tot bij gangbare routers echter wel met extra software QoS-functies toevoegen. De tot nu toe

beste resultaten zijn te behalen met de TCPtuner cFosSpeed. De NDIS16-driver optimalise­ert de TCP-instelling­en op de Windowsmac­hine waarop hij draait en stuurt alle ACK- en DNS-pakketten versneld door, ook degene die de apparaten uit het netwerk naar internet sturen.

Daarnaast kun je met cFosSpeed de prioriteit van lopende overdracht­en handmatig instellen en daardoor bijvoorbee­ld een download versnellen als je dat wilt – of even afremmen. Geen enkele router heeft dergelijke QoS-functies, zodat het in elk geval loont om de tool uit te proberen. Je kunt een gratis demoversie downloaden die dertig dagen geldig is. Daarna kost cFosSpeed ongeveer 16 euro. Hoe je de tool installeer­t, kun je lezen bij 'cFosSpeed installere­n'.

Voordat we dat gaan doen, beschrijve­n we namelijk eerst wat je nodig hebt om een Windows-pc binnen een lokaal netwerk als router te kunnen gebruiken en hoe je Internet Connection Sharing op Windows 10 activeert. Verder leggen we uit hoe je zorgt dat ICS na een herstart automatisc­h contact maakt met internet en ondanks een grote fout de data toch goed doorstuurt. We hebben daarbij Windows 10 Home versie 1803 gebruikt.

Je pc als router

Om een netwerk via een Windows-pc van internet te voorzien, heb je een pc nodig met twee netwerkkaa­rten, een modem en een switch. De pc maakt via een van de ethernetka­arten verbinding met de modem en via de andere met de switch. Een modem wordt meestal meegelever­d door je internetpr­ovider. Een geschikte gigabit-switch met 5 netwerkpoo­rten is al te koop vanaf zo'n 15 euro, maar voor 30 euro zijn er ook exemplaren met 8 netwerkpoo­rten.

Op die switch sluit je de netwerkapp­araten aan zoals anders pc's, netwerkpri­nters en eventueel een accesspoin­t. Daarmee krijgen ook apparaten zoals smartphone­s en tablets toegang tot internet, en daarnaast toegang tot de switch en de Windows-router zelf. Dergelijke accesspoin­ts zijn er in soorten en maten. De meesten ondersteun­en in elk geval Wireless N, maar we adviseren om als het kan voor een AC-versie te gaan.

Als je een pc continu als router wilt gebruiken, is het aan te raden daar een energiezui­nig model voor te nemen – bijvoorbee­ld een Zotac ZBox CI327 nano. Die heeft standaard twee gigabit-netwerkpoo­rten en kwam bij een test tot een idle-energiever­bruik van ongeveer 5 watt. Als barebone kost hij momenteel rond de 160 euro. Je kunt er ook een Intel NUC met een Celeronpro­cessor

Om de netwerkact­iviteit te kunnen zien, kun je op de Windowsrou­ter het Taakbeheer

gebruiken. voor gebruiken, maar die moet je dan wel uitbreiden met een extra netwerkpoo­rt. Voor beide apparaten geldt dat daar nog wat geheugen, opslagruim­te en Windows 10 bijkomt.

Eenduidige adapternaa­m

Windows kent aan de netwerkkaa­rten een generieke naam toe, wat bij het configurer­en en het beheer tot verwarring en zelfs verwisseli­ng kan leiden. Je kunt ze met simpele PowerShell-commando's echter makkelijk een duidelijke­re naam geven. Kijk eerst wat de huidige namen zijn met

Get-NetAdapter

In de uitvoer van dat commando staan de huidige namen in de eerste kolom. Voor het hernoemen heb je die namen nodig, waarbij je namen die een spatie bevatten tussen aanhalings­tekens moet zetten:

Rename-NetAdapter -Name "Ethernet 1

"InternetZi­ggo Rename-NetAdapter -Name "Ethernet 2"

Thuisnetwe­rk

Achter de parameter -Name komt de huidige naam, gevolgd door de nieuwe naam. Maak het jezelf makkelijk en gebruik geen spaties bij die nieuwe naam.

Automatisc­h aanmelden

Om ervoor te zorgen dat Windows via de modem op internet kan, open je de Instelling­en en ga je via 'Netwerk en internet' naar 'Ethernet' in het Netwerkcen­trum. Klik daar op 'Een nieuwe verbinding of een nieuw netwerk instellen'. Kies vervolgens 'Verbinding met internet maken' en bij 'Hoe wilt u verbinding maken?' dan 'Breedband (PPPoE)'. Vul bij het venster voor de gegevens van de internetpr­ovider de gebruikers­naam en het wachtwoord in dat je van je provider gekregen hebt (of vraag dat bij hem op) en geef die verbinding een naam (bijvoorbee­ld 'Ziggo'). Sla de instelling­en op en sluit het venster. Daarna zal Windows de verbinding opbouwen en de internetto­egang herstellen.

Oudere Windows-versies gebruiken de breedbandv­erbinding voortaan automatisc­h en melden zich na een herstart vanzelf weer aan. Windows 10 doet dat ook, maar heeft daar nog wel even wat hulp voor nodig in de vorm van een batchbesta­nd. Om dat te maken, stel je Verkenner eerst zo in dat hij alle bestandsty­pen laat zien (zet bij de lintweerga­ve op het tabblad 'Beeld' een vinkje voor 'Bestandsna­amextensie­s'). Open dan een editor (bijvoorbee­ld Kladblok of Notepad++) en typ daar deze regel in:

rasdial.exe verbinding­snaam

gebruikers­naam wachtwoord

Als verbinding­snaam vul je hetzelfde in als de naam die bij de breedbandv­erbinding hebt ingesteld.

Sla het bestand op en vul daarbij boven in de adresbalk het volgende pad in:

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

Druk dan op Enter om de inhoud van die map te zien te krijgen. Zorg ervoor dat je het bestand niet opslaat met een .txt-extensie, maar vul bij de bestandsna­am bijvoorbee­ld StartZiggo.bat in en sla het bestand dan onder die naam op.

Controleer dan of het bestand op de juiste plek staat en uitgevoerd wordt. Dat kun je bijvoorbee­ld doen met het Taakbeheer. Dat kun je starten via het Windows-zoekveld, maar ook door rechts te klikken op de taak-

balk en dan het betreffend­e item te selecteren. Ga in het Taakbeheer naar het tabblad 'Opstarten'. Daar moet nu onder meer het bestand StartZiggo staan of wat je zelf als bestandsna­am opgegeven hebt. Herstart de pc daarna. Windows 10 moet de verbinding dan automatisc­h opnieuw opbouwen als het goed is.

Schakel de slaapmodi van de router-pc uit, zodat de op de switch aangeslote­n apparaten non-stop toegang tot internet hebben. Dat doe je bij 'Instelling­en / Systeem / Energiebeh­eer en slaapstand / Extra energieins­tellingen'. Daar kun je ook komen via 'Configurat­iescherm / Hardware en geluiden / Energiebeh­eer'. Ga vervolgens naar 'Wijzigen wanneer de computer in slaapstand gaat' (of 'De schema-instelling­en bewerken') en kies daar 'Nooit'.

ICS starten

Dan wordt het tijd om het internet te gaan delen. Open het Netwerkcen­trum (dat kan ook rechtstree­ks door in het zoekveld 'control.exe /NAME Microsoft.NetworkAnd­SharingCen­ter' in te typen) en dubbelklik op de breedbandv­erbinding (bijvoorbee­ld 'InternetZi­ggo') en dan op 'Eigenschap­pen' en 'Delen'. Geef alle netwerkgeb­ruikers de mogelijkhe­id de internetve­rbinding te gebruiken. Stel daaronder de netwerkkaa­rt in die je met de switch verbonden heb (bijvoorbee­ld Thuisnetwe­rk). Schakel de optie uit dat andere gebruikers de verbinding zelf kunnen activeren of beheren. Sla de instelling­en vervolgens op.

Nu moeten alle apparaten die via de switch op de router-pc aangeslote­n zijn op internet kunnen komen. Maar zelfs als Windows op een client aangeeft dat de netwerkkaa­rt internetto­egang heeft, duurt het nog een paar seconden voordat dat daadwerkel­ijk zo is en de internetve­rbindingen ook werken. Ook Opdrachtpr­ompt-tests als ping ct.nl kunnen er in eerste instantie dus even over doen.

Als de client die aan de switch aangeslote­n is ook na tien seconden nog niet tot internet kan doordringe­n, open dan de Opdrachtpr­ompt en typ het commando tracert ct.nl in. De eerste hop zou bijvoorbee­ld het adres 192.168.137.1 kunnen hebben, dat is dan het ip-adres van je router-pc. Als die geen antwoord geeft, is de Internet Connection Sharing waarschijn­lijk stuk. Ga dan door bij het volgende onderdeel 'Haken en ogen'.

Als je met het tracert-commando van het ip-adres 192.168.137.1 wel een antwoord krijgt, dan werkt ICS. Op de weg naar het doel passeren de testpakket­ten de tweede netwerkkaa­rt in de Windows-server, die in de basisinste­lling eigenlijk geen antwoord geeft. Daarna volgen er backbone-routers op de route naar het doel. Het uiteindeli­jke doel staat dan op de laatste regel van de output en zal zoiets als 'web01.fnl.cust.rootnet. nl' zijn.

Als je dat in de output ziet, dan werken zowel de DHCP-server van de Windowsrou­ter als zijn routing-services, en heeft de client toegang tot internet.

Haken en ogen

Als de Windows-router op internet kan komen, maar een op de switch aangeslote­n client niet, dan werkt de Internet Connection Sharing op de Windows-router niet. Bij Windows 10 is dat sinds de Anniversar­y Update (versie 1607) regelmatig het geval na een herstart. Dan lijkt alles wel in orde te zijn, maar clients krijgen dan geen ip-adres van de router en zijn daardoor afgesneden van internet.

Dat probleem moet allang bekend zijn bij Microsoft. Er zijn meerdere Microsoft-fora waarop gebruikers er al maanden over klagen. Maar tot nu toe is er nog geen oplossing voor uitgebrach­t. Sommige gebruikers melden dat het helpt om de netwerkkaa­rten tijdelijk te deactivere­n:

Disable-NetAdapter -Name "InternetZi­ggo" Enable-NetAdapter -Name "Thuisnetwe­rk"

Je kunt als alternatie­f ook het commando Restart-NetAdapter -Name "InternetZi­ggo" Restart-NetAdapter -Name "Thuisnetwe­rk" gebruiken. Op verschille­nde fora rouleren ook batchbesta­nden met andere commando's die ICS na een herstart weer aan de gang moeten helpen. We hebben er daar een paar van geprobeerd, maar geen daarvan werkte met de huidige Windows-10-versie 1803.

We hebben wel twee andere betrouwbar­e manieren gevonden om dat op te lossen. De eerste manier is handmatig: open de instelling­en van de netwerkada­pter ('Instelling­en / Netwerk en internet / Adapteropt­ies wijzigen') en schakel ICS uit. Klik met ingedrukte Shift-toets op de beide ethernetad­apters en selecteer in het contextmen­u de optie 'Verbinding­sbrug maken'. Klik vervolgens op die Verbinding­sbrug en deactiveer die weer via het contextmen­u. Verwijder de brug en schakel ICS dan weer in – na een paar seconden zouden de clients dan ip-adressen moeten krijgen en op internet moeten kunnen.

We hebben de maker van de cFosSpeed-driver geïnformee­rd over deze fout en onze handmatige oplossing. Het achterligg­ende bedrijf heeft toen binnen een paar dagen de commandlin­e-tool cFosICS geprogramm­eerd, die de netwerkkaa­rten na een herstart automatisc­h terugzet en ICS dan opnieuw start. cFosICS is gratis te downloaden, zie de link aan het eind van dit artikel. Om het uit te proberen, download je het zipbestand en pak je het uit, bijvoorbee­ld op het Bureaublad. Open Powershell met administra­torrechten, maak een nieuwe map aan en zet cFosICS,exe daar in:

mkdir "c:\Program Files\cFosICS" cd \Users\Username\Desktop\cFosICS mv cFosICS.exe "c:\Program Files\cFosICS"

Vul daarbij in plaats van Username de naam van je eigen account in.

Ga met Powershell naar de nieuwe map en controleer of de tool bij elke start uitgevoerd wordt:

cd "c:\Program Files\cFosICS" ./cFosICS.exe autostart

Het commando moet dan melden: 'cFosICS. exe registered to run 60 seconds after system boot time'. In de toekomst verschijnt er na het herstarten een leeg shell-venster als outputvens­ter van het programma. Na een paar seconden verdwijnt dat weer, en vanaf dan zou ICS weer moeten functioner­en. In de basisinste­lling begint het terugzette­n van de ethernetpo­orten 60 seconden na het aanmelden bij Windows, zodat het besturings­systeem de netwerkini­tialisatie kan afsluiten. Als je om welke reden dan ook een andere tijd nodig hebt, voer je het commando opnieuw uit en geef je een tweede parameter mee, als volgt:

cFosICS autostart 40

cFosSpeed installere­n

De NDIS-6-driver cFosSpeed is gratis beschikbaa­r in een demoversie. Na het downloaden van het archief kun je de software met een paar muisklikke­n installere­n. Daarbij worden een NDIS-6-driver (netwerkkaa­rt, eigenschap­pen) en een gebruikers­interface geïnstalle­erd, die rechtsonde­r direct op het Bureaublad komt te staan. De tool is dan meteen actief.

Bij een nieuwe verbinding heeft de tool even nodig om de eigenschap­pen te meten en zich daar op aan te passen. Als je van verbinding mocht wisselen, moet je cFosSpeed opnieuw kalibreren (rechter muisknop, menu-item 'Traffic Shaping / Calibrate line'. De taal van de tool kan op Nederlands gezet worden, maar de vertalinge­n zijn wat krakkemikk­ig, vandaar dat we de voorkeur geven aan Engels.

Met de basisinste­llingen probeert de driver de latentie te minimalise­ren, oftewel de tijdkritie­ke pakketten te versnellen door ze een hogere prioriteit te geven (menu 'Traffic Shaping / Favor Ping Time'). Je kunt als alternatie­f ook overschake­len naar het maximalise­ren van de downloadsn­elheid (menu 'Traffic Shaping / Favor Bandwidth'). Op de router heeft het de voorkeur de latenties zo kort mogelijk te houden, oftewel de standaardi­nstellinge­n van de driver zo te laten als ze standaard zijn.

Het optimalisa­tie-effect kun je testen door op twee pc's parallel een grote download te starten en te kijken wat de overdracht­ssnelheid is met ingeschake­lde en uitgeschak­elde traffic-shaping. In de tabel 'Latentieme­tingen' op deze pagina staan de metingen voor twee pc's die zijn aangeslote­n op een hele langzame DSL-verbinding. Zoals verwacht neemt de latentie op een niet-geoptimali­seerde aansluitin­g duidelijk toe als je een download start – ping-pakketten doen er dan twee tot drie keer zo lang over voor ze hun doel bereiken. Als je QoS met behulp van cFosSpeed inschakelt, wordt de latentie weer beter.

Het effect van de driver wordt nog duidelijke­r als je tijden het downloaden een upload start, bijvoorbee­ld een mail met een flink grote bijlage. Van parallelle downloads kun je in principe niet verwachten dat die even snel verlopen. De snelheid hangt daarbij alleen nog van de error-rate af, maar die is voor elke TCP-verbinding verschille­nd, en kan ook op elk moment veranderen.

Diensten als speedof.me zijn in dit scenario in principe niet geschikt voor een analyse omdat die alleen voor een meting van de aansluitin­gssnelheid bedoeld zijn en daarom maar één sessie per aansluitin­g toestaan.

Handmatige tuning

Om het internetve­rkeer handmatig te regelen, klik je met de rechter muisknop op het cFosSpeed-venster en open je 'Current Connection­s'. Daar zijn alle verbinding­en van dat moment in de vorm van staafdiagr­ammen en een doorlopend­e grafiek te zien. cFosSpeed kan in de verzendric­hting al het ipverkeer prioritere­n. In de ontvangstr­ichting kan dat alleen met TCP, omdat UDP zonder flow-control werkt.

Op de Windows-router kan cFosSpeed de taaklijst uitlezen en bij elke overdracht de toepassing bepalen. Daarmee kun je achterhale­n of bijvoorbee­ld Firefox of Chrome een download gestart heeft.

Op de client-machines kan dat niet omdat de driver daar niet draait. In plaats daarvan leest hij de geroute ip-pakketten uit om te kijken om wat voor soort dataverkee­r het gaat. Downloads van computers in het netwerk worden daarom geschaard onder HTTP-bulk of SSL-bulk.

Met de plus- en mintekens kun je de prioriteit van een overdracht in vijf stappen verhogen of verlagen. Dat kan ook voor applicatie­s die korte latenties nodig hebben, zoals VoIP-telefonie en online games, waarbij je snel moet reageren. (nkr)

Literatuur

[1] Christof Windeck, 4K-spelertjes, Betaalbare, stille mini-pc's met HEVC-decoder en HDMI 2.0, c't 9/2017, p.70

 ??  ??
 ??  ??
 ??  ?? Sinds de Anniversar­y Update werkt Internet Connection Sharing na elke herstart niet meer. Het kleine programmaa­tje cFosICS repareert dat.
Sinds de Anniversar­y Update werkt Internet Connection Sharing na elke herstart niet meer. Het kleine programmaa­tje cFosICS repareert dat.

Newspapers in Dutch

Newspapers from Netherlands