Docker 컨테이너 내에서 OpenVPN 클라이언트를 실행하는 방법은 무엇입니까?

Docker 컨테이너 내에서 OpenVPN 클라이언트를 실행하는 방법은 무엇입니까?

Docker 컨테이너 내에서 OpenVPN 클라이언트를 실행하고 싶습니다. 임시 테스트에서 다음을 시도했습니다.

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun -v $PWD:$PWD ubuntu bash

in the container:

apt-get update && apt-get install -y openvpn
openvpn --config myconfig.ovpn

-v $PWD:$PWD(임시 테스트를 위해 OpenVPN 구성을 컨테이너에 넣기 위해 볼륨 마운트를 추가했습니다.)

그러다가 갑자기 로깅을 시작했습니다.

Fri Jul 12 17:19:37 2019 /sbin/ip -6 addr add <ip>/64 dev tun0
RTNETLINK answers: Permission denied
Fri Jul 12 17:19:37 2019 Linux ip -6 addr add failed: external program exited with error status: 2
Fri Jul 12 17:19:37 2019 Exiting due to fatal error

IPv6에 몇 가지 문제가 있는 것 같지만 지금은 어떻게 진행해야 할지 모르겠습니다.

위의 내용을 반복하고 --net=host에 추가 하면 docker run모든 것이 잘 작동합니다. 그러나 그것은 내가 정말로 원하는 것이 아닙니다. OpenVPN 클라이언트가 컨테이너에서 격리되어 실행되기를 원합니다.

그만한 가치가 있기 때문에 IPv6은 필요하지 않습니다. VPN 네트워크에서 액세스할 수 있는 모든 호스트는 IPv4를 통해 액세스할 수 있습니다.

답변1

나는 성공했다. IPv6를 수동으로 활성화해야 하는 것 같습니다.

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun \
           --sysctl net.ipv6.conf.all.disable_ipv6=0 -v $PWD:$PWD \
           ubuntu bash

관련 정보