体系结构和通信流

本部分内容介绍Citrix ADC CPX桥接模式体系结构和通信流。Citrix ADC CPX也可以在主机模式下部署。

在码头工人主机上预配Citrix ADC CPX实例时,码头工人引擎会为CPX实例创建虚拟接口eth0。此eth0接口直接连接至docker0桥接上的虚拟接口(veth*)。码头工人引擎还为网络172.17.0.0/16中的Citrix ADC CPX实例分配IP地址。

CPX实例的默认网关是docker0桥接的IP地址,这意味着与Citrix ADC CPX实例的任何通信都是通过码头工人网络进行的。从docker0桥接接收的所有传入流量都是由Citrix ADC CPX实例上的eth0接口接收,并由Citrix ADC CPX数据包引擎处理。

下图说明了Docker主机上的Citrix ADC CPX实例的体系结构。

本地化后的图片

单个IP地址在Citrix ADC CPX上的工作原理

常规Citrix ADC MPX或VPX设备至少需要三个IP地址才能正常工作:

  • 名为Citrix ADC IP (NSIP)地址的管理IP地址
  • 子网IP (snip)地址,用于与服务器场通信
  • 虚拟服务器IP (vip)地址,用于接受客户端请求

Citrix ADC CPX实例使用一个单一IP地址,用于管理以及数据流量。

预配过程中,码头工人引擎只为一个Citrix ADC CPX实例分配一个专用IP地址(单一IP地址)。Citrix ADC实例的三个IP功能会多路复用到一个IP地址。此单一IP地址使用不同的端口号来执行nsip, snip和VIP功能。

下图说明如何使用单一IP地址来执行nsip, snip和VIP的功能。

本地化后的图片

源自Citrix ADC CPX实例的请求的通信流

码头工人隐式配置IP表和NAT规则以将源自Citrix ADC CPX实例的流量导向至docker0 IP地址。

下图说明了源自Citrix ADC CPX实例的ping请求如何到达目标。

本地化后的图片

在此示例中,由eth0接口上的数据包引擎发送平请求,来源IP地址为Citrix ADC CPX IP地址(172.17.0.4)。然后码头工人主机执行网络地址转换(NAT)以将主机IP地址(192.68.x.x)添加为来源IP地址,并将请求发送至目标(216.58.x.x)。反之,来自目标IP地址的响应使用相同的路径。码头工人主机对响应执行NAT并将响应转发至Citrix ADC CPX实例的eth0接口上。

源自外部网络的请求的通信流

为了能够进行外部通信,预配Citrix ADC CPX时,必须设置一些参数,以便码头工人可以公开某些端口(例如80年22日以及您想要的任何其他端口)。如果您在置备期间未设置要公开的任何端口,那么必须在码头工人主机上配置NAT规则以使这些端口可用。

源自互联网的客户端请求由码头工人主机接收,然后该主机执行端口地址转换(PAT)以将公用IP地址和端口映射至Citrix ADC CPX实例的单一IP地址和端口,并将流量转发至实例。

下图显示了码头工人主机如何执行端口地址转换以将流量导向至Citrix ADC CPX单一IP地址和端口。

本地化后的图片

在此示例中,Docker主机IP地址是192.68.x。Citrix ADC CPX实例的单一IP地址是172.17.0.4 . x。Citrix ADC CPX实例的 SSH 端口 22 映射至 Docker 主机上的端口 1100。来自客户端的 SSH 请求通过 IP 地址 192.68.x.x 上的端口 1100 接收。Docker 主机执行端口地址转换以将此地址和端口映射至单一 IP 地址 172.17.0.4 上的端口 22,并转发客户端请求。

体系结构和通信流