You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

子网范围包含的IP解析及CIDR匹配异常问题咨询

咱们一步步来拆解你的两个问题:

1. 子网“范围”中包含哪些IP地址?

子网的范围由三类地址组成,具体取决于你的子网掩码(CIDR前缀):

  • 网络地址:子网的“身份证”起始地址,通过IP和子网掩码按位与计算得出,这个地址不能分配给任何主机,只用来标识子网本身。
  • 可用主机地址:夹在网络地址和广播地址之间的所有IP,是真正能分配给服务器、路由器、手机等设备使用的地址。
  • 广播地址:子网的最后一个地址,用来给子网内所有主机发广播消息,同样不能分配给主机。

不过有两个特殊情况要注意:

  • 对于IPv4的/31前缀(掩码255.255.255.254),根据RFC 3021,它可以用于点对点链路,此时没有网络地址和广播地址,两个IP都能当主机地址用。
  • /32前缀就更特殊了,只有一个IP地址,一般用于主机路由,直接指向单一设备。
2. 为什么12.245.105.190与12.245.105.190/30匹配时显示“NOT IN SUBNET”?

这问题的核心是你可能忽略了CIDR表示的本质,再加上工具可能有逻辑误区,我给你算清楚:

首先先算出12.245.105.190/30对应的子网范围:

  • /30的子网掩码是255.255.255.252,每个子网刚好4个IP(因为2^(32-30)=4)。
  • 计算网络地址:把12.245.105.190和掩码255.255.255.252做按位与运算,得到12.245.105.188(简单说就是190除以4取整乘4,190÷4=47.5,取整47×4=188)。
  • 所以这个子网的完整IP列表是:12.245.105.188(网络地址)、12.245.105.189(可用主机)、12.245.105.190(可用主机)、12.245.105.191(广播地址)。

那工具为啥显示“NOT IN SUBNET”?最可能的原因是:

  • 你用的工具错误地把CIDR里的IP(12.245.105.190)当成了子网的网络地址,而不是理解成“包含这个IP的子网”。
  • 工具的判断逻辑大概是:先算出输入IP的网络地址(188),然后和CIDR里的IP(190)直接对比,因为两者不一样,就返回“NOT IN SUBNET”。
  • 但实际上,12.245.105.190确实属于12.245.105.190/30指向的子网(也就是网络地址为188的那个/30子网)。

当然也不排除工具把“允许范围”设置成了仅包含可用主机地址,但190本身就是可用主机,所以这种情况概率很低。更大概率是工具的CIDR解析逻辑有问题,没把CIDR里的IP转换成正确的网络地址再做匹配。

内容的提问来源于stack exchange,提问作者Isaac Lubow

火山引擎 最新活动