# Troubleshooting - Решение проблем ## Проблема: "Unit file bird6.service does not exist" ### Описание проблемы В Ubuntu 24.04 сервис `bird6` не всегда устанавливается по умолчанию вместе с пакетом `bird2`. ### Решение 1: Установка BIRD6 отдельно ```bash # Установка BIRD6 sudo apt install -y bird6 # Проверка установки which bird6 systemctl list-unit-files | grep bird6 ``` ### Решение 2: Использование скрипта установки BIRD6 ```bash # Сделать скрипт исполняемым chmod +x install_bird6.sh # Запуск установки BIRD6 sudo ./install_bird6.sh ``` ### Решение 3: Ручное создание сервиса BIRD6 Если BIRD6 не устанавливается, создайте сервис вручную: ```bash # Создание 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: ```bash # Проверка статуса BIRD IPv4 sudo systemctl status bird # Проверка конфигурации sudo birdc -p /etc/bird/bird.conf # Запуск BIRD IPv4 sudo systemctl start bird ``` ## Другие частые проблемы ### Проблема: "Permission denied" при запуске скриптов ```bash # Установка прав на выполнение chmod +x install.sh chmod +x install_bird6.sh chmod +x scripts/*.py # Проверка прав ls -la install.sh ls -la scripts/ ``` ### Проблема: "Command not found: birdc" ```bash # Проверка установки 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" ```bash # Проверка существования файлов конфигурации 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" ```bash # Проверка процессов на порту 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" ```bash # Проверка статуса firewall sudo ufw status # Разрешение BGP порта sudo ufw allow 179/tcp # Проверка правил iptables sudo iptables -L | grep 179 ``` ### Проблема: "Python script errors" ```bash # Проверка версии Python python3 --version # Установка зависимостей sudo apt install -y python3-pip # Проверка скриптов python3 -m py_compile scripts/load_prefixes.py python3 -m py_compile scripts/monitor.py ``` ## Проверка работоспособности ### Полная диагностика ```bash #!/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 не найдены" ``` ### Сохранение скрипта диагностики ```bash # Создание скрипта диагностики nano diagnose_bgp.sh # Вставьте код выше # Сделать исполняемым chmod +x diagnose_bgp.sh # Запуск диагностики ./diagnose_bgp.sh ``` ## Восстановление после сбоя ### Полное переустановка ```bash # Остановка сервисов 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 ``` ### Восстановление из резервной копии ```bash # Восстановление конфигурации 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 ``` ## Получение помощи ### Логи для диагностики ```bash # Сбор логов для анализа 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 ``` ### Полезные команды ```bash # Проверка версии BIRD bird --version # Проверка синтаксиса конфигурации birdc -p /etc/bird/bird.conf # Просмотр протоколов birdc show protocols # Просмотр маршрутов birdc show routes # Просмотр логов в реальном времени journalctl -u bird -f ``` --- **Примечание**: Если проблема не решается, соберите логи и обратитесь к документации BIRD: https://bird.network.cz/