Netsh kasutamine võrguteenuste halduseks: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Vlaas (talk | contribs)
Vlaas (talk | contribs)
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 10: Line 10:
Seadistatud IPv4 aadresse on võimalik kuvada ühe käsuna:
Seadistatud IPv4 aadresse on võimalik kuvada ühe käsuna:


<code>
<pre>
C:\Users\Administrator>netsh interface ip show addresses
C:\Users\Administrator>netsh interface ip show addresses
Configuration for interface "Local Area Connection"
Configuration for interface "Local Area Connection"
Line 24: Line 24:
     Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
     Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
     InterfaceMetric:                      50
     InterfaceMetric:                      50
</code>
</pre>


Sama on võimalik saavutada ka interaktiivsel teel:
Sama on võimalik saavutada ka interaktiivsel teel:


<code>
<pre>
C:\Users\Administrator>netsh
C:\Users\Administrator>netsh
netsh>interface
netsh>interface
Line 45: Line 45:
     Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
     Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
     InterfaceMetric:                      50
     InterfaceMetric:                      50
</code>
</pre>
 
=Toimingud netsh abil=
Järgnevalt vaatleme mõningaid enim levinud toiminguid ning anname näite, kuidas neid netsh abil teostada.
==IP aadressi muutmine==
IP aadressi muutmiseks peame eelnevalt olema interface ipv4 kontekstis. Anname järgmise käsu:
<pre>
netsh interface ipv4>set address name="Local Area Connection" source=static address=192.168.100.1/24
</pre>
Kontrollime tulemust:
<pre>
netsh interface ipv4>show addresses
 
Configuration for interface "Local Area Connection"
    DHCP enabled:                        No
    IP Address:                          192.168.100.1
    Subnet Prefix:                        192.168.100.0/24 (mask 255.255.255.0)
    InterfaceMetric:                      10
</pre>
Name argument on muudetava võrguühenduse nimi. Nime asemel on võimalik kasutada ka ühenduse indeksit.
Selleks, et ühe või teise võrguliidese indeks teada saada, tuleks kasutada järgmist käsku show interfaces
<pre>
netsh interface ipv4>show interfaces
 
Idx    Met        MTU          State                Name
---  ----------  ----------  ------------  ---------------------------
  1          50  4294967295  connected    Loopback Pseudo-Interface 1
11          10        1500  connected    Local Area Connection
</pre>
Näeme, et antud süsteemis on Local Area Connection indeksiks 11, seega võiksime IP aadressi muuta ka järgmiselt:
<pre>
netsh interface ipv4>set address name=11 source=static address=192.168.77.22/24
 
netsh interface ipv4>show addresses
 
Configuration for interface "Local Area Connection"
    DHCP enabled:                        No
    IP Address:                          192.168.77.22
    Subnet Prefix:                        192.168.77.0/24 (mask 255.255.255.0)
    InterfaceMetric:                      10
</pre>
Et seadistada võrguliides kasutama DHCP protokolli, tuleks anda käsk:
<pre>
netsh interface ipv4>set address name=11 source=dhcp
 
netsh interface ipv4>show addresses name=11
 
Configuration for interface "Local Area Connection"
    DHCP enabled:                        Yes
    IP Address:                          10.0.2.15
    Subnet Prefix:                        10.0.2.0/24 (mask 255.255.255.0)
    Default Gateway:                      10.0.2.2
    Gateway Metric:                      0
    InterfaceMetric:                      10
</pre>
==Static route==
Staatilise route lisamiseks kaustame käsku:
<pre>
netsh interface ipv4>add route 192.168.99.0/24 interface=11 10.0.2.2
Ok.
 
netsh interface ipv4>show route
 
Publish  Type      Met  Prefix                    Idx  Gateway/Interface Name
-------  --------  ---  ------------------------  ---  ------------------------
No      Manual    0    0.0.0.0/0                  11  10.0.2.2
No      Manual    256  10.0.2.0/24                11  Local Area Connection
No      Manual    256  10.0.2.15/32              11  Local Area Connection
No      Manual    256  10.0.2.255/32              11  Local Area Connection
No      Manual    256  192.168.99.0/24            11  10.0.2.2
No      Manual    256  224.0.0.0/4                1  Loopback Pseudo-Interface
1
No      Manual    256  224.0.0.0/4                11  Local Area Connection
No      Manual    256  255.255.255.255/32          1  Loopback Pseudo-Interface
1
No      Manual    256  255.255.255.255/32        11  Local Area Connection
 
