#!/bin/bash # Простой скрипт для исправления конфигурации BIRD # Ubuntu 24.04 set -e echo "==========================================" echo "Простое исправление конфигурации BIRD" echo "Ubuntu 24.04" echo "==========================================" # Получаем IP адрес сервера SERVER_IP=$(curl -s ifconfig.me 2>/dev/null || echo "192.168.1.1") echo "[INFO] Используется IP адрес: $SERVER_IP" # Останавливаем BIRD если запущен echo "[INFO] Остановка BIRD..." systemctl stop bird 2>/dev/null || true # Создаем резервную копию текущей конфигурации if [ -f /etc/bird/bird.conf ]; then cp /etc/bird/bird.conf /etc/bird/bird.conf.backup.$(date +%Y%m%d_%H%M%S) echo "[INFO] Создана резервная копия: /etc/bird/bird.conf.backup" fi # Создаем простую рабочую конфигурацию echo "[INFO] Создание простой конфигурации BIRD..." cat > /etc/bird/bird.conf << EOF # Простая конфигурация BIRD для BGP сервера # Ubuntu 24.04 # Logging log stderr all; log "/var/log/bird/bird.log" all; # Router ID router id $SERVER_IP; # Device protocol protocol device { scan time 10; } # Direct protocol (disabled) protocol direct { disabled; } # Kernel protocol (disabled) protocol kernel { disabled; } # Static routes protocol static { # Статические маршруты будут загружаться через скрипт } # BGP protocol - принимаем любых пиров protocol bgp any_peer { local as 65001; listen bgp port 179; import none; # Не принимаем маршруты от пиров export where source = RTS_STATIC; # Экспортируем только статические маршруты } EOF echo "[SUCCESS] Конфигурация создана" # Создаем директорию для логов если не существует mkdir -p /var/log/bird chown bird:bird /var/log/bird 2>/dev/null || true # Запускаем BIRD echo "[INFO] Запуск BIRD..." systemctl start bird # Проверяем статус if systemctl is-active --quiet bird; then echo "[SUCCESS] BIRD успешно запущен" # Показываем статус echo "[INFO] Статус BIRD:" systemctl status bird --no-pager -l # Показываем информацию о протоколах echo "[INFO] Информация о протоколах:" birdc show protocols 2>/dev/null || echo "birdc недоступен" else echo "[ERROR] Не удалось запустить BIRD" echo "[INFO] Логи BIRD:" journalctl -u bird --no-pager -l -n 20 exit 1 fi echo "[SUCCESS] Конфигурация BIRD исправлена и сервис запущен" echo "[INFO] BIRD слушает на порту 179 и принимает соединения от любых пиров" echo "[INFO] Сервер НЕ будет принимать префиксы от пиров, только экспортировать свои"