Files
bgp-server/TROUBLESHOOTING.md
T
2025-07-11 19:24:43 +07:00

7.6 KiB
Raw Blame History

Troubleshooting - Решение проблем

Проблема: "Unit file bird6.service does not exist"

Описание проблемы

В Ubuntu 24.04 сервис bird6 не всегда устанавливается по умолчанию вместе с пакетом bird2.

Решение 1: Установка BIRD6 отдельно

# Установка BIRD6
sudo apt install -y bird6

# Проверка установки
which bird6
systemctl list-unit-files | grep bird6

Решение 2: Использование скрипта установки BIRD6

# Сделать скрипт исполняемым
chmod +x install_bird6.sh

# Запуск установки BIRD6
sudo ./install_bird6.sh

Решение 3: Ручное создание сервиса BIRD6

Если BIRD6 не устанавливается, создайте сервис вручную:

# Создание systemd сервиса для BIRD6
sudo tee /etc/systemd/system/bird6.service > /dev/null << EOF
[Unit]
Description=BIRD Internet Routing Daemon (IPv6)
Documentation=man:bird(8)
After=network.target

[Service]
Type=notify
ExecStart=/usr/sbin/bird6 -c /etc/bird/bird6.conf -s /var/run/bird6.ctl
ExecReload=/bin/kill -HUP \$MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# Перезагрузка systemd
sudo systemctl daemon-reload

# Включение и запуск сервиса
sudo systemctl enable bird6
sudo systemctl start bird6

# Проверка статуса
sudo systemctl status bird6

Решение 4: Использование только IPv4

Если BIRD6 не нужен, можно использовать только IPv4:

# Проверка статуса BIRD IPv4
sudo systemctl status bird

# Проверка конфигурации
sudo birdc -p /etc/bird/bird.conf

# Запуск BIRD IPv4
sudo systemctl start bird

Другие частые проблемы

Проблема: "Permission denied" при запуске скриптов

# Установка прав на выполнение
chmod +x install.sh
chmod +x install_bird6.sh
chmod +x scripts/*.py

# Проверка прав
ls -la install.sh
ls -la scripts/

Проблема: "Command not found: birdc"

# Проверка установки BIRD
which bird
which birdc

# Переустановка BIRD
sudo apt remove --purge bird2
sudo apt install -y bird2

# Проверка символических ссылок
ls -la /usr/sbin/bird*

Проблема: "Configuration file not found"

# Проверка существования файлов конфигурации
ls -la /etc/bird/

# Копирование файлов конфигурации
sudo cp config/bird.conf /etc/bird/
sudo cp config/bird6.conf /etc/bird/

# Проверка прав доступа
sudo chown bird:bird /etc/bird/bird*.conf
sudo chmod 644 /etc/bird/bird*.conf

Проблема: "Port 179 already in use"

# Проверка процессов на порту 179
sudo netstat -tlnp | grep :179
sudo lsof -i :179

# Остановка конфликтующих сервисов
sudo systemctl stop bird bird6
sudo pkill bird

# Перезапуск сервисов
sudo systemctl start bird
sudo systemctl start bird6

Проблема: "Firewall blocking BGP"

# Проверка статуса firewall
sudo ufw status

# Разрешение BGP порта
sudo ufw allow 179/tcp

# Проверка правил iptables
sudo iptables -L | grep 179

Проблема: "Python script errors"

# Проверка версии Python
python3 --version

# Установка зависимостей
sudo apt install -y python3-pip

# Проверка скриптов
python3 -m py_compile scripts/load_prefixes.py
python3 -m py_compile scripts/monitor.py

Проверка работоспособности

Полная диагностика

#!/bin/bash
# Скрипт диагностики BGP сервера

echo "=== Диагностика BGP сервера ==="

echo "1. Проверка установки BIRD:"
which bird && echo "✓ BIRD найден" || echo "✗ BIRD не найден"
which birdc && echo "✓ BIRDc найден" || echo "✗ BIRDc не найден"

echo "2. Проверка сервисов:"
systemctl is-active bird && echo "✓ BIRD IPv4 активен" || echo "✗ BIRD IPv4 неактивен"
systemctl is-active bird6 2>/dev/null && echo "✓ BIRD IPv6 активен" || echo "✗ BIRD IPv6 неактивен"

echo "3. Проверка портов:"
netstat -tlnp | grep :179 && echo "✓ Порт 179 прослушивается" || echo "✗ Порт 179 не прослушивается"

echo "4. Проверка конфигурации:"
birdc -p /etc/bird/bird.conf 2>/dev/null && echo "✓ Конфигурация IPv4 корректна" || echo "✗ Ошибка в конфигурации IPv4"
bird6c -p /etc/bird/bird6.conf 2>/dev/null && echo "✓ Конфигурация IPv6 корректна" || echo "✗ Ошибка в конфигурации IPv6"

echo "5. Проверка файлов:"
ls -la /etc/bird/ && echo "✓ Файлы конфигурации найдены" || echo "✗ Файлы конфигурации не найдены"

echo "6. Проверка логов:"
tail -5 /var/log/bird/bird.log 2>/dev/null || echo "Логи BIRD не найдены"

Сохранение скрипта диагностики

# Создание скрипта диагностики
nano diagnose_bgp.sh
# Вставьте код выше

# Сделать исполняемым
chmod +x diagnose_bgp.sh

# Запуск диагностики
./diagnose_bgp.sh

Восстановление после сбоя

Полное переустановка

# Остановка сервисов
sudo systemctl stop bird bird6

# Удаление конфигурации
sudo rm -rf /etc/bird/bird*.conf
sudo rm -rf /opt/bgp-server

# Переустановка BIRD
sudo apt remove --purge bird2 bird6
sudo apt install -y bird2

# Повторная установка
sudo ./install.sh

Восстановление из резервной копии

# Восстановление конфигурации
sudo cp /etc/bird/bird.conf.backup.* /etc/bird/bird.conf
sudo cp /etc/bird/bird6.conf.backup.* /etc/bird/bird6.conf

# Перезапуск сервисов
sudo systemctl restart bird bird6

Получение помощи

Логи для диагностики

# Сбор логов для анализа
sudo journalctl -u bird --no-pager > bird_logs.txt
sudo journalctl -u bird6 --no-pager > bird6_logs.txt
sudo systemctl status bird bird6 > service_status.txt
sudo netstat -tlnp > network_status.txt

# Создание архива с логами
tar -czf bgp_diagnostics_$(date +%Y%m%d_%H%M%S).tar.gz *.txt

Полезные команды

# Проверка версии BIRD
bird --version

# Проверка синтаксиса конфигурации
birdc -p /etc/bird/bird.conf

# Просмотр протоколов
birdc show protocols

# Просмотр маршрутов
birdc show routes

# Просмотр логов в реальном времени
journalctl -u bird -f

Примечание: Если проблема не решается, соберите логи и обратитесь к документации BIRD: https://bird.network.cz/