Files
bgp-server/SETUP.md
T
2025-07-11 19:06:56 +07:00

8.8 KiB
Raw Blame History

Настройка BGP Сервера

Предварительные требования

Системные требования

  • Ubuntu 24.04 LTS
  • Минимум 2 ГБ RAM
  • Минимум 10 ГБ свободного места на диске
  • Статический IP адрес
  • Root доступ или sudo права

Сетевые требования

  • Открытый порт 179 (BGP)
  • Настроенный firewall
  • Стабильное интернет-соединение

Пошаговая установка

1. Подготовка системы

# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка необходимых пакетов
sudo apt install -y python3 python3-pip git curl wget

2. Клонирование проекта

# Клонирование репозитория (если используете git)
git clone <repository-url>
cd bgp-server

# Или копирование файлов вручную

3. Запуск установки

# Сделать скрипт исполняемым
chmod +x install.sh

# Запуск установки
sudo ./install.sh

4. Настройка конфигурации

После установки необходимо настроить конфигурационные файлы:

Настройка router ID

Отредактируйте файлы /etc/bird/bird.conf и /etc/bird/bird6.conf:

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:

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. Загрузка префиксов

# Загрузка префиксов из файла
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

Мониторинг и управление

Основные команды

# Статус BGP сервера
bgp-status

# Загрузка префиксов
bgp-load

# Непрерывный мониторинг
bgp-monitor

# Статус сервисов
bird-status

# Перезапуск сервисов
bird-restart

# Просмотр логов
bird-logs

Проверка BGP сессий

# Показать все протоколы
sudo birdc show protocols

# Показать маршруты
sudo birdc show routes

# Показать BGP пиры
sudo birdc show protocols all bgp

Просмотр логов

# Логи 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 настройки

# Проверка статуса firewall
sudo ufw status

# Разрешение дополнительных портов (если нужно)
sudo ufw allow 22/tcp comment "SSH"
sudo ufw allow 179/tcp comment "BGP"

# Включение firewall
sudo ufw enable

Ограничение доступа

# Ограничение доступа к birdc только с localhost
sudo nano /etc/bird/bird.conf

Добавьте в конфигурацию:

# Ограничение доступа к birdc
control socket "/var/run/bird.ctl" mode 0600 owner bird group bird;

MD5 аутентификация

Для дополнительной безопасности можно включить MD5 аутентификацию:

# В конфигурации BIRD
protocol bgp {
    # ... другие настройки ...
    password "your_secure_password";
}

Troubleshooting

Частые проблемы

1. BGP сессия не устанавливается

# Проверьте firewall
sudo ufw status

# Проверьте логи
sudo journalctl -u bird -n 50

# Проверьте конфигурацию
sudo birdc -p /etc/bird/bird.conf

2. Префиксы не загружаются

# Проверьте права доступа
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

# Проверьте количество маршрутов
sudo birdc show route count

# Проверьте использование памяти
free -h

# Оптимизируйте конфигурацию
sudo nano /etc/bird/bird.conf

Полезные команды для диагностики

# Проверка сетевых соединений
netstat -tlnp | grep :179

# Проверка процессов BIRD
ps aux | grep bird

# Проверка использования ресурсов
htop

# Проверка дискового пространства
df -h

# Проверка системных логов
dmesg | tail -20

Обновление и обслуживание

Обновление BIRD

# Обновление пакетов
sudo apt update
sudo apt upgrade bird2

# Перезапуск сервисов
sudo systemctl restart bird bird6

Резервное копирование

# Создание резервной копии конфигурации
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)

Восстановление из резервной копии

# Восстановление конфигурации
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 минут. Для изменения интервала:

sudo nano /etc/systemd/system/bgp-prefix-loader.timer

Измените строку:

OnUnitActiveSec=5min

Настройка уведомлений

Можно настроить отправку уведомлений при проблемах:

# Установка mailutils
sudo apt install mailutils

# Настройка отправки уведомлений в скриптах

Интеграция с системой мониторинга

Для интеграции с системами мониторинга (Zabbix, Nagios):

# Создание скрипта для проверки здоровья
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/