Как найти порт коммутатора

Как найти порт коммутатора, к которому подключен хост

Январь 13, 2015

Read the article HOW TO FIND A HOST BY IT’S MAC ADDRESS ON CISCO SWITCH in Read in EnglishEnglish

В повседневной работе очень часто появляется необходимость определить коммутатор и порт, к которому подключен пользователь или какое-то устройство. Для этого необязательно искать его визуально. Достаточно лишь узнать MAC адрес.
Секрет в том, что каждый коммутатор хранит информацию о всех МАС адресах, которые проявляют хоть какую-то сетевую активность за последние несколько минут. Необходимо просто грамотно этим воспользоваться.

Итак, допустим, что необходимо найти порт коммутатора, в который подключен пользователь Иванов. Достоверно известно, что ip адрес его компьютера 192.168.10.100
Возможно 2 варианта определения MAC адреса:

  • Непосредственно на компьютере пользователя выполнить в командной строке команду ipconfig /all

как узнать MAC адрес
Или

  • Узнать МАС адрес удаленно, зная ip адрес компьютера пользователя. Это возможно при условии, что есть доступ к маршрутизатору Cisco или межсетевому экрану Cisco ASA, которое является шлюзом по умолчанию для хоста. ARP таблица  на этих устройствах  будет содержать соответствие МАС и IP адресов.

Для поиска используется команда sh arp | inc x.x.x.x, где х.х.х.х – ip адрес интересующего хоста.
R-DELTACONFIG-1#  sh arp | inc 192.168.10.100
Protocol  Address           Age (min)  Hardware Addr   Type   Interface
Internet  192.168.10.100           236   78ac.c0bb.74f2  ARPA   Vlan10

Устройство с ip адресом 192.168.10.100 имеет МАС адрес 78ac.c0bb.74f2 и находится во Vlan 10.
Определив МАС адрес устройства, можно продолжить поиск его непосредственного месторасположения на коммутаторе.
Команда show mac address-table (иногда пишется с дополнительным дефисом вместо пробела show macaddress-table) показывает список всех МАС адресов активных устройств, которые подключены к коммутатору.
SW-DELTACONFIG-1# sh mac address-table
Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
1    1111.1111.1111    DYNAMIC     Fa0/1
2    2222.2222.2222    DYNAMIC     Fa0/2
3    3333.3333.3333    DYNAMIC     Fa0/3
4    4444.4444.4444    DYNAMIC     Fa0/4

Из-за большого количества записей, которые обычно присутствуют в этой таблице, рекомендуется использовать фильтр по нужному МАС адресу, причем достаточно последних 4х символов. В нашем случае поиск МАС адреса 78ac.c0bb.74f2 выглядит так:
SW-DELTACONFIG-1#sh mac address-table | inc 74f2
10    78ac.c0bb.74f2    DYNAMIC     Gi0/1

Строка вывода показывает, что хост находится в Vlan 10 и подключен к порту коммутатора Gigabitethernet 0/1.
Если у вас небольшой офис и вся сеть организована только на одном единственном коммутаторе, то поиск окончен. Однако, если под управлением есть несколько устройств, то может быть так, что к найденному порту текущего коммутатора подключен не конечный хост, а другой коммутатор. В этом случае необходимо повторить поиск в таблице МАС адресов соседнего коммутатора.

deltaconfig - cisco аутсорсинг

Если в сети офиса их несколько, то определить имя и адрес управления нужного нам соседнего коммутатора помогут команды sh cdp neighbors, которая покажется имена и связанные порты всех коммутаторов Cisco, подключенных к текущему и sh cdp neighbors detail, в выводе которой дополнительно указаны ip адреса для управления соседними коммутаторами
SW-DELTACONFIG-1#sh cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID     Local Intrfce         Holdtme   Capability    Platform   Port ID
SW-TEST-2
Gig 0/1               123            S I     WS-C3560G-Gig 0/18

