Netdisco2: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Khinn (talk | contribs)
Khinn (talk | contribs)
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Sissejuhatus =
= Sissejuhatus =
Autor: Kristjan Hinn, AK31


[[Netdisco2]] on uus versioon [[Netdisco]] vabavaralisele tarkvarale. Netdisco2 on veebipõhine ja avatud koodiga võrgu halduse lahendus. Peamisteks sihtgruppideks on suuremad firmad ja ülikoolid, kellel on kasutusel palju võrgujagureid. Netdisco kasutab info kogumiseks [[SNMP]] protokolli ning talletamiseks [[Postgres]] andmebaasi.
[[Netdisco2]] on uus versioon [[Netdisco]] vabavaralisele tarkvarale. [[Netdisco2]] on veebipõhine ja avatud koodiga võrgu halduse lahendus. Peamisteks sihtgruppideks on suuremad firmad ja ülikoolid, kellel on kasutusel palju võrgujagureid. Lahendus <ref>http://www.netdisco.org/</ref> kasutab info kogumiseks [[SNMP]] protokolli ning andmete talletamiseks [[Postgresql]] andmebaasi.


Peamised kasutamisvaldkonnad:
Peamised kasutamisvaldkonnad:<ref>https://metacpan.org/pod/App::Netdisco#DESCRIPTION</ref>
* Otsing - võimaldab leida arvuti või seadme konkreetse võrgupordi MAC, IP või nimeserveri nime järgi.
* Otsing - võimaldab leida arvuti või seadme konkreetse võrgupordi MAC, IP või nime järgi.
* Portide kontroll - võimaldab kiirelt välja ja sisse lülitada võrgujaguri porte (juhul kui on antud SNMP kirjutamise õigus)
* Portide kontroll - võimaldab kiirelt välja ja sisse lülitada võrgujaguri porte (eeldab SNMP kirjutamise õigus)
* Ülevaade seadmetest
* Ülevaade seadmetest
* Raportid IP ja füüsiliste portide kasutuse kohta hetkel ja minevikus
* Raportid IP ja füüsiliste portide kasutuse kohta hetkel ja minevikus
Line 11: Line 12:
= Toetatud platvormid =
= Toetatud platvormid =


Kuna Netdisco2 on kirjutatud Perl programmeerimiskeeles, siis Netdisco töötab teoreetiliselt mistahes operatsioonisüsteemil, kus Perl töötab.  
Kuna [[Netdisco2]] on kirjutatud Perl programmeerimiskeeles, siis [[Netdisco2]] töötab teoreetiliselt mistahes operatsioonisüsteemil, kus [[Perl]] töötab.  


Tarkvara arendajad soovitatavad operatsioonisüsteeme:
Tarkvara arendajad soovitatavad operatsioonisüsteeme:<ref>https://metacpan.org/pod/App::Netdisco#Dependencies</ref>
* Ubuntu/Debian
* Ubuntu/Debian
* Fedora/Red-Hat
* Fedora/Red-Hat
Line 19: Line 20:
= Installeerimine =
= Installeerimine =


Antud juhend on kirjutatud Ubuntu 14.04.1 LTS operatsioonisüsteemi näitel.
Intsallatsioon ja konfigureerimine eeldab kasutajalt head võrgu protokollide ning unix laadsete operatsioonisüsteemide tundmist. Antud juhend on kirjutatud Ubuntu 14.04.1 LTS operatsioonisüsteemi näitel.


== Vajalikud eeldused ==
== Vajalikud eeldused ==
   
   
* Läheme juurkasutajaks
* Läheme juurkasutajaks
<source lang="bash">
  sudo -i
  sudo -i
</source>


* Uuendame uuenduste registri
* Uuendame uuenduste registri
<source lang="bash">
  apt-get update
  apt-get update
</source>


* Installeerime viimased uuendused
* Installeerime viimased uuendused
<source lang="bash">
  apt-get upgrade
  apt-get upgrade
</source>


* Installeerime Postgresql andmebaasimootori
* Installeerime Postgresql andmebaasimootori


<source lang="bash">
  apt-get install postgresql
  apt-get install postgresql
</source>
* [[Netdisco2]] kasutab mitmeid [[Perl]] sõltuvusteeke, mis on soovitatav eelnevalt installeerida


