# Быстрый старт BGP сервера ## Минимальные требования - Docker Desktop для Windows - PowerShell - RouterOS 7.14+ (на стороне клиента) ## Быстрый запуск (5 минут) ### 1. Клонирование и подготовка ```powershell # Клонирование репозитория (если нужно) git clone cd bgp-server # Создание необходимых директорий mkdir logs ``` ### 2. Настройка префиксов Отредактируйте файл `data/prefixes.txt`: ``` 192.168.1.0/24 10.0.0.0/8 172.16.0.0/12 ``` ### 3. Запуск сервера ```powershell # Запуск с автоматической сборкой .\scripts\start-server.ps1 -Build # Или вручную docker-compose up -d --build ``` ### 4. Проверка работы ```powershell # Проверка статуса docker-compose ps # Просмотр логов docker-compose logs -f bgp-server # Мониторинг docker exec bgp-server python3 /app/scripts/monitor.py ``` ### 5. Настройка RouterOS Выполните в RouterOS: ```routeros /routing bgp instance add name=bgp-server as=65001 router-id=192.168.1.1 /routing bgp network add network=192.168.1.0/24 /routing bgp peer add name=bgp-server remote-address=192.168.1.100 remote-as=65000 instance=bgp-server /routing bgp instance set bgp-server disabled=no ``` ### 6. Проверка BGP сессии В RouterOS: ```routeros /routing bgp peer print ``` Ожидаемый результат: ``` Flags: X - disabled, I - invalid, D - dynamic, E - established 0 name="bgp-server" ... state=established uptime=1m30s prefix-count=8 ``` ## Полезные команды ### Управление сервером ```powershell # Запуск .\scripts\start-server.ps1 # Остановка .\scripts\stop-server.ps1 # Перезапуск docker-compose restart # Просмотр логов docker-compose logs -f bgp-server ``` ### Мониторинг ```powershell # Проверка статуса docker-compose ps # Мониторинг ресурсов docker stats bgp-server # Проверка BGP сессии docker exec bgp-server exabgpcli show neighbor ``` ### Обновление префиксов ```powershell # Перезагрузка префиксов без перезапуска docker exec bgp-server python3 /app/scripts/reload_prefixes.py # Или перезапуск сервера docker-compose restart ``` ## Устранение неполадок ### Проблема: Контейнер не запускается ```powershell # Проверка логов docker-compose logs bgp-server # Проверка портов netstat -an | findstr :179 # Пересборка образа docker-compose build --no-cache ``` ### Проблема: BGP сессия не устанавливается ```powershell # Проверка сетевого подключения docker exec bgp-server ping 192.168.1.1 # Проверка конфигурации docker exec bgp-server cat /app/exabgp.conf # Проверка логов docker-compose logs bgp-server ``` ### Проблема: Префиксы не анонсируются ```powershell # Проверка файлов с префиксами docker exec bgp-server cat /app/data/prefixes.txt # Проверка логов загрузки префиксов docker exec bgp-server cat /app/logs/prefixes.log # Перезагрузка префиксов docker exec bgp-server python3 /app/scripts/reload_prefixes.py ``` ## Настройка сети ### Изменение IP адресов Отредактируйте `docker-compose.yml`: ```yaml environment: - BGP_ROUTER_ID=192.168.1.100 # IP сервера - BGP_NEIGHBOR_IP=192.168.1.1 # IP RouterOS ``` И `exabgp.conf`: ```ini neighbor 192.168.1.1 { # IP RouterOS router-id 192.168.1.100; # IP сервера local-address 192.168.1.100; # IP сервера # ... } ``` ### Изменение AS номеров В `docker-compose.yml`: ```yaml environment: - BGP_LOCAL_AS=65000 # AS сервера - BGP_NEIGHBOR_AS=65001 # AS RouterOS ``` В `exabgp.conf`: ```ini neighbor 192.168.1.1 { local-as 65000; # AS сервера peer-as 65001; # AS RouterOS } ``` ## Безопасность ### MD5 аутентификация В `exabgp.conf`: ```ini neighbor 192.168.1.1 { # ... существующие настройки ... md5-password "your-secure-password"; } ``` В RouterOS: ```routeros /routing bgp peer set bgp-server tcp-md5-key="your-secure-password" ``` ### Firewall ```powershell # Windows Firewall (PowerShell) New-NetFirewallRule -DisplayName "BGP Server" -Direction Inbound -Protocol TCP -LocalPort 179 -Action Allow ``` ## Готово! После выполнения всех шагов у вас должен работать BGP сервер, который раздает префиксы из текстовых файлов в RouterOS. Для получения дополнительной информации см. основной файл `README.md`.