任何人都可以通过google云转发提供有关如何向我的实例添加其他IP的教程吗?
目前的文档太复杂,没有帮助。它没有说明应该执行命令的位置以及指令太模糊。
我一直在尝试设置一个新实例,但我无法理解如何设置将此实例上的所有流量转发到其他实例。如果有人能够阐明这个话题,我将非常感激。
谢谢。答案 0 :(得分:5)
我不同地理解你的问题(与其他答案相比)。我知道你需要第二个公共IP指向已经拥有自己的公共IP的实例。如果是这种情况,请按照以下步骤操作:
让我们从SDK开始,因为你提到:
它没有说明应该执行命令的位置 指令太模糊了
一旦有downloaded and installed Google Cloud SDK,命令就会在您的终端中执行。在Linux / OS X中它将是:
curl https://sdk.cloud.google.com | bash
在该链接中有一个包含更多信息的3步指南。
发出命令:
gcloud compute instances list
获取您的实例及其所属区域的列表。记下您需要使用的实例的NAME和ZONE。请注意以下命令中所需的REGION是ZONE字段的第一部分。 (例如:ZONE:us-central1-f,然后REGION是us-central1)
Create a static public IP接收您要转发的流量:
gcloud compute addresses create NAME
gcloud compute addresses create targ-ip-1
再次选择NAME。它将提示输入区域(选择与您的实例相同的区域)。这个命令将返回一个IP,让我们说:W .X.Y.Z
然后您需要create a target-instance:
gcloud compute target-instances create NAME --instance INSTANCE
gcloud compute target-instances create targ-ins-1 --instance instance-1
其中NAME是您为目标实例选择的名称。 INSTANCE是将处理来自一个或多个转发规则的流量的实例的名称。它将提示输入区域(选择您的实例所在的区域)。
您还可以创建target-pools以同时指向多个实例,而不仅仅是目标实例。
Create the forwarding rule,使用您刚刚创建的目标实例和静态公共IP:
gcloud compute forwarding-rules create NAME --address ADDRESS --target-instance TARGET_INSTANCE --target-instance-zone TARGET_INSTANCE_ZONE --ip-protocol IP_PROTOCOL --port-range [PORT | PORT-PORT]
gcloud compute forwarding-rules create fwd-rule-1 --address W.X.Y.Z --target-instance targ-ins-1 --target-instance-zone us-central1-f --ip-protocol TCP --port-range 5678-5680
其中:
系统将提示您选择此规则所属的区域。
要验证您的规则,您可以list your configured forwarding rules这样:
gcloud compute forwarding-rules list
您应该在您选择的实例中开始接收指向新公共IP的流量。
答案 1 :(得分:2)
根据您的问题,我发现您希望设置路由规则,以便来自实例的所有流量都通过另一个实例路由。
设置不应该太复杂,我现在可以想到的最佳示例是Google帮助中心文档中"Configuring a NAT gateway"指南中使用的设置。
更具体地注意以下内容(从指南中的步骤5开始):
$ gcloud compute routes create no-ip-internet-route --network gce-network \
--destination-range 0.0.0.0/0 \
--next-hop-instance nat-gateway \
--next-hop-instance-zone us-central1-a \
--tags no-ip --priority 800
我们可以打破这一点,以便更好地理解该规则的作用:
--destination-range 0.0.0.0/0
用于指定针对任何目的地的流量应受规则影响。我们指的是将离开我们实例的流量。--next-hop-instance nat-gateway
部分是指定在触发规则后,应将流量作为下一跳发送到“nat-gateway”实例。--next-hop-instance-zone us-central1-a
只是指定网关机器的区域。--tags no-ip --priority 800
用于表示只有具有'no-ip'标记的实例才会受到影响(只要它们位于创建此规则的网络中),我们也是在规则上设置“更高”优先级,以确保它优先于其他规则。考虑到上述所有情况,任何具有“no-ip”标记的实例都会将其传出流量传递给“nat-gateway”实例。总之,'nat-gateway'实例自动成为来自标记实例的所有传出流量的“下一跳”。
您可以使用类似的设置来确定您的路由规则并根据此规则创建它们,但是请注意,此示例中使用的“nat-gateway”具有特定功能,例如IP转发,并且基本上充当路由器并成为使用规则标记的实例的默认网关。
你还问过:如何通过google云转发为我的实例添加额外的ip?
从技术上讲,您只需在'target pool'中添加实例,然后创建forwarding rule即可将所需流量转发到该实例。转发规则将为您提供额外的IP地址。只要您在端口22上转发流量或将实例设置为侦听的端口,这也可以用于通过转发规则的IP地址SSH实例。