我有一堆虚拟机(Ubuntu Server 14.04)托管在单个真实服务器(带有 KVM 的 Ubuntu Server 14.04)上。虚拟机的数量不断增加,我很快就会拥有超过 254 个。
去测试,
我
/etc/network/interfaces
将网络掩码从真实服务器更改255.255.255.0
为255.255.254.0
. 真实服务器的IP地址是192.168.1.30
。我对 进行了类似的操作
virsh net-edit default
,将网络掩码更改virbr0
为255.255.254.0
。我也将交换机的网络掩码更改
255.255.254.0
为。我像这样更改了测试虚拟机的配置:
auto eth0 iface eth0 inet static address 192.168.2.35 netmask 255.255.254.0 network 192.168.1.0 broadcast 192.168.2.255 gateway 192.168.1.1 dns-nameservers 192.168.1.13 dns-search example.com
这是当前状态:
我无法
192.168.2.35
从真实服务器 ping:它只是停留在“PING 192.168.2.35 (192.168.2.35) 56(84) 字节数据”。停止时(Ctrl+C),它会抱怨:“143 个数据包已传输,0 个已接收,100% 数据包丢失,时间 142134 毫秒”。虚拟机
192.168.2.35
无法 ping 任何东西(交换机、真实服务器和 google.com 都没有),前两个抛出“连接:网络无法访问”错误,或者抛出“ping:未知主机 google.com”最后一个。虚拟机可以 ping 自己。
我的配置有什么问题?
因为您错误地计算了子网,并且您尝试使用来自两个不同子网的 IP。
或者换一种说法,如果您使用 /23 位掩码,则该范围的起始地址必须是该范围的第一个地址。192.168.1.1 不是 23 位掩码描述的任何网络的起始地址,因为这正是数学的结果。
使用 23 位掩码,有效网络如下。
在您的界面配置中,虽然您似乎有
address 192.168.2.35
, 和gateway 192.168.1.1
. 鉴于该掩码,您的网关和地址位于完全独立的子网上。当然你的广播和网络地址设置也不正确。如果您使用 22 位掩码,您将获得一个包含 192.168.1.x 和 192.168.2.x 的范围。请注意,您的广播和网络值仍然错误,它们也需要修复。