Device ID (SW-TEST-2) – имя соседнего устройства
Local Intrfce (Gig 0/1) – локальный интерфейс, куда подключен соседний коммутатор
Port ID (Gig 0/18) – интерфейс соседнего коммутатора.
SW-DELTACONFIG-1#sh cdp nei detail
-------------------------
Device ID: SW-TEST-2
Entry address(es):
IP address: 192.168.1.202
Platform: cisco WS-C2960-24TT-L,  Capabilities: Switch IGMP
Interface: GigabitEthernet0/1,  Port ID (outgoing port): GigabitEthernet0/18
Holdtime : 144 sec

Теперь необходимо зайти на соседний коммутатор SW-TEST-2 с адресом управления  192.168.1.202 и произвести на нем поиск нужного нам МАС адреса.

При должной сноровке указанный метод позволит находить хосты в сети любых размеров не более чем за пару минут, не вставая с рабочего места.

Перейти к оглавлению

Firstly, you need to get the MAC address, so get into a machine on the same VLAN and look at its neighbour table — Windows is netsh int ipv4 show neigh, Linux: ip nei Cisco: show ip arp x.x.x.x. Once you have that…

If this is a discovery job on a layer 2 switch, do show mac address-table | i 0011.2233.4455 — replacing the mac address bytes as appropriate.

If on the other hand it’s a router, use show ip arp | i 0011.2233.4455 — again replacing the MAC as appropriate. Obviously when you were getting the MAC, if it turned out to be directly connected to that router, you’re already done.

Long-term however, I heartily recommend that you setup LLDP (failing that, CDP) to your hosts so that you can identify them from either side. lldpd is an absolutely excellent LLDP daemon for Linux that also supports CDP, EDP, SONMP and FDP. If you’re currently able to reach the host and it does happen to run linux/BSD, I’d recommend skipping the above and just turn on LLDP.

С настройками сетевых коммутаторов Cisco сталкивается большинство сетевых инженеров. Рассмотрим более подробно начальную настройку на примере коммутатора Cisco 2960.

коммутатор Cisco 2960


Рис.1. Коммутатор Cisco Catalyst 2960-X 48 GigE PoE 740W, 2 x 10G SFP+, LAN Base


Для подключения коммутатора к компьютеру для первичной настройки понадобится консольный кабель из комплекта коммутатора. Кабель может быть как с COM-портом, так и с современным USB-портом. Кабель выбирается в зависимости от наличия требуемого порта на управляющем компьютере. Вместо USB-кабеля возможно использование USB-COM переходника.

Кабель с COM-портом для подсоединения коммутатора CISCO к компьютеру


Рис. 2 Кабель с COM-портом для подсоединения коммутатора CISCO к компьютеру

Переходник COM-USB для подключения коммутатора CISCO к компьютеру


Рис. 3 Переходник COM-USB для подключения коммутатора CISCO к компьютеру


В последнее время Cisco комплектует коммутаторы кабелями MiniUSB-USB для прямого подключения через порт MiniUSB к современным компьютерам. В таком случае необходимо использовать Cisco USB Console Driver. Для работы на компьютере под управлением Windows можно использовать любую терминальную программу (Hyperterminal, PuTTY и т.п.).

Первоначальная настройка коммутатора Cisco 2960


После начала сеанса связи с компьютером нам предлагается выполнить начальную настройку по встроенному сценарию в коммутаторе. Необходимо ответить “no”

Would you like to enter the initial configuration dialog? [yes/no]: no

Press RETURN to get started!


Switch>


Теперь мы в командной строке коммутатора. Вначале убедимся, что все настройки коммутатора сброшены к базовым.

Switch>enable

Switch#show startup-config


startup-config is not present


Switch#


Из пользовательского режима переключаемся в привилегированный режим.


Переключаемся в режим глобального конфигурирования.

Switch#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.


Switch(config)#



Задаем пароль для привилегированного режима.

Switch(config)#enable secret pass

Switch(config)#



Рекомендуется запретить несанкционированный поиск в DNS.

Switch(config)#no ip domain-lookup