* Netdisco kasutab mitmeid [[Perl]] sõltuvusteeke, mis on soovitatav eelnevalt installeerida
<source lang="bash">
  apt-get install libdbd-pg-perl libsnmp-perl build-essential
  apt-get install libdbd-pg-perl libsnmp-perl build-essential
</source>
* Loome kasutaja "netdisco"


* Loome kasutaja "netdisco"
<source lang="bash">
  useradd -m -p x -s /bin/bash netdisco
  useradd -m -p x -s /bin/bash netdisco
</source>


* Loome Posgresql kasutaja ja andmebaasi
* Loome Posgresql kasutaja ja andmebaasi
<source lang="bash">
  su - postgres
  su - postgres
 
  createuser -DRSP netdisco
  createuser -DRSP netdisco


  createdb -O netdisco netdisco
  createdb -O netdisco netdisco
</source>


== Installatsiooni protseduurid ==
== Installatsiooni protseduurid ==
Line 54: Line 73:


* Läheme netdisco kasutajaks
* Läheme netdisco kasutajaks
<source lang="bash">
  su - netdisco
  su - netdisco
</source>


* Käivitame installi
* Käivitame installi
<source lang="bash">
  curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco
  curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco
</source>


* Teeme värkselt installeeritud Perl tarkvaradele mugavamaks ligipääsuks lingi kodukataloogi ~/bin kaustale
* Teeme värkselt installeeritud Perl tarkvaradele mugavamaks ligipääsuks lingi kodukataloogi ~/bin kaustale


<source lang="bash">
  mkdri ~/bin
  mkdri ~/bin


  ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
  ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/


</source>
* Testime Netdisco deemonit
* Testime Netdisco deemonit


<source lang="bash">
  ~/bin/netdisco-daemon status
  ~/bin/netdisco-daemon status
</source>
Kui kõik toimib saame deemoni staatuseks "Stopped"
== Konfigureerimine ==
* Loome kausta oma konfiguratsiooni faili asukohale ning kopeerime konfiguratsiooni faili näidise uude kausta
<source lang="bash">
mkdir ~/environments
cp ~/perl5/lib/perl5/auto/share/dist/App-Netdisco/environments/deployment.yml ~/environments
chmod 600 ~/environments/deployment.yml
</source>
* Avame konfiguratsiooni faili ning täiendame vastavalt
<source lang="bash">
nano ~/environments/deployment.yml
</source>
* Muuda ära "Essential Settings" sektsioonis andmebaasi asukoha parameetrid:
Näide:
# ------------------
# ESSENTIAL SETTINGS
# ------------------
database:
  name: 'netdisco'
  user: 'netdisco'
  pass: 'kasutaja_parool'
  host: 'localhost'
* Seadistame FQDNS nime domeeni ja SNMP kommuuni stringid
# will be stripped from fqdn when displayed in the web UI
# also, do not forget the leading dot.
# ```````````````````````````````````````````````````````
domain_suffix: '.minudomeen.local'
# SNMP community string(s)
# ````````````````````````
snmp_auth:
  - tag: 'switchide_readonly'
    community: 'mingi_string'
    read: true
    write: false
* Soovi korral võib seadistada ka automaatse seadmete tuvastuse ''schedule''
* Teostame konfiguratsiooni ning loome vastavad andmebaasi muudatused
<source lang="bash">
~/bin/netdisco-deploy
</source>
Kui tegemist on uue installatsiooniga, siis vasta kõigile küsimustele jaatavalt (yes)
== Käivitamine ==
* Käivitame veebirakenduse
<source lang="bash">
~/bin/netdisco-web start
</source>
* Käivitame netdisco deemoni
<source lang="bash">
~/bin/netdisco-daemon start
</source>
* Käivita netdisco esmane seadmete otsing
<source lang="bash">
~/bin/netdisco-do -D discover -d 192.0.2.1
</source>
[[Netdisco2]] otsib etteantud seadme kaudu üles kõik võrguseadmed, mis selle konkreetse seadmega ühises topoloogias asuvad. [[Netdisco2]] kasutab võrguseadmete ''Layer 2'' topoloogia avastamiseks CDP ja LLDP protokolle. Juhul kui teil on seadmeid, mis ei ole konkreetse seadmega ''Layer 2'' avastamisprotokollide kaudu kättesaadavad, siis need seadmeks tuleb eraldi avastada. Selline tegevus on ühekordne ning vajalik uue ''Layer 2'' topoloogia tutvustamiseks. Edaspidi oskab [[Netdisco2]] ise topoloogiat uuendada ja muuta.
= Kokkuvõtteks =