netsh interface ipv4>
</pre>
Et sisestatud route säiliks ka peale restarti, tuleb lisada võti store.
==DHCP Server==
Olukorras, kus DHCP server on paigaldatud, võimaldab netsh muuta ning kuvada kõiki selle parameetreid.
DHCP serveri seadistamiseks tuleb siseneda konteksti "dhcp server".
<pre>
C:\Users\Administrator>netsh dhcp server show server
 
The current server is SRV1 with Ip Address = 10.0.2.15
</pre>
Lisame DHCP skoobi:
<pre>
netsh dhcp server>add scope 192.168.99.0 255.255.255.0 test
 
Command completed successfully.
</pre>
<pre>
netsh dhcp server>show scope
 
==============================================================================
Scope Address  - Subnet Mask    - State        - Scope Name          -  Comment
 
==============================================================================
 
192.168.99.0  - 255.255.255.0  -Active        -test                -
 
Total No. of Scopes = 1
Command completed successfully.
</pre>
Siseneme loodud skoobi konteksti:
<pre>
netsh dhcp server scope>scope 192.168.99.0
 
Changed the current scope context to 192.168.99.0 scope.
</pre>
Lisame aadressvahemiku:
<pre>
netsh dhcp server scope>add iprange 192.168.99.10 192.168.99.200
 
Command completed successfully.
</pre>
Lisame IP reservatsiooni - olgu masinal MAC aadressiga 00:11:22:33:44:55:66 IP aadressiks 192.168.99.100:
<pre>
netsh dhcp server scope>add reservedip 192.168.99.100 00112233445566
 
Command completed successfully.
</pre>
==Windows Firewall==
Tulemüüri seadistamiseks on netsh's kaks konteksti - firewall ja advfirewall. Microsoft soovitab kasutada neist viimast, firewall kontekst on lisatud ainult tagasiühilduvuse huvides. Tulemüüri reeglitega töötamiseks on advfirewall all kontekst firewall.
 
 
=Online ja Offline mode=
Netsh'd saab kasutada kahes moodis - online ja offline. Vaikimis on valitud online mode. See tähendab, et kõik käsud, mida netsh abil antakse, rakenduvad koheselt.
Sageli on aga tarvis anda rohkem kui üks käsk või seadistada rohkem kui ühte parameetrit ning rakendada need seadistused korraga. Selleks võib kasutada offline mode'i. Offline mode'is salvestatakse küll tehtud muudatused, kuid need ei aktiveeru enne commit käsu andmist.
<pre>
 
netsh advfirewall>show currentprofile
Public Profile Settings:
----------------------------------------------------------------------
State                                ON
Firewall Policy                      BlockInbound,AllowOutbound
LocalFirewallRules                    N/A (GPO-store only)
LocalConSecRules                      N/A (GPO-store only)
InboundUserNotification              Disable
RemoteManagement                      Disable
UnicastResponseToMulticast            Enable
 
Logging:
LogAllowedConnections                Disable
LogDroppedConnections                Disable
FileName                              %systemroot%\system32\LogFiles\Firewall\pfirewall.log
MaxFileSize                          4096
 
Ok.
</pre>
Kuvame hetkel olemas olevad tulemüüri reeglid:
<pre>
netsh advfirewall>firewall
netsh advfirewall firewall>show rule name=all
</pre>
Lisame testreegli - siseneva liikluse ühele programmile
<pre>
netsh advfirewall firewall>add rule name=test dir=in action=allow program="c:\programfiles\messenger\msmsgs.exe" enable=yes
Ok.
 
netsh advfirewall firewall>show rule name=test
 
Rule Name:                            test
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                            Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                            Any
Protocol:                            Any
Edge traversal:                      No
Action:                              Allow
</pre>
 