Switch(config)#


Проверим настройку доступа по паролю. На экране ввода пароль не отображается.

Switch(config)#exit

Switch#exit


01:19:48: %SYS-5-CONFIG_I: Configured from console by consoleexit


Switch con0 is now available


Press RETURN to get started.


Unauthorized access is strictly prohibited.


Switch>en


Password:pass


Switch#


Для доступа к управлению коммутатором настроим IP-адрес на виртуальном интерфейсе VLAN.

Switch#conf t

Enter configuration commands, one per line.  End with CNTL/Z.


Switch(config)#interface vlan1 1


Switch(config-if)#ip address 192.168.1.2 255.255.255.0


Switch(config-if)#no shutdown


Switch(config-if)exit


03:21:33: %LINK-3-UPDOWN: Interface Vlan1, changed state to up


03:21:34: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up


Switch(config)#


Установим пароль для доступа к консоли управления.

Switch(config)#line console 0

Switch(config-line)#password cisco


Switch(config-line)#login


Switch(config-line)#exit


Switch(config)#


Для разрешения удаленного доступа по Telnet настроим VTY (Virtual Teletype).

Switch(config)#line vty 0 4

Switch(config-line)#password cisco


Switch(config-line)#login


Switch(config-line)#end


Switch#


03:28:46: %SYS-5-CONFIG_I: Configured from console by console


Проверим состояние интерфейса SVI. Состояние интерфейса VLAN1 должно быть up/up, что указывает на его активное состояние и получение IP-адреса. Так как все порты коммутатора принадлежат VLAN1 по умолчанию, возможно обращаться к коммутатору на адрес, назначенный VLAN1.

Switch#show ip interface brief


Сохраним настройки.

Switch#copy running-config startup-config

Destination filename [startup-config]?


Building configuration…


[OK]


Switch#


Если необходима обратная задача – удаление текущих настроек коммутатора и возврат к настройкам по умолчанию, используем следующие команды.

Switch#erase startup-config

Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]


[OK]


Erase of nvram: complete


Switch#


06:48:31: %SYS-7-NV_BLOCK_INIT: Initalized the geometry of nvramreload


Switch#reload


Proceed with reload? [confirm]


06:48:46: %SYS-5-RELOAD: Reload requested by console. Reload Reason: Reload Command



Для удаленного управления коммутатором по зашифрованному протоколу SSH  используем следующие настройки.

Switch# conf t


Включаем ААА—протокол.

Switch(config)# aaa new-model


Создаем пользователя root с максимальным уровнем привилегий – 15, пароль pass0.

Switch(config)# username root privilege 15 secret pass1230


Создаем правило доступа с названием 01, дающее право заходить по ssh всем хостам сети 192.168.0.0/24; вместо адреса сети можно указать IP-адрес.

Switch(config)# access—list 01 permit 192.168.0 0.0.0.255


Конфигурируем терминальные линии.

Switch(config)# line vty 0 2


Разрешаем вход в привилегированный режим.

Switch(config—line)# privilege level 15


Привязываем правило доступа по ssh к терминальной линии.

Switch(config—line)# access—class 23 in


Вывод лога только после полного ввода команды.

Switch(config—line)# logging synchronous


Выход из режима конфигурирования.

Switch(config—line)# end


Сохраняем настройки.

Switch# copy running-config startup-config

Как найти порт коммутатора Cisco 2960 с подключенным хостом


Часто возникает необходимость найти необходимый коммутатор и порт с подключенным пользователем или необходимым устройством. Нет необходимости искать визуально данный порт. Достаточно узнать MAC-адрес пользователя. Любой коммутатор хранит информацию о всех активных адресах. Допустим, необходимо найти порт коммутатора, в который подключен пользователь Петров с IP-адресом 192.168.10.100. MAC-адрес можно определить двумя способами:

  • непосредственно на компьютере пользователя (под управлением Windows) с помощью команды ipconfig /all;

Определение MAC-адреса на компьютере пользователя


