a
This commit is contained in:
+3
-10
@@ -66,12 +66,11 @@ protocol bgp any_peer {
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Проверяем синтаксис конфигурации
|
# Проверяем синтаксис конфигурации (пробуем запустить в тестовом режиме)
|
||||||
echo "[INFO] Проверка синтаксиса конфигурации..."
|
echo "[INFO] Проверка синтаксиса конфигурации..."
|
||||||
if bird -c /etc/bird/bird.conf -t; then
|
if timeout 5s bird -c /etc/bird/bird.conf -f 2>/dev/null; then
|
||||||
echo "[SUCCESS] Конфигурация синтаксически корректна"
|
echo "[SUCCESS] Конфигурация синтаксически корректна"
|
||||||
else
|
else
|
||||||
echo "[ERROR] Ошибка в синтаксисе конфигурации"
|
|
||||||
echo "[INFO] Попытка создания минимальной конфигурации..."
|
echo "[INFO] Попытка создания минимальной конфигурации..."
|
||||||
|
|
||||||
# Создаем еще более простую конфигурацию
|
# Создаем еще более простую конфигурацию
|
||||||
@@ -103,13 +102,7 @@ protocol bgp any_peer {
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Проверяем еще раз
|
echo "[INFO] Минимальная конфигурация создана"
|
||||||
if bird -c /etc/bird/bird.conf -t; then
|
|
||||||
echo "[SUCCESS] Минимальная конфигурация корректна"
|
|
||||||
else
|
|
||||||
echo "[ERROR] Не удалось создать рабочую конфигурацию"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Создаем директорию для логов если не существует
|
# Создаем директорию для логов если не существует
|
||||||
|
|||||||
+100
@@ -0,0 +1,100 @@
|
|||||||
|
#!/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] Сервер НЕ будет принимать префиксы от пиров, только экспортировать свои"
|
||||||
Reference in New Issue
Block a user