Блог "Дети ОИТа"
/поиск

О том как траблшутить срабатывание port-security на порту

> ___О том как траблшутить срабатывание port-security на порту.___ `$` - Перед строкой ввода означает нахождение в базовом `user-exec` режиме. `>` - Перед строкой ввода означает нахождение в режиме

$ - Перед строкой ввода означает нахождение в базовом user-exec режиме.
> - Перед строкой ввода означает нахождение в режиме enable.
# - Перед строкой ввода означает нахождение в режиме конфигурации conf t.
(config-if)# - Перед строкой ввода означает нахождение в режиме конфигурации и на интерфейсе.

1. Проверка включения и статуса

1.1 Проверить настройки port-security на конкретном порту:
> show port-security interface gigabitethernet0/1
1.2 Пример вывода:
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict  <-- наш стандартный режим
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 0011.2233.4455:10
Security Violation Count   : 15     <-- счётчик нарушений растёт
1.3 Краткий статус всех портов с port-security:
> show port-security
1.4 Пример вывода:
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
               (Count)       (Count)          (Count)
-------------------------------------------------------------------
Gi0/1                1            1                  0         Restrict
Gi0/2                1            1                847         Restrict   <-- проблемный порт
Gi0/3                2            2                  0         Restrict

2. Режимы нарушения (Violation Modes)

Режим Команда Действие
Restrict switchport port-security violation restrict Наш стандарт. Порт остаётся up, нарушения логируются, SNMP trap отправляется, счётчик растёт
Shutdown switchport port-security violation shutdown Порт выключается (err-disabled), требуется ручное включение
Protect switchport port-security violation protect Порт остаётся up, нарушения не логируются, лишние MAC просто дропаются

3. Проверка режима работы портов

3.1 Проверить настройки violation mode на всех портах
> show port-security
3.2 Проверить конфигурацию конкретного порта
> show running-config interface gigabitethernet0/1 | include port-security
3.3 Пример вывода для restrict:
switchport port-security
switchport port-security violation restrict
switchport port-security maximum 1
switchport port-security mac-address sticky
3.4 Пример вывода для shutdown (если встретится):
switchport port-security
switchport port-security violation shutdown  <== Тут видим режим P.S.
switchport port-security maximum 1
switchport port-security mac-address sticky
3.5 Проверить все порты в err-disabled (для shutdown режима)
> show interfaces status err-disabled
3.6 Пример вывода:
Port      Name               Status       Reason
Gi0/5                        err-disabled  psecure-violation

4. Поиск нового подключенного устройства (restrict режим)

4.1 Порт в restrict показывает нарушения в счётчике
> show port-security interface gigabitethernet0/2

Security Violation Count   : 156    <-- растёт при попытках неизвестного MAC
4.2 Увидеть где последний нарушитель
> show port-security interface gigabitethernet0/2 address
Secure Mac Address Table
-------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports
----    -----------       ----                          -----
  10    0011.2233.4455    SecureSticky                  Gi0/2    <-- легальный MAC
  10    00aa.bbcc.ddee    SecurityViolation             Gi0/2    <-- новое устройство
4.3 Проверить логи на нарушения
> show logging | include PORT_SECURITY
или
> show logging | include psecure
или
> show logging | include violation
4.4 Пример вывода проверки
%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 00aa.bbcc.ddee on port GigabitEthernet0/2.
4.5 Увидеть динамику нарушений
> show port-security | include Violation
4.6 Проверить MAC таблицу на порту
> show mac address-table interface gigabitethernet0/2
или
> show mac adress-table | inc Gi0/2

5. Разблокировка порта в restrict режиме

В режиме restrict порт не блокируется физически, но трафик от нарушителя дропается.
Для «разблокировки» нового устройства делаем:

5.1 Перейти в конфигурацию порта
> configure terminal

(config-if)#
5.2 Очистить текущие sticky MAC (если нужно заменить устройство)
(config-if)# no switchport port-security mac-address sticky 0011.2233.4455
ИЛИ очистить все sticky MAC на порту
(config-if)# no switchport port-security mac-address sticky
5.3 Пересоздать sticky MAC с нового устройства\

Просто переподключить новое устройство, MAC запишется автоматически

(config-if)# switchport port-security mac-address sticky
5.4 Сбросить счётчик нарушений (опционально)

(выход и вход из конфигурации порта сбрасывает счётчик)

5.5 Сохранить конфигурацию
(config-if)# end
> write memory

6. Разблокировка порта в shutdown режиме (на всякий случай)

6.1 Проверить что порт в err-disabled
> show interfaces status err-disabled
6.2 Разблокировка

configure terminal
interface gigabitethernet0/5

! Выключить и включить порт
shutdown
no shutdown

! ИЛИ если нужно сбросить port-security полностью
no switchport port-security
shutdown
no shutdown
switchport port-security
switchport port-security violation restrict    <-- возвращаем наш режим
switchport port-security maximum 1
switchport port-security mac-address sticky

end
write memory

7. Дополнительные команды

! Увидеть все secure MAC адреса на коммутаторе
show port-security address

! Очистить конкретный sticky MAC
clear port-security sticky interface gigabitethernet0/1 address 0011.2233.4455

! Очистить все sticky MAC на порту
clear port-security sticky interface gigabitethernet0/1

! Очистить динамические secure MAC
clear port-security dynamic interface gigabitethernet0/1

! Проверить логи
show logging | include psecure

! Проверить SNMP traps
show snmp trap

8. Быстрый алгоритм действий (restrict режим)

> show port-security | include Restrict  ← Найти порты с растущим счётчиком нарушений
> show port-security interface [port] address  ← Увидеть нарушителя (SecurityViolation)
> interface [port] 
> no switchport port-security mac-address sticky
> switchport port-security mac-address sticky  ← Обновить MAC
> write memory

9. Стандартный шаблон конфигурации (restrict)

interface gigabitethernet0/1
 switchport mode access
 switchport access vlan [user-vlan-id]
 switchport port-security
 switchport port-security violation restrict     <-- наш режим
 switchport port-security maximum 1
 switchport port-security mac-address sticky
 spanning-tree portfast