Рис. 4 Определение MAC-адреса на компьютере пользователя

  • если известен IP-адрес компьютера пользователя, возможно узнать его MAC-адрес дистанционно при условии доступа к маршрутизатору Cisco (являющегося шлюзом по умолчанию для хоста). Таблица ARP маршрутизатора будет содержать необходимые соответствия MAC и IP-адреса.


Для поиска применяется команда
sh arp | inc x.x.x.x, где х.х.х.х – ip адрес искомого хоста. Команда подается маршрутизатору.

Router#  sh arp | inc 192.168.10.100


Protocol

Address

Age (min)

Hardware Addr

Type

Interface

Internet

192.168.10.100

236

78ac.c0bb.74f2

ARPA

Vlan10



В протоколе видно, что устройство с ip адресом 192.168.10.100 имеет МАС-адрес 78ac.c0bb.74f2 и находится во Vlan 10. Определив МАС адрес устройства, проведем поиск его размещения на коммутаторе. Используем команду “show mac address-table”, которая выведет список всех МАС-адресов активных устройств, подключенных к коммутатору. Далее общаемся непосредственно с коммутатором.


Switch#sh mac address-table


Mac Address Table


——————————————-


Vlan    Mac Address       Type        Ports


—-         ————           ———      ——


1    1111.1111.1111    DYNAMIC     Fa0/1


2    2222.2222.2222    DYNAMIC     Fa0/2


3    3333.3333.3333    DYNAMIC     Fa0/3


4    4444.4444.4444    DYNAMIC     Fa0/4


Из-за значительного числа записей, которые присутствуют в этой таблице, рекомендуется использовать фильтр по нужному МАС адресу. Достаточно последних 4-х символов. В таком случае поиск МАС адреса 78ac.c0bb.74f2 выглядит так:

Switch#sh mac address-table | inc 74f2

10    78ac.c0bb.74f2    DYNAMIC     Gi0/1


Хост находится во Vlan 10, подключен к порту коммутатора Gigabitethernet 0/1.


Системный интегратор ВИСТЛАН устанавливает и конфигурирует локальные сети любой сложности на оборудовании Cisco.

Время на прочтение
5 мин

Количество просмотров 16K

В локальной сети часто нужно узнать, на каком порту коммутатора находится определенный MAC-адрес устройства. Задача решается легко, если в сети несколько коммутаторов, но, когда их больше 30, всё значительно усложняется. Хочу поделиться небольшим скриптом на Python, который ищет нужный MAC-адрес в сети и возвращает имя и порт коммутатора, на котором зарегистрирован этот MAC.

Конструктивная критика приветствуется. Подробности под катом.

Если дизайн сети выполнен правильно, то есть корневой коммутатор CORE, к которому подключены коммутаторы распределения DS (Distribution Switch), а к ним, в свою очередь, коммутаторы уровня доступа AS (Access Switch). Это правило не всегда выполняется, коммутаторы доступа могут быть подключены последовательно. В любом случае, на порту вышестоящего коммутатора находятся все MAC-адреса устройств, подключенных к нижестоящему коммутатору.

Например, если интересующее нас устройство подключено к коммутатору AS3, то, начав поиск с CORE, мы найдем этот адрес на порту, ведущему к DS1. Зайдя на DS1, мы обнаружим этот MAC на порту, ведущему к AS2, зайдя на AS2, мы увидим, что он ведет нас к AS3, и только на AS3 мы найдем конкретный порт, к которому подключено интересующее нас устройство.

Делать это всё руками не хотелось, перебирать все коммутаторы в цикле и определять, где аплинк, а где нет тоже, поэтому родилось следующее решение, которым и хочу поделиться.

Немного теории.

Чтобы найти MAC 08:62:66:c7:b3:45 на коммутаторе Juniper, нужно выполнить следующую команду:

show ethernet-switching table | match 08:62:66:c7:b3:45

Если такой MAC есть, ответ будет следующим:

vlan151  08:62:66:c7:b3:45   D  -   xe-0/0/23.0

