Короткий ответ
Flapping — линк циклически Up/Down или STP блокирует/разблокирует порт. С клиента это «сеть моргает»: ARP пропадает, DHCP renew, RDP падает. Не отключайте STP глобально. Снимите логи порта, счётчики CRC, есть ли второй линк в тот же сегмент (петля), жив ли кабель, не бьёт ли BPDU guard.
Клиенты в 10.0.10.0/24 будут терять шлюз 10.0.10.1 пачками. Сначала физика и петля, потом «тюнинг» spanning-tree.
Симптомы и как отличить
- На свитче:
%LINK-3-UPDOWNкаждые 2–10 с; - Windows: «Network cable unplugged»;
- Ubuntu:
link down/link upвdmesg; - весь VLAN тормозит — подозрение на петлю, не один патч-корд.
| Картина | Не обязательно flap порта | Куда |
|---|---|---|
| Высокий RTT без up/down | задержка | Задержка LAN |
| Loss без логов link | drop | Потери |
| Нет трафика VLAN | VLAN/trunk | VLAN |
Возможные причины
- Битый патч-корд, плохой RJ-45, PoE overload.
- Пользователь воткнул два кабеля в один ПК/свитч (петля).
- STP: порт в listening/blocking, несогласованный mode (PortFast на транке).
- UDLD/односторонняя линк на оптике.
- NIC драйвер, EEE, энергосбережение.
- Дублирующий LAG без настройки etherchannel (петля).
- VM: vNIC disconnect в гипервизоре, не физика.
- Кабель в порт с
errdisable(BPDU guard сработал — выглядит как «мертвый порт»).
Диагностика
1. С клиента: это линк или L3
Get-NetAdapter | Format-Table Name, Status, LinkSpeed
Get-EventLog -LogName System -Source 'Tcpip','e1dexpress','mlx4eth63','Ndis' -Newest 20 -ErrorAction SilentlyContinue
ping -n 30 10.0.10.1ip -br link
journalctl -k -b --grep='link'
ethtool eth0Если Status прыгает — физика/драйвер. Если линк Stable, а ping пачками пропадает — STP/VLAN/шторм выше, не обязательно этот NIC.
2. Лог и состояние порта коммутатора
show logging | include UPDOWN|err-disable|STP|spanning
show interfaces GigabitEthernet0/10
show spanning-tree interface GigabitEthernet0/10 detail
show errdisable detecterr-disabled — не «флап», а защита. Смотрите причину: bpduguard, link-flap, psecure-violation.
3. Петля
Признаки: CPU свитча высокий, broadcast counters взлетают, MAC одного адреса на разных портах.
show mac address-table | include 10.0.10
show spanning-tree inconsistentportsС двух концов «лишнего» кабеля: один и тот же сегмент 10.0.10.0/24. Вытаскивайте один кабель, не оба аплинка сразу без схемы.
4. Кабель vs оптика
Меняйте патч-корд, порт, SFP по одному. Для DAC/оптики: DOM, CRC. Клиентский тест:
ethtool -S eth0 | grep -Ei 'err|crc|drop'5. Не сервер ли сам рвёт линк
Get-NetAdapterPowerManagement
powercfg /devicequery wake_armedЭнергосбережение NIC на ПК даёт периодический down. На сервере Ubuntu:
ethtool --show-wol eth0
cat /sys/class/net/eth0/device/power/controlРешение
Сценарий A. Кабель/порт
Замена патч-корда, другого порта в том же VLAN. После стабильных 10 минут — верните в мониторинг.
Сценарий B. errdisable BPDU guard на access
Пользователь воткнул свитч. Уберите каскад. Порт:
shutdown
no shutdownPortFast только на access к оконечным устройствам, BPDU guard включён. Не на транке к другому свитчу.
Сценарий C. Два линка без LAG
Либо настройте LACP на обоих концах одинаково, либо оставьте один кабель. Два «просто воткнутых» аплинка = петля до STP, затем флапы при reconverge.
Сценарий D. EEE/драйвер ПК
Обновите драйвер NIC, отключите EEE на этом адаптере, проверьте. Не отключайте Windows Update целиком.
Сценарий E. Гипервизор
Проверьте, что порт группы не в trunk mismatch, vSwitch не бриджит два физических без STP. Со стороны Ubuntu-гостя линк может моргать при live migration — это другой класс, не access-петля.
6. Клиентский след, если свитч «в другой комнате»
Пока нет CLI коммутатора, докажите flap с хоста. На Windows:
Get-NetAdapter | Format-Table Name, Status, LinkSpeed, MediaConnectState
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Tcpip'} -MaxEvents 20 |
Select-Object TimeCreated, Id, MessageНа Ubuntu journalctl -k -b | grep -i 'link\|carrier' с метками времени. Если Status не меняется, а ping пачками пропадает — это не физический flap NIC, а STP/шторм/маршрут. Тогда не меняйте патч-корд десять раз. Если Status прыгает синхронно с syslog свитча — кабель, PoE, EEE, драйвер.
Петля: все ПК VLAN 10 одновременно теряют 10.0.10.1, CPU свитча высокий. Один ПК моргает — его порт. Два кабеля в настольный свитч пользователя — классика; BPDU guard должен погасить порт, и это успех защиты, не «сломали STP». Включайте порт после удаления петли, не отключайте guard. Для оптики смотрите DOM и односторонний линк: CRC без down тоже бывает, это соседняя статья про loss, не flap. Зафиксируйте errdisable reason до shutdown/no shutdown, иначе причина исчезнет из оперативной памяти инженера.
Как проверить, что проблема устранена
Лог порта без UPDOWN 15–30 минут. ping -n 200 10.0.10.1 без пачек потерь. MAC-таблица стабильна. STP: порт forwarding, не jumping. DHCP-аренда не сбрасывается.
ping -n 200 10.0.10.1
Get-NetAdapterЕсли не помогло
- Флап только на PoE-точке — бюджет PoE, короткий кабель, не STP.
- Только ночью — патч, скрипт
ifdown. - Оптика в одну сторону: UDLD, замените пару.
- Flap после включения storm control — порог слишком низкий, режет нормальный broadcast (DHCP). Поднимите порог, не отключайте STP.
Профилактика
- BPDU guard на access, Loop guard на uplink по дизайну.
- Не два кабеля «для надёжности» без LACP.
- Мониторинг link traps и errdisable.
- Запас патч-кордов, запрет пользовательских свитчей политикой порта.
FAQ
Отключить STP на время диагностики?
Нет. Для поиска петли STP как раз показывает blocking. Отключение уронит сеть штормом.
PortFast на всех портах?
Только access к хостам. На транках и между свитчами — нет.
Чем flap отличается от loss?
Flap — состояние линка/STP меняется. Loss может быть на стабильном Up (CRC, очередь). Смотрите лог линка.
Ubuntu пишет carrier lost раз в сутки. Это flap?
Разовое — патч/VM migrate. Постоянно раз в N секунд — эта статья.
Нужно ли менять STP mode MST/RSTP «на всякий»?
Нет. Смена режима без плана — краткий шторм на всей сети. Сначала петля и кабель.