Localiser un hôte sur le réseau


11

Quelle est la meilleure méthode pour localiser un poste de travail particulier sur un VLAN?

J'ai parfois besoin de le faire, si une adresse IP de poste de travail apparaît sur un ACL Deny

  1. utilisation du torrent
  2. Utilisation de bande passante élevée (Top Talkers)
  3. Alerte snort

    La façon dont je le fais maintenant,

    • Connectez-vous à un commutateur principal dans le même VLAN
    • Envoyez un ping à l'adresse IP,
    • Récupérer le MAC de la table ARP
    • Recherche d'adresse Mac pour voir de quel commutateur il a été tiré
    • connectez-vous à ce commutateur rincez et répétez jusqu'à ce que je trouve le poste de travail

parfois cela peut prendre une connexion à ~ 7 commutateurs, il y a des défis spécifiques à ce réseau que je ne peux rien faire pour le moment. VLAN énormes (/ 16) avec quelques centaines d'utilisateurs sur chaque VLAN

dans une boutique entièrement Cisco, avec un budget minimal en utilisant des commutateurs Cisco, il doit y avoir un moyen plus efficace de retrouver les machines hôtes?

EDIT: pour ajouter plus de détails

Plus précisément, je recherche le port de commutation auquel l'utilisateur est connecté? aussi un peu d'histoire serait génial .. parce que mon approche ne fonctionne que lorsque l'utilisateur est toujours connecté, et aucune valeur lorsque je passe en revue les journaux le matin, mais l'appareil n'est plus connecté.

Il n'y a pas de DNS central ni d'Active Directory, c'est comme un réseau invité, où seul un accès Internet est fourni. J'essaie de fournir une certaine gestion et un peu de sécurité.

J'ai essayé "show ip dhcp binding | inc" cela me donne un MAC étrange (avec 2 caractères supplémentaires) qui n'est pas le MAC du périphérique associé, je n'ai pas encore examiné cela, mais ARP est précis et je suis plus préoccupé en trouvant le port de commutation auquel la machine incriminée est connectée.

j'espère que cela apporte des éclaircissements


2
Concernant votre "show ip dhcp binding | inc": Les caractères supplémentaires à l'avant sont le type de support. Si vous supprimez les deux premiers caractères, vous vous retrouvez avec le MAC client. Les représentations à deux chiffres sont dans le tableau 2: freesoft.org/CIE/RFC/1700/24.htm
some_guy_long_gone

@legioxi, cela suppose que l'appareil s'est identifié en utilisant le MAC. S'il a utilisé une chaîne, c'est peut-être ce que le serveur affiche.
Ricky Beam

Réponses:


13

Jetez un oeil à Layer2 traceroute (pour cisco) .. Le Cdp devrait fonctionner btw ...

Router# traceroute mac 0000.0201.0601 0000.0201.0201
Source 0000.0201.0601 found on con6[WS-C2950G-24-EI] (2.2.6.6)
con6 (2.2.6.6) :Fa0/1 => Fa0/3
con5                 (2.2.5.5        )  :    Fa0/3 => Gi0/1
con1                 (2.2.1.1        )  :    Gi0/1 => Gi0/2
con2                 (2.2.2.2        )  :    Gi0/2 => Fa0/1
Destination 0000.0201.0201 found on con2[WS-C3550-24] (2.2.2.2)
Layer 2 trace completed
Router# 
Router# traceroute mac 0001.0000.0204 0001.0000.0304 detail 
Source 0001.0000.0204 found on VAYU[WS-C6509] (2.1.1.10)
1 VAYU / WS-C6509 / 2.1.1.10 :
                Gi6/1 [full, 1000M] => Po100 [auto, auto]
2 PANI / WS-C6509 / 2.1.1.12 :
                Po100 [auto, auto] => Po110 [auto, auto]
3 BUMI / WS-C6509 / 2.1.1.13 :
                Po110 [auto, auto] => Po120 [auto, auto]
4 AGNI / WS-C6509 / 2.1.1.11 :
                Po120 [auto, auto] => Gi8/12 [full, 1000M] Destination 0001.0000.0304 
