Làm cách nào để tôi cho phép / dev / net / Tun trong bộ chứa LXC được quản lý LXD?


9

Tôi đang cố gắng để Openvpn chạy bên trong một thùng chứa LXD / LXC và chuyển hướng lưu lượng truy cập đến vùng chứa đến VPN.

Mục đích là để thay thế một máy ảo hoàn toàn hoạt động chính xác (và đồ chơi bằng LXD :-)

Tôi đã quản lý để nhận IP từ máy chủ DHCP chính của mình, thiết lập quy tắc iptables để giả mạo / chuyển tiếp lưu lượng, nhưng khi tôi cố gắng khởi chạy openvpn, nó bị chặn bởi việc thiếu (truy cập) / dev / net / tun thiết bị .

Tôi đã xem qua bài đăng này trên ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn , nhưng dường như nó không hoạt động với phiên bản hiện tại của LXC và / hoặc LXD quản lý cấu hình ...

EDIT: Tôi đã thử sử dụng câu thần chú này, nhưng nó đã không thành công:

lxc config set mycontainer raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm'

EDIT2: đã thử lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200nhưng ở lần dừng / bắt đầu tiếp theo, tôi đã nhận

lỗi: Không thể cấu hình thiết bị tun: Không được thực hiện

Bây giờ tôi thậm chí không thể lxc config device remove mycontainer tunném lỗi tương tự. Container dường như bị mất ...

Câu trả lời:


14

Bạn muốn:

lxc config device add CONTAINER tun unix-char path=/dev/net/tun

1
Điều này đã giải quyết ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)lỗi tôi đang cố gắng khởi tạo kết nối OpenVPN từ một container. Đề cập đến vấn đề này ở đây với hy vọng sẽ thêm câu trả lời này vào các tìm kiếm của Google về lỗi đó. Nếu điều này cũng giải quyết được câu hỏi của @alci, câu trả lời này sẽ được chấp nhận.
Jonathan Y.

Bây giờ tôi nhận được ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)thay vìERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Jay _silly_evarlast_ Wren

3

Tôi đã vật lộn để làm điều này cũng như trong một container không có đặc quyền. Những gì tôi đã làm là

mknod /path/to/your/container/root/tun c 10 200
chown 100000:100000 /path/to/your/container/root/tun

sau đó bên trong container

mkdir /dev/net
ln -s /root/tun /dev/net/tun

Điều này có nghĩa là tôi không phải thực hiện bất kỳ thay đổi nào đối với lxc conf


0

Bạn cần tạo thiết bị điều chỉnh trên máy chủ, trước khi bạn khởi động container: sudo mknod /path/to/your/container/dev/net/tun c 10 200


Cảm ơn. Tôi đã tạo nút. Tôi đã thay đổi chủ sở hữu của nó: nhóm thành 100000: 100000. Nhưng tôi vẫn không thể nhìn thấy nó từ trong container ...
alci 20/07/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.