=Asünkroonsus=
Netsh kasutamisel peab silmas pidama, et sisemiselt suhtleb see tööriist Windowsi erinevate teenustega vastavate API'de kaudu. Seega on netsh nägemus süsteemis toimuvast alati piiratud sellega, mida üks või teine API suudab edastada. Näiteks on selgub, et muutes võrguliidesel IP aadressi, ei ole võimalik seda muudatust kohe pärast selle tegemist netsh abil kuvada. Tõenäoliselt on sellise viite põhjuseks antud konfiguratsioonimuudatuse tagajärjel käivitunud asünkroonsed protsessid, mille üle netsh'l puudub igasugune kontroll. See muudab skriptides tagasiside kasutamise pisut keerukaks - puudub võimalus tada saada, millal ühe või teise käsu tulemus realiseerus ning tuleb kasutada kas sunnitud viivitusi või käia persiodiliselt uurimas, kas eelnevalt tehtud muudatus on realiseerunud.
 
=Kokkuvõte=
Netsh on mugav ning skriptimisel asendamatu tööriist. Näib, et selle loomisel on eeskujuks võetud marsruuterites või teistes võrguseadmetes sageli esinev CLI formaat. Kindlasti jääb netsh oma kasutusmugavuselt ja selguselt alla Cisco IOS CLI'le, kuid konkureerib edukalt Unixi laadsete süsteemidega, kus on küll olemas mugav shell, kuid puudub netsh laadne unifitseeritud tööriist võeguteenusega töötamiseks.
Netsh olemasolu näitab selgelt, et Microsoft on mõistnud käsurea utiliitide olulisust.
 
=kasutatud kirjandus=
Netsh Command Reference - http://technet.microsoft.com/en-us/library/cc754516(WS.10).aspx

Latest revision as of 00:34, 17 April 2011

Sissejuhatus

Network Shell netsh on käsiurea utiliit, mille abil on võimalik vaadata ja seadistada Windowsi võrguparameetreid ning samuti konfigureerida ka võrguteenuseid. Enamikel juhtudel on netsh abil võimalik teostada samu toiminguid, mida Microsoft Management Console abil. Netsh on väga kasulik vahend toiminguid automatiseerivate skriptide kirjutamisel, samuti miks mitte ka kaughalduseks.

Netsh kasutamine

Netsh'd on võimalik kasutada nii üksikute käskude andmiseks kui ka interaktiivselt - eraldi shellina. Netsh käsud on jagatud kontekstideks, iga konteksti all on võimalik seadistada sinna kuuluvaid parameetreid ning anda sellega seonduvaid käsklusi. Iga konteksti all võib leiduda omakorda allkontekste. Interaktiivse kasutuse korral on võimalik kontekstide vahel liikuda, sisestades käsuks konteksti nime. Tagasi on võimalik liikuda käsuga "..". Igas kontekstis on võimalik saada abiinfot käsuga help või ?, kusjuures kuvatakse nii antud konteksti kohta käiv kui ka peakonteksti abiinfo.

Näide: Seadistatud IPv4 aadresse on võimalik kuvada ühe käsuna:

C:\Users\Administrator>netsh interface ip show addresses
Configuration for interface "Local Area Connection"
    DHCP enabled:                         Yes
    IP Address:                           10.0.2.15
    Subnet Prefix:                        10.0.2.0/24 (mask 255.255.255.0)
    Default Gateway:                      10.0.2.2
    Gateway Metric:                       0
    InterfaceMetric:                      10
Configuration for interface "Loopback Pseudo-Interface 1"
    DHCP enabled:                         No
    IP Address:                           127.0.0.1
    Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
    InterfaceMetric:                      50

Sama on võimalik saavutada ka interaktiivsel teel:

C:\Users\Administrator>netsh
netsh>interface
netsh interface>ip
netsh interface ipv4>show addresses
Configuration for interface "Local Area Connection"
    DHCP enabled:                         Yes
    IP Address:                           10.0.2.15
    Subnet Prefix:                        10.0.2.0/24 (mask 255.255.255.0)
    Default Gateway:                      10.0.2.2
    Gateway Metric:                       0
    InterfaceMetric:                      10
Configuration for interface "Loopback Pseudo-Interface 1"
    DHCP enabled:                         No
    IP Address:                           127.0.0.1
    Subnet Prefix:                        127.0.0.0/8 (mask 255.0.0.0)
    InterfaceMetric:                      50