В последней колонке будет имя интерфейса коммутатора, на котором зарегистрирован MAC. Но как понять, куда ведет этот интерфейс? И тут на помощь приходят Interface Descriptions. Это строки в конфигурационном файле коммутатора, которые позволяют назначить текстовые метки интерфейсам.

Команда

show interfaces xe-0/0/23 descriptions

покажет следующее:

Interface       Admin Link Description
xe-0/0/23       up    up   SW>DS1

При конфигурации мы указываем, что этот интерфейс ведет к нижестоящему коммутатору:

set interfaces xe-0/0/23 description SW>DS1

Реализация

Предлагаемый скрипт будет делать следующее:

  1. подключаться по SSH на корневой коммутатор;
  2. проверять, на каком интерфейсе находится передаваемый в параметрах MAC-адрес;
  3. проверять Description этого интерфейса;
  4. если интерфейс ведет к коммутатору, рекурсивно заходить на следующий по цепочке коммутатор.

#в этот список будут складываться результаты поиска
searchpass = []

#main функция принимает в качестве параметра MAC-адрес и вызывает функцию checkswitch, в которую в качестве параметра передает имя корневого коммутатора и MAC-адрес. Весь результат поиска складывается в список searchpass в формате json.

def main(argv):

	mac_addr = argv[0]

	checkswitch('CORE',mac_addr)
	for switch in searchpass:
		print (json.dumps(switch, ensure_ascii=False))

if __name__ == "__main__":
   main(sys.argv[1:])


#функция рекурсивного поиска MAC-адреса

def checkswitch(hostname,mac_addr):
try:
#создаем пустой словарь возвращаемых значений, ключу host присваиваем имя коммутатора
	returnvalue = {}
	returnvalue['host']=hostname

#sendCommand подключается к заданному коммутатору по SSH и вызывает команду поиска MAC-адреса в таблице коммутации
	answer = sendCommand(hostname,'show ethernet-switching table | match '+mac_addr)
#делим строку на колонки, в последней находится имя интерфейса
#vlan151  08:62:66:c7:b3:45   D  -   xe-0/0/23.0
if(answer!=0):
		iface = answer.split()[4]
		returnvalue['iface']=iface
#проверяем description интерфейса, нужно отрезать последние 2 символа .0 от имени и забрать последнюю строку
#xe-0/0/23       up    up   SW>DS01
		answer = sendCommand(hostname,'show interfaces '+iface[:-2]+' descriptions | last 1 | no-more')
		iface = answer.split()
#Если description на интерфейсе есть, записываем его в словарь и проверяем, начинается ли он с SW>. Если да, отрезаем эти 3 символа, берем имя следующего коммутатора и рекурсивно вызываем функцию снова. 
		if(len(iface)>2):
			iface=iface[3]
			returnvalue['description']=iface
		else:
			returnvalue['description']='none'
		searchpass.append(returnvalue)
		if (iface[:3]=='SW>'):
			checkswitch(iface[3:],mac_addr)
	else:
		returnvalue['iface']='none'
		searchpass.append(returnvalue)

	except Exception as e:
		print(e)

Таким образом, скрипт пройдет по всем коммутаторам сети, начиная с ядра, и попытается найти нужный MAC. Для успешной работы достаточно поддерживать в актуальном состоянии descriptions на интерфейсах, а топология может быть практически любой сложности.

Пример работы скрипта:

python findmac.py 00:17:fc:21:e8:f9

{"host": "CORE", "iface": "xe-0/0/23.0", "description": "SW>DS1"}
{"host": "DS1", "iface": "xe-0/0/11.0", "description": "SW>AS2"}
{"host": "AS2", "iface": "xe-1/0/1.0", "description": "SW>AS3"}
{"host": "AS3", "iface": "ge-0/0/26.0", "description": "none"}

Если MAC отсутствует, получим

{"host": "CORE", "iface": "none"}

Последняя строка – интересующий нас коммутатор и порт, но при этом мы можем отследить весь путь поиска.

