3.4. 为浮动 IP 创建端口转发
您可以使用 OpenShift (RHOSO)网络服务(neutron)上的 Red Hat OpenStack Services 为浮动 IP 设置端口转发。
先决条件
-
管理员已为您创建一个项目,并为您提供了一个
clouds.yaml
文件来访问云。 python-openstackclient
软件包驻留在您的工作站上。dnf list installed python-openstackclient
$ dnf list installed python-openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您的管理员已使用
port_forwarding
服务插件启用了网络服务。如需更多信息, 请参阅配置网络服务 中的配置浮动 IP 端口转发。
流程
确认为您的云设置了系统
OS_CLOUD
变量:echo $OS_CLOUD
$ echo $OS_CLOUD my_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,重置变量:
export OS_CLOUD=my_other_cloud
$ export OS_CLOUD=my_other_cloud
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为替代方案,您可以在每次运行
openstack
命令时添加--os-cloud <cloud_name
> 选项指定云名称。使用以下命令为浮动 IP 创建端口转发:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<internal-ip-address
> 替换为内部目标 IP 地址。这是与运行应用的实例关联的 IP 地址。
-
将 &
lt;port
> 替换为实例附加到的网络服务端口的名称或 ID。 将--
internal
number> 替换为内部的目的地端口号。-protocol-port
中的 <port-这是实例中运行的应用使用的端口号。
将--
external
number> 替换为外部源端口号。-protocol-port
中的 <port-这是在 RHOSP 云使用外运行的应用程序的端口号。
-
将
<
;protocol> 替换为接收端口转发流量的应用程序使用的协议,如 TCP 或 UDP。 将
<floating-ip
> 替换为您要转发的指定端口流量的浮动 IP。示例
本例为附加到浮动 IP
198.51.100.47
的实例创建端口转发。浮动 IP 使用网络服务端口1adfdb09-e8c6-4708-b5aa-11f50fc22d62
。当网络服务检测到传入时,发送到198.51.100.47:80
的外部流量将流量转发到内部 IP 地址203.0.113.107
,在 TCP 端口8080
上:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认网络服务已为浮动 IP 端口建立了转发。
示例
以下示例验证浮动 IP
198.51.100.47
的端口转发是否成功:openstack floating ip port forwarding list 198.51.100.47 \ -c "Internal Port ID" -c "Internal IP Address" -c "Internal Port" \ -c "External Port" --max-width 74
$ openstack floating ip port forwarding list 198.51.100.47 \ -c "Internal Port ID" -c "Internal IP Address" -c "Internal Port" \ -c "External Port" --max-width 74
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
输出显示发送到 TCP 端口 80 上的浮动 IP
198.51.100.47
的流量转发到具有内部地址203.0.113.107
的实例上的端口8080
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow