使用 /31 IP 地址空间进行云服务提供商 Peering
我可以使用 31 位子网掩码地址与云服务提供商建立 BGP Peering 会话吗?
答案取决于两个因素:
-
您的本地设备是否支持使用 31 位子网掩码的配置。
-
云服务提供商是否支持使用 31 位子网掩码的配置。
本地设备支持情况
大多数常见的网络设备操作系统都支持使用 31 位子网掩码,不过某些较旧版本会显示类似以下的警告,例如:
```% Warning: use /31 mask on non point-to-point interface cautiously```
云服务提供商支持情况
大多数云服务提供商支持使用 31 位子网掩码,包括 AWS、Oracle、Alibaba 和 IBM。以下是各 CSP 提供的详细信息:
-
Oracle Cloud Infrastructure FastConnect
快速参考:“对于私有虚拟电路,您可以选择指定 /30 或 /31 网络,这些 IP 地址会在开通过程中分配给虚拟电路。该 IP 地址用于建立 BGP Peering。对于公共虚拟电路,Oracle Cloud Infrastructure 会选择 BGP IP 地址。”
资源:https://www.oracle.com/cloud/networking/fastconnect-faq.html
-
IBM Direct Link
快速参考:“IBM Cloud 的工作人员会为每个连接分配 /31 或 /30,并在 IBM Cloud 交叉连接路由器 (XCR) 基础架构上配置接口 IP 地址。”
-
AWS Direct Connect
快速参考:“对于私有 IPv4 VIF,Amazon 将为您提供一个 /31 CIDR。 注意:您可以为公共 IPv4 VIF 使用 /31 公共 CIDR。”
-
Alibaba Cloud Express Connect
您可以使用 /30 或 /31 子网掩码。
-
Microsoft Azure ExpressRoute
不支持(也无计划支持)31 位子网掩码。
-
Google Partner Interconnect
目前不支持使用 31 位子网掩码。掩码固定,IP 地址从 169.254.0.0/16 地址池中分配。
-
Megaport Cloud Router
在连接到客户设备的 VXC 上支持使用 31 位子网掩码;对于面向 CSP 的 VXC,当该 CSP 支持此掩码长度时也同样支持。
背景
2000 年 12 月,互联网工程任务组 (IETF) 发布了 RFC 3021,用于在 IPv4 点到点链路上使用 31 位前缀。该 RFC 研究了对标准的更改,通过允许使用 31 位子网掩码来节约 IP 地址空间,并减少分配给点到点链路的 IP 地址数量。
当时的常见做法是使用 30 位子网掩码,这要求每条点到点链路使用四个地址:一个网络地址、两个主机地址和一个广播地址。
在点到点链路中,只可能有两个可识别的主机,且任意一端传输的报文都会被另一端接收,在这种情况下使用定义四个地址的掩码在某些场景下可被视为浪费。这就是制定 RFC 3021 的原因。使用 31 位子网掩码时,只存在两个可能的地址:一个网络地址和一个广播地址,但在点到点链路中,这两个地址必须被解释为主机地址。
目前,当企业与云服务提供商创建连接时,标准做法是使用 30 位子网掩码与该提供商设置 BGP Peering。因此,鉴于 IP 仍然短缺,且许多组织没有足够的 IP 地址空间,组织希望使用 31 位子网掩码地址来与云服务提供商建立 BGP Peering 会话。