found on AGNI[WS-C6509] (2.1.1.11) Layer 2 trace completed.
Router# 

C'est incroyable, je joue avec maintenant. Exactement ce que je cherchais
hyussuf

9

Nous utilisons le plugin mactrack sur Cacti pour faire de telles choses. Fonctionne assez bien, des données historiques sont également disponibles.

Tant que les tables d'adresses ARP et MAC sont disponibles via SNMP, cela fonctionne. Le seul petit problème que nous avons rencontré est celui où l'instance de couche 3 pour un site est un ASA. Nous venons de contourner cela en tirant la table ARP via des scripts et en générant un fichier arpwatch , puisque mactrack le supporte.

Exemple de capture d'écran de notre configuration: entrez la description de l'image ici

Lien Imgurl: http://i.imgur.com/h9JQVkC.png


Agréable! Peut-être mieux de jeter une image plus grande sur imgur ou quelque chose. Je ne vois pas grand-chose de tout ça. :-)
John Jensen

@JohnJensen Oui, c'est juste stackexchange en réduisant l'image, elle est téléchargée en taille réelle. Essayez d'ouvrir l'image dans un autre onglet, par exemple "Clic droit - ouvrir l'image dans un nouvel onglet dans Chrome". Ajoutera quand même un lien vers la réponse.
Stefan Radovanovici

7

