Lxcゲスト内にopenvpnサーバーをセットアップしようとしています。ただし、コンテナに使用可能なtunデバイスがないことを示しています。
コンテナー内でopenvpnを開始すると、次のエラーが発生します。
Tue Sep 18 13:04:18 2012 Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Tue Sep 18 13:04:18 2012 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Sep 18 13:04:18 2012 /sbin/ifconfig 10.6.0.1 pointopoint 10.6.0.2 mtu 1500
SIOCSIFADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFDSTADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFMTU: No such device
Tue Sep 18 13:04:18 2012 Linux ifconfig failed: external program exited with error status: 1
Tue Sep 18 13:04:18 2012 Exiting
私のコンテナー設定では、次のようになっています。
#tun
lxc.cgroup.devices.allow = c 10:200 rwm
私はこのコンテナの有効なtunデバイスを想定していますが、modprobe tunは別のエラーを出します:
FATAL: Could not load /lib/modules/3.2.0-30-generic/modules.dep: No such file or directory
私は自分のコンテナにいくつかの許可または何かが欠けていると仮定しています。誰か教えてください。
lxc についてはよく知りませんが、次のコマンドを試してください。
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
# chmod 666 /dev/net/tun
上記の回答は、現在のバージョンのlxc
では実際には機能しません。 mknod
を使用して手動でキャラクターデバイスを作成しても効果はありません。デバイスはコンテナー内に表示されません。 autodev
のlxc
機能を使用する必要があります。
systemd
を備えたシステムの場合 Linuxコンテナ内のOpenVPN用のArch Linux Wiki の LXC Config を参照してください。systemd
なし)では、次を使用します。lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 10:200 rwm
lxc.hook.autodev = sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"
順序は重要です-deny
を最初にする必要があります。
クオンタの答えに加えて。また、lxc設定に次の行があることを確認してください:
mknod/dev/net/tun c 10200
これは正しい構文です:
#tun
lxc.cgroup.devices.allow = c 10:200 rwm