Полный код – под спойлером, благодарю за внимание.

findmac.py


import paramiko
import time
import sys
import json
import threading
import logging


login = 'user1'
password = 'pass1234'
searchpass = []
port = 22

class LogPipe(threading.Thread):
	def __init__(self, level):
		threading.Thread.__init__(self)
		self.daemon = False
		self.level = level
		self.fdRead, self.fdWrite = os.pipe()
		self.pipeReader = os.fdopen(self.fdRead)
		self.start()

	def fileno(self):
		return self.fdWrite

	def run(self):
		for line in iter(self.pipeReader.readline, ''):
			logging.log(self.level, line.strip('n'))
		self.pipeReader.close()

	def close(self):
		os.close(self.fdWrite)

def execute_ssh_command(host, port, username, password, command):
    try:
        # Create the SSH client.
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 
        # Connect to the host.
        ssh.connect(host, port, username, password, look_for_keys=False)
 
        # Send the command (non-blocking)
        stdin, stdout, stderr = ssh.exec_command(command)
 
        # Wait for the command to terminate
        while not stdout.channel.exit_status_ready() and not stdout.channel.recv_ready():
            time.sleep(1)
 
        stdoutstring = stdout.readlines()
        stderrstring = stderr.readlines()
        return stdoutstring, stderrstring
    finally:
        if ssh is not None:
            # Close client connection.
            ssh.close()

def sendCommand (hostname,command):
	returnvalue = 0
	logging.info('Host '+hostname+', command: '+command)
	Try:
#add .mydomain for FQDN
		(stdoutstring, stderrstring) = execute_ssh_command(hostname+'.mydomain', port, login, password, command+'n')
		if (len(stdoutstring)>0):
			logging.info(stdoutstring[0])
		if (len(stderrstring)>0):
			logging.info(stderrstring[0])
	except Exception as e:
		return returnvalue
	else:
		returnvalue = stdoutstring[0]
	finally:
		return returnvalue
			
			
def checkswitch(hostname,mac_addr):
	try:
		returnvalue = {}
		returnvalue['host']=hostname
		answer = sendCommand(hostname,'show ethernet-switching table | match '+mac_addr)
		if(answer!=0):
			iface = answer.split()[4]
			returnvalue['iface']=iface
			#cut .0 prefix in the interface name
			answer = sendCommand(hostname,'show interfaces '+iface[:-2]+' descriptions | last 1 | no-more')
			iface = answer.split()
			if(len(iface)>2):
				iface=iface[3]
				returnvalue['description']=iface
			else:
				returnvalue['description']='none'
			searchpass.append(returnvalue)
			if (iface[:3]=='SW>'):
				checkswitch(iface[3:],mac_addr)
		else:
			returnvalue['iface']='none'
			searchpass.append(returnvalue)
	except Exception as e:
		logging.info(e)

			
def main(argv):

	mac_addr = argv[0]
	
	#configure log
	logging.basicConfig(filename='/var/log/findmac.log', level=logging.INFO, format='%(asctime)s %(message)s')
	logging.info('Find MAC: '+mac_addr)
	checkswitch('CORE',mac_addr)
	for switch in searchpass:
		print (json.dumps(switch, ensure_ascii=False))

if __name__ == "__main__":
	main(sys.argv[1:])

Как определить, к какому из портов коммутатора подключен IP-хост Печать

Добавил(а) microsin

  

Задачка — знаем IP устройства, и нужно дистанционно определить, к какому из портов коммутатора оно подключено.

Памятка по командам, для тех кто знает процедуру:

ping (на устройствах Cisco и компьютерах)
arp -a (на компьютерах)
show arp | incl xxxx.yyyy.zzzz (на устройствах Cisco, в основном на роутерах)
show mac address-table | incl xxxx.yyyy.zzzz (на коммутаторах Cisco)
show mac-address-table | incl xxxx.yyyy.zzzz (на коммутаторах Cisco)
show etherchannel summary (на коммутаторах Cisco для определения портов, входящих в port-channel)

