使用与 linux 容器一起使用的 netplan 配置具有静态 IP 的网桥

mil*_*art 5 network-bridge lxd netplan

摘要:如何在主机上配置 netplan 以创建将在来宾虚拟机(应可从本地局域网访问)上使用的网桥(具有静态 IP 地址)。

我使用的是 32 位 Ubuntu 17.10。计划 0.32~17.10.1。

我正在尝试配置一个应该可以从本地网络访问的 linux 虚拟容器。但是我无法使用 nplan 在主机上配置网桥。
我尝试遵循以下指南但没有成功:
https : //discuss.linuxcontainers.org/t/static-ip-for-containers-with-local-lan-access/817
该指南配置了一个带有两个 NIC 的主机系统. 我的主机只有一个接口。

我仍在处理主机上的 nplan 配置。我在主机上的 nplan 配置如下:

network:  
  version: 2  
  renderer: networkd  
  ethernets:  
    ens32:  
      dhcp4: no  
      dhcp6: no  
      addresses: [10.0.0.247/24]  
      gateway4: 10.0.0.138  
      nameservers:  
        addresses: [10.0.0.138,8.8.8.8,8.8.4.4]  
  bridges:  
    br0:  
      interfaces: [ens32]  
      dhcp4: no  
      dhcp6: no  
      addresses: [10.0.0.248/24]  
      parameters:  
        stp: false  
        forward-delay: 0  
Run Code Online (Sandbox Code Playgroud)

在主机上执行“netplan apply”后,我可以解析 google.com,但无法 ping:

ping google.com  
PING google.com (172.217.22.174) 56(84) bytes of data.  
From fileserver (10.0.0.247) icmp_seq=1 Destination Host Unreachable  

ip a  
1: lo ...  
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000  
    link/ether 00:01:2e:4c:4c:97 brd ff:ff:ff:ff:ff:ff  
    inet 10.0.0.247/24 brd 10.0.0.255 scope global ens32  
       valid_lft forever preferred_lft forever  
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000  
    link/ether ba:5f:c3:f0:a8:bd brd ff:ff:ff:ff:ff:ff  
    inet 10.0.0.248/24 brd 10.0.0.255 scope global br0  
       valid_lft forever preferred_lft forever  
Run Code Online (Sandbox Code Playgroud)

当我从 nplan 配置中删除完整的部分 'bridges:' 时,我必须重新启动计算机才能摆脱网桥(netplan apply 是不够的 - 为什么?)。

重新启动后,我可以 ping google.com。

非常欢迎有关 nplan 配置(在主机和虚拟来宾上)的任何帮助。

谢谢你。

小智 3

我尝试过另一个指南。诀窍是不要为 eth0 分配一个单独的地址。只要不留地址,您的主机就会与网桥共享 IP。但还有另一个问题。重新启动后,某些东西会破坏此配置,网桥会丢失其广播地址,并且除非再次运行,否则您将无法访问互联网netplan apply

我认为这可能是由于 LXD 的一些覆盖(我正在使用 lxd 桥)。