Zobrazují se příspěvky se štítkemnetdisco. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemnetdisco. Zobrazit všechny příspěvky

pondělí 30. července 2012

Netdisco v praxi

Již v minulosti jsem zkoušel zprovoznit system Netdisco a zde na blogu jsem o tom psal velmi obecné informace. Onehdá jsem už neměl čas systém více poznat a použít jej tam kde je jeho silná stránka a tou jsou sítě s Layer 2 přepínačema. Nyní jsem provedl vesměs naprosto stejnou instalaci na FreeBSD 8.2.

Pro instalaci jsem volil port net-mgmt/netdisco/ který mi nainstaluje aktuální verzi 1.1.

n e t  d i s c o
--------------------------------------------------
Netdisco Version   : 1.1
SNMP::Info Version : 2.06
Net-SNMP Version   : 5.0701
Perl Version       : 118.53.46.49.52.46.50

Netdisco je dle webu vývojářů vyvýjeno na FreeBSD a tudíž v dokumentaci nechybí ani informace potřebné k instalaci. Jistá zastaralost dokumentace znát ovšem je. Volil jsem použití Apache 2.2 a PostgreSQL 9.1 s tím že tuto volbu port akceptuje.

Během instalace jsem měl jen jeden problém s konfliktem dvou balíků pkg_config a pkgconf. Musel jsem pkg_config odinstalovat a s nim i zavislosti. Posléze jsem instaloval port graphics/graphviz, který si pkgconf žádal. Zbytek instalace již nevykazoval problémy.

Po instalaci portu netdisco bylo třeba provést úkony v  postinstalačním postupu, který jsem zmiňoval již v prvním příspěvku. Tímto postupem importujeme db schéma do PostgreSQL a nastavíme systém tak, aby služby nastartovaly atd.

Pro přihlášení do Web GUI bylo třeba si přidat patřičného uživatele.

netdisco -u admin

Pro fungování v praxi jsem testoval přidávat switch Dell PowerConnect 5448 s public komunitou.

Pro přídání switchů jsem nejprve užil web GUI, ale i s debug režimem se mi nechtěl přidat i přes prověření funkčnosti SNMP pomocí snmpwalk, které odpovídalo.

snmpwalk -Os -c public -v 2c 192.168.0.42 system
sysDescr.0 = STRING: PowerConnect 5448
sysObjectID.0 = OID: enterprises.674.10895.3021
sysUpTimeInstance = Timeticks: (361894700) 41 days, 21:15:47.00
sysContact.0 = STRING: SmEjDiL
sysName.0 = STRING: switch42
sysLocation.0 = STRING: DKnL
sysServices.0 = INTEGER: 2
sysORLastChange.0 = Timeticks: (0) 0:00:00.00
sysORID.1 = OID: enterprises.89.73
sysORDescr.1 = STRING: RS capabilities
sysORUpTime.1 = Timeticks: (0) 0:00:00.00


Dle manuálové stránky patřičného modulu jsem se dočetl o potřebných MIB souborech.

man SNMP::Info::Layer3::Dell

Dále jsem postupoval tak, že jsem zařížení přidával za pomocí cmd.

netdisco -d 192.168.0.42
n e t  d i s c o
--------------------------------------------------
[
192.168.0.42] Discover starting
[
192.168.0.42] [Trying SNMP Version 1]
[
192.168.0.42]  Fetching Device Info
[
192.168.0.42]  Fetching Device Info
[
192.168.0.42]  Fetching Interface Information
[
192.168.0.42]   32 Interfaces.
[
192.168.0.42]  Fetching VLAN Information
[
192.168.0.42]   Scrubbing VLANs from device_port_vlan table... 0 removed
[
192.168.0.42]   Scrubbing VLANs from device_vlan table... 0 removed
[
192.168.0.42]   28 VLAN Interfaces, 1 names.
[
192.168.0.42]  Fetching Power Information
[
192.168.0.42]   0 Power Modules
[
192.168.0.42]  Fetching Module Information
[
192.168.0.42]   0 Modules.
[
192.168.0.42]  Fetching Neighbor Information
[
192.168.0.42]   ! CDP not Enabled.

Tento příkaz již napovídal, že mu chybí potřebné SNMP MIB definice. Netdisco má jeden balík MIBů. Tento balík obsahuje velké množství MIB souborů od ruzných výrobců i ty normované RFC, ale i přesto bylo třeba stáhnout MIBy od výrobce.

netdisco-mibs-0.9   Mibs for use with ports-mgmt/netdisco (and snmp)

Po chvilce googlování jsem požadované soubory postahoval např. z http://www.oidview.com/.

Během používání Netdisco jsem narazil na dvě chybové hlášky.

/usr/local/www/netdisco/device.html 789

Popis problému je v konferenci.

## line 789
## replace:
%  for my $f qw(fw hw sw) {
## with:
%  for my $f (qw(fw hw sw)) {


Např. pří restartu apache se objevovala tato druhá chyba na řádku ...

/usr/local/lib/perl5/site_perl/5.14.2/netdisco.pm 337

Stejné řešení s popisem problému zde.

úterý 1. března 2011

netdisco - mod_perl

Hledal jsem nějaký SW na správu síťových přepínačů. Našel jsem netdisco. Jedná se o aplikaci psanou v Perlu, kde web gui je provozováno díky mod_perl a hlavně HTML::Mason (tento FrameWork znám z Request Trackeru), data se ukládají do databáze PostreSQL.

Testovací instalaci jsem snadno zprovoznil na OS FreeBSD-8.2 RELEASE. Díky portu je instalace velmi snadná. Používá se zhruba 52 p5-* perlových modulů. Pokud si nejprve nainstalujeme Apache22 a PostreSQL9.x, port to zohlední i přesto, že jeho závislost je na Apache1.3.x a PostreSQL 8.x.

Instalace přídá potřebné direktivy do httpd.conf jako include. Netdisco se pomocí protokolu SNMP přihlašuje na Switche nebo Routery a na nich pomocí private komunit umožňuje přenastavovat porty, VLAN a jiné. Seznam vlastností aplikace je zde.

Postinstalační postup:

Netdisco has been installed.

In order to get up and running, there are a few more steps to complete:

1) fetch http://standards.ieee.org/regauth/oui/oui.txt
and copy the file oui.txt to /usr/local/share/netdisco

2) Run the following to create and initialise the netdisco database:

perl /usr/local/share/netdisco/sql/pg --init

3) Examine all the configuration files in /usr/local/etc/netdisco,
and modify them to suit your needs.

4) Add an initial admin user by running 'netdisco -u'

5) Import the OUI database: netdisco -o

6) Edit /usr/local/etc/netdisco/netdisco.crontab and change
center_network_device to one of your core routers/switches. Then
install the crontab:

crontab -u netdisco /usr/local/etc/netdisco/netdisco.crontab

7) Add netdisco_enable="YES" to /etc/rc.conf, and then run
/usr/local/etc/rc.d/netdisco to start the admin daemon.

8) Apache must be stopped/started (a graceful restart won't work)

Z časových důvodů seznamování s danou aplikací odkládam na neurčito :-(