Toimingud netsh abil

Järgnevalt vaatleme mõningaid enim levinud toiminguid ning anname näite, kuidas neid netsh abil teostada.

IP aadressi muutmine

IP aadressi muutmiseks peame eelnevalt olema interface ipv4 kontekstis. Anname järgmise käsu:

netsh interface ipv4>set address name="Local Area Connection" source=static address=192.168.100.1/24

Kontrollime tulemust:

netsh interface ipv4>show addresses

Configuration for interface "Local Area Connection"
    DHCP enabled:                         No
    IP Address:                           192.168.100.1
    Subnet Prefix:                        192.168.100.0/24 (mask 255.255.255.0)
    InterfaceMetric:                      10

Name argument on muudetava võrguühenduse nimi. Nime asemel on võimalik kasutada ka ühenduse indeksit. Selleks, et ühe või teise võrguliidese indeks teada saada, tuleks kasutada järgmist käsku show interfaces

netsh interface ipv4>show interfaces

Idx     Met         MTU          State                Name
---  ----------  ----------  ------------  ---------------------------
  1          50  4294967295  connected     Loopback Pseudo-Interface 1
 11          10        1500  connected     Local Area Connection

Näeme, et antud süsteemis on Local Area Connection indeksiks 11, seega võiksime IP aadressi muuta ka järgmiselt:

netsh interface ipv4>set address name=11 source=static address=192.168.77.22/24

netsh interface ipv4>show addresses

Configuration for interface "Local Area Connection"
    DHCP enabled:                         No
    IP Address:                           192.168.77.22
    Subnet Prefix:                        192.168.77.0/24 (mask 255.255.255.0)
    InterfaceMetric:                      10

Et seadistada võrguliides kasutama DHCP protokolli, tuleks anda käsk:

netsh interface ipv4>set address name=11 source=dhcp

netsh interface ipv4>show addresses name=11

Configuration for interface "Local Area Connection"
    DHCP enabled:                         Yes
    IP Address:                           10.0.2.15
    Subnet Prefix:                        10.0.2.0/24 (mask 255.255.255.0)
    Default Gateway:                      10.0.2.2
    Gateway Metric:                       0
    InterfaceMetric:                      10

Static route

Staatilise route lisamiseks kaustame käsku:

netsh interface ipv4>add route 192.168.99.0/24 interface=11 10.0.2.2
Ok.

netsh interface ipv4>show route

Publish  Type      Met  Prefix                    Idx  Gateway/Interface Name
-------  --------  ---  ------------------------  ---  ------------------------
No       Manual    0    0.0.0.0/0                  11  10.0.2.2
No       Manual    256  10.0.2.0/24                11  Local Area Connection
No       Manual    256  10.0.2.15/32               11  Local Area Connection
No       Manual    256  10.0.2.255/32              11  Local Area Connection
No       Manual    256  192.168.99.0/24            11  10.0.2.2
No       Manual    256  224.0.0.0/4                 1  Loopback Pseudo-Interface
 1
No       Manual    256  224.0.0.0/4                11  Local Area Connection
No       Manual    256  255.255.255.255/32          1  Loopback Pseudo-Interface
 1
No       Manual    256  255.255.255.255/32         11  Local Area Connection

netsh interface ipv4>

Et sisestatud route säiliks ka peale restarti, tuleb lisada võti store.

DHCP Server

Olukorras, kus DHCP server on paigaldatud, võimaldab netsh muuta ning kuvada kõiki selle parameetreid. DHCP serveri seadistamiseks tuleb siseneda konteksti "dhcp server".

C:\Users\Administrator>netsh dhcp server show server

The current server is SRV1 with Ip Address = 10.0.2.15

Lisame DHCP skoobi:

netsh dhcp server>add scope 192.168.99.0 255.255.255.0 test

Command completed successfully.
netsh dhcp server>show scope

==============================================================================
 Scope Address  - Subnet Mask    - State        - Scope Name          -  Comment

==============================================================================

 192.168.99.0   - 255.255.255.0  -Active        -test                 -

 Total No. of Scopes = 1
Command completed successfully.

Siseneme loodud skoobi konteksti:

