Ping 到 LXC 容器

Ping 到 LXC 容器

请问,我尝试从 VMB ping 10.0.3.8(LXC 容器的 ip),但没有成功!您有什么想法吗?

以下是我想要做的事情的解释:(红色箭头)

蓝色箭头表示 ping 工作正常。红色箭头表示存在问题:我尝试从 VMB (192.168.1.7) ping 10.0.3.8,但这条消息被阻止了:ping 10.0.3.8 PING 10.0.3.8 (10.0.3.8) 56(84) 字节数据。--- 10.0.3.8 ping 统计信息 --- 已发送 68 个数据包,已接收 0 个数据包,100% 数据包丢失,耗时 67214 毫秒 –

在此处输入图片描述 多谢。

此致。

答案1

当您创建 Linux 容器时,它存在于自己的网络空间中。这就是 IP 地址看起来如此不同的原因。您的虚拟机有 192.168.1.x,而您的 Linux 容器被分配了 10.0.3.x。

解决此问题的一种方法是在 Linux 容器上创建专用的虚拟网卡,然后从 192.168.1.x 网络中提取一个地址。

以下是核心说明,但详细步骤和背景来自这篇 Bonsai Framework 文章

在主机上创建永久 macvlan

/etc/network/interfaces在主机文件底部添加,

# Creates a macvlan interface called macvlan0 without an IP address  
iface mvlan0 inet manual  
   pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge  
   post-down ip link del macvlan0  
auto mvlan0  

重新启动系统以使更改生效。mvlan0使用 查看网络设备时,您将注意到ifconfig -a

macvlan通过修改位于的配置文件将容器连接到主机/var/lib/lxc/[container]/config

要为新网卡添加的条目,

# macvlan for external IP  
lxc.network.type = macvlan   
lxc.network.macvlan.mode = bridge  
lxc.network.flags = up  
lxc.network.link = mvlan0  
lxc.network.hwaddr = 00:16:3e:8d:4f:51  
lxc.network.name = eth0  

对于 hwaddr,通过免费网站生成一个唯一的本地管理单播 MAC 地址,例如helion.org

最后,调整容器内的接口文件以通过静态绑定,或者如果您愿意,可以使用动态。

就我而言,我调整了我的家用路由器,以便 192.168.0.1 到 192.168.0.20 不是动态分配的,而是在我的 LXC 中使用静态的。

因此我修改了我的容器接口文件如下,

auto eth0  
iface eth0 inet static  
address 192.168.0.12  
gateway 192.168.0.1  
netmask 255.255.255.0  

auto eth1  
iface eth1 inet dhcp  

重新启动您的 Linux 容器。

相关内容