# Развертывание BGP сервера на Ubuntu 24.04 ## Клонирование репозитория ### 1. Клонирование с веткой bird ```bash # Клонирование репозитория с веткой bird git clone -b bird bgp-server # Переход в директорию проекта cd bgp-server ``` ### 2. Альтернативные способы клонирования #### Если ветка bird существует: ```bash # Клонирование с указанием ветки git clone -b bird https://github.com/username/bgp-server.git # Или клонирование и переключение на ветку git clone https://github.com/username/bgp-server.git cd bgp-server git checkout bird ``` #### Если нужно создать ветку bird: ```bash # Клонирование основного репозитория git clone https://github.com/username/bgp-server.git cd bgp-server # Создание и переключение на ветку bird git checkout -b bird # Добавление всех файлов git add . # Коммит изменений git commit -m "Initial BGP server implementation" # Отправка ветки на сервер git push origin bird ``` ### 3. Проверка клонирования ```bash # Проверка текущей ветки git branch # Проверка содержимого ls -la # Проверка статуса git git status ``` ## Установка на сервере ### 1. Подготовка системы ```bash # Обновление системы sudo apt update && sudo apt upgrade -y # Установка необходимых пакетов sudo apt install -y python3 python3-pip git curl wget ``` ### 2. Клонирование и установка ```bash # Клонирование репозитория (замените на ваш URL) git clone -b bird https://github.com/username/bgp-server.git cd bgp-server # Проверка файлов ls -la # Сделать скрипт установки исполняемым chmod +x install.sh # Запуск установки sudo ./install.sh ``` ### 3. Настройка после установки ```bash # Настройка IP адреса и ASN sudo nano /etc/bird/bird.conf # Измените: # router id YOUR_SERVER_IP; # local as YOUR_ASN; # Настройка префиксов sudo nano /opt/bgp-server/data/prefixes.txt # Добавьте ваши префиксы # Загрузка префиксов python3 /opt/bgp-server/scripts/load_prefixes.py # Проверка статуса python3 /opt/bgp-server/scripts/monitor.py ``` ## Примеры команд для разных репозиториев ### GitHub ```bash git clone -b bird https://github.com/username/bgp-server.git ``` ### GitLab ```bash git clone -b bird https://gitlab.com/username/bgp-server.git ``` ### Bitbucket ```bash git clone -b bird https://bitbucket.org/username/bgp-server.git ``` ### SSH (если настроен ключ) ```bash git clone -b bird git@github.com:username/bgp-server.git ``` ## Автоматическое развертывание ### Скрипт автоматического развертывания Создайте файл `deploy.sh`: ```bash #!/bin/bash # Автоматическое развертывание BGP сервера REPO_URL="https://github.com/username/bgp-server.git" BRANCH="bird" INSTALL_DIR="/opt/bgp-server-deploy" echo "Начинаем развертывание BGP сервера..." # Создание директории sudo mkdir -p $INSTALL_DIR cd $INSTALL_DIR # Клонирование репозитория echo "Клонирование репозитория..." git clone -b $BRANCH $REPO_URL . # Проверка успешности клонирования if [ $? -eq 0 ]; then echo "Репозиторий успешно клонирован" # Запуск установки chmod +x install.sh sudo ./install.sh else echo "Ошибка при клонировании репозитория" exit 1 fi ``` ### Использование скрипта развертывания ```bash # Создание скрипта nano deploy.sh # Сделать исполняемым chmod +x deploy.sh # Запуск ./deploy.sh ``` ## Проверка установки ### 1. Проверка сервисов ```bash # Статус BIRD сервисов sudo systemctl status bird bird6 # Проверка портов sudo netstat -tlnp | grep :179 # Проверка процессов ps aux | grep bird ``` ### 2. Проверка конфигурации ```bash # Проверка синтаксиса конфигурации sudo birdc -p /etc/bird/bird.conf sudo bird6c -p /etc/bird/bird6.conf # Проверка протоколов sudo birdc show protocols ``` ### 3. Проверка префиксов ```bash # Загрузка префиксов python3 /opt/bgp-server/scripts/load_prefixes.py # Проверка маршрутов sudo birdc show routes ``` ## Troubleshooting ### Проблема: Не удается клонировать репозиторий ```bash # Проверка подключения к интернету ping -c 3 github.com # Проверка git git --version # Очистка кэша git git config --global credential.helper cache ``` ### Проблема: Ветка bird не найдена ```bash # Просмотр доступных веток git branch -r # Клонирование без указания ветки git clone https://github.com/username/bgp-server.git cd bgp-server # Создание локальной ветки git checkout -b bird origin/main ``` ### Проблема: Нет прав доступа ```bash # Настройка SSH ключей (если используете SSH) ssh-keygen -t rsa -b 4096 -C "your_email@example.com" cat ~/.ssh/id_rsa.pub # Добавьте ключ в настройки GitHub/GitLab # Или используйте HTTPS с токеном git clone https://username:token@github.com/username/bgp-server.git ``` ## Обновление репозитория ### Обновление кода ```bash # Переход в директорию проекта cd /path/to/bgp-server # Получение обновлений git fetch origin # Переключение на ветку bird git checkout bird # Обновление кода git pull origin bird # Перезапуск сервисов (если нужно) sudo systemctl restart bird bird6 ``` ### Автоматическое обновление Создайте cron задачу для автоматического обновления: ```bash # Редактирование crontab crontab -e # Добавление задачи (обновление каждый день в 2:00) 0 2 * * * cd /opt/bgp-server && git pull origin bird && sudo systemctl restart bird bird6 ``` --- **Готово!** Теперь у вас есть полные инструкции по клонированию и развертыванию BGP сервера. 🚀