Refactor Docker setup to include /run/exabgp directory and update ExaBGP configuration. Added named pipes in standard and compatibility locations, ensuring proper initialization for CLI communication.
Build and Push Docker Image / build (push) Successful in 3m41s
Build and Push Docker Image / build (push) Successful in 3m41s
This commit is contained in:
@@ -42,6 +42,21 @@ docker run -d `
|
|||||||
-e BGP_NEIGHBOR_IP=192.168.1.1 `
|
-e BGP_NEIGHBOR_IP=192.168.1.1 `
|
||||||
-e BGP_NEIGHBOR_AS=65001 `
|
-e BGP_NEIGHBOR_AS=65001 `
|
||||||
git.shts.su/infra/bgp-server:latest
|
git.shts.su/infra/bgp-server:latest
|
||||||
|
|
||||||
|
# Примечание: Если используете старую версию образа, может потребоваться пересборка
|
||||||
|
# или запуск с дополнительными volume для named pipes:
|
||||||
|
docker run -d `
|
||||||
|
--name bgp-server `
|
||||||
|
--restart unless-stopped `
|
||||||
|
-p 179:179 `
|
||||||
|
-v ${PWD}/data:/app/data:ro `
|
||||||
|
-v ${PWD}/logs:/app/logs `
|
||||||
|
-v /run/exabgp:/run/exabgp `
|
||||||
|
-e BGP_LOCAL_AS=65000 `
|
||||||
|
-e BGP_ROUTER_ID=192.168.1.100 `
|
||||||
|
-e BGP_NEIGHBOR_IP=192.168.1.1 `
|
||||||
|
-e BGP_NEIGHBOR_AS=65001 `
|
||||||
|
git.shts.su/infra/bgp-server:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Проверка работы
|
### 3. Проверка работы
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y \
|
|||||||
RUN pip install exabgp
|
RUN pip install exabgp
|
||||||
|
|
||||||
# Создание структуры директорий
|
# Создание структуры директорий
|
||||||
RUN mkdir -p /app/scripts /app/data /app/logs
|
RUN mkdir -p /app/scripts /app/data /app/logs /run/exabgp
|
||||||
|
|
||||||
# Копирование файлов
|
# Копирование файлов
|
||||||
COPY exabgp.conf /app/exabgp.conf
|
COPY exabgp.conf /app/exabgp.conf
|
||||||
|
|||||||
+32
-29
@@ -4,38 +4,41 @@ process load-prefixes {
|
|||||||
encoder json;
|
encoder json;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Настройки CLI
|
# Глобальные настройки
|
||||||
cli {
|
group default {
|
||||||
in /app/run/exabgp.in;
|
# Настройки CLI
|
||||||
out /app/run/exabgp.out;
|
cli {
|
||||||
}
|
in /run/exabgp/exabgp.in;
|
||||||
|
out /run/exabgp/exabgp.out;
|
||||||
# Настройки BGP
|
|
||||||
neighbor 192.168.1.1 {
|
|
||||||
router-id 192.168.1.100;
|
|
||||||
local-address 192.168.1.100;
|
|
||||||
local-as 65000;
|
|
||||||
peer-as 65001;
|
|
||||||
|
|
||||||
# Только исходящие анонсы (не принимаем префиксы)
|
|
||||||
capability {
|
|
||||||
graceful-restart;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Настройки сессии (hold-time автоматически рассчитывает keepalive)
|
# Настройки BGP
|
||||||
hold-time 90;
|
neighbor 192.168.1.1 {
|
||||||
|
router-id 192.168.1.100;
|
||||||
# Логирование
|
local-address 192.168.1.100;
|
||||||
api {
|
local-as 65000;
|
||||||
processes [load-prefixes];
|
peer-as 65001;
|
||||||
neighbor-changes;
|
|
||||||
receive {
|
# Только исходящие анонсы (не принимаем префиксы)
|
||||||
parsed;
|
capability {
|
||||||
update;
|
graceful-restart;
|
||||||
}
|
}
|
||||||
send {
|
|
||||||
parsed;
|
# Настройки сессии (hold-time автоматически рассчитывает keepalive)
|
||||||
update;
|
hold-time 90;
|
||||||
|
|
||||||
|
# Логирование
|
||||||
|
api {
|
||||||
|
processes [load-prefixes];
|
||||||
|
neighbor-changes;
|
||||||
|
receive {
|
||||||
|
parsed;
|
||||||
|
update;
|
||||||
|
}
|
||||||
|
send {
|
||||||
|
parsed;
|
||||||
|
update;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-2
@@ -9,10 +9,18 @@ echo "Starting BGP Server..."
|
|||||||
# Создание директорий если не существуют
|
# Создание директорий если не существуют
|
||||||
mkdir -p /app/logs
|
mkdir -p /app/logs
|
||||||
mkdir -p /app/run
|
mkdir -p /app/run
|
||||||
|
mkdir -p /run/exabgp
|
||||||
|
|
||||||
# Создание named pipes для CLI
|
# Создание named pipes для CLI в стандартном месте
|
||||||
if [ ! -p "/app/run/exabgp.in" ] || [ ! -p "/app/run/exabgp.out" ]; then
|
if [ ! -p "/run/exabgp/exabgp.in" ] || [ ! -p "/run/exabgp/exabgp.out" ]; then
|
||||||
echo "Creating named pipes for ExaBGP CLI..."
|
echo "Creating named pipes for ExaBGP CLI..."
|
||||||
|
mkfifo /run/exabgp/exabgp.in /run/exabgp/exabgp.out
|
||||||
|
chmod 600 /run/exabgp/exabgp.in /run/exabgp/exabgp.out
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Также создаем в /app/run для совместимости
|
||||||
|
if [ ! -p "/app/run/exabgp.in" ] || [ ! -p "/app/run/exabgp.out" ]; then
|
||||||
|
echo "Creating named pipes in /app/run for compatibility..."
|
||||||
mkfifo /app/run/exabgp.in /app/run/exabgp.out
|
mkfifo /app/run/exabgp.in /app/run/exabgp.out
|
||||||
chmod 600 /app/run/exabgp.in /app/run/exabgp.out
|
chmod 600 /app/run/exabgp.in /app/run/exabgp.out
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user