293 lines
7.1 KiB
Markdown
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 сервера. 🚀 |