我正在测试通过 OpenVPN 创建仅公共 IPv4 空间的强制默认路由。OpenVPN 不支持
‘iroute 0.0.0.0 0.0.0.0’开箱即用,因为它包含拒绝它的代码。但是,如果您删除该代码并让 iroute 0.0.0.0 工作,那么从逻辑上讲,连接会在一段时间后超时,因为 OpenVPN 会感到困惑。
我发现 iroute 的最小范围是 /4。因此,如果你想将所有 IPv4 空间划分为 /4 块,最终会得到 16 个块,范围从 0.0.0.0 到 255.255.255.255。但这包含所有可路由的和不可路由的 IP......因此需要进一步限定列表。
由于设置不通用,我无法使用重定向网关。这就是为什么我正在寻找一个尽可能短的现有公共 IP 范围的子网列表。该列表必须排除保留的范围(以及我自己的服务器的公共 IP/32)。基本上,我希望有一个与以下列表相反的列表RFC 5735(第 6 页)
是否存在这样的列表以及/或者如何生成?
答案1
你为什么要使用iroute
?我只需在 OpenVPN 服务器配置中“推送“route 0.0.0.0 0.0.0.0””即可,效果很好(好吧,我需要调整来自 DHCP 的默认路由,但这很简单)。
答案2
更新,我决定编写一个程序来解决反转 cidr 块列表的问题。您可以从这里获取它。https://github.com/plugwash/cidrinverse
在 rfc 5735 的块列表上运行该程序会给出 111 个 cidr 块的列表。我不会在这里粘贴完整列表,但如果您愿意,您可以轻松地自己重新运行该程序。
注意:自该文件发布以来,已经有一些额外的特殊注册,也有一些“特殊”范围是在公共互联网上使用,例如 192.88.99.0/24)
但无论如何,假设我们想要找到 rfc 5735 不认为特殊的所有空间的 cidr 掩码列表。
rfc 5735 中的列表已经排序,因此我们可以轻松地浏览列表并写下中间的 IP 范围。
- 1.0.0.0 至 9.255.255.255
- 11.0.0.0 到 126.255.255.255
- 128.0.0.0 至 169.253.255.255
- 169.255.0.0 至 172.15.255.255
- 172.32.0.0 至 191.255.255.255
- 192.0.1.0 至 192.0.1.255
- 192.0.3.0 至 192.88.98.255
- 192.88.100.0 至 192.167.255.255
- 192.169.0.0 至 198.17.255.255
- 198.20.0.0 至 198.51.99.255
- 198.51.101.0 至 203.0.112.255
- 203.0.113.0 至 223.255.255.255
我们可以使用“netmask”命令行工具将这些范围中的每一个转换为 CIDR 掩码列表,如除 RFC1918 之外的所有内容的 CIDR 范围
netmask -c 1.0.0.0:9.255.255.255
我还没有处理完整的列表,但通过尝试几个范围,我猜测它大约有 60 个条目。
答案3
那个问题中的bug:
https://community.openvpn.net/openvpn/ticket/726
为了临时解决问题,我使用了 ccd 内容: https://community.openvpn.net/openvpn/attachment/ticket/726/ccd_tmp_fixed_content