Как выполнить перезагрузку функции PoE на коммутаторе TP-LINK SG2210P?

Добрый день! <br/> У меня есть коммутатор TP-LINK SG2210P, который находится в переносном кейсе. Мне нужно организовать возможность быстрой перезагрузки питания на PoE портах выборочно при нажатии на определённую кнопку на панели. <br/> Я изучаю возможность использования SNMP в связке с Raspberry Pi, но так как у меня нет опыта в этом направлении, прошу порекомендовать наиболее простой путь реализации этой задачи. Существуют ли готовые решения для данной проблемы?
  • 6 апреля 2025 г. 18:55
Ответы на вопрос 2
Добрый день!

Для реализации перезагрузки PoE портов на коммутаторе TP-LINK SG2210P с использованием Raspberry Pi, вам действительно может пригодиться SNMP (Simple Network Management Protocol). Для выполнения этой задачи вам нужно будет следовать нескольким шагам:

### 1. Настройка SNMP на коммутаторе:

1. **Включите SNMP на коммутаторе.** Вы можете сделать это через веб-интерфейс:
   - Войдите в веб-интерфейс коммутатора.
   - Перейдите в настройки SNMP и включите его.
   - Укажите сообщество (обычно это "public" или ваше собственное), которое вы будете использовать.

### 2. Понимание OID для управления PoE:

Каждый порт на коммутаторе имеет свой OID (Object Identifier), который вам нужно будет использовать для управления питанием на PoE портах. Чтобы найти нужный OID для перезагрузки PoE, вам могут понадобиться документы по MIB (Management Information Base) для вашего коммутатора.

### 3. Настройка Raspberry Pi:

1. **Установите пакет для работы с SNMP:**
   ```bash
   sudo apt-get install snmp snmp-mibs-downloader
   ```
   
2. **Создайте скрипт для перезагрузки PoE порта.** Вам нужно будет написать небольшой скрипт на Python или Bash, который будет отправлять SNMP команды для отключения и последующего включения питания на нужном порту.

Пример простого Bash-скрипта для перезагрузки PoE порта (измените OID на нужный):
```bash
#!/bin/bash

# Параметры
COMMUNITY="your_community"
OID_POE_PORT="your_oid" # Замените на реальный OID порта

# Отключить PoE
snmpset -v2c -c $COMMUNITY <IP_коммутатора> $OID_POE_PORT i 2

# Задержка перед повторным включением
sleep 5

# Включить PoE
snmpset -v2c -c $COMMUNITY <IP_коммутатора> $OID_POE_PORT i 1
```

### 4. Привязка к кнопке:

1. **Подключите кнопку к Raspberry Pi.** Используйте один из GPIO пинов на Raspberry Pi.
2. **Запрограммируйте Raspberry Pi на обработку нажатия кнопки:**
   Используйте библиотеки, такие как RPi.GPIO или gpiozero, чтобы настроить кнопку для запуска вашего Bash-скрипта после нажатия.

### Готовые решения:

Если вы не хотите углубляться в программирование, есть готовые решения на базе SNMP, такие как:
- **PDU (Power Distribution Units):** Некоторые из них поддерживают SNMP и могут управлять несколькими источниками питания.
- **GUI инструменты для SNMP:** Такие, как Cacti или Zabbix, могут использоваться для мониторинга и управления, хотя для простой задачи, возможно, это избыточное решение.

Таким образом, с помощью SNMP и Raspberry Pi вы сможете организовать перезагрузку PoE портов на вашем коммутаторе TP-LINK SG2210P по нажатию кнопки, создавая простой и эффективный способ управления питанием ваших устройств.
Если надо сделать "грубо, материально, ощутимо" - поставить N штук самых маленьких коммутаторов с PoE и каждый рубить по питанию небольшим тумблером. 
(Бывает актуально, если надо предъявлять безопасникам доказательно-выключенное устройство, а не эти ваши SNMP MIB'ы :)))

Если более изящно то, как Вы и предполагаете - делать через управление.
Для начала - проверить, что имеющийся коммутатор корретно отрабатывает взаимодейтсвие по SNMP на дёрганье OID'а 1.3.6.1.2.1.2.2.1.7 (ifAdminStatus - "The desired state of the interface").
https://www.tp-link.com/us/configuration-guides/q_...

Потом - посчитать необходимое количество на Rasberri (или каком другом контроллере):
Дискретных входов (для кнопок).
Дискретных выходов (для сведодиодов индикации состояния порта. В иеале - в 2 раза больше, чем управляемых Ethernet портов и показывать ОБА состояния. Зелёный - вкл, красный - откл.)

Библиотеку можно какую-то вот такую взять для работы с SNMP и сделать всё скриптами:
www.net-snmp.org/wiki/index.php/Tutorials
Похожие вопросы