# Настройка BGP Сервера ## Предварительные требования ### Системные требования - Ubuntu 24.04 LTS - Минимум 2 ГБ RAM - Минимум 10 ГБ свободного места на диске - Статический IP адрес - Root доступ или sudo права ### Сетевые требования - Открытый порт 179 (BGP) - Настроенный firewall - Стабильное интернет-соединение ## Пошаговая установка ### 1. Подготовка системы ```bash # Обновление системы sudo apt update && sudo apt upgrade -y # Установка необходимых пакетов sudo apt install -y python3 python3-pip git curl wget ``` ### 2. Клонирование проекта ```bash # Клонирование репозитория (если используете git) git clone cd bgp-server # Или копирование файлов вручную ``` ### 3. Запуск установки ```bash # Сделать скрипт исполняемым chmod +x install.sh # Запуск установки sudo ./install.sh ``` ### 4. Настройка конфигурации После установки необходимо настроить конфигурационные файлы: #### Настройка router ID Отредактируйте файлы `/etc/bird/bird.conf` и `/etc/bird/bird6.conf`: ```bash sudo nano /etc/bird/bird.conf ``` Найдите строку: ``` router id 192.168.1.1; ``` Замените на ваш реальный IP адрес: ``` router id YOUR_SERVER_IP; ``` #### Настройка ASN В том же файле найдите: ``` local as 65001; ``` Замените на ваш ASN: ``` local as YOUR_ASN; ``` ### 5. Настройка префиксов Отредактируйте файл `/opt/bgp-server/data/prefixes.txt`: ```bash sudo nano /opt/bgp-server/data/prefixes.txt ``` Формат записи: ``` # prefix community description 192.168.1.0/24 65001:100 "Customer A - Premium" 10.0.1.0/24 65001:200 "Customer B - Standard" ``` ### 6. Загрузка префиксов ```bash # Загрузка префиксов из файла python3 /opt/bgp-server/scripts/load_prefixes.py # Проверка статуса python3 /opt/bgp-server/scripts/monitor.py ``` ## Конфигурация клиентов ### Настройка BGP клиента Клиенты должны настроить BGP сессию с вашим сервером: ``` # Пример конфигурации для клиента (Cisco) router bgp CLIENT_ASN neighbor YOUR_SERVER_IP remote-as YOUR_ASN neighbor YOUR_SERVER_IP description "BGP Server" neighbor YOUR_SERVER_IP send-community neighbor YOUR_SERVER_IP route-map EXPORT out ! route-map EXPORT permit 10 set community YOUR_ASN:100 ! ``` ### Настройка для MikroTik ``` /routing bgp instance add name=bgp-server as=CLIENT_ASN router-id=CLIENT_ROUTER_ID /routing bgp peer add name=bgp-server-peer instance=bgp-server remote-address=YOUR_SERVER_IP remote-as=YOUR_ASN ``` ## Мониторинг и управление ### Основные команды ```bash # Статус BGP сервера bgp-status # Загрузка префиксов bgp-load # Непрерывный мониторинг bgp-monitor # Статус сервисов bird-status # Перезапуск сервисов bird-restart # Просмотр логов bird-logs ``` ### Проверка BGP сессий ```bash # Показать все протоколы sudo birdc show protocols # Показать маршруты sudo birdc show routes # Показать BGP пиры sudo birdc show protocols all bgp ``` ### Просмотр логов ```bash # Логи BIRD IPv4 sudo journalctl -u bird -f # Логи BIRD IPv6 sudo journalctl -u bird6 -f # Логи загрузки префиксов sudo tail -f /var/log/bird/prefix_loader.log # Логи мониторинга sudo tail -f /var/log/bird/monitor.log ``` ## Безопасность ### Firewall настройки ```bash # Проверка статуса firewall sudo ufw status # Разрешение дополнительных портов (если нужно) sudo ufw allow 22/tcp comment "SSH" sudo ufw allow 179/tcp comment "BGP" # Включение firewall sudo ufw enable ``` ### Ограничение доступа ```bash # Ограничение доступа к birdc только с localhost sudo nano /etc/bird/bird.conf ``` Добавьте в конфигурацию: ``` # Ограничение доступа к birdc control socket "/var/run/bird.ctl" mode 0600 owner bird group bird; ``` ### MD5 аутентификация Для дополнительной безопасности можно включить MD5 аутентификацию: ```bash # В конфигурации BIRD protocol bgp { # ... другие настройки ... password "your_secure_password"; } ``` ## Troubleshooting ### Частые проблемы #### 1. BGP сессия не устанавливается ```bash # Проверьте firewall sudo ufw status # Проверьте логи sudo journalctl -u bird -n 50 # Проверьте конфигурацию sudo birdc -p /etc/bird/bird.conf ``` #### 2. Префиксы не загружаются ```bash # Проверьте права доступа ls -la /opt/bgp-server/scripts/load_prefixes.py # Проверьте синтаксис файла префиксов python3 /opt/bgp-server/scripts/load_prefixes.py --file /opt/bgp-server/data/prefixes.txt # Проверьте логи sudo tail -f /var/log/bird/prefix_loader.log ``` #### 3. Высокая нагрузка на CPU ```bash # Проверьте количество маршрутов sudo birdc show route count # Проверьте использование памяти free -h # Оптимизируйте конфигурацию sudo nano /etc/bird/bird.conf ``` ### Полезные команды для диагностики ```bash # Проверка сетевых соединений netstat -tlnp | grep :179 # Проверка процессов BIRD ps aux | grep bird # Проверка использования ресурсов htop # Проверка дискового пространства df -h # Проверка системных логов dmesg | tail -20 ``` ## Обновление и обслуживание ### Обновление BIRD ```bash # Обновление пакетов sudo apt update sudo apt upgrade bird2 # Перезапуск сервисов sudo systemctl restart bird bird6 ``` ### Резервное копирование ```bash # Создание резервной копии конфигурации sudo cp /etc/bird/bird.conf /etc/bird/bird.conf.backup.$(date +%Y%m%d) sudo cp /etc/bird/bird6.conf /etc/bird/bird6.conf.backup.$(date +%Y%m%d) # Резервная копия префиксов sudo cp /opt/bgp-server/data/prefixes.txt /opt/bgp-server/data/prefixes.txt.backup.$(date +%Y%m%d) ``` ### Восстановление из резервной копии ```bash # Восстановление конфигурации sudo cp /etc/bird/bird.conf.backup.YYYYMMDD /etc/bird/bird.conf sudo cp /etc/bird/bird6.conf.backup.YYYYMMDD /etc/bird/bird6.conf # Перезапуск сервисов sudo systemctl restart bird bird6 ``` ## Дополнительные возможности ### Автоматическая загрузка префиксов Система автоматически загружает префиксы каждые 5 минут. Для изменения интервала: ```bash sudo nano /etc/systemd/system/bgp-prefix-loader.timer ``` Измените строку: ``` OnUnitActiveSec=5min ``` ### Настройка уведомлений Можно настроить отправку уведомлений при проблемах: ```bash # Установка mailutils sudo apt install mailutils # Настройка отправки уведомлений в скриптах ``` ### Интеграция с системой мониторинга Для интеграции с системами мониторинга (Zabbix, Nagios): ```bash # Создание скрипта для проверки здоровья sudo nano /opt/bgp-server/scripts/health_check.py ``` ## Поддержка При возникновении проблем: 1. Проверьте логи: `/var/log/bird/` 2. Проверьте статус сервисов: `systemctl status bird bird6` 3. Проверьте конфигурацию: `birdc -p /etc/bird/bird.conf` 4. Обратитесь к документации BIRD: https://bird.network.cz/