123
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# BIRD Configuration for BGP Server
|
||||
# Ubuntu 24.04 - Fixed Version
|
||||
|
||||
# Logging configuration
|
||||
log "/var/log/bird/bird.log" all;
|
||||
log stderr all;
|
||||
|
||||
# Router ID (замените на ваш IP адрес)
|
||||
router id 77.232.38.173;
|
||||
|
||||
# Protocol configuration
|
||||
protocol device {
|
||||
scan time 10;
|
||||
}
|
||||
|
||||
protocol direct {
|
||||
disabled;
|
||||
}
|
||||
|
||||
protocol kernel {
|
||||
disabled;
|
||||
}
|
||||
|
||||
# Статическая таблица маршрутов
|
||||
protocol static {
|
||||
# Маршруты будут загружаться из файла prefixes.txt
|
||||
# через скрипт load_prefixes.py
|
||||
|
||||
# Пример статических маршрутов
|
||||
# route 192.168.1.0/24 via 192.168.1.1;
|
||||
# route 10.0.1.0/24 via 10.0.1.1;
|
||||
}
|
||||
|
||||
# BGP Configuration - принимаем любых пиров, но не получаем префиксы
|
||||
protocol bgp any_peer {
|
||||
# Локальные настройки
|
||||
local as 65001;
|
||||
|
||||
# Настройки для всех пиров
|
||||
hold time 90;
|
||||
keepalive time 30;
|
||||
startup hold time 240;
|
||||
|
||||
# Принимаем соединения от любых IP
|
||||
listen bgp port 179;
|
||||
|
||||
# НЕ импортируем маршруты от пиров
|
||||
import none;
|
||||
|
||||
# Экспортируем только статические маршруты
|
||||
export where source = RTS_STATIC;
|
||||
|
||||
# MD5 аутентификация (опционально)
|
||||
# password "your_bgp_password";
|
||||
|
||||
# Настройки для больших таблиц маршрутизации
|
||||
table limit 100000;
|
||||
}
|
||||
|
||||
# Настройки для мониторинга
|
||||
protocol pipe {
|
||||
table master;
|
||||
peer table bgp_table;
|
||||
import all;
|
||||
export none;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
# Минимальная тестовая конфигурация BIRD
|
||||
# Ubuntu 24.04
|
||||
|
||||
# Logging
|
||||
log stderr all;
|
||||
|
||||
# Router ID
|
||||
router id 77.232.38.173;
|
||||
|
||||
# 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;
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
#!/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 "[INFO] Проверка синтаксиса конфигурации..."
|
||||
if bird -c /etc/bird/bird.conf -t; then
|
||||
echo "[SUCCESS] Конфигурация синтаксически корректна"
|
||||
else
|
||||
echo "[ERROR] Ошибка в синтаксисе конфигурации"
|
||||
echo "[INFO] Попытка создания минимальной конфигурации..."
|
||||
|
||||
# Создаем еще более простую конфигурацию
|
||||
cat > /etc/bird/bird.conf << EOF
|
||||
# Минимальная конфигурация BIRD
|
||||
log stderr all;
|
||||
router id $SERVER_IP;
|
||||
|
||||
protocol device {
|
||||
scan time 10;
|
||||
}
|
||||
|
||||
protocol direct {
|
||||
disabled;
|
||||
}
|
||||
|
||||
protocol kernel {
|
||||
disabled;
|
||||
}
|
||||
|
||||
protocol static {
|
||||
}
|
||||
|
||||
protocol bgp any_peer {
|
||||
local as 65001;
|
||||
listen bgp port 179;
|
||||
import none;
|
||||
export where source = RTS_STATIC;
|
||||
}
|
||||
EOF
|
||||
|
||||
# Проверяем еще раз
|
||||
if bird -c /etc/bird/bird.conf -t; then
|
||||
echo "[SUCCESS] Минимальная конфигурация корректна"
|
||||
else
|
||||
echo "[ERROR] Не удалось создать рабочую конфигурацию"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Создаем директорию для логов если не существует
|
||||
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