This commit is contained in:
2025-07-11 19:06:56 +07:00
parent 8f53e99188
commit 9d07df53d0
23 changed files with 1947 additions and 934 deletions
+367
View File
@@ -0,0 +1,367 @@
# Настройка 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 <repository-url>
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/