理解AWS上的IPv6地址及设计可扩展的地址规划
在本文中,我们解释了AWS上的IPv6地址类型,并回顾了使用每种类型在AWS上设计可扩展的IPv6地址规划的用例和最佳实践。我们还展示了在为您的工作负载在AWS上选择地址类型时需要考虑的关键因素。
越来越多的组织开始在其环境中采用IPv6,这主要是由于政府法规的要求、公共IPv4地址的耗尽以及私有IPv4地址的稀缺。为了应对工作负载增长、满足新业务需求(例如并购)、扩展到其他地区以及提高开发者的生产力,您需要设计和实施一个可扩展、灵活且面向未来的IPv6地址规划。在本文中,我们将解释Amazon Web Services (AWS) 上可用的IPv6地址类型,并回顾如何使用它们设计可扩展的IPv6地址规划的最佳实践和用例。
前提条件
我们假设您已经熟悉Amazon Virtual Private Cloud (VPC) 的构造、IPv4和IPv6功能,以及VPC常见服务的配置选项,并且了解Amazon VPC IP Address Manager (VPC IPAM)。您还应了解IPv6协议定义、地址类型和配置机制。我们不会深入探讨IPv6协议的结构,但会回顾适用于AWS上的IPv6地址类型的地址规划最佳实践。
IPv6地址的主要类型包括单播、多播和任播。单播IPv6地址标识网络上的单个接口。在IPv6中,单播地址分为三类:链路本地、唯一本地和全球单播地址。链路本地地址仅在第2层网络中有效,不能路由到路由器接口之外。唯一本地地址保留用于未连接互联网的本地网络使用。全球单播地址用于互联网通信,并具有全球唯一性。在本文中,我们不会专注于多播或任播IPv6地址。我们建议您深入研究IPv6地址以更好地理解该协议。
理解AWS上的IPv6地址
在AWS上,您现在可以在Amazon VPC中配置全球单播IPv6地址(GUA)和唯一本地IPv6地址(ULA)。Amazon VPC是您在AWS上创建的隔离逻辑网络,您可以在其中部署资源,并且VPC的私有、隔离的安全性不会因IPv6地址的使用而改变。
AWS将公共IP地址定义为从AWS公布到互联网的那些,而私有IP地址则不会且无法从AWS公布到互联网。您可以选择将多个IPv6前缀与您的VPC关联,既可以是私有的,也可以是公共的。例如,您可以仅将私有地址、仅公共地址或同时将私有和公共IPv6地址与您的VPC关联。
在AWS上,私有IPv6地址可以包括用于本地通信的ULA和根据协议定义为全球可路由的私有GUA。ULA和私有GUA不会且无法从AWS公布到互联网。这种行为类似于AWS如何管理IPv4私有子网。例如,您可以将公共IPv4前缀配置为VPC CIDR,从而使其成为私有CIDR,这些地址永远不会被公布到互联网。类似地,您可以将GUA IPv6配置为VPC中的私有前缀,这些地址不会且永远不会被公布到互联网。有关AWS IP地址类型的更多详细信息,请参阅Amazon VPC的文档。AWS上提供以下IPv6地址类型:
AWS提供的IPv6前缀
AWS提供的IPv6前缀是公共的、全球唯一的,并从互联网注册机构分配的Amazon地址池中分配。AWS提供的IPv6地址始终会从AWS公布到互联网,您无法控制或更改其公布状态。您可以在新VPC或现有VPC上直接配置随机分配的IPv6 GUA前缀,或者您可以接收一个AWS提供的连续IPv6 CIDR块。如果您在一个AWS区域内有多个VPC,我们建议使用连续的Amazon分配的IPv6 GUA地址,以便进行汇总,并优化安全组、网络访问控制列表(NACL)、防火墙规则和路由表中的条目。
自带IPv6前缀(BYOIPv6)
自带IPv6(BYOIPv6)允许您将自己的IPv6地址空间导入AWS。使用BYOIPv6,您可以控制前缀的公布状态。您可以将BYOIPv6池配置为公共可公布的或非公共可公布的。根据池的配置设置:
- 在公共可公布池中配置的BYOIPv6前缀必须为/48或更大,并且必须经过RDAP(注册数据访问协议)和ROA(路由起源授权)流程,即使您在配置时不打算公布它们。AWS将这些BYOIPv6前缀视为公共的,无论它们当前的公布状态如何(已公布或已撤回)。
- 在非公共可公布池中配置的BYOIPv6前缀必须为/60或更大,并且它们不需要ROA,但需要经过RDAP流程。AWS将这些BYOIPv6前缀视为私有的,因此它们在配置后无法被公布到互联网。
私有IPv6 GUA
在AWS上,您可以将IPv6 GUA用作私有IPv6地址,这些地址不会且永远不会被公布到互联网。您可以配置私有IPv6 GUA,而无需经过RDAP和ROA流程。您必须仅使用由区域互联网注册机构(RIR)分配给您的IPv6 GUA地址作为私有GUA,以避免您的IPv6地址与互联网上的其他端点或其他AWS用户发生冲突。使用私有GUA时,请注意私有IPv6 GUA前缀无法在以后变为公共。如果在AWS上直接连接互联网成为要求,您必须使用公共IPv6地址重新创建VPC,或使用地址转换机制。
IPv6 ULA
IPv6 ULA地址在RFC 4193中定义。RFC定义了fd00::/8作为本地分配的ULA地址空间,这些地址无法公布到互联网,因此是私有的。AWS提供的ULA前缀默认情况下为/48。如果您需要特定的ULA前缀,则可以直接将其配置到您的Amazon VPC IPAM池中。在使用ULAs时,我们建议您在双栈环境中考虑协议选择优先级。目前,按照RFC 6724,优先选择IPv4地址而不是ULAs。为了避免潜在的地址重叠,我们建议您在整个组织中设计一个可扩展的全球地址规划。
在AWS上识别和管理IPv6地址
为了帮助您识别与您的VPC相关的IPv6地址的公布状态,AWS引入了VPC IPv6 CIDR的新属性。在下表中,我们回顾了根据您在AWS上使用的IPv6地址类型生成的Amazon VPCs和子网的相关描述调用输出:
AWS IPv6地址类型 | 互联网公布状态 | AWS公共/私有 | “describe-vpcs”和“describe-subnets”输出 |
---|---|---|---|
AWS提供的IPv6地址 | 始终公布到互联网 | 公共 | Ipv6AddressAttribute = ‘Public’ |
在不可公布池中的BYOIPv6 GUA前缀 | 不公布,永远不会公布到互联网 | 私有 | Ipv6AddressAttribute = ‘Private’ |
在可公布池中的BYOIPv6 GUA前缀 | 您控制公布状态 | 公共 | 对于已公布前缀:Ipv6AddressAttribute = ‘Public’ 对于已撤回前缀:Ipv6AddressAttribute = ‘Public’ |
私有IPv6 GUA前缀 | 不公布,永远不会公布到互联网 | 私有 | Ipv6AddressAttribute = ‘Private’ |
IPv6 ULA前缀 | 不公布,永远不会公布到互联网 | 私有 | Ipv6AddressAttribute = ‘Private’ |
表1:AWS IPv6地址类型的“describe-vpcs”输出
在AWS上管理IPv6地址
所有IPv6地址类型都可以使用Amazon VPC IPAM或Amazon Elastic Compute Cloud (EC2)进行管理。您可以将IPv6地址导入AWS中的单个账户和AWS区域。如果选择Amazon VPC IPAM,则管理范围和确保IPv6地址分配不重叠的范围为AWS区域和特定账户(适用于免费层)或多账户多区域(适用于高级层Amazon VPC IPAM)。有关Amazon VPC IPAM层的更多详细信息,请查看Amazon VPC IPAM定价文档。在AWS上,私有IPv6地址、私有GUA和ULA在Amazon VPC IPAM的私有范围内管理,而公共IPv6地址则属于Amazon VPC IPAM的公共范围。有关使用Amazon VPC IPAM管理私有IPv6地址的更多详细信息,请查看文档。BYOIPv6地址在Amazon VPC IPAM中始终属于公共范围,无论池配置或前缀的公布状态如何。有关Amazon VPC IPAM BYOIP流程的更多详细信息,请查看Amazon VPC IPAM BYOIP教程和分步文章。
IPv6地址规划的最佳实践和考虑因素
在以下部分中,我们详细说明了在AWS上构建地址规划时的一些关键考虑因素:
- 创建一个可扩展且高效的IPv6地址规划是组织采用IPv6的最重要的初始任务之一。IPv6地址空间总共包含2^128个IPv6地址。因此,可扩展性和汇总是重要的。
- 我们强调的是IPv6地址规划的最佳实践,以及如何利用最新版本互联网协议的规模和简洁性,而不是简单地复制IPv4地址规划。虽然在IPv6中复制IPv4地址方案可能是分配IPv6地址的最直接方式,但IPv6地址空间的几乎无限规模允许您不再受IPv4地址稀缺的限制,从而进行更优化的规划。
- Amazon VPCs不需要互联网网关(IGW)或仅出站互联网网关(EIGW)即可使用IPv6地址。Amazon VPC默认是一个边界分明的安全网络,允许您在隔离环境中部署工作负载,添加IPv6地址不会改变VPC的私有安全姿态。
- 您可以选择是否将IGW或EIGW与您的VPC关联。然而,只有那些在您的VPC中使用公布的IPv6地址的资源才能使用关联的IGW或EIGW,而无需地址转换。如果您选择使用ULA、私有GUA或撤回的BYOIPv6地址,则无法直接使用与VPC关联的IGW或EIGW。
在AWS上选择IPv6地址类型时,请考虑每种地址类型的定义,以及互联网连接、安全性、操作和监控的要求。以下是构建地址规划时的检查清单:
IPv6地址分配:AWS提供的IPv6 GUA地址由互联网注册机构分配给AWS,您可以在您的VPCs中使用它们。BYOIPv6地址由互联网注册机构分配给您,您可以选择如何以及在哪里使用它们。根据您的企业需求、法规或工作负载类型,您可能需要使用分配给您的IPv6地址来应对面向互联网的工作负载。这也允许您使用独立于提供商的地址来管理您的企业全球IPv6分配。
控制互联网公布状态:使用BYOIPv6,您可以控制IPv6前缀的公布状态,根据需要将每个前缀标记为公布或撤回。AWS提供的IPv6 GUA前缀始终公布到互联网,您无法控制其公布状态。由IPv6 ULA和私有GUA表示的私有IPv6地址永远不会公布到互联网。
使用私有IPv6地址:在AWS上,私有IPv6地址包括IPv6 ULA和私有GUA,它们无法公布到互联网。您可以在AWS上为不需要互联网连接的资源使用私有IPv6地址,无论是现在还是将来。您还可以通过使用撤回的BYOIPv6 GUA来实现相同的功能。这使您能够灵活地在将来的任何时间公布IPv6前缀,如果您的网络连接设计或需求发生变化。为防止配置错误或无意中公布撤回的前缀,我们建议在您的组织中配置护栏和授权机制来限制可以修改BYOIPv6前缀公布状态的主体和角色。
主机IP地址选择:大多数操作系统遵循RFC 6724进行IP地址选择。您可以在您的Amazon VPCs中使用不同IPv6地址类型的组合。例如,您可以将VPC配置为同时使用IPv6 ULA和GUA前缀,或广告的IPv6 GUA和撤回的IPv6 GUA前缀。根据您的工作负载配置,您可以在实例上配置多种IPv6地址类型。在使用多个IPv6地址范围时,我们建议您仔细考虑选择哪个地址用于通信。
分层汇总:在IPv6中,汇总有助于减少VPC、AWS Transit Gateway、AWS Cloud WAN和AWS Direct Connect的IPv6路由表的大小。这使它们易于管理并在AWS配额范围内。汇总还简化了安全组、NACLs和防火墙规则的配置。保持全球汇总边界是使用BYOIPv6地址时需要考虑的因素。如果您有多个IPv6前缀,由不同的互联网注册机构(如ARIN、APNIC、RIPE、AFRNIC)分配,那么您可以继续通过在多个池中配置BYOIPv6来维护区域分配。例如,您可以为每个地理区域配置一个顶级Amazon VPC IPAM池,在每个池中分配适当的IPv6块,并使用区域IPv6前缀为VPC分配地址,从而保持互联网层次结构。相反,如果您有一个由互联网注册机构分配的单一前缀,您可以在全球AWS上使用它,并在任何AWS区域为VPC分配地址。
区域、账户和VPC IPv6前缀边界:互联网公布的IPv6前缀的最小大小为/48。前缀比/48更具体的无法在互联网上公布。例如,如果您使用BYOIPv6并希望在配置时或以后从AWS公布前缀,您需要确保每个AWS区域的前缀大小至少为/48。在Amazon VPCs上配置的IPv6前缀默认情况下为/56,范围在/44和/60之间,而子网前缀默认情况下为/64,范围在/60和/64之间。
IPv6采用策略:您的IPv6采用策略可能在选择不同类型的IPv6地址时发挥重要作用,因为它还驱动互联网连接模式。外向内IPv6采用涉及为部署在AWS上的应用程序创建面向互联网的IPv6端点。您可以使用AWS分配的IPv6 GUA,或公布的BYOIPv6 GUA来应对面向互联网的资源。这些地址从AWS公布到互联网,因此被认为是公共的。您的资源可以使用AWS IGW和EIGW进行互联网连接。如果您的意图是通过内部网络确保VPC的互联网连接,您可以使用撤回的BYOIPv6 GUA或私有GUA,并通过内部网络连接公布前缀。使用撤回的BYOIPv6 GUA而不是私有GUA可以让您在将来灵活地从AWS公布前缀,如果您的网络需求发生变化。内向外IPv6采用涉及内部使用IPv6以超越IPv4空间提供的能力。您可以使用撤回的BYOIPv6 GUA或私有IPv6来应对内部工作负载,如果您的连接需求发生变化,您可以在将来公布BYOIPv6 GUA前缀。对于使用私有IPv6地址的资源,您可以重新创建它们,使用公共GUA或使用地址转换机制进行互联网连接。
流量检查模式:根据您的当前部署策略和未来计划,您可以使用分布式互联网访问和流量检查模式,其中VPCs具有关联的IGW和EIGW,并且流量通过本地防火墙端点路由。您还可以使用集中模式、两者的组合,甚至是内部网络访问模式。您还可以在VPC中结合公共IPv6前缀(AWS提供的、公布的BYOIPv6)和私有IPv6前缀(ULA、私有IPv6 GUA)。分别考虑互联网入站和出站连接以及检查模式可以帮助您定义每种情况下的IPv6地址需求。安全检查模式和架构通常与您的互联网连接模式相匹配,您可以使用集中和分布式检查模式,使用所有类型的IPv6地址来满足安全要求。
安全要求:ULA和私有GUA IPv6不出现在互联网IPv6路由表上,因此使用这些地址的主机无法直接与公共端点通信。对于使用公共IPv6地址的资源,您可以实施广泛的安全控制,以确保隐私并限制互联网连接。向您的VPCs添加IPv6地址不需要将IGW/EIGW关联到VPC,并且控制哪些VPC可以关联这些网关可以让您限制互联网连接。此外,通过实施治理机制,限制谁可以修改路由表以及何时可以限制VPC中的IPv6路由配置。安全组和NACL配置适用于IPv4和IPv6,您可以使用它们来一致地限制资源和子网的流量。最后,服务如AWS WAF、AWS Shield Advanced、Amazon GuardDuty和Network Access Analyzer支持威胁检测、流量过滤和IPv4和IPv6资源的持续合规性。
面向未来:IPv6在互联网和内部网络上的采用正在增加,因此连接模式随着新的需求和用例而发展和变化。确保您的IPv6地址规划是面向未来的,并避免一刀切的决策,以确保将来的灵活性。
总结
- AWS将从AWS公布到互联网的IP地址视为公共IP地址,而私有IP地址不会且无法从AWS公布到互联网。
- 要在AWS上实现可扩展、面向未来的IPv6地址规划,您可以使用AWS提供的连续IPv6地址。
- 您可以在VPCs中使用不同的IPv6地址类型组合,以区分在AWS上可以和不能进行互联网访问的资源。例如,您可以将以下内容与您的VPC关联:
- 从公布的BYOIPv6块中的公共IPv6前缀用于面向互联网的工作负载,并从撤回的BYOIPv6块中的公共IPv6前缀用于目前不需要在AWS上进行互联网访问的资源,或者
- 从AWS分配的连续块中的公共IPv6前缀用于面向互联网的工作负载,并使用私有IPv6前缀(ULA或私有GUA)用于不需要互联网访问的资源。
- 如果您希望使用自己的IPv6地址,我们建议在每个AWS区域使用/48或更大的前缀。这样当您的需求或架构发生变化时,您可以灵活的公布它们。
- 您可以使用不同IPv6前缀为EC2实例进行双宿主配置。然而,此配置需要在主机级别进行路由管理的额外考虑。
- 您只能在AWS上将IGW和EIGW与公共IPv6地址一起使用。
结论
在本文中,我们解释了AWS上的IPv6地址类型,并回顾了使用每种类型在AWS上设计可扩展的IPv6地址规划的用例和最佳实践。我们还展示了在为您的工作负载在AWS上选择地址类型时需要考虑的关键因素。如果您对本文有任何问题,请在AWS re:Post上发起新主题,或联系AWS支持。
本文翻译自:Understanding IPv6 addressing on AWS and designing a scalable addressing plan
相关内容
- 已提问 2 个月前lg...
- AWS 官方已更新 5 个月前
- AWS 官方已更新 2 年前