update
This commit is contained in:
@@ -0,0 +1,367 @@
|
||||
# Настройка 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/
|
||||
Reference in New Issue
Block a user