Как я могу узнать, какие коммутаторы не используются?
В большом стеке коммутаторов Cisco Catalyst почти все коммутаторы исправлены. Мне нужно определить порты, которые не используются, для подключения дополнительных устройств.
Следующие коммутаторы, кабели, поля исправлений и сокеты для возможных конечных устройств являются трудоемкими, и даже тогда могут быть временные сокеты. Рассмотрение активности светодиодов порта не является надежным, поскольку пользовательское устройство может быть отключено.
Какой самый простой способ обнаружить все неиспользуемые коммутаторы через команды IOS?
24 ответа
Я часто использую
sh int | i (FastEthernet|0 packets input)
или то же самое с GigabitEthernet, любые типы интерфейсов, которые я хочу проверить.
-
sh int
(который являетсяshow interfaces
) предоставляет огромный список статуса ste всех интерфейсов - Символ трубы
|
может использоваться для фильтрации, а также в выражениях поиска -
| i
(дляinclude
)) фильтрует вывод, который соответствует следующим выражениям поиска - Я использую
(...|...)
для соответствия двум условиям: имя интерфейса и статус, который мне нравится видеть, мы можем использовать регулярные выражения здесь, например, это выражение «или»
Результат может выглядеть так:
...
FastEthernet1/0/31 is up, line protocol is up (connected)
95445640 packets input, 18990165053 bytes, 0 no buffer
FastEthernet1/0/32 is up, line protocol is up (connected)
FastEthernet1/0/33 is up, line protocol is up (connected)
FastEthernet1/0/34 is down, line protocol is down (notconnect)
0 packets input, 0 bytes, 0 no buffer
FastEthernet1/0/35 is down, line protocol is down (notconnect)
FastEthernet1/0/36 is up, line protocol is up (connected)
FastEthernet1/0/37 is down, line protocol is down (notconnect)
0 packets input, 0 bytes, 0 no buffer
...
Теперь я могу видеть своих кандидатов, на самом деле с 0 пакетами с течением времени, даже если мое выражение совпадает с номерами, заканчивающимися на 0. Я мог бы сделать его более совершенным, но быть легко запоминающимся также является преимуществом. Имена интерфейсов прямо перед каждой строкой ввода 0 пакетов являются моими кандидатами.
- Проверьте каждый выбранный интерфейс, если он действительно не используется
sh int <name>
- Время от времени полезно очищать счетчики:
clear counters [type number]
Это может быть хорошей практикой, чтобы оставить неиспользуемое выключение коммутаторов. Поэтому их легко идентифицировать с помощью sh ip int bri
или тому подобного. И вы не столкнетесь с проблемами, если используете коммутатор, который был окончательно отключен раньше.
В конечном счете ... ДОКУМЕНТАЦИЯ. Вы должны знать, где каждый патч-кабель становится на 100% уверенным, что вы не отключите что-то, что кто-то может ожидать в какой-то момент. Просто потому, что порт в настоящий момент «вниз» не означает, что кто-то его не использовал. Также только потому, что счетчики в настоящее время равны нулю, не означает, что он никогда не использовался или не будет использоваться снова в (ближайшем) будущем - счетчики могут быть очищены, а счетчики сбрасываются до нуля при загрузке.
Я работал в интернет-провайдерах и крупных предприятиях, а документация - это ключ к пониманию того, что к чему. Без этого случайные угадывания приведут к многочисленным плохим дням ... клиенты будут злиться, когда вы запускаете свою линию DSL кому-то еще, дублируете назначение адреса, завершаете неправильный интерфейс и т. Д. Шкафы для проводки в сети могут быть настоящим беспорядком; без документации, отслеживание десятков кабелей среди тысяч может быть болью (и что-то такое же простое, как и количество описаний портов).
Мне также нравится
sh int | inc line protocol is|Last input
, который выводит
FastEthernet0/29 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
FastEthernet0/30 is up, line protocol is up (connected)
Last input never, output 00:00:07, output hang never
FastEthernet0/46 is down, line protocol is down (notconnect)
Last input never, output 6d23h, output hang never
Параметр вывода сообщает вам, когда порт видел последний трафик, который полезен для идентификации тех портов, которые изредка используются.
EDIT: Также стоит отметить (по причинам, выходящим за рамки этого вопроса), что «последний вход» почти всегда «никогда»
Мне нравится @ ответ Stefan, но с этой командной строкой «sh int | i (Ethernet | 0 пакетов ввода)», который теперь захватывает все типы интерфейсов Ethernet и фильтрует ненулевые числа, которые заканчиваются на ноль. Он упомянул, что возможна какая-то тонкая настройка, поэтому это всего лишь один пример.
Другой вариант:
sh int counters | i (Port|_0 0 0 0)
Да, требуется пробел. Самый простой способ получить пробелы - это «sh int counters» и скопировать строку со всеми нулями. Один из них заключается в том, что на полпути вниз список меняется с Input, который мы хотим, на Output, который мы не заботимся о поиске неиспользуемых портов. Преимущество этого заключается в том, чтобы показывать ТОЛЬКО порты без ввода, поэтому вам не нужно отсеять используемые порты, как вы делаете со способом Стефана.
Я бы очистил вывод (или захватил его с помощью SNMP, еще лучше) и использовал стандартные инструменты UNIX для его анализа. Вот простой пример:
Здесь я сохранил частичный вывод из «show int counters» (только для демонстрационных целей) в файл, называемый «счетчики».
[[email protected]]$ cat counters
Port InOctets InUcastPkts InMcastPkts InBcastPkts
Gi1/0/1 0 0 0 0
Gi1/0/2 94949242720 556137619 571828 57745
Gi1/0/3 1522191492 8663327 1105299 55269
Gi1/0/4 3743856345 18565173 1275617 53658
Gi1/0/5 0 0 0 0
Gi1/0/6 0 0 0 0
Теперь просто используйте awk для создания отчета обо всех портах, у которых есть все четыре поля счетчика в ноль:
[[email protected]]$ cat counters | awk '{if ($2 == 0 && $3 == 0 && $4 == 0 && $5 == 0) print $1}'
Gi1/0/1
Gi1/0/5
Gi1/0/6
Основная идея заключается в том, чтобы получить все данные, которые вы используете вне устройства, чтобы вы могли делать более интеллектуальные /сложные /более простые /всевозможные синтаксические разборки и отчеты.
ПРИМЕЧАНИЕ . Для нескольких устройств с помощью утилиты Linux, такой как «экран» для регистрации вывода из соединения tty, можно сделать его действительно эффективным для быстрого поиска неиспользуемых портов на нескольких устройствах cisco. (в одном файле журнала) выполните команду, подобную следующей ... где «HOSTNAME» является универсальной частью вашей схемы имен хостов Cisco счетчики кошек | awk '{if ($ 1 == HOSTNAME ) || ($ 2 == 0 & & $ 3 == 0 & $ 4 == 0 & & $ 5 == 0) print $ 1} '
Я новичок, поэтому я не могу проголосовать за ответы @ netdad и @mike pennington, но мне они нравятся. Чтобы получить ответ @Mike Pennington немного дальше, если вы недавно очистили счетчики, вы также можете запустить эту команду:
switch#sh int count | i 0 +0 + 0 +0
Gi1/3 0 0 0 0
Gi1/11 0 0 0 0
Gi1/19 0 0 0 0
Gi1/21 0 0 0 0
В этом регулярном выражении говорится «0», за которым следует 1 или более пробелов, за которым следует «0», за которым следует 1 или более пробелов, за которым следует «0», а затем 1 или более пробелов, за которым следует окончательное «0».
Надеюсь, что это поможет.
Я всегда использую
show interfaces status
Он суммирует все славное и денди.
Если вам нужно делать это регулярно, ничто не сравнится с Perl и Net :: Telnet :: Cisco. Вы можете войти в X количество маршрутизаторов, захватить всю информацию на требуемых интерфейсах, проанализировать вывод и распечатать его в файл или отправить по электронной почте с помощью Net :: SMTP или распечатать его до стандартного вывода. Я могу привести примеры, если вы хотите, но это довольно просто.
В качестве альтернативы, если вы уже настроены на выполнение в IOS, следующий скрипт TCL даст вам результат, который вы хотите, в хорошем, чистом формате:
set show_counters [exec show interfaces counters | i 0 +0 +0 +0]
set line [split $show_counters "\n"]
foreach record $line {
set fields [join $record " "]
foreach field $fields {
if { $field != 0 } {
puts $field
}
}
}
Я предлагаю это, потому что TCL и как это сделать немного менее доступно [IMHO], чем Perl
Обычно я использую sh int des | ex up
, в котором будут перечислены все порты, находящиеся в состоянии down
sh int | i ( 0 packets input)|proto|Desc
Ведущее пространство с 0 будет исключать большие числа, которые заканчиваются на ноль.
Лучше отключить порты (отключить), пока они не станут использоваться. Это рискованно изменить доступ к коммутатору vlan , например, на порт, который уже включен, если вы не уверены, что он не используется.
Вывод может выглядеть так, как показано ниже, сообщая нам, что коммутатор на g8 /18 отключен с 0 пакетами, поскольку последний счетчик очищается, пока используется g8 /19 (из-за отсутствия ввода «0 пакетов»).
GigabitEthernet8/18 is administratively down, line protocol is down (disabled)
Description: 3a30
0 packets input, 0 bytes, 0 no buffer
GigabitEthernet8/19 is up, line protocol is up (connected)
Description: 4a25.vmhost112 (vmnic5)
Что касается знания того, какое гнездо патч-панели задействовано, используйте Описание чтобы помочь вам документировать. Патч-панели должны быть подключены к коммутаторы согласованно, поэтому легко документировать, поскольку разъем коммутационной панели для коммутатора предсказуем. я использую формат Rack-Row-Jack в описании + имя хоста для отслеживания, но в сжатом виде. 4b27 - это стойка 4, строка b, гнездо 27 за которым следует hostxyz или что-то вроде имени хоста. Итак, мой дескриптор читает 4b27.hostxyz.
Вот что я использовал недавно, чтобы удалить кабели из портов, которые не видели никаких действий, по крайней мере, на шесть недель:
show int | i proto.*notconnect|proto.*administratively down|Last in.* [6-9]w|Last in.*
[0-9][0-9]w|[0-9]y|disabled|Last input never, output never, output hang never
Как насчет использования таблицы MAC? Он перечисляет MAC-адреса с интерфейсами, и он стареет. Вам нужно будет удалить список из IOS, чтобы выполнить отфильтрованный список уникальных адресов.
sh int | in is down|input never, output never
FastEthernet0 is administratively down, line protocol is down
Last input never, output never, output hang never
GigabitEthernet1/0/2 is down, line protocol is down (notconnect)
GigabitEthernet1/0/4 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
GigabitEthernet1/0/13 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
GigabitEthernet1/0/24 is down, line protocol is down (notconnect)
Last input never, output never, output hang never
Это немного изменяет, но если все подключено только к одному конечному устройству, вы можете включить защиту порта с липкими адресами mac. Вернитесь через некоторое время (сколько бы вы ожидали, достаточно времени, чтобы предположить, что кто-то использовал компьютер, или он не существует), а работающий config покажет вам, если что-либо использовало этот порт. Я уверен, что вы можете использовать липкие адреса mac с максимальным количеством более одного интерфейса, если вы используете VoIP-телефоны и компьютеры на одном порту, но я не уверен.
В те дни, когда было легко просто ввести:
switch 1#show ver | in uptime
switch 1 uptime is 28 weeks, 6 days, 20 hours, 19 minutes
switch 1#show inter link | in 28 weeks
Fa3/1 28 weeks, 6 days, 20 hours, 19 minutes 16 secs
Fa3/2 28 weeks, 6 days, 20 hours, 19 minutes 16 secs
(это версия 4500 с запущенной версией 12.2 (20))
Я думаю, что в среде Cisco лучший способ - показать показать версию , чтобы узнать время работы коммутатора и после
показать отчетность интерфейсов
Interface Vlan1 is disabled
Vlan810
Protocol Pkts In Chars In Pkts Out Chars Out
IP 709229 73055034 232297 33127143
ARP 738 44280 70 4200
FastEthernet0/1
Protocol Pkts In Chars In Pkts Out Chars Out
No traffic sent or received on this interface.
FastEthernet0/2
Protocol Pkts In Chars In Pkts Out Chars Out
Other 0 0 19 6669
Spanning Tree 0 0 18588 1115280
CDP 0 0 658 309918
только с использованием команд IOS немного сложно - вы пропустите нечетный. Я предлагаю, чтобы другие использовали snmp (у Solarwinds есть ряд бесплатных инструментов, которые вы, возможно, захотите посмотреть) и для мониторинга устройства в течение нескольких дней (в случае необходимости) недель.
За кропотливую часть, которую вы упомянули с помощью трассировочных кабелей и т. д. То, что я сделал, чтобы свести к минимуму работу с портами сопоставления портов для портов портов и т. Д., Очищало счетчики, а затем через несколько дней использовало ловушки snmp, а затем отключая патч-панель на 1-2 секунды, и как только я получил запись в ловушке snmp монитор /приемник (порт x на модуле y спустился), я снова сделал то же самое, чтобы проверить (не то, что кто-то случайно случайно отключил устройство на одном из портов). Для панели с 24 портами может потребоваться 5 минут, поэтому это довольно быстро. Для мертвых - просто возвращайся в другой раз. Если они все еще мертвы и никаких изменений на счетчиках нет, тогда можно с уверенностью предположить, что порт фактически не используется.
Обычно я использую «статус отображения отображения» и варианты, но я также использую аккуратную часть программного обеспечения с открытым исходным кодом под названием «Switchmap», чтобы обеспечить простой графический интерфейс. Одно из преимуществ этого заключается в том, что если порт вверх /вниз, он расскажет вам, как давно он имел на нем трафик, и вы можете позвонить оттуда, как использовать его повторно или нет.
http://sourceforge.net/projects/switchmap/
Это позволяет сохранить некоторые символы: -)
test cable diagnostics tdr interface *intname here*
Это должно показать вам, действительно ли кабель, подключенный к коммутатору, подключен к чему-либо. Независимо от его статуса.
Замените test
на show
, чтобы получить статус.
У нас была эта проблема в нашей фирме. Мы использовали корреляцию с результатами команд «show arp» и «show mac address-table» для корреляции MAC-адресов всех компьютеров /устройств в наших посылках.
Сначала вам нужно будет составить список IP-адресов и MAC-адресов устройств в вашей сети и сопоставить их с соответствующими интерфейсами, используя приведенные выше команды ...
Показать краткое описание IP-интерфейса - это мой личный фаворит.
Сделать это немного легче для просмотра. Если нет, есть много инструментов, чтобы помочь отслеживать использование портов на многих коммутаторах.
OK. Что-то, что работает на всех коммутаторах, начиная с 2900 (не имеют более старых тестов) и показывает только вниз порты.
sh int | i is down
Мне бы хотелось использовать sh int status
, но после этого результат connected
и notconnected
), поэтому исключить или включить делайте что-нибудь хорошее, потому что связанное слово является частью обоих, поэтому вы получаете историю.
В моем случае на 3524 я получаю это ниже с помощью обеих команд, чтобы очистить его:
SD-LIB-C3524#sh int status
Port Name Status Vlan Duplex Speed Type
------- ------------------ ------------ -------- ------ ------- ----
Fa0/1 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/2 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/3 connected 10 A-Full A-100 100BaseTX/FX
Fa0/4 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/5 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/6 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/7 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/8 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/9 connected 10 A-Full A-100 100BaseTX/FX
Fa0/10 notconnect 10 Auto Auto 100BaseTX/FX
Fa0/11 connected 10 A-Full A-100 100BaseTX/FX
Fa0/12 connected 10 A-Full A-100 100BaseTX/FX
Fa0/13 WiFi SD-LIB-15 connected 40 A-Full A-100 100BaseTX/FX
Fa0/14 WiFi SD-LIB-22 connected 40 A-Full A-100 100BaseTX/FX
Fa0/15 WiFi SD-LIB-16 connected 40 A-Full A-100 100BaseTX/FX
Fa0/16 WiFi SD-LIB-23 connected 40 A-Full A-100 100BaseTX/FX
Fa0/17 WiFi SD-LIB-17 connected 40 A-Full A-100 100BaseTX/FX
Fa0/18 WiFi SD-LIB-24 connected 40 A-Full A-100 100BaseTX/FX
Fa0/19 WiFi SD-LIB-18 connected 40 A-Full A-100 100BaseTX/FX
Fa0/20 WiFi SD-LIB-14 connected 40 A-Full A-100 100BaseTX/FX
Fa0/21 WiFi SD-LIB-19 connected 40 A-Full A-100 100BaseTX/FX
Fa0/22 WiFi SD-LIB-21 connected 40 A-Full A-100 100BaseTX/FX
Fa0/23 WiFi SD-LIB-20 connected 40 A-Full A-100 100BaseTX/FX
Fa0/24 SD-LIB-3C4500-50P connected trunk A-Full A-100 100BaseTX/FX
Gi0/1 notconnect trunk Auto 1000 Missing
Gi0/2 notconnect 10 Auto 1000 Missing
SD-LIB-C3524#sh int | i is down
VLAN1 is up, line protocol is down
FastEthernet0/1 is down, line protocol is down
FastEthernet0/2 is down, line protocol is down
FastEthernet0/4 is down, line protocol is down
FastEthernet0/5 is down, line protocol is down
FastEthernet0/6 is down, line protocol is down
FastEthernet0/7 is down, line protocol is down
FastEthernet0/8 is down, line protocol is down
FastEthernet0/10 is down, line protocol is down
GigabitEthernet0/1 is down, line protocol is down
GigabitEthernet0/2 is down, line protocol is down
SD-LIB-C3524#
На устройствах Cisco вы можете использовать;
sh int status
В то время как на устройствах HP команда:
sh int brief
Я думаю, что вы ищете сумму, основанную на статусе? по крайней мере, это звучит как ваш вопрос.
show interfaces status | count notconnect|connected
дает вам хороший счет того, что связано или нет.