367 lines
8.8 KiB
Markdown
367 lines
8.8 KiB
Markdown
# Настройка 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/ |