Il y a deux façons de le faire à bon marché (l'exercice de recherche et / ou de mise en œuvre je vous laisse le choix).

  1. Ayez un script qui se connecte à chacun de vos périphériques périphériques et en récupère les tables d'adresses MAC. Vous voudrez exclure les interfaces de jonction pour cela, mais il serait trivial de créer un hachage (ou de dicter pour vous les gens de python) avec les clés étant les commutateurs de bord et les valeurs étant un autre hachage qui est fondamentalement "mac.addr -> interface ". Cela éliminera la nécessité pour vous de chasser les MAC sur vos commutateurs de périphérie, ce qui est la plupart du temps, semble-t-il. Je peux recommander d'utiliser Perl Net::Appliance::Sessionou Python exscriptpour y arriver (cela suppose que vous avez accès à une boîte * NIX).

  2. Utilisez SNMP pour interroger ces données, ce qui éliminera la nécessité pour un script de se connecter réellement aux commutateurs et d'exécuter des commandes. Vous êtes seul à rechercher des MIB pour les tables d'adresses MAC, mais voici une recherche Google pour commencer .

  3. Si vous utilisez Windows uniquement, vous pouvez utiliser SecureCRT ou TeraTerm pour configurer des macros afin de "semi-automatiser" ceci pour vous, mais mon expérience avec l'un ou l'autre est très limitée, donc YMMV.

J'espère que ça vous donne quelques idées.


6

J'aime avoir un script qui saisit show arpet show cam dynsort toutes les 15 minutes, je l'ai horodaté avec term exec prompt timestampdonc nous avons une corrélation approximative pour les temps. Ensuite, j'ajoute toutes les sorties de commutateur à un fichier ... un fichier par commutateur, par jour.

Tous ces journaux sont conservés dans le même répertoire pour une grepping facile.

Trouver des hôtes devient un exercice de grep assez simple si vous connaissez la topologie ... Coincé dans les fenêtres sans grep? Utilisez cygwin ...


2

Pourquoi ne pas simplifier les choses et faire une nslookup sur l'IP, récupérer le nom d'hôte du DNS et utiliser le nom d'hôte pour trouver l'ordinateur via une liste d'actifs ou une base de données de gestion? Ou si vous n'avez pas de configuration DNS inversée, vous pouvez vous connecter au serveur DHCP pour extraire le nom d'hôte.

Je sais que ce n'est pas une méthode Cisco / CLI, mais cela devrait fonctionner si vos utilisateurs sont affectés aux ordinateurs 1-1. Si vous êtes plusieurs à 1, vous pouvez utiliser les outils Windows / Linux pour trouver l'utilisateur actuel de l'ordinateur.


Je ne pense pas que hyussuf essaie de trouver qui est sur l'ordinateur - car il s'agit de l'ingénierie réseau, et par l'exemple qu'il a fourni, je suppose qu'il essaie de déterminer à quel port physique un périphérique est connecté, et ce périphérique peut pas toujours un poste de travail.
Mark

Certes, non seulement cela, mais c'est une sorte de réseau invité, le seul service que nous fournissons est Internet, un mélange de BYOD et de petites entreprises nécessitant un accès Internet pour faire leur travail. techniquement un FAI dans un endroit éloigné avec toutes sortes d'utilisateurs. Les routeurs Cisco sont mes serveurs DHCP, quand je regarde les informations de liaison, le MAC est complètement faux, il a même 2 caractères supplémentaires qui n'ont pas encore été examinés.
hyussuf

Mon objectif principal est également de localiser le port du commutateur incriminé et de le déconnecter ou de le «fermer» ... Je m'excuse, je
n'arrive

Vous souhaiterez peut-être mettre à jour la question avec plus de détails à partir des deux commentaires que vous avez publiés sur ma réponse. Certainement de bonnes informations pour vous aider avec les réponses.
some_guy_long_gone

2

Vous le faites de la même manière que je le ferais manuellement.

Il existe un logiciel qui en supprimera les étapes manuelles. Un outil inclus dans SolarWinds Engineering Toolkit le fera, bien qu'il ne soit malheureusement pas bon marché. Je suis sûr qu'il existe d'autres alternatives.

Si vous êtes à la recherche d'une solution intermédiaire ou d'un travail de script, jetez un œil aux commandes SNMP émises dans cette réponse pour avoir une idée de la façon dont vous pouvez l' écrire à partir d'un système avec un client SNMP CLI

Modifié pour ajouter: je suppose que votre «rinçage et répétition» ne comprend pas le ping et ainsi de suite le long du chemin. Une fois que vous avez déterminé l'adresse mac, vous devriez pouvoir faire simplement sh mac addr | dans #### (whoops angle brackets disparaissent)


correct, ping une seule fois, "show mac add | inc ####", mélangé avec certains show cdp voisin plusieurs fois
hyussuf

Je révélerai que j'ai accès à la fois à la boîte à outils d'ingénierie ainsi qu'au User Device Tracker ( solarwinds.com/user-device-tracker.aspx ) et 99% du temps, je me connecte aux commutateurs et je le fais simplement manuellement. Certes, il est rare que je doive aller 7 en profondeur, mais cela fonctionne.
Mark

Mon SNMP-fu n'est pas solide, mais ce lien est très intéressant et m'a donné quelques idées.
hyussuf

1

Vous demandez deux choses.
1.Localisez un MAC sur votre réseau - Je conseille de créer un script (php) et d'utiliser SNMP pour interroger toutes les tables d'adresses MAC pour vous donner le commutateur / port où se trouve l'adresse IP / MAC.

2.Utilisez votre moniteur (utilisation du torrent, utilisation à large bande passante (Top Talkers), alerte Snort) - Utilisez une solution comme ntop pour surveiller les flux sur votre réseau. Je l'avais utilisé il y a longtemps et c'était génial.


1

Juste une suggestion ... si vous avez une sorte d'inspection syslog active qui peut se déclencher sur des événements spécifiques, vous pouvez écrire un script pour rechercher l'adresse IP SNMP sur chaque commutateur afin de savoir où il se trouvait à peu près au moment où l'événement se produit.

(désolé, je ne trouve pas les OID exacts)

Edit: link " Utilisation de SNMP pour trouver un numéro de port à partir d'une adresse MAC sur un commutateur Catalyst " J'ai oublié l' astuce comm @ vlan . Il y a beaucoup de tables à ping pour trouver toutes les informations nécessaires à un humain. :-(


1

switchmap est un autre outil qui peut être utilisé pour garder une trace de quelle adresse mac se trouve derrière quel switchport (entre autres).


1

J'ai utilisé netdisco pour collecter ces informations. Il permettra à l'utilisateur d'interroger la base de données avec un nom d'hôte, une adresse IP, une adresse MAC, etc. et de retourner le commutateur et le port de commutation. Il fera également d'autres choses utiles.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.