将外部可访问的 IPv6 范围提升为 VPC 子网内的静态命令是什么?
我的虚拟机可以在 64 位宽 IPv6 范围内访问,位于 96 位 IPv6 子网内。但是我担心这些可能会在没有警告的情况下发生变化...这个命令看起来应该可以工作:
gcloud compute addresses create myvm-6 --addresses "2600:abcd:abcd:abcd:0:0:0:0" --region us-west2 --subnet neo-ipv6
ERROR: (gcloud.compute.addresses.create) Could not fetch resource:
- Invalid value for field 'resource.address': '2600:abcd:abcd:abcd:0:0:0:0'. Requested IP is not within the range of subnetwork 'neo-ipv6'.
答案1
答案2
如果虚拟机实例 (VM) 所连接的子网已启用外部 IPv6 地址,则可以在虚拟机实例 (VM) 上配置外部 IPv6 地址。某些地区支持在子网上启用外部 IPv6 地址。
创建虚拟机并启用 IPv6
仅当您要连接的子网启用了外部 IPv6 地址时,您才可以创建具有外部 IPv6 地址的虚拟机。
gcloud compute instances create INSTANCE_NAME \
--ipv6-network-tier=PREMIUM \
--subnet=SUBNET_NAME \
--stack-type=IPV4_IPV6 \
--zone=ZONE
替换以下内容:
实例名称:实例的名称。
子网名称:实例要连接到的子网。子网必须启用 IPv6。
区:部署实例的区域。
推广临时外部 IP 地址
如果您的实例具有临时外部 IP 地址,并且您想要将该 IP 永久分配给您的项目,请将临时外部 IP 地址提升为静态外部 IP 地址。将临时外部 IP 地址提升为保留不会导致 Google Cloud 丢弃发送到实例的数据包。这包括直接发送到实例或通过负载平衡器发送到实例的数据包。
要将临时外部 IP 地址升级为静态外部 IP 地址,请使用--addresses
命令中的标志提供临时外部 IP 地址compute addresses create
。使用region
标志升级临时区域 IP 地址或使用global
标志升级临时全局 IP 地址。
gcloud compute addresses create ADDRESS_NAME --addresses=IP_ADDRESS \
[--region=REGION | --global]
替换以下内容:
地址名称:您要为该地址起的名字
IP地址:您要推广的 IP 地址
地区:区域 IP 地址所属区域
--ip-version=IP_VERSION
待分配和保留的IP地址的版本。默认为 IPV4。
IP 版本只能为自动生成的全局地址指定(即,与标志一起--global
,--addresses
未指定给定的)并且如果--network-tier
是PREMIUM
。
IP 版本必须是以下之一:IPV4、IPV6。
查看参考资料以了解更多信息:
保留静态外部 IP 地址
为实例和实例模板配置 IPv6
gcloud 计算地址创建
答案3
更新:无法将全局 IP 地址分配给实例...它们只能分配给“全局负载均衡器”的简短列表。截至 2021 年 12 月,当前 API 不支持区域静态 IPv6 地址。
最好的办法是分配静态 IPv4 地址并依赖 6to4 隧道。或者,您可以使用 DynDNS 服务或 Cloud DNS 权限根据需要手动更新地址。
计算器:https://www.vultr.com/resources/ipv4-converter/
当前 API 不允许提升 IPv6 地址。因此,您需要为实例启用 IPv6 堆栈,创建一个新的区域 IPv6 静态 IP,并通过删除整个 accessConfig 并在 nic0 上创建一个新的 IPv6 来将其分配给实例。只有 nic0 支持 IPv6,因此您可能需要另一个 nic 来获取静态 IPv4 地址。
# 0. create a new nic for your IPv4, this can have an IPv4 only subnet
# 1. delete the access config for nic0
# 2. Create global static regional IPv6
gcloud compute addresses create myip-2021 --ip-version=IPV6 --region=us-west2
# 2.1: That command will result in the following error:
ERROR: (gcloud.compute.addresses.create) Could not fetch resource:
- IP Version is not supported for regional addresses.
# 3. Cry as you can't do the following
gcloud compute addresses list # This will list the new IPv6 address
gcloud beta compute instances add-access-config myinstancename --address="2001:abcd:0123::"