[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Conoscere le subnet presenti in LAN



Piviul ha scritto il 13/04/2016 alle 17:00:
> Ciao a tutti, dovrei ampliare la subnet utilizzata per la lan. Ora la
> lan è configurata come 192.168.70.x cioè con subnet mask 255.255.255.0.
> Ora dovrei ampliare gli indirizzi ip a disposizione della lan e pensavo
> soltanto di cambiare la subnetmask (e la classe degli ip gestiti dal
> server dhcp) in modo da non dover riconfigurare tutti gli ip statici. La
> subnetmask pensavo di trasformarla in 255.255.248.0 in modo da poter
> utilizzare gli indirizzi ip da 192.168.64.1 fino a 192.168.71.254.
> 
> Ora però succede che un gran numero di pc nella LAN hanno un'altra
> scheda di rete e sono in realtà collegati ad un'altra sottorete
> (gestiscono degli strumenti che colloquiano via lan) e non vorrei che
> uno di questi pc sia configurato proprio con una sottorete nel range
> della lan.
> 
> Ed ecco finalmente il domandone: c'è modo di sapere da remoto le subnet
> configurate per un dato pc che so, vedere da remoto la routing table o
> qualche altro modo? Tenete conto che i pc sono quasi tutti windows (si,
> c'è anche qualche client linux per la gestione degli strumenti)
Ho trovato almeno per le subnets collegate a macchine windows: sul
server che funge da domain master browser il log di nmbd mostra proprio
informazioni riguardo all'ip utilizzato dall'altra scheda. Con un
"semplice" script sto tenendo sotto controllo tutte le subnets della mia
LAN.

Se qualcuno fosse interessato questo è lo script che ogni 30 minuti
esamina il log di nmbd e memorizza in un file il nome del PC e gli ip ad
esso collegati:

#!/bin/bash

filelog=~/$(basename $0 .sh).log
[ -f $filelog ] || touch $filelog

filetmp=/tmp/$(basename $0 .sh).tmp
[ -f $filetmp ] || touch $filetmp

while [ -z "" ]; do
ips=$(grep "This response was from IP [0-9]*" /var/log/samba/log.nmbd |
sed 's/This response was from IP \([^[:space:]]*\),.*/\1/' \
        | sort | uniq)
for ip in $ips; do
   hostname=$(wbinfo -I $ip | cut -f2 2>&1)
   [ -z "$hostname" ] && hostname="NO-NAME"

   for subip in $(grep "This response was from IP $ip"
/var/log/samba/log.nmbd | sed 's/.*This response was from IP '$ip',
reporting an IP address of \([^[:space:]]*\)\./\1/' | sort | uniq); do
      [ $hostname = "NO-NAME" ] && [ -n "$(grep $subip "$filelog")" ] &&
continue

      entry=$(grep "$hostname:" $filelog)
      if [ -n "$entry" ]; then
         entry=$(echo $entry | sed 's/^[^,]*//' | sed 's/,
'$subip'[[:space:]]*//')
         [ -n "$entry" ] && subip="$subip$entry"
      fi
      cat $filelog | grep -v "$hostname" > $filetmp
      echo -e "$hostname: $ip, $subip" >> $filetmp
      cat $filetmp | sort > $filelog
   done
done
sleep 1800
done

Piviul


Reply to: