错误:需要任何有效的前缀,而不是“172.31.1.102/255.255.255.8”

错误:需要任何有效的前缀,而不是“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 应该可以到达。

答案1

停止。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(通常仅用于描述主机,而不是网络。)

相关内容