호스트에서 데비안 스트레치를 실행하고 있으며 Ubuntu xenial LXC 게스트 내부에서 openvpn을 구성하려고합니다.
openvpn에는 tun 장치가 필요하기 때문에 컨테이너 내에서 tun 장치를 만들 수 있도록 http://heider.io/blog/2013/10/26/openvpn-in-a-lxc-container/ 와 같은 가이드를 따랐습니다 .
불행히도 lxc.cgroup.devices.allow = c 10:200 rwm
컨테이너의 구성 파일을 설정하면이 오류가 발생합니다.
lxc-start ERROR lxc_cgfsng - cgroups/cgfsng.c:cgfsng_setup_limits:1949 - No such file or directory - Error setting devices.allow to c 10:200 rwm for ubuntu
lxc-start ERROR lxc_start - start.c:lxc_spawn:1236 - Failed to setup the devices cgroup for container "ubuntu".
lxc-start ERROR lxc_start - start.c:__lxc_start:1346 - Failed to spawn container "ubuntu".
편집하다
권한이없는 LXC 컨테이너 에서이 작업을 수행하려고합니다.이 컨테이너의 전체 구성은 다음과 같습니다.
# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.include = /usr/share/lxc/config/ubuntu.userns.conf
lxc.arch = x86_64
# Container specific configuration
lxc.id_map = u 0 100000 65536
lxc.id_map = g 0 100000 65536
lxc.rootfs = /home/myuser/.local/share/lxc/ubuntu/rootfs
lxc.rootfs.backend = dir
lxc.utsname = ubuntu
# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 00:11:22:aa:bb:cc
lxc.network.ipv4 = 192.168.1.101/24
lxc.network.ipv4.gateway = 192.168.1.1
# trying to get /dev/net/tun inside container
lxc.cgroup.devices.allow = c 10:200 rwm
컨테이너를 시작하기 위해 devices.allow 옵션을 설정하지 않으면 컨테이너 내부의 프로세스가 cgroup에 있습니다
/sys/fs/cgroup/devices/user.slice
(컨테이너 외부에서 본 PID는 실제로이 cgroup.procs
하위 디렉토리 의 파일에 있음). 그리고 여기에서 :
$ cat devices.list
a *:* rwm
컨테이너 내부에서
# mknod /dev/net/tun c 10 200
mknod: /dev/net/tun: Operation not permitted
“장치”제어 그룹에 대한 커널 지원이 없을 수 있습니다.
—
Daniel B
왜 컨테이너에서 이것을 정확히하고 싶습니까? 컨테이너 오버 헤드가없는 것을 제외하고 컨테이너와 동일한 두 번째 네트워크 네임 스페이스를 설정하여보다 쉽게 수행 할 수 있습니다.
—
MariusMatutiae
@MariusMatutiae : 테스트 목적으로 가상 머신을 실행하지 않고도 완전한 기능을 갖춘 Linux 컨테이너를 원합니다.
—
오메가
@DanielB : 어떻게 확인할 수 있습니까? 내가 무엇을 할 수 있습니까?
—
오메가
그래서 현재 데비안을 처음부터 설치했으며 옵션이 제대로 작동합니다. 모든 cgroup 파일 시스템 (cpuset, cpu / cpuacct, 장치, 냉동고, net_cls / net_prio, blkio 및 perf_event)이에 올바르게 마운트되어 있는지 확인하십시오
—
Daniel B
/sys/fs/cgroup
. 그렇지 않은 경우 부팅 구성에 오류가있을 수 있습니다. systemd를 실행하고 있습니까? 데비안 설치가 오래되고 업그레이드 되었습니까?