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

293 lines
7.1 KiB
Markdown

# Развертывание BGP сервера на Ubuntu 24.04
## Клонирование репозитория
### 1. Клонирование с веткой bird
```bash
# Клонирование репозитория с веткой bird
git clone -b bird <repository-url> 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 сервера. 🚀