Files
bgp-server/QUICKSTART.md
T
denozord 5d4d24b49f
Build and Push Docker Image / build (push) Has been cancelled
Sure! Pl
2025-07-11 13:23:21 +07:00

228 lines
5.1 KiB
Markdown
Raw 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 сервера
## Минимальные требования
- Docker Desktop для Windows
- PowerShell
- RouterOS 7.14+ (на стороне клиента)
## Быстрый запуск (5 минут)
### 1. Клонирование и подготовка
```powershell
# Клонирование репозитория (если нужно)
git clone <repository-url>
cd bgp-server
# Создание необходимых директорий
mkdir logs
```
### 2. Настройка префиксов
Отредактируйте файл `data/prefixes.txt`:
```
192.168.1.0/24
10.0.0.0/8
172.16.0.0/12
```
### 3. Запуск сервера
```powershell
# Запуск с автоматической сборкой
.\scripts\start-server.ps1 -Build
# Или вручную
docker-compose up -d --build
```
### 4. Проверка работы
```powershell
# Проверка статуса
docker-compose ps
# Просмотр логов
docker-compose logs -f bgp-server
# Мониторинг
docker exec bgp-server python3 /app/scripts/monitor.py
```
### 5. Настройка RouterOS
Выполните в RouterOS:
```routeros
/routing bgp instance add name=bgp-server as=65001 router-id=192.168.1.1
/routing bgp network add network=192.168.1.0/24
/routing bgp peer add name=bgp-server remote-address=192.168.1.100 remote-as=65000 instance=bgp-server
/routing bgp instance set bgp-server disabled=no
```
### 6. Проверка BGP сессии
В RouterOS:
```routeros
/routing bgp peer print
```
Ожидаемый результат:
```
Flags: X - disabled, I - invalid, D - dynamic, E - established
0 name="bgp-server" ... state=established uptime=1m30s prefix-count=8
```
## Полезные команды
### Управление сервером
```powershell
# Запуск
.\scripts\start-server.ps1
# Остановка
.\scripts\stop-server.ps1
# Перезапуск
docker-compose restart
# Просмотр логов
docker-compose logs -f bgp-server
```
### Мониторинг
```powershell
# Проверка статуса
docker-compose ps
# Мониторинг ресурсов
docker stats bgp-server
# Проверка BGP сессии
docker exec bgp-server exabgpcli show neighbor
```
### Обновление префиксов
```powershell
# Перезагрузка префиксов без перезапуска
docker exec bgp-server python3 /app/scripts/reload_prefixes.py
# Или перезапуск сервера
docker-compose restart
```
## Устранение неполадок
### Проблема: Контейнер не запускается
```powershell
# Проверка логов
docker-compose logs bgp-server
# Проверка портов
netstat -an | findstr :179
# Пересборка образа
docker-compose build --no-cache
```
### Проблема: BGP сессия не устанавливается
```powershell
# Проверка сетевого подключения
docker exec bgp-server ping 192.168.1.1
# Проверка конфигурации
docker exec bgp-server cat /app/exabgp.conf
# Проверка логов
docker-compose logs bgp-server
```
### Проблема: Префиксы не анонсируются
```powershell
# Проверка файлов с префиксами
docker exec bgp-server cat /app/data/prefixes.txt
# Проверка логов загрузки префиксов
docker exec bgp-server cat /app/logs/prefixes.log
# Перезагрузка префиксов
docker exec bgp-server python3 /app/scripts/reload_prefixes.py
```
## Настройка сети
### Изменение IP адресов
Отредактируйте `docker-compose.yml`:
```yaml
environment:
- BGP_ROUTER_ID=192.168.1.100 # IP сервера
- BGP_NEIGHBOR_IP=192.168.1.1 # IP RouterOS
```
И `exabgp.conf`:
```ini
neighbor 192.168.1.1 { # IP RouterOS
router-id 192.168.1.100; # IP сервера
local-address 192.168.1.100; # IP сервера
# ...
}
```
### Изменение AS номеров
В `docker-compose.yml`:
```yaml
environment:
- BGP_LOCAL_AS=65000 # AS сервера
- BGP_NEIGHBOR_AS=65001 # AS RouterOS
```
В `exabgp.conf`:
```ini
neighbor 192.168.1.1 {
local-as 65000; # AS сервера
peer-as 65001; # AS RouterOS
}
```
## Безопасность
### MD5 аутентификация
В `exabgp.conf`:
```ini
neighbor 192.168.1.1 {
# ... существующие настройки ...
md5-password "your-secure-password";
}
```
В RouterOS:
```routeros
/routing bgp peer set bgp-server tcp-md5-key="your-secure-password"
```
### Firewall
```powershell
# Windows Firewall (PowerShell)
New-NetFirewallRule -DisplayName "BGP Server" -Direction Inbound -Protocol TCP -LocalPort 179 -Action Allow
```
## Готово!
После выполнения всех шагов у вас должен работать BGP сервер, который раздает префиксы из текстовых файлов в RouterOS.
Для получения дополнительной информации см. основной файл `README.md`.