GCP外部NAT自动更换IP后如何保留原IP?
我们有一台使用外部NAT的GCP路由器,该NAT配置为使用自动“Cloud Nat IP addresses”。两天前,未进行任何操作的情况下,IP发生了变更。执行命令gcloud compute routers get-nat-ip-info testing-router返回两个IP:
result: - natIpInfoMappings: - mode: AUTO natIp: YYYYY usage: IN_USE - mode: AUTO natIp: XXXXX usage: IN_USE natName: external-nat
尝试在GCP控制台编辑,将自动模式改为使用原IP时,收到错误提示:
Invalid value for field 'resource.nats[0].natIps[0]': 'projects/XXXX/addresses/nat-auto-ip-XXXX'. NAT_AUTO addresses cannot be used with MANUAL_ONLY mode. Reserve a static address instead.
由于必须保留原IP,重新创建并非可行选项,请问有什么解决办法?
将自动NAT IP转为静态保留地址
自动分配的NAT IP无法直接用于手动模式,但可以通过命令将其转为静态IP。执行以下命令(替换占位符为你的实际信息):gcloud compute addresses create static-nat-ip-xx --addresses=XXXXX --region=你的区域 gcloud compute addresses create static-nat-ip-yy --addresses=YYYYY --region=你的区域其中
XXXXX和YYYYY是需要保留的原自动NAT IP,执行后这些IP会被转为静态资源。更新NAT配置为手动模式并绑定静态IP
静态IP创建完成后,使用命令修改路由器的NAT配置:gcloud compute routers nats update external-nat \ --router=testing-router \ --region=你的区域 \ --nat-ips=static-nat-ip-xx,static-nat-ip-yy \ --auto-allocate-nat-external-ip=False这条命令会将NAT模式切换为手动,同时绑定刚才创建的静态IP,确保原IP不会再自动变更。
验证配置结果
再次执行命令确认IP状态:gcloud compute routers get-nat-ip-info testing-router此时返回的IP模式应显示为
MANUAL,且usage保持IN_USE。
内容的提问来源于stack exchange,提问作者inet123

