Files
2025-07-11 19:06:56 +07:00

367 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Настройка 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/