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

155 lines
4.6 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 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. Обновление системы
```bash
sudo apt update && sudo apt upgrade -y
```
### 2. Установка BIRD
```bash
sudo apt install bird2 -y
```
### 3. Настройка конфигурации
```bash
# Копирование конфигурационных файлов
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. Запуск сервисов
```bash
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"
```
### Загрузка префиксов
```bash
# Загрузка префиксов из файла
python3 /opt/bgp-server/scripts/load_prefixes.py
# Мониторинг BGP сессий
python3 /opt/bgp-server/scripts/monitor.py
```
## Мониторинг
### Проверка статуса BIRD
```bash
sudo birdc show protocols
sudo birdc show routes
sudo birdc show route table all
```
### Просмотр логов
```bash
sudo journalctl -u bird -f
sudo tail -f /var/log/bird/bird.log
```
## Безопасность
### Firewall настройки
```bash
# Разрешить 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
- Проверьте количество префиксов
- Мониторьте использование памяти
## Полезные команды
```bash
# Перезагрузка конфигурации BIRD
sudo birdc configure
# Проверка синтаксиса конфигурации
sudo birdc -p
# Экспорт маршрутов
sudo birdc show route export all
# Статистика протоколов
sudo birdc show protocols all
```