Последовательность действий по шагам:

1. Сначала нужно определить MAC-адрес устройства. Для этого на любом устройстве, которое понимает маршрутизацию (использует протокол IP), нужно посмотреть таблицу arp. Перед этим обязательно нужно послать пакет на устройство (например, сделать ping на него откуда-нибудь). Чтобы посмотреть таблицу arp на маршрутизаторе Cisco 831, нужно дать команду show arp. На компьютере с w2k нужно дать команду arp -a, на *nix команду arp -n.

2. На коммутаторе (С2950) выполнить команду show mac-address-table. Будет выведена примерно такая таблица:

Switch-2950-a.b.96.253#show mac-address-table 
         Mac Address Table
-------------------------------------------
Vlan   Mac Address      Type       Ports
----   -----------      --------   -----
 All   0015.fa4c.d680   STATIC     CPU
 All   0100.0ccc.cccc   STATIC     CPU
 All   0100.0ccc.cccd   STATIC     CPU
 All   0100.0cdd.dddd   STATIC     CPU
  50   000a.e475.7469   DYNAMIC    Fa0/5
  50   000a.e476.4515   DYNAMIC    Fa0/7
  50   0012.01bb.4add   DYNAMIC    Fa0/1
Total Mac Addresses for this criterion: 7

Теперь осталось сравнить таблицу IP-MAC (полученную на предыдущем шаге) с этим выводом, и будет понятно, к какому порту подключено устройство (выстраиваем цепочку IP-MAC-port).

В случае, когда между нами и устройством стоит цепочка из коммутаторов, нужно использовать следующий метод. Предположим, нужно найти, к какому порту какого коммутатора подключено устройство с IP a.b.0.61.

1. Для начала заходим на корневой коммутатор, и даем команду

Это нужно для того, чтобы гарантировать появление в ARP-таблице MAC-адреса искомого устройства.

2. Даем команду показать ARP-таблицу:

В первой строке Получим MAC устройства с IP a.b.0.61 — 000a.e475.a1a1

3. Даем команду показать таблицу перенаправления MAC-адресов:

#show mac-address-table address 000a.e475.a1a1

Получим имя интерфейса, через который идет трафик на 000a.e475.a1a1 — Gi6/14. Теперь смотрим на имя интерфейса. Если на этом этапе обнаружится, что интерфейс не физический, а Port-channel, то тогда нужно узнать список физических интерфейсов, входящих в этот Port-channel, и для каждого из них повторить шаг 4, пока не будет получен IP соседней циски.

Список интерфейсов в Port-cahnnel можно узнать, дав команду show running-config и просмотрев подкоманду «channel-group номер_группы» у интерфейсов, или дать команду show etherchannel summary.

4. Итак, мы получили имя интерфейса, через который идет трафик искомого хоста и уверены в том, что он не конечный (подключен через один или несколько коммутаторов). В этом случае даем команду нашему коммутатору показать соседей, подключенных по найденному интерфейсу:

#show cdp neighbors GigabitEthernet 6/14 detail

В случае наличия соседей получим IP циски, с которой соединяется GigabitEthernet 6/14 — a.c.0.35. Если соседей нет, то порт конечный (к нему и подключено устройство с искомым IP).

5. Коннектимся к a.c.0.35, и повторяем шаги 1..3. В итоге команда

#show mac-address-table | beg 000a.e475.a1a1

или

#show mac-address-table address 000a.e475.a1a1

покажет имя порта (в случае | beg оно будет в начале списка), к которому подключено искомое устройство (Fa0/10):

  50    000a.e475.a1a1    DYNAMIC     Fa0/10

[Ссылки]

1. Как определить IP хоста, подключенного к определенному порту коммутатора.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как в экселе найти название в столбце
  • Объявление в архиве как найти телефон
  • Как в мобильном телефоне найти контакты
  • Как составить рекомендательное письмо на английском
  • На вашем устройстве не запущены рекомендованные средства устранения неполадок как исправить windows

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии