如何为 kvm vps 添加公网 IP?

如何为 kvm vps 添加公网 IP?

我有一台 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 创建每个桥接。

Debian 维基

桥接将多个接口放入同一个网段。当将服务器连接到多个交换机以实现高可用性或进行虚拟化时,这种做法非常流行。在后一种情况下,它通常用于在主机中创建桥接(例如 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

相关内容