netsh dhcp server scope>scope 192.168.99.0

Changed the current scope context to 192.168.99.0 scope.

Lisame aadressvahemiku:

netsh dhcp server scope>add iprange 192.168.99.10 192.168.99.200

Command completed successfully.

Lisame IP reservatsiooni - olgu masinal MAC aadressiga 00:11:22:33:44:55:66 IP aadressiks 192.168.99.100:

netsh dhcp server scope>add reservedip 192.168.99.100 00112233445566

Command completed successfully.

Windows Firewall

Tulemüüri seadistamiseks on netsh's kaks konteksti - firewall ja advfirewall. Microsoft soovitab kasutada neist viimast, firewall kontekst on lisatud ainult tagasiühilduvuse huvides. Tulemüüri reeglitega töötamiseks on advfirewall all kontekst firewall.


Online ja Offline mode

Netsh'd saab kasutada kahes moodis - online ja offline. Vaikimis on valitud online mode. See tähendab, et kõik käsud, mida netsh abil antakse, rakenduvad koheselt. Sageli on aga tarvis anda rohkem kui üks käsk või seadistada rohkem kui ühte parameetrit ning rakendada need seadistused korraga. Selleks võib kasutada offline mode'i. Offline mode'is salvestatakse küll tehtud muudatused, kuid need ei aktiveeru enne commit käsu andmist.


netsh advfirewall>show currentprofile
Public Profile Settings:
----------------------------------------------------------------------
State                                 ON
Firewall Policy                       BlockInbound,AllowOutbound
LocalFirewallRules                    N/A (GPO-store only)
LocalConSecRules                      N/A (GPO-store only)
InboundUserNotification               Disable
RemoteManagement                      Disable
UnicastResponseToMulticast            Enable

Logging:
LogAllowedConnections                 Disable
LogDroppedConnections                 Disable
FileName                              %systemroot%\system32\LogFiles\Firewall\pfirewall.log
MaxFileSize                           4096

Ok.

Kuvame hetkel olemas olevad tulemüüri reeglid:

netsh advfirewall>firewall
netsh advfirewall firewall>show rule name=all

Lisame testreegli - siseneva liikluse ühele programmile

netsh advfirewall firewall>add rule name=test dir=in action=allow program="c:\programfiles\messenger\msmsgs.exe" enable=yes
Ok.

netsh advfirewall firewall>show rule name=test

Rule Name:                            test
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             Any
Edge traversal:                       No
Action:                               Allow

Asünkroonsus

Netsh kasutamisel peab silmas pidama, et sisemiselt suhtleb see tööriist Windowsi erinevate teenustega vastavate API'de kaudu. Seega on netsh nägemus süsteemis toimuvast alati piiratud sellega, mida üks või teine API suudab edastada. Näiteks on selgub, et muutes võrguliidesel IP aadressi, ei ole võimalik seda muudatust kohe pärast selle tegemist netsh abil kuvada. Tõenäoliselt on sellise viite põhjuseks antud konfiguratsioonimuudatuse tagajärjel käivitunud asünkroonsed protsessid, mille üle netsh'l puudub igasugune kontroll. See muudab skriptides tagasiside kasutamise pisut keerukaks - puudub võimalus tada saada, millal ühe või teise käsu tulemus realiseerus ning tuleb kasutada kas sunnitud viivitusi või käia persiodiliselt uurimas, kas eelnevalt tehtud muudatus on realiseerunud.

Kokkuvõte

Netsh on mugav ning skriptimisel asendamatu tööriist. Näib, et selle loomisel on eeskujuks võetud marsruuterites või teistes võrguseadmetes sageli esinev CLI formaat. Kindlasti jääb netsh oma kasutusmugavuselt ja selguselt alla Cisco IOS CLI'le, kuid konkureerib edukalt Unixi laadsete süsteemidega, kus on küll olemas mugav shell, kuid puudub netsh laadne unifitseeritud tööriist võeguteenusega töötamiseks. Netsh olemasolu näitab selgelt, et Microsoft on mõistnud käsurea utiliitide olulisust.

kasutatud kirjandus

Netsh Command Reference - http://technet.microsoft.com/en-us/library/cc754516(WS.10).aspx