如何使用附加 IP 访问 CentOS 的客户虚拟机?

如何使用附加 IP 访问 CentOS 的客户虚拟机?

我在 Hetzner 有一台专用服务器。我在其中安装了 CentOS 7.4,其中有 KVM 和另一个 CentOS 7.4。

我已经向 Hetzner 请求了一个额外的 IP,其中有一台 Mac 出于虚拟化目的而分离出来。

我希望客人可以访问互联网,并且可以从互联网访问该虚拟机。

这是我使用 Hetzner 机器人获得的两个 IP 的数据。

主 IP:AA.BBB.CCC。直接差分

Gateway:       AA.BBB.CCC.1
Netmask:       255.255.255.192
Broadcast:     AA.BBB.CCC.63

附加 IP:AA.BBB.CCC。电子工程

Gateway:       AA.BBB.CCC.1
Netmask:       255.255.255.192
Broadcast:     AA.BBB.CCC.63

这是文件 /etc/sysctl.d/99-hetzner.conf 配置

### Hetzner Online GmbH installimage
# sysctl config
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
# ipv6 settings (no autoconfiguration)
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.accept_ra_defrtr=0
net.ipv6.conf.default.accept_ra_rtr_pref=0
net.ipv6.conf.default.accept_ra_pinfo=0
net.ipv6.conf.default.accept_source_route=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.accept_ra_defrtr=0
net.ipv6.conf.all.accept_ra_rtr_pref=0
net.ipv6.conf.all.accept_ra_pinfo=0
net.ipv6.conf.all.accept_source_route=0
net.ipv6.conf.all.accept_redirects=0

这是刚刚安装并运行主机的初始配置

DEVICE=enp0s31f6
ONBOOT=yes
BOOTPROTO=none
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.255
SCOPE="peer AA.BBB.CCC.1"
IPV6INIT=yes
IPV6ADDR=2a01:4f8:13b:1801::2/64
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=enp0s31f6

这是之前为了获得桥梁而修改的文件

DEVICE=enp0s31f6
ONBOOT=yes
HWADDR=90:1b:0e:ee:05:4e
BOOTPROTO=none
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.192
SCOPE="peer AA.BBB.CCC.1"
BRIDGE=br0

这是我创建的 br0 文件

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=AA.BBB.CCC.DD
NETMASK=255.255.255.192
SCOPE="peer AA.BBB.CCC.1"
ONBOOT=yes
DELAY=0

有人知道在 CentOS 客户机中应该做什么配置吗?

我上面发表的内容有问题吗?

十分感谢你的帮助。

答案1

首先,您需要使用 Hetzner 分配给您的虚拟 MAC 地址创建客户机的虚拟网络接口,并将其桥接到br0主机系统上。例如(libvirt XML):

    <interface type='bridge'>
      <mac address='00:0c:29:34:b3:a1'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>

然后,您为客户操作系统配置关联的 IP 地址、网络掩码和网关。IP 地址是不是已分配给主机。

答案2

请提供更多信息,您的虚拟化平台是什么?是否有任何控制台可以访问主机?例如 vmware(vsphere 客户端)、proxmox(基于 Web)、openstack(基于 Web)。

我认为您需要检查该机器上的接口桥,并确保虚拟网络接口(通常是 tap 接口)与主机网络接口(enp0s31f6)一起列为桥接成员。

请使用以下命令检查网络是否正确并发布结果。

# ifconfig -a
# brctl show

谢谢

相关内容