我在 Windows 7 Pro 上安装了最新的 VirtualBox。我创建了使用 10.10.10.0/27 并启用了 DHCP 的 NatNetwork,以及使用 172.17.24.0/27 并启用了 DHCP 的仅主机网络。
创建虚拟机作为 Red Hat Linux 并在其上安装 CentOS 7。
由于某种原因出现多个问题后,DHCP 服务器向 enp0s8 接口提供了错误的 IP。
这是客户端:
[root@smu1 ~]# ifconfig enp0s8
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.6 netmask 255.255.255.224 broadcast 10.0.2.31
inet6 fe80::a00:27ff:fe41:58ae prefixlen 64 scopeid 0x20<link>
ether 08:00:27:41:58:ae txqueuelen 1000 (Ethernet)
RX packets 13 bytes 3430 (3.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 207 bytes 23996 (23.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@smu1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT=no
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s8"
UUID="77e14c77-358e-48c3-be0c-e18d75cecc5a"
DEVICE="enp0s8"
ONBOOT="yes"
PEERDNS=no
PEERROUTES=yes
这是主机端:
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe list natnetworks
NetworkName: NatNetwork
IP: 10.10.10.1
Network: 10.10.10.0/27
IPv6 Enabled: No
IPv6 Prefix: fd17:625c:f037:2::/64
DHCP Enabled: Yes
Enabled: Yes
loopback mappings (ipv4)
127.0.0.1=2
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe list dhcpservers
NetworkName: HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter
IP: 172.17.24.4
NetworkMask: 255.255.255.224
lowerIPAddress: 172.17.24.5
upperIPAddress: 172.17.24.30
Enabled: Yes
NetworkName: NatNetwork
IP: 10.10.10.4
NetworkMask: 255.255.255.224
lowerIPAddress: 10.10.10.5
upperIPAddress: 10.10.10.30
Enabled: Yes
与仅主机网络完全相同的设置效果很好!完全没有问题。
[root@smu1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=b012704e-cc06-4ece-b4ea-7a12bed03f27
DEVICE=enp0s3
ONBOOT=yes
PEERDNS=no
PEERROUTES=no
[root@smu1 ~]# ifconfig enp0s3
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.24.6 netmask 255.255.255.224 broadcast 172.17.24.31
inet6 fe80::a00:27ff:fe46:c2b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:46:0c:2b txqueuelen 1000 (Ethernet)
RX packets 292 bytes 29717 (29.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 238 bytes 46906 (45.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我尝试重新启动主机和来宾,从命令行删除并重新创建 natnetwork 和 dhcp 服务器(在 Windows 中完全禁用 UAC 后再次执行此操作)。
答案1
不确定出了什么问题,也许是因为我手动分配了 10.10.10.4 作为 DHCP 服务器 IP,而 VirtualBox 不喜欢它...我从 GUI 为另一个网络创建了 natnet1,从 CMD 中删除了 10.10.10.0/27,测试了 DHCP 是现在从网络 natnet1 提供正确的 IP,使用我最初需要的网络创建 natnet10 并删除 natnet1。现在 IP 已按预期分配。 DHCP 服务器 IP 是 10.10.10.3,而不是我在故障情况下手动分配的 0.4。也许 VirtualBox 存在一些内部限制,其中 IP 可以成为 NatNetwork 中的 DHCP 服务器...如果有人想测试这个理论,请免费填写。
问题解决了。