Centos
VirtualBox 和 CentOS 7 的 DHCP 之謎
我在 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 後再次這樣做)。
不知道出了什麼問題,可能是因為我手動將 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 而不是 .4,因為我在故障情況下手動分配。也許來自 VirtualBox 的一些內部限制,其中 IP 可以是 NatNetwork 中的 DHCP 伺服器……如果有人想測試這個理論,請免費填寫。
問題解決了。