为 Apache CloudStack 配置 Netplan

为 Apache CloudStack 配置 Netplan

我正在按照本教程在 Ubuntu 18.04 LTS 上设置 CloudStack:https://rohityadav.cloud/blog/cloudstack-kvm/它说像这样配置你的网络:

network:
   version: 2
   renderer: networkd
   ethernets:
     enp2s0:
       dhcp4: false
       dhcp6: false
       optional: true
   bridges:
     cloudbr0:
       addresses: [192.168.1.10/24]
       gateway4: 192.168.1.1
       nameservers:
         addresses: [1.1.1.1,8.8.8.8]
       interfaces: [enp2s0]
       dhcp4: false
       dhcp6: false
       parameters:
         stp: false
         forward-delay: 0

我的原始配置(50-cloudinit.yml)设置如下:

network:
  version: 2
  ethernets:
    eth0:
      addresses: [abc.def.95.26/20, 10.46.0.5/16]
      gateway4: abc.def.80.1
      optional: true
      match:
        macaddress: 72:5a:7a:a3:af:d0
      set-name: eth0

route通过这个工作配置,以下是和的输出netstat -rn

root@cloudstack-ubuntu:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
10.46.0.0       0.0.0.0         255.255.0.0     U     0      0        0 eth0
abc.def.80.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
root@cloudstack-ubuntu:~# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         abc.def.80.1     0.0.0.0         UG        0 0          0 eth0
10.46.0.0       0.0.0.0         255.255.0.0     U         0 0          0 eth0
abc.def.80.0     0.0.0.0         255.255.240.0   U         0 0          0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

在 Netplan 的手册页和其他来源(包括上面的来源)的帮助下,我得出了这个配置:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      optional: true
      match:
        macaddress: 72:5a:7a:a3:af:d0
      set-name: eth0

  bridges:
    cloudbr0:
     interfaces: [eth0]
     addresses: [abc.def.95.26/20, 10.46.0.5/16]
     gateway4: abc.def.80.1
     nameservers:
       addresses: [1.1.1.1, 8.8.8.8]
       search: []
     dhcp4: false
     parameters:
       stp: false
       forward-delay: 0

使用此配置,相同netstat -rnroute命令输出这个,对我来说应该可以工作:

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         abc.def.80.1     0.0.0.0         UG        0 0          0 cloudbr0
10.46.0.0       0.0.0.0         255.255.0.0     U         0 0          0 cloudbr0
abc.def.80.0     0.0.0.0         255.255.240.0   U         0 0          0 cloudbr0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

#route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 cloudbr0
10.46.0.0       0.0.0.0         255.255.0.0     U     0      0        0 cloudbr0
abc.def.80.0     0.0.0.0         255.255.240.0   U     0      0        0 cloudbr0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

但我仍然没有出站连接。我应该如何编写接口和桥接器的配置?

我的 IP:abc.def.95.26,网关:abc.def.80.1,网络掩码:255.255.240.0

提前致谢

答案1

如果您运行ifconfig,原始 .yaml 会显示什么?我的预期是您的 IP 地址显示为 10.46.0.5。或者您甚至可以使用原始 .yaml 文件 ping 外部地址(因为它对我来说看起来很奇怪)。

我会尝试以下方法:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      optional: true
  bridges:
    cloudbr0:
     interfaces: [eth0]
     addresses: [10.46.0.5/16]
     gateway4: 10.46.0.1
     nameservers:
       addresses: [1.1.1.1, 8.8.8.8]
     dhcp4: false
     parameters:
       stp: false
       forward-delay: 0

对于以太网,真正需要做的就是将 DHCP 设置为 false 并将可选设置为 true;这允许您的新桥接配置设置网络,并且可选设置将阻止 Linux 在启动期间等待 eth0 完全激活(因为它不会,因为我们在桥接中配置)。

从这里我已对您想要的 IP 地址和网关做出了最佳猜测。我不太确定如果其中包含字母会如何工作(尽管我不是网络专家),因为我不认为 IPv4 应该允许使用字母。

完成后,保存文件并运行:

sudo netplan --debug generate

相关内容