Я пытаюсь запустить консоль Cisco VPN client
в Докере. Запускаю контейнер так:
docker run -it -v /srv/vpn/keys/:/root/keys/ --network=host --cap-add=NET_ADMIN --device=/dev/net/tun -v /dev/net/tun:/dev/net/tun vpn-vpnc-client_img
А затем запустите vpnc
клиент внутри контейнера Docker
vpnc-connect /root/keys/vpnc.conf --local-port 0
Он производит следующий вывод:
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
Cannot open "/proc/sys/net/ipv4/route/flush": Read-only file system
VPNC started in background (pid: 257)...
vpnc
подключается и создает правильные маршруты, поэтому кажется, что VPN работает. Меня беспокоит предупреждающее сообщение. Согласно документации, для /proc/sys/net/ipv4/route/flush
Запись в этот файл приводит к очистке кеша маршрутизации.
Я не понимаю этого утверждения. Важно ли, чтобы кеш маршрутизации не сбрасывался?
Также, как я понимаю, могу оформить
echo 1 > /proc/sys/net/ipv4/route/flush
вручную после запуска контейнера. Но я использую monit
внутри контейнера докеров, чтобы перезапустить vpnc
при потере связи. Могу я привязать маунта /proc/sys/net/ipv4/route/flush
с хоста внутри контейнера каким-то образом и выдать команду для очистки кеша маршрутизации из сценария мониторинга внутри контейнера?
Как упоминалось в комментариях, есть нет возможности гранулирования для использования с --add-cap
, поэтому вам нужно будет запустить контейнер в привилегированном режиме, используя --privileged
чтобы избавиться от этого предупреждения.