diff --git a/DOCKER_RUN.md b/DOCKER_RUN.md index c4fcc37..52a679a 100644 --- a/DOCKER_RUN.md +++ b/DOCKER_RUN.md @@ -42,6 +42,21 @@ docker run -d ` -e BGP_NEIGHBOR_IP=192.168.1.1 ` -e BGP_NEIGHBOR_AS=65001 ` 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. Проверка работы diff --git a/Dockerfile b/Dockerfile index d72461c..2cdde51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y \ 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 diff --git a/exabgp.conf b/exabgp.conf index e21ba5f..b875324 100644 --- a/exabgp.conf +++ b/exabgp.conf @@ -4,38 +4,41 @@ process load-prefixes { encoder json; } -# Настройки CLI -cli { - in /app/run/exabgp.in; - out /app/run/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; +# Глобальные настройки +group default { + # Настройки CLI + cli { + in /run/exabgp/exabgp.in; + out /run/exabgp/exabgp.out; } - # Настройки сессии (hold-time автоматически рассчитывает keepalive) - hold-time 90; - - # Логирование - api { - processes [load-prefixes]; - neighbor-changes; - receive { - parsed; - update; + # Настройки 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; } - send { - parsed; - update; + + # Настройки сессии (hold-time автоматически рассчитывает keepalive) + hold-time 90; + + # Логирование + api { + processes [load-prefixes]; + neighbor-changes; + receive { + parsed; + update; + } + send { + parsed; + update; + } } } } diff --git a/scripts/start.sh b/scripts/start.sh index bf0924a..c94bb86 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -9,10 +9,18 @@ echo "Starting BGP Server..." # Создание директорий если не существуют mkdir -p /app/logs mkdir -p /app/run +mkdir -p /run/exabgp -# Создание named pipes для CLI -if [ ! -p "/app/run/exabgp.in" ] || [ ! -p "/app/run/exabgp.out" ]; then +# Создание named pipes для CLI в стандартном месте +if [ ! -p "/run/exabgp/exabgp.in" ] || [ ! -p "/run/exabgp/exabgp.out" ]; then 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 chmod 600 /app/run/exabgp.in /app/run/exabgp.out fi