将lxc网络与本地网络连接

将lxc网络与本地网络连接

我当前的环境如下;在Windows 10中,我在Hyper-V中安装了Ubuntu 16.04,这个托管的Ubuntu连接到本地网络10.10.10.*,其中Ubuntu的IP是10.10.10.1,Windows的IP是10.10.10.100。他们看到对方,一切都很好。在 Ubuntu 中,我有 LXC/LXD 容器(nginx、postgres 和 nodejs 服务),对于这些容器,我桥接了名为 chyrrybr0 的网络,地址为 10.10.0.*,因此当前环境如下所示:

在此输入图像描述

我可以从容器 ping Windows,但无法从 Windows ping 或连接到容器。所以,我的问题如下:我怎样才能向容器添加新的网络接口,这样我就可以将静态 IP 地址设置为 10.10.10.*?

我正在尝试创建一个网络,如下所示:

在此输入图像描述

编辑:我能够添加新的 eth1 接口。首先,在 Ubuntu 主机中运行lxc network attach eth1 postgres eth1,然后在 postgres 容器中添加网络接口配置10-win-network.cfg和内容

auto eth1
iface eth1 inet static
address 10.10.10.5
netmask 255.255.255.0

但是,从现在开始,我无法 ping 通位于 10.10.10.100 ( 100% packet loss) 的 Windows 主机以及位于 10.10.10.1 ( icmp_seq=1 Destination Host Unreachable) 的 Ubuntu 主机。但是 ping 10.10.0.249(cherrybr0 的 Ubuntu 主机的 IP 地址)是成功的。我缺少什么?

答案1

我不知道你是否能够解决这个问题,但我最近遇到了类似的问题(“如何从我的笔记本电脑外部访问在本地笔记本电脑上运行的容器?”),我只是将静态路由添加到我家的路由器...

脚步:

  • 例如,在单独的网络上运行所有容器172.18.0.0/16。所有这些容器都将位于一个 IP 后面172.18.0.1,例如,我们称之为这台机器Ship(因为它有容器..呵呵)。
  • 你的Ship 必须有一个本地 IP,例如192.168.1.xxx,这是您的路由器知道的地址。
  • 172.18.0.0在您的路由器(或 Windows 计算机,如果那是您的路由器)上,将网络子掩码的静态路由添加255.255.0.0到您的Ships 192.168.1.xxx

瞧,现在您可以172.18.0.xxx从本地网络上的任何地方(包括您的 Windows 机器)调用您的容器 ( )

相关内容