Catégorie : Réseau

  • Comment trouver automatiquement tous les Raspberry’s sur le réseau ?

    Comment trouver automatiquement tous les Raspberry’s sur le réseau ?

    Une adresse MAC (Medium Access Control ou contrôle d’accès au support) est un « numéro de série » unique affecté à chaque matériel du réseau Ethernet destiné à l’identifier dans un réseau. Cette adresse unique est attribuée par le fabricant à la fabrication du matériel.

    Chaque fabricant est également identifié d’une manière unique. La liste des identifiants est mise à jour régulièrement et est disponible sur le web.

    En utilisant une combinaison de commandes très simples, on peut donc déterminer le(s) fabricant(s) d’un élément réseau connecté à votre réseau !

    Récupération des identifiants utilisés dans les adresses MAC :

    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 
    

    Exemple :

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | tail 
    <VendorMapping mac_prefix="FC:F7:7B" vendor_name="Huawei Device Co., Ltd."/>
    <VendorMapping mac_prefix="FC:F8:AE" vendor_name="Intel Corporate"/>
    <VendorMapping mac_prefix="FC:F8:B7" vendor_name="TRONTEQ Electronic"/>
    <VendorMapping mac_prefix="FC:FA:F7" vendor_name="Shanghai Baud Data Communication Co.,Ltd."/>
    <VendorMapping mac_prefix="FC:FB:FB" vendor_name="Cisco Systems, Inc"/>
    <VendorMapping mac_prefix="FC:FC:48" vendor_name="Apple, Inc."/>
    <VendorMapping mac_prefix="FC:FE:77" vendor_name="Hitachi Reftechno, Inc."/>
    <VendorMapping mac_prefix="FC:FE:C2" vendor_name="Invensys Controls UK Limited"/>
    <VendorMapping mac_prefix="FC:FF:AA" vendor_name="IEEE Registration Authority"/>
    </MacAddressVendorMappings>
    youarewelcom@myhost : ~/Raspberry >

    Extraire uniquement les lignes pour Raspberry  :

    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry

    Exemple:

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry
    <VendorMapping mac_prefix="3A:35:41" vendor_name="Raspberry Pi (Trading) Ltd"/>
    <VendorMapping mac_prefix="B8:27:EB" vendor_name="Raspberry Pi Foundation"/>
    <VendorMapping mac_prefix="DC:A6:32" vendor_name="Raspberry Pi Trading Ltd"/>
    <VendorMapping mac_prefix="E4:5F:01" vendor_name="Raspberry Pi Trading Ltd"/>
    youarewelcom@myhost : ~/Raspberry >

    Récupérer les listes des périphériques réseau :

    La commande « nmap » permet d’explorer une réseau et de trouver les différents périphériques connectés au réseau.

    youarewelcom@myhost : ~/Raspberry > sudo nmap -sP 192.168.0.0/24 | head
    Starting Nmap 7.91 ( https://nmap.org ) at 2021-04-03 15:42 CEST
    Nmap scan report for xxxxxxxxx (192.168.0.1)
    Host is up (0.0059s latency).
    MAC Address: D4:5D:64:0E:C9:98 (Asustek Computer)
    Nmap scan report for yyyyyyyyy (192.168.0.15)
    Host is up (0.34s latency).
    MAC Address: 14:88:E6:80:20:67 (Unknown)
    Nmap scan report for zzzzzzzz (192.168.0.18)
    Host is up (0.24s latency).
    MAC Address: 0A:B2:56:90:50:8A (Unknown)
    youarewelcom@myhost : ~/Raspberry >

    Il suffit d’utiliser cet utilitaire combiné à quelques commandes pour obtenir de manière simple l’ensemble des Raspberry’s présent sur le réseau :

    # Retrieve the MAC Addresses prefixes for Raspberry
    curl https://devtools360.com/en/macaddress/vendorMacs.xml?download=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt
    
    # Scan the network to find the different devices (IP and MAC Address)
    nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'

    Exemple d’une manière de déterminer le hostname, l’ip et l’adresse MAC des Raspberry’s sur le réseau 192.168.0.0/24 :

    youarewelcom@myhost : ~/Raspberry > curl https://devtools360.com/en/macaddress/vendorMacs.xml\?download\=true 2>/dev/null | grep -i Raspberry|awk -F\" '{ print $2 }' >Raspberry.MacPrefix.txt
    youarewelcom@myhost : ~/Raspberry > sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'
    192.168.0.200 DC:A6:32:E6:FB:7C
    192.168.0.201 E4:5F:01:04:38:61
    192.168.0.202 E4:5F:01:04:37:17
    192.168.0.203 E4:5F:01:04:38:55
    192.168.0.204 E4:5F:01:04:38:0D
    youarewelcom@myhost : ~/Raspberry >

    Si vous avez un DNS ou que vous avez adapté votre ‘/etc/hosts’, vous obtiendrez :

    youarewelcom@myhost : ~/Raspberry >  sudo nmap -sP 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5" "$6;}/MAC Address:/{print " "$3;}' | sort|grep -f Raspberry.MacPrefix.txt |sed 's/[\(\)]//g'
    pi4node000 192.168.0.200 DC:A6:32:E6:FB:7C
    pi4node001 192.168.0.201 E4:5F:01:04:38:61
    pi4node002 192.168.0.202 E4:5F:01:04:37:17
    pi4node003 192.168.0.203 E4:5F:01:04:38:55
    pi4node004 192.168.0.204 E4:5F:01:04:38:0D
    youarewelcom@myhost : ~/Raspberry >

    Cela sera très utile pour ansible