我有一台 Hetzner 专用服务器,上面安装了 Ubuntu 服务器 16.04。
该服务器具有公共 IP:198.51.100.33(仅用于解释)。
在该服务器上我已经安装了 KVM。
我已经购买了额外的 IP 地址,想要将其添加到 KVM VPS。
如何为虚拟机添加额外的 IP 地址?
我已经在 Google 上搜索过,发现主机服务器的网络崩溃了十多次,所以我不得不通过远程控制台 Lara 连接来恢复网络配置。
谢谢
更新 1:
主机服务器ip:198.51.100.160
VPS 的 IP:198.51.100.187
这些都是假 IP,仅用于解释
以下是主机服务器上 /etc/network/interfaces 的内容
### Hetzner Online GmbH installimage
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet static
address 198.51.100.160
netmask 255.255.255.192
gateway 198.51.100.129
# route 198.51.100.128/26 via 198.51.100.129
up route add -net 198.51.100.128 netmask 255.255.255.192 gw 198.51.100.129 dev eth0
iface eth0 inet6 static
address 2a0:4d8:201:231d::2
netmask 64
gateway fe80::1
我在底部添加了以下内容:
auto eth0:1
iface eth0:1 inet static
address 198.51.100.187
gateway 198.51.100.129
netmask 255.255.255.192
之后,我在主机服务器上安装了 kvm 的 virt-manager,并通过 vnc 连接到主机服务器。
使用 GUI virt-manager 我创建了虚拟机。
如何将第二个 IP 添加到该 VPS?
更新2:
购买了子网 ip 198.51.110.64 / 29
答案1
嗯。使用桥接接口是个不错的选择。桥接的工作原理与非托管交换机类似。您可以将多个虚拟机连接到一个桥接。您还可以在一个桥接内使用 VLAN,或者为每个 VLAN 创建每个桥接。
桥接将多个接口放入同一个网段。当将服务器连接到多个交换机以实现高可用性或进行虚拟化时,这种做法非常流行。在后一种情况下,它通常用于在主机中创建桥接(例如 ethX),并将客户机的虚拟接口(virbrX)放入桥接中。
基本上,桥接就是将一台计算机插入另一台已连接到大型网络(如互联网)的计算机,并让桥接计算机使用联网计算机的连接。但要做到这一点,联网计算机需要有两个以太网端口,一个用于大型网络,一个用于桥接计算机。
使用桥接的另一个示例场景是提供冗余网络功能。例如,使用两个网络接口连接到两个启用生成树的交换机,在电缆、接口或交换机发生故障时提供冗余连接。这要求在桥接接口和交换机上都启用生成树。
您不需要添加路由,route add -net 198.51.100.128 netmask 255.255.255.192 gw 198.51.100.129 dev eth0
因为网络本地连接到 eth0(eth0 具有来自此网络的 IP 地址)并且网关198.51.100.129
与默认网关 IP 地址相同。
首先您需要安装bridge-utils
:
sudo apt install -y bridge-utils
并允许在接口之间转发IP流量:
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
为了允许通过主机服务器上的防火墙转发所有 IP 数据包,您需要添加防火墙规则:
sudo apt install -y iptables-persistent
sudo iptables -I FORWARD -j ACCEPT
sudo dpkg-reconfigure -y iptables-persistent
您在主机服务器的接口198.51.100.160/26
上有 IP 地址eth0
,您需要198.51.100.187/26
在 VPS1 虚拟机上分配 IP 地址。您br0
在主机上创建桥接接口并将eth0
接口连接到桥接。然后br0
在 VPS1 的设置中将 VPS1 的虚拟网络接口连接到桥接。在 VPS1 内部,您将198.51.100.187/26
通过以下示例将 IP 地址分配为静态:
auto eth0
iface eth0 inet static
address 198.51.100.187
netmask 255.255.255.192
gateway 198.51.100.129
dns-nameservers 8.8.8.8 8.8.4.4
要使用第二个 IP 子网,198.51.110.64/29
您可以创建第二个桥接接口br1
并在其上分配第一个 IP 地址 198.51.110.65/29。然后,您可以将其他 VPS 计算机连接到此桥接器,并在它们上分配来自此网络的静态 IP 地址,但默认网关 IP 地址将存在198.51.110.65/29
。
为此,请将/etc/network/interfaces
主机服务器上的文件更改为:
### Hetzner Online GmbH installimage
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet static
address 198.51.100.160
netmask 255.255.255.192
gateway 198.51.100.129
dns-nameservers 8.8.8.8 8.8.4.4
auto br0
iface br0 inet manual
bridge_ports eth0
bridge_stp off # disable Spanning Tree Protocol
bridge_waitport 0 # no delay before a port becomes available
bridge_fd 0 # no forwarding delay
auto br1
iface br1 inet static
address 198.51.110.65
netmask 255.255.255.248
bridge_stp off # disable Spanning Tree Protocol
bridge_waitport 0 # no delay before a port becomes available
bridge_fd 0 # no forwarding delay
iface eth0 inet6 static
address 2a0:4d8:201:231d::2
netmask 64
gateway fe80::1