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

4.6 KiB
Raw Blame History

BGP Server Setup

Обзор

BGP сервер на Ubuntu 24.04 с возможностью подключения любых пиров и загрузки префиксов из файла с community.

Архитектура

  • BGP Server: BIRD (Bird Internet Routing Daemon)
  • OS: Ubuntu 24.04
  • Функции:
    • Прием BGP соединений от любых пиров
    • Загрузка префиксов из файла prefixes.txt
    • Настройка community для каждого префикса
    • Сервер НЕ получает префиксы, только раздает их клиентам

Структура проекта

bgp-server/
├── README.md
├── install.sh              # Скрипт установки
├── config/
│   ├── bird.conf          # Основная конфигурация BIRD
│   └── bird6.conf         # Конфигурация для IPv6 (опционально)
├── scripts/
│   ├── load_prefixes.py   # Скрипт загрузки префиксов
│   └── monitor.py         # Мониторинг BGP сессий
├── data/
│   └── prefixes.txt       # Файл с префиксами и community
└── logs/
    └── bird.log           # Логи BIRD

Установка

1. Обновление системы

sudo apt update && sudo apt upgrade -y

2. Установка BIRD

sudo apt install bird2 -y

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

# Копирование конфигурационных файлов
sudo cp config/bird.conf /etc/bird/bird.conf
sudo cp config/bird6.conf /etc/bird/bird6.conf

# Создание директорий
sudo mkdir -p /var/log/bird
sudo mkdir -p /opt/bgp-server/data
sudo mkdir -p /opt/bgp-server/scripts

# Копирование скриптов
sudo cp scripts/* /opt/bgp-server/scripts/
sudo cp data/prefixes.txt /opt/bgp-server/data/

4. Запуск сервисов

sudo systemctl enable bird
sudo systemctl start bird
sudo systemctl enable bird6
sudo systemctl start bird6

Конфигурация

Формат файла prefixes.txt

# Формат: prefix community description
# Community: ASN:value (например, 65001:100)
192.168.1.0/24 65001:100 "Customer A - Premium"
10.0.1.0/24 65001:200 "Customer B - Standard"
172.16.1.0/24 65001:300 "Customer C - Basic"
203.0.113.0/24 65001:400 "Customer D - Enterprise"

Загрузка префиксов

# Загрузка префиксов из файла
python3 /opt/bgp-server/scripts/load_prefixes.py

# Мониторинг BGP сессий
python3 /opt/bgp-server/scripts/monitor.py

Мониторинг

Проверка статуса BIRD

sudo birdc show protocols
sudo birdc show routes
sudo birdc show route table all

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

sudo journalctl -u bird -f
sudo tail -f /var/log/bird/bird.log

Безопасность

Firewall настройки

# Разрешить BGP (порт 179)
sudo ufw allow 179/tcp

# Разрешить SSH
sudo ufw allow ssh

# Включить firewall
sudo ufw enable

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

  • Настройте ACL в конфигурации BIRD
  • Используйте MD5 аутентификацию для BGP сессий
  • Ограничьте доступ к birdc только с localhost

Troubleshooting

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

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

    • Проверьте firewall настройки
    • Убедитесь, что ASN настроен правильно
    • Проверьте логи BIRD
  2. Префиксы не загружаются

    • Проверьте формат файла prefixes.txt
    • Убедитесь, что скрипт load_prefixes.py имеет права на выполнение
    • Проверьте синтаксис конфигурации BIRD
  3. Высокая нагрузка на CPU

    • Оптимизируйте конфигурацию BIRD
    • Проверьте количество префиксов
    • Мониторьте использование памяти

Полезные команды

# Перезагрузка конфигурации BIRD
sudo birdc configure

# Проверка синтаксиса конфигурации
sudo birdc -p

# Экспорт маршрутов
sudo birdc show route export all

# Статистика протоколов
sudo birdc show protocols all