lxd 拥有自己的 br0 网络在 centos conteiner 中无法访问

lxd 拥有自己的 br0 网络在 centos conteiner 中无法访问

当我运行 lxd init 时,我选择此设置。

Would you like to create a new network bridge (yes/no)? no

因为我在 /etc/network/interfaces 中创建了自己的 br0

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
    address x.x.50.2
    netmask 255.255.252.0
    broadcast x.x.x.255
    network x.x.x.0
    gateway x.x.53.254
    dns-nameservers 8.8.8.8

    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

iface eth0 inet manual

然后我启动 lxd centos 并运行

 lxc config device add first eth0 nic nictype=bridged parent=br0
 lxc config device set first eth0 ipv4.address x.x.51.2
 lxc config device set first eth0 security.mac_filtering true

并更改配置

 /var/lib/lxd/containers/second/rootfs/etc/sysconfig/network-scripts/ifcfg-eth0

 DEVICE=eth0
 BOOTPROTO=none
 ONBOOT=yes
 HOSTNAME=LXC_NAME
 NM_CONTROLLED=no
 TYPE=Ethernet
 IPADDR=x.x.51.2
 NETMASK=255.255.255.255
 GATEWAY=x.x.53.254
 DNS1=8.8.8.8
 DNS2=x.x.x.x
 MTU=
 DHCP_HOSTNAME=x.x.50.2

当我尝试 ping 8.8.8.8 时,我收到连接:网络无法访问

/etc/resolv.conf

 nameserver 8.8.8.8
 search lxd
 nameserver x.x.x.x

我做错了什么,我无法弄清楚,也许我缺少一些概念?

答案1

您是否为容器使用了专用 NIC?您不需要在网桥上设置静态 IP 地址:

auto br0
iface br0 inet manual
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

iface eth0 inet manual

如果你在考虑中设置你的 IP 地址,我倾向于不在 lxc 配置级别设置它

lxc config device unset first eth0 ipv4.address

如果您与 LXD 容器共享到 LXD 主机的管理接口,那么您可以在网桥上重置 IP 地址,但我建议对两个连接使用单独的设备。

如果这些都不起作用,你需要找到网络中断的地方。我采取了一步一步的方法,先从容器外部开始,然后进入容器内部,这涉及检查各个级别的网络访问:

  1. 在主机上:
    • 暂时从您的配置中删除桥接器(只需将其注释掉)并在 eth0 上设置静态 IP 地址。
      • 你能 ping 通 eth0ping 192.168.0.10吗?如果能,则表示 eth0 已启动并正常工作。如果不能,则表示你的网卡有问题。
      • 您能 ping 网关ping 192.168.0.1吗?如果能,则第 2 层连接正常。如果不能,则存在第 2 层问题。检查您的连接、交换机等(任何基于 MAC 的过滤)。
      • 您能 ping 通网关外吗ping 8.8.8.8?如果能,则第 3 层连接正常。如果不能,则很可能存在第 3 层问题。请检查路由表ip route show、路由器等。
    • 如果所有这些都正常工作,您就知道 eth0 工作正常。现在您再次创建网桥,将 eth0 重新设置为手动,并将该 IP 地址提供给网桥。重复上述 3 个子步骤。如果所有步骤都成功,那么您就知道问题不在主机上,而是在容器上。
    • 从网桥中删除 IP 地址并将其重新设置为手动。继续下一步。
  2. 在容器中:
    • 您能 ping 通 eth0ping 192.168.0.10吗?如果能,则表示 NIC 正常工作,请继续。如果不能,则表示 NIC 本身存在问题,您将无法获得任何网络连接。检查 LXD 日志、内核日志、运行以太网测试等。如果是这种情况,则问题很可能是配置问题,因为您已经在主机上测试了实际的 eth0 设备,并发现它到目前为止工作正常。
    • 您能 ping 通网关吗ping 192.168.0.1?如果能,则第 2 层正常运行,请继续。如果不能,则存在第 2 层问题。
    • 您能 ping 通网关外吗(我们已经知道您不能)ping 8.8.8.8?存在第 3 层问题。检查路由ip route show

相关内容