我正在按照本教程在 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 -rn
和route
命令输出这个,对我来说应该可以工作:
# 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