Linux
錯誤:需要任何有效前綴而不是“172.31.1.102/255.255.255.8”
在 Ubuntu 20.04 LTS 上使用某些遮罩進行靜態配置時,來自 ifupdown 的命令 ifup 失敗。
工作配置範例
$ cat /etc/network/interfaces auto lo iface lo inet loopback auto enp1s0 iface enp1s0 inet static address 172.31.1.102 netmask 255.255.255.0
非工作配置範例
$ cat /etc/network/interfaces auto lo iface lo inet loopback auto enp1s0 iface enp1s0 inet static address 172.31.1.102 netmask 255.255.255.8
錯誤
$ sudo ifup enp1s0 Error: any valid prefix is expected rather than "172.31.1.102/255.255.255.8". ifup: failed to bring up enp1s0
是否無法分離具有非連續 IP 地址範圍的網路?例如,我不希望 172.31.1.102 能夠到達 172.31.1.118,但 172.31.1.230 應該可以到達。
停止。255.255.255.8 非常危險,作業系統正在警告您。您的遮罩將僅使用以 16 的倍數結尾的地址!
您需要使用遮罩中的“高”位,而不是低位,以便製作連續的塊。下面是一些有效的例子。
A Class C is a /24 mask, or 24 bits, and looks 255.255.255.0 or 11111111.11111111.11111111.00000000
/25 位 255.255.255.128 或 11111111.11111111.11111111.10000000
/26 位 255.255.255.192 或 11111111.11111111.11111111.11000000
/27 位 255.255.255.224 或 11111111.11111111.11111111.11100000 << 你可能想要這個
(等等)
/28 位 255.255.255.240(16 個 IP,14 個可用);
/29 位 255.255.255.248(8 個 IP,6 個可用);
/30 位 255.255.255.252(4 個 IP,2 個可用);
/31 位 255.255.255.254(從未真正使用過,因為沒有免費的地址。)
/32 位 255.255.255.255(通常僅用於描述主機,而不是網路。)