从本地网络到达lxd容器

天堂

操作系统:Ubuntu 15.10
LXD:2.0.0.rc5

我想知道如何从同一本地网络上的另一台计算机访问容器。

我的PC(LXD主机)的地址:192.168.1.112 (enp3s0)
Xenial容器:10.0.3.181 (eth0), 10.0.4.1 (lxcbr0)
其他PC(Fedora 23):192.168.2.118 (wlp3s0)

我可以从另一台PC ping通LXD主机,否则可以。

曼威

有几种不同的方法可以完成您想要的。

  1. 将所需的端口从主机转发到来宾
  2. 路线网
  3. 桥接装置

选项1和2需要在主机上启用ip转发:

# run time:
sudo sysctl -w net.ipv4.ip_forward=1

# permanent:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/30-virt-network

如果要访问来宾上的特定服务(如http(端口80))(使用主机ip-address + port访问来宾端口80),但最简单的值为1,但是您不能在同一端口上运行主机服务。

# on lxd host: (-i HOSTDEVICE to lan, usually enp3s0 or eth0)
sudo iptables -t nat -A PREROUTING -i enp3s0 -p tcp -m tcp --dport 80 -j DNAT --to 10.0.3.181:80
# making this permanent is left to the reader (because that depends on your choice of fw setup)

选项2比较棘手,取决于您可以修改网络的数量。

检查(sudo iptables -L -n)是否表示该链为FORWARD(接受政策),或sudo iptables -I FORWARD -s 192.168.2.118 -j ACCEPT明确允许。现在,要么在网络防火墙上将10.0.3.0/24路由到192.168.1.112主机,要么对192.168.2.118上的路由进行测试。

sudo ip route add 10.0.3.181 via 192.168.1.112 dev wlp3s0

第三种选择是将您的lxd guest虚拟机作为lan的一部分带到您的lan。请参阅将eth0(在您的情况下为enp3s0)转换为桥接方法的说明。简而言之:

  1. 在主机上创建桥接设备
  2. 在该桥上添加eth0enp3s0
  3. 将主机地址设置为桥接(不是enp3s0
  4. 将LXD来宾设备绑定到该网桥

    stop network-manager
    brctl addbr br0
    brctl addif br0 enp3s0
    ifconfig enp3s0 up
    ifconfig br0 up
    dhclient br0
    lxc profile edit default
      - change lxcbr0 to br0
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章