Esa*_*nen 41
匹配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
,它是 \xe2\x80\x93 ,就像任何 IP 地址 \xe2\x80\x93 的一部分一样0.0.0.0/0
。
因此,通过将 分成0.0.0.0/0
更小的块,可以限制接口优先于具有默认路由的任何其他接口0.0.0.0/0
,而无需使用度量值。这是 VPN 的常用技术,不希望数据绕过隧道。/24
同样的逻辑是,如果没有使用其他方法强制所有内容都通过隧道传输,那么当 VPN 位于 \xe2\x80\x93 上时,您仍然可以使用本地子网(例如 )中的资源。
同样,整个 IPv4 地址空间可以分为更小的子网,例如四个块:
\n0.0.0.0/2
( 0.0.0.0-63.255.255.255
)64.0.0.0/2
( 64.0.0.0-127.255.255.255
)128.0.0.0/2
( 128.0.0.0-191.255.255.255
)192.0.0.0/2
( 192.0.0.0-255.255.255.255
)或者八个带有0.0.0.0/3
, 32.0.0.0/3
, 64.0.0.0/3
, 96.0.0.0/3
, 128.0.0.0/3
, 160.0.0.0/3
, 192.0.0.0/3
&224.0.0.0/3
等等。
Pet*_*een 10
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 的“重定向网关”功能有一个名为“def1”的选项。启用此选项后,它将为 0.0.0.0/1 和 128.0.0.0/1 创建路由,而不是为 0.0.0.0/0 创建单个路由。由于“最长前缀匹配”规则,这些路由将优先于 0.0.0.0/0 的现有路由,因此无需删除现有的默认路由。