Làm cách nào để thiết lập một khách LXC để nó có được địa chỉ dhcp để tôi có thể truy cập nó trên mạng của mình?


15

Tôi thiết lập LXC bằng cách sử dụng:

lxc-create -t ubuntu -n lxcguest1

Nhưng tôi không thể truy cập bất kỳ dịch vụ nào chạy trên mạng LAN từ mạng LAN của mình, nó dường như bị NAT. Làm cách nào để thiết lập nó để tôi có thể truy cập nó (có lẽ nó cần lấy địa chỉ dhcp từ bộ định tuyến Linksys của tôi)?

Cảm ơn.


Bản sao có thể có của Askubfox.com/questions/256304/ trên
bekce

Câu trả lời:


5

Tôi vừa mới giải quyết vấn đề này. Về cơ bản, bạn cần thiết lập một cây cầu và liên kết card mạng và container của bạn với nó. Đây là bài viết tôi theo dõi:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubfox-11-04/

Âm thanh như thể tôi, bạn yêu cầu giải pháp 'cầu nối' chứ không phải giải pháp NAT. Tôi cũng đã tắt thiết lập cầu LXC mặc định (được NAT). Để làm được chỉ chỉnh sửa này file: /etc/default/lxcvà thay đổi USE_LXC_BRIDGE="TRUE"đến USE_LXC_BRIDGE="FALSE"và khởi động lại.


1
Tôi hơi bối rối bởi giải pháp này: nó nói rằng anh ta cần thiết lập một cây cầu, sau đó nói rằng giải pháp là tắt thiết lập cầu mặc định. Chắc chắn anh ta phải chuyển sang thiết lập cầu. Điều thứ hai tôi cần trợ giúp là Người dùng nói rằng thiết lập cầu là NATed, Chắc chắn đó là cầu nối (vì vậy các container nằm trên cùng một mạng với máy chủ) hoặc là NATed (trên một mạng khác và yêu cầu định tuyến). Sự hiểu biết của tôi là những loại trừ lẫn nhau?
John Little

1
Đây là tất cả không hợp lệ bây giờ với các phiên bản hiện tại. / etc / default / lx * đã biến mất hoàn toàn.
spyderdyne

5

Thiết lập của tôi trên máy chủ Ubuntu 14.04.1 LTS (Trusty Tahr)

Thêm /etc/network/interfacesvào máy chủ

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(khởi động lại sau khi thay đổi)

Và trên tập tin cấu hình bộ chứa ( /var/lib/lxc/containername/config) tôi đặtlxc.network.link = br0

Với điều này, container sẽ nhận các địa chỉ IP công cộng từ máy chủ dhcp giống như máy chủ.


@JonathanY. Br0 sẽ xuất hiện sau khi thêm nó vào / etc / network / interface như đã nêu trong câu trả lời. Bạn có thể cần khởi động lại.
Epeli

3
Cảm ơn. Những gì tôi đã mất tích được cần phải thêm <username> veth br0 2 vào /etc/lxc/lxc-usernetđể sử dụng br0với các container không có đặc quyền.
Jonathan Y.

2

Tôi đã sử dụng các cài đặt Ubuntu LXC mặc định và định cấu hình bộ định tuyến của mình để gửi tất cả lưu lượng truy cập trên 10.0.3.xxx đến máy Ubuntu. Trên bộ định tuyến hỗ trợ DD-WRT, các cài đặt trông giống như ảnh chụp màn hình bên dưới. Thay thế 192.168.1.137bằng IP của máy chạy LXC. Các bộ định tuyến khác nên có các tùy chọn tương tự để thiết lập tuyến tĩnh ( ví dụ: đây là hướng dẫn tuyến tĩnh cho Linksys ).

Cài đặt DD-WRT để định tuyến tĩnh đến LXC

Điều này không liên quan, nhưng tôi cũng đã sử dụng dịch vụ DNSMasq để trỏ tên máy chủ đến địa chỉ IP của bộ chứa LXC. Bằng cách này tôi có thể truy cập vào container ở http://gitlab/bất cứ đâu trên mạng. Theo tôi, việc sử dụng tên máy chủ để truy cập vào container dễ dàng hơn nhiều so với việc nhớ địa chỉ IP.

Cài đặt DDM WRT DNSMasq


1
Cách tiếp cận tốt đẹp - thử. Đồng ý Thêm tuyến tĩnh hoạt động - và chính bộ định tuyến có thể ping máy được đóng gói! Nhưng với nhiều bộ chuyển đổi cổng được cung cấp bởi ISP sẽ không hoạt động do: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (bộ định tuyến giữ mạng con 192.168.xx, trong khi LXD / LXC nằm trên mạng con 10.0.xx)
stamster

1
Có, bộ định tuyến của bạn sẽ cần chấp nhận mặt nạ mạng con để giải pháp của tôi hoạt động. Tôi thích mua một bộ định tuyến và thêm một chương trình cơ sở sau thị trường để có thể cấu hình điên rồ :-p
thứ ba

1
Tôi đang sử dụng MikroTik ở cả nhà và văn phòng, nhưng đây là cho một thiết lập nơi họ có bộ định tuyến đơn giản được cung cấp bởi ISP. Vì vậy, ý tưởng của bạn rất đơn giản nhưng rất hiệu quả - Nguyên tắc KISS :) Tôi thích nó và chắc chắn sẽ sử dụng nó vì tôi không thể hiểu được làm thế nào những container đó họ chưa có giải pháp để đưa chúng ra thế giới bên ngoài.
stamster
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.