Rou­ting Tabel­len mit der PowerS­hell

Im letz­ten Blog­ein­trag haben wir uns ange­se­hen, man den ipcon­fig Befehl aus der CMD Shell mit der PowerS­hell ablö­sen kann.

In die­sem Blog­ein­trag schauen wir uns an, wie man den route Befehl aus der CMD Shell mit der PowerS­hell ablö­sen kann.

In der Rou­ting Tabelle wer­den Regeln hin­ter­legt, mit denen ein Daten­pa­ket den bes­ten Weg zum nächs­ten Ziel fin­det. Jede Zeile in der Rou­ting Tabelle beinhal­tet fol­gende Infor­ma­tio­nen:

  • Die Netz­adresse und Sub­netz­maske (Die Defi­ni­tion des Netz­werk­be­reichs, für den die Route gilt)
  • Das Gate­way (next hop – die Adresse an, die das Paket wei­ter­ge­lei­tet wird)
  • Die Schnitt­stelle (das Netz­werk­in­ter­face, wel­ches die Daten trans­por­tiert)
  • Die Metrik (Die Gewich­tung der Route. Wenn meh­rere Rou­ten zum Ziel füh­ren, wird die mit der kleins­ten Metrik genutzt)

Um sich in der CMD Shell die aktu­el­len Rou­ten anzei­gen zu las­sen, nutzt man den Befehl

route print

Um nur die IPv4 Rou­ten zu sehen, hängt man ein –4 an

route print –4

Die PowerS­hell hat ab der Ver­sion 4.0 einen eige­nen Befehl für die Rou­ten:

Get-​​NetRoute

Um die­ses Ergeb­nis genauer anschauen zu kön­nen, lei­ten wir es in eine Varia­ble um und sehen uns ein Ele­ment im Detail an

$route = Get-​​NetRoute
$route[0] | select *

In der PowerS­hell ist es dadurch sehr leicht mög­lich, nur ein­zelne rou­ten zu fin­den. Als Bei­spiel möchte ich die rou­ten von mei­nem lokal ein­ge­rich­te­ten NAT Inter­face aus­ge­ben las­sen (mit die­sem Inter­face kön­nen meine vir­tu­el­len Hyper-​​V VMs das Inter­net errei­chen)

Suche mein NAT Inter­face:

Get-​​NetAdapter | where {$_.name –like „*nat*“} | ft –a

Ok, das Inter­face mit „NAT“ im Namen hat den Index 67

Zeige mir alle IPv4 Rou­ten von die­sem Inter­face mit den rele­van­ten Infor­ma­tio­nen an:

Get-​​NetRoute |  Where-​​Object {($_.ifIndex –eq 67) –and ($_.Addressfamily –eq „IPv4“)} | FT Inter­faceA­lias,‚
AddressFamily,DestinationPrefix,NextHop,Routemetric –a

Füge für die ein­zelne IP 192.168.222.111 dau­er­haft eine andere Route mit einer klei­ne­ren Metrik (=bevor­zugt) hinzu:

New-​​NetRoute –Desti­na­ti­on­Pre­fix „192.168.222.111/32“-InterfaceIndex 67 –Nex­tHop 192.168.0.1 –Rou­te­Me­tric 10

Mit die­sem Befehl wurde die Route bei­den Stores hin­zu­ge­fügt

  • ActiveS­tore = Aktiv bis zum nächs­ten Neu­start
  • Per­sis­tants­tore = Dau­er­haft aktiv – die Per­sis­tan­S­tore Regeln wer­den nach einem Neu­start in den ActiveS­tore kopiert

Um eine tem­po­räre Route zu setz­ten, die nicht bei einem Neu­start wei­ter exis­tiert, muss der Para­me­ter –Poli­cyS­tore ActiveS­tore ange­fügt wer­den:

New-​​NetRoute –Desti­na­ti­on­Pre­fix „192.168.222.111/32“-InterfaceIndex 67 –Nex­tHop 192.168.0.1 –Rou­te­Me­tric 10 –Poli­cyS­tore ActiveS­tore | ft –a

Löschen der neuen Rou­ten geht genauso ein­fach:

Remove-​​NetRoute –Desti­na­ti­on­Pre­fix „192.168.222.111/32“-InterfaceIndex 67 –Confirm:$false

Im nächs­ten Blog­ein­trag beschäf­ti­gen wir uns damit, wie man mit der PowerS­hell unter Win­dows 10 ein NAT Inter­face ein­rich­tet.

Was den­ken Sie?