Câu hỏi Truy cập dịch vụ container lxc từ các container lxc khác thông qua máy chủ


Tôi đã có một máy tính xách tay với Ubuntu 14 Desktop. Máy tính xách tay có Kết nối WLAN vào mạng LAN của tôi và được quản lý bởi quản lý mạng. Nguyên nhân, máy tính xách tay là một nic (eth0), quá, nhưng nó không được kết nối. Tôi sử dụng máy tính xách tay này như một máy chủ LXC. Tôi có nhiều vùng chứa phục vụ ứng dụng. Với thiết lập cơ bản của LXC (các thiết lập mặc định như sử dụng dnsmasq, mạng cầu nối).

Đầu ra của ifconfig đang hiển thị 4 giao diện: eth0, lo, wlan và lxcbr0. Cho đến nay, chưa có cấu hình iptables đặc biệt nào được thực hiện. Nó là một hệ thống mới được cài đặt

Bây giờ, bằng cách cấu hình NAT trên máy chủ LXC của tôi ...

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 21404 -j DNAT --to 10.0.3.180:3142

... Tôi có thể truy cập các dịch vụ trong vùng chứa của mình, khi truy cập từ một máy khác trong mạng LAN của tôi, ví dụ:

foo@LANMachine2: wget -O - http://lxc-host:21404 #it works

Dấu: lxc-host là tên DNS cho máy tính xách tay do bộ định tuyến của tôi quản lý.

Bây giờ điều tôi muốn làm là ở lại máy tính của tôi và truy cập dịch vụ của một container từ bản thân LXC và các vùng chứa được lưu trữ khác sử dụng cùng một tên DNS, như sau:

bar@lxc-host: wget -O - http://lxc-host:21404 
#or
bar@lxc-container: wget -O - http://lxc-host:21404

#both not working and leading to output:
Connecting to lxc-host (lxc-host)|The.IP.shown.here|:21404... failed: Connection refused.

Làm thế nào để làm việc này? Có thể ở tất cả? Hầu hết nhập khẩu cho tôi sẽ có thể kết nối từ các container khác đến các dịch vụ container khác bằng cách định tuyến thông qua máy chủ LXC. (Điều này sẽ cho phép tôi chuẩn hóa thiết lập vùng chứa của mình)


1
2017-09-13 13:53


gốc


Nó sẽ rất hữu ích để có đầu ra của ip liên kết hiển thị, ip addr hiển thị, ip lộ trình. - MariusMatutiae


Các câu trả lời:


Các gói từ cùng một máy chủ không bao giờ tới bảng PREROUTING (hoặc bất kỳ bảng nat nào khác), vì chúng không được định tuyến từ một giao diện này sang giao diện khác.

Đối với mạng container-to-container, bạn có thể sử dụng một cây cầu chia sẻ (không cần phải giống như chúng chia sẻ với host) hoặc thực sự sử dụng định tuyến và bảng iptables PREROUTING, nếu chúng ở trên các giao diện khác nhau.


1
2018-01-12 18:45