Траблшутинг: сбои маршрутизации BGP в Windows Server
Симптомы сбоев протокола BGP в Windows Server
При использовании роли шлюза удаленного доступа (Remote Access / DirectAccess / RRAS) с динамической маршрутизацией BGP сессия соседства переходит в состояние Idle, Connect или Active вместо Established. В журнале System регистрируются ошибки с кодом Event ID 20295.
| Состояние пира | Симптом | Причина |
|---|---|---|
| Active / Connect | Сессия с удаленным BGP-роутером не поднимается | Блокировка порта TCP 179 или ошибка в IP/ASN соседа |
| Idle | Маршрутизатор отключен или сброшен административно | Несовпадение параметров HoldTime или Router ID |
| Маршруты не анонсируются | Соседство установлено, но префиксы не передаются | Не добавлены сетевые маршруты в список анонсов BGP |
Пошаговое восстановление BGP-маршрутизации
- Проверьте текущее состояние BGP-маршрутизатора и соседей:
Get-BgpRouter; Get-BgpPeer | Select-Object PeerId, LocalIPAddress, PeerIPAddress, PeerASN, ConnectionState - Проверьте доступность порта BGP (TCP 179):
Test-NetConnection -ComputerName 192.168.1.1 -Port 179; New-NetFirewallRule -DisplayName "BGP Routing TCP 179" -Direction Inbound -LocalPort 179 -Protocol TCP -Action Allow - Проверьте анонсируемые маршруты и добавьте недостающие префиксы:
Get-BgpCustomRoute; Add-BgpCustomRoute -Network "10.10.0.0/16" -Interface "Ethernet1" - Скорректируйте таймеры сессии при нестабильном канале:
Set-BgpPeer -Name "Peer-Cisco" -HoldTime 90 -IdleHoldTime 30
Совет: Если сессия BGP устанавливается через loopback или через несколько хопов (eBGP Multi-hop), обязательно укажите параметр -MaxHopCount больше 1 при добавлении пира.
Частые вопросы (FAQ)
Какая служба отвечает за BGP в Windows Server?
Служба маршрутизации и удаленного доступа RemoteAccess (RRAS) при установленном компоненте DirectAccess and VPN (RAS).
Поддерживает ли Windows Server протокол eBGP и iBGP?
Да, если локальный ASN совпадает с удаленным — работает режим iBGP, если отличается — eBGP.
Что делать, если статус сессии BGP постоянно колеблется (Flapping)?
Проверьте MTU на сетевом интерфейсе и увеличьте значение HoldTime таймера, чтобы избежать разрывов при задержках.
Как принудительно перезапустить сессию BGP в PowerShell?
Выполните команду Restart-BgpPeer -Name 'ИмяСоседа' -Force.