Ubuntu 18.04 Netplan 子网路由(virbr0)

Ubuntu 18.04 Netplan 子网路由(virbr0)

我有一台 Ubuntu 16.04 主机,其中有 6 个 LXC/LXD 容器,使用路由设置双向连接到互联网。每个容器从路由 IPv4/29 子网获取一个 IPv4 地址。此外,它还从 IPv6/64 子网获取一个 IPv6 地址。

现在,当我迁移到 Ubuntu 18.04 时,我想将我的设置也迁移到 Netplan,但遇到了问题。我可以轻松为主机创建基本的 Netplan 配置。但我不知道如何创建“网桥/路由器”。任何配置网桥(第 3 层)的尝试都以某种方式失败。

我的旧配置如下:

# /etc/network/interfaces
# Loopback device:
auto lo
iface lo inet loopback
iface lo inet6 loopback

# device: eth0
auto eth0
iface eth0 inet static
  address 88.99.64.130
  netmask 255.255.255.192
  pointopoint 88.99.64.129
  gateway 88.99.64.129

iface eth0 inet6 static
  address 2a01:4f9:c010:32bc::2
  netmask 128
  gateway fe80::1
  up sysctl -p

### From here on I dont know how to do this in Netplan!!!
# Bridge router to VMs (brouter)
auto br0
iface br0 inet static
  address 88.99.64.130
  netmask 255.255.255.192
  bridge_ports none
  bridge_stp off
  bridge_fd 0

  # Add IPv4 subnet route
  up ip route add 94.130.31.40/29 dev br0

iface br0 inet6 static
  address 2a01:4f9:c010:32bc::2
  netmask 128

  # Add IPv6 route
  up ip -6 route add  2a01:4f9:c010:32bc::/64

为了让那些不了解 LXC/LXD 的人更清楚,我还有另一台主机,其 VirtualBox 配置非常相似,我将桥接器命名为“virbr0”(而不是示例中的“br0”)。VirtualBox 中的虚拟机随后会连接到名为“virbr0”的桥接适配器。

在 VirtualBox 中运行的虚拟机中,这是一个简单的静态配置。我在虚拟机中使用 Netplan 没有任何问题。我的问题仅与主机有关。

也许有人可以发布此类路由设置的示例。

答案1

https://netplan.io/examples

桥接

要创建一个由使用 DHCP 的单个设备组成的非常简单的桥,请写入:

network:
  version: 2
  renderer: networkd
  bridges:
    br0:
      dhcp4: yes
      interfaces:
        - enp3s0

一个更复杂的例子是,要让 libvirtd 使用带有标记 vlan 的特定网桥,同时继续提供未标记的接口,将涉及:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s25:
      dhcp4: true
  bridges:
    br0:
      addresses: [ 10.3.99.25/24 ]
      interfaces: [ vlan15 ]
  vlans:
    vlan15:
      accept-ra: no
      id: 15
      link: enp0s25

然后,通过在 /etc/libvirtd/qemu/networks/ 下的新 XML 文件中添加以下内容,将 libvirtd 配置为使用此桥接器。标签中的桥接器名称以及需要与使用 netplan 配置的桥接器设备的名称相匹配:

<network>
  <name>br0</name>
  <bridge name='br0'/>
  <forward mode="bridge"/>
</network>

相关内容