0.0.0.0/0 和 0.0.0.0/1 有什么区别?

0.0.0.0/0 和 0.0.0.0/1 有什么区别?

历史上,我最常用的0.0.0.0/0是“匹配每个 IP 地址”。最近,我看到了一个0.0.0.0/1子网过滤器。

0.0.0.0/0和有什么区别?0.0.0.0/1有什么实际用途0.0.0.0/1

答案1

匹配0.0.0.0/0每个 IP 地址,而0.0.0.0/1仅匹配其中的一半 ( 0.0.0.0-127.255.255.255) 并且需要128.0.0.0/1与其配对才能匹配其余部分 ( 128.0.0.0-255.255.255.255)。

在基本路由中,包含 IP 地址的最小可用子网优先.这条规则来自RFC 4632, 5.1。通常情况下,会有重叠网络,例如,192.168.1.0/24是 的一部分192.168.0.0/16,而 就像任何 IP 地址一样, 也是 的一部分0.0.0.0/0

因此,通过将 拆分0.0.0.0/0成更小的块,可以限制接口优先于具有默认路由的任何其他接口0.0.0.0/0,而无需使用度量值。这是不希望数据绕过隧道的 VPN 的常用技术。同样的逻辑也是您/24在 VPN 开启时仍可以使用本地子网(例如)资源的原因——如果没有其他方法强制执行,则所有内容都会通过隧道传输。

同样地,整个 IPv4 地址空间可以划分为更小的子网,例如分为四个块:

  • 0.0.0.0/20.0.0.0-63.255.255.255
  • 64.0.0.0/264.0.0.0-127.255.255.255
  • 128.0.0.0/2128.0.0.0-191.255.255.255
  • 192.0.0.0/2192.0.0.0-255.255.255.255

或者八个,带有、 、0.0.0.0/332.0.0.0/3、、&等,等等。64.0.0.0/396.0.0.0/3128.0.0.0/3160.0.0.0/3192.0.0.0/3224.0.0.0/3

答案2

0.0.0.0/0 和 0.0.0.0/1 之间有什么区别

0.0.0.0/0 匹配所有 IPv4 地址。

0.0.0.0/1 匹配从 0.0.0.0 到 127.255.255.255 的 IP 范围

IP 路由使用“最长前缀匹配”规则,因此如果路由表中同时存在 0.0.0.0/0 和 0.0.0.0/1 的路由,并且都与目的地匹配,那么将优先使用 0.0.0.0/1 的路由。

0.0.0.0/1 有什么实际用途?

Openvpn 使用它作为一种技巧来覆盖默认路由,而无需修改或删除现有路由。如果其他 VPN 软件也这样做,我也不会感到惊讶,但我还没有看到过。

在 VPN 连接时删除现有的默认路由,在 VPN 断开连接时重新添加,可能会与其他网络控制或管理软件产生竞争条件。如果 VPN 客户端崩溃,也可能会导致系统无法访问网络。

可以使用较低的度量来覆盖路由,但是,如果现有路由已经具有最低可能的度量,则此方法不起作用。

因此,openvpn 的“redirect-gateway”功能有一个名为“def1”的选项。启用此选项后,它将为 0.0.0.0/1 和 128.0.0.0/1 创建路由,而不是为 0.0.0.0/0 创建单个路由。由于“最长前缀匹配”规则,这些路由将优先于 0.0.0.0/0 的现有路由,因此无需删除现有的默认路由。

答案3

字面意思:这只是用 CIDR 符号表示的两个不同网络

实际用途0.0.0.0/1:按第一位划分 IPv4 空间目前不会产生特别有意义的子网,除了历史教训

它恰好是可能的最小分割。因此,拼写出两个半部分是表达“所有 IPv4”的最短方法,其中0/0不是有效输入。脚本不允许我配置未设计的网络拓扑,因此我使用了0/1一个解决方法(在路由上下文、前缀长度决定偏好)。

除了拼写错误,这是我唯一一次遇到这种情况。

相关内容