Vastuseks peab saama deemoni kohta staatuse, mis ütleb, et deemon ei tööta.
[[Netdisco2]] on minu arvates ülimalt hea tööriist võrguadministraatoritele. Kõige olulisemaks pean ma tarkvara võimet tuvastada, millistes portides konkreetsed seadmed asuvad ning salvestada nende ajalugu. Sest reeglina võrguseadmed ei jäta aadresside tabelis pikaks ajaks meelde MAC aadresse ning kui seade pole pikemat aega võrgus olnud, siis hiljem seadmete asukohtade kohta tuvastada on võimatu. Samuti annab tarkvara hea ülevaate portide kasutuse kohta ning võrgujagurite tarkvaraversioonide kohta. Kuna netdisco kasutab NetBIOS protokolli, siis oskab ta võrgujagurist saadud MAC aadressi IP aadressiks ja nimeks lahendada ning selliselt on võimalik väga kiiresti tuvastada seadme või arvuti füüsilise asukoha suures võrgus. Enam ei pea tuhnima võrgujagurite MAC aadressi tabelites.


* Installeerime
= Kasutatud materjalid =
<references />
* [http://netdisco2-demo.herokuapp.com/ Netdisco 2 demo]

Latest revision as of 14:56, 10 January 2015

Sissejuhatus

Autor: Kristjan Hinn, AK31

Netdisco2 on uus versioon Netdisco vabavaralisele tarkvarale. Netdisco2 on veebipõhine ja avatud koodiga võrgu halduse lahendus. Peamisteks sihtgruppideks on suuremad firmad ja ülikoolid, kellel on kasutusel palju võrgujagureid. Lahendus [1] kasutab info kogumiseks SNMP protokolli ning andmete talletamiseks Postgresql andmebaasi.

Peamised kasutamisvaldkonnad:[2]

  • Otsing - võimaldab leida arvuti või seadme konkreetse võrgupordi MAC, IP või nime järgi.
  • Portide kontroll - võimaldab kiirelt välja ja sisse lülitada võrgujaguri porte (eeldab SNMP kirjutamise õigus)
  • Ülevaade seadmetest
  • Raportid IP ja füüsiliste portide kasutuse kohta hetkel ja minevikus

Toetatud platvormid

Kuna Netdisco2 on kirjutatud Perl programmeerimiskeeles, siis Netdisco2 töötab teoreetiliselt mistahes operatsioonisüsteemil, kus Perl töötab.

Tarkvara arendajad soovitatavad operatsioonisüsteeme:[3]

  • Ubuntu/Debian
  • Fedora/Red-Hat

Installeerimine

Intsallatsioon ja konfigureerimine eeldab kasutajalt head võrgu protokollide ning unix laadsete operatsioonisüsteemide tundmist. Antud juhend on kirjutatud Ubuntu 14.04.1 LTS operatsioonisüsteemi näitel.

Vajalikud eeldused

  • Läheme juurkasutajaks
 sudo -i
  • Uuendame uuenduste registri
 apt-get update
  • Installeerime viimased uuendused
 apt-get upgrade
  • Installeerime Postgresql andmebaasimootori
 apt-get install postgresql
  • Netdisco2 kasutab mitmeid Perl sõltuvusteeke, mis on soovitatav eelnevalt installeerida
 apt-get install libdbd-pg-perl libsnmp-perl build-essential
  • Loome kasutaja "netdisco"
 useradd -m -p x -s /bin/bash netdisco
  • Loome Posgresql kasutaja ja andmebaasi
 su - postgres

 createuser -DRSP netdisco

 createdb -O netdisco netdisco

Installatsiooni protseduurid

Skript eeldab, et loodud on netdisco kasutaja koos kodukaustaga ning serveril on toimiv nimelahendus ja interneti ligipääs. Tarkvara installeeritakse netdisco kasutaja kodukausta ning skriptis luuakse ~/perl5 kaust.

  • Läheme netdisco kasutajaks
 su - netdisco
  • Käivitame installi
 curl -L http://cpanmin.us/ | perl - --notest --local-lib ~/perl5 App::Netdisco
  • Teeme värkselt installeeritud Perl tarkvaradele mugavamaks ligipääsuks lingi kodukataloogi ~/bin kaustale
 mkdri ~/bin

 ln -s ~/perl5/bin/{localenv,netdisco-*} ~/bin/
  • Testime Netdisco deemonit
 ~/bin/netdisco-daemon status

Kui kõik toimib saame deemoni staatuseks "Stopped"

Konfigureerimine

  • Loome kausta oma konfiguratsiooni faili asukohale ning kopeerime konfiguratsiooni faili näidise uude kausta
 mkdir ~/environments

 cp ~/perl5/lib/perl5/auto/share/dist/App-Netdisco/environments/deployment.yml ~/environments

 chmod 600 ~/environments/deployment.yml
  • Avame konfiguratsiooni faili ning täiendame vastavalt
 nano ~/environments/deployment.yml
  • Muuda ära "Essential Settings" sektsioonis andmebaasi asukoha parameetrid:

Näide:

# ------------------
# ESSENTIAL SETTINGS
# ------------------

database:
  name: 'netdisco'
  user: 'netdisco'
  pass: 'kasutaja_parool'
  host: 'localhost'
  • Seadistame FQDNS nime domeeni ja SNMP kommuuni stringid
# will be stripped from fqdn when displayed in the web UI
# also, do not forget the leading dot.
# ```````````````````````````````````````````````````````
domain_suffix: '.minudomeen.local'
# SNMP community string(s)
# ````````````````````````
snmp_auth:
  - tag: 'switchide_readonly'
    community: 'mingi_string'
    read: true
    write: false
  • Soovi korral võib seadistada ka automaatse seadmete tuvastuse schedule
  • Teostame konfiguratsiooni ning loome vastavad andmebaasi muudatused
 ~/bin/netdisco-deploy

Kui tegemist on uue installatsiooniga, siis vasta kõigile küsimustele jaatavalt (yes)

Käivitamine

  • Käivitame veebirakenduse
 ~/bin/netdisco-web start
  • Käivitame netdisco deemoni
 ~/bin/netdisco-daemon start
  • Käivita netdisco esmane seadmete otsing
 ~/bin/netdisco-do -D discover -d 192.0.2.1

Netdisco2 otsib etteantud seadme kaudu üles kõik võrguseadmed, mis selle konkreetse seadmega ühises topoloogias asuvad. Netdisco2 kasutab võrguseadmete Layer 2 topoloogia avastamiseks CDP ja LLDP protokolle. Juhul kui teil on seadmeid, mis ei ole konkreetse seadmega Layer 2 avastamisprotokollide kaudu kättesaadavad, siis need seadmeks tuleb eraldi avastada. Selline tegevus on ühekordne ning vajalik uue Layer 2 topoloogia tutvustamiseks. Edaspidi oskab Netdisco2 ise topoloogiat uuendada ja muuta.

Kokkuvõtteks

Netdisco2 on minu arvates ülimalt hea tööriist võrguadministraatoritele. Kõige olulisemaks pean ma tarkvara võimet tuvastada, millistes portides konkreetsed seadmed asuvad ning salvestada nende ajalugu. Sest reeglina võrguseadmed ei jäta aadresside tabelis pikaks ajaks meelde MAC aadresse ning kui seade pole pikemat aega võrgus olnud, siis hiljem seadmete asukohtade kohta tuvastada on võimatu. Samuti annab tarkvara hea ülevaate portide kasutuse kohta ning võrgujagurite tarkvaraversioonide kohta. Kuna netdisco kasutab NetBIOS protokolli, siis oskab ta võrgujagurist saadud MAC aadressi IP aadressiks ja nimeks lahendada ning selliselt on võimalik väga kiiresti tuvastada seadme või arvuti füüsilise asukoha suures võrgus. Enam ei pea tuhnima võrgujagurite MAC aadressi tabelites.

Kasutatud materjalid