体系结构和通信流
本节介绍了 NetScaler CPX 桥接模式架构和流量。NetScaler CPX 也可以在主机模式下部署。
在 Docker 主机上置备 NetScaler CPX 实例时,Docker 引擎会为 CPX 实例创建虚拟接口 eth0。此 eth0 接口直接连接至 docker0 桥接上的虚拟接口 (veth*)。Docker 引擎还为网络 172.17.0.0/16 中的 NetScaler CPX 实例分配 IP 地址。
CPX 实例的默认网关是 docker0 桥接的 IP 地址,这意味着与 NetScaler CPX 实例的任何通信都是通过 Docker 网络进行的。从 docker0 桥接接收的所有传入流量都是由 NetScaler CPX 实例上的 eth0 接口接收,并由 NetScaler CPX 数据包引擎处理。
下图说明了 Docker 主机上的 NetScaler CPX 实例的体系结构。
如何在 NetScaler CPX 上使用单一 IP 地址
常规 NetScaler MPX 或 VPX 设备至少需要三个 IP 地址才能正常工作:
- 管理 IP 地址(称为 NetScaler IP (NSIP) 地址)
- 子网 IP (SNIP) 地址,用于与服务器场通信
- 虚拟服务器 IP (VIP) 地址,用于接受客户端请求
NetScaler CPX 实例使用一个单一 IP 地址,用于管理以及数据流量。
置备时,Docker 引擎只为一个 NetScaler CPX 实例分配一个专用 IP 地址(单一 IP 地址)。NetScaler 实例的三个 IP 功能会多路复用到一个 IP 地址。此单一 IP 地址使用不同的端口号来执行 NSIP、SNIP 和 VIP 功能。
下图说明如何使用单一 IP 地址来执行 NSIP、SNIP 和 VIP 的功能。
源自 NetScaler CPX 实例的请求的通信流
Docker 隐式配置 IP 表和 NAT 规则以将源自 NetScaler CPX 实例的流量导向至 docker0 IP 地址。
下图说明了源自 NetScaler CPX 实例的 ping 请求如何到达目标。
在此示例中,由 eth0 接口上的数据包引擎发送 ping 请求,来源 IP 地址为 NetScaler CPX IP 地址 (172.17.0.4)。然后 Docker 主机执行网络地址转换 (NAT) 以将主机 IP 地址 (192.68.x.x) 添加为来源 IP 地址,并将请求发送至目标 (216.58.x.x)。反之,来自目标 IP 地址的响应使用相同的路径。Docker 主机对响应执行 NAT 并将响应转发至 NetScaler CPX 实例的 eth0 接口上。
源自外部网络的请求的通信流
为了能够进行外部通信,置备 NetScaler CPX 时,必须设置一些参数,以便 Docker 可以公开某些端口(例如 80、22 以及您想要的任何其他端口)。如果您在置备期间未设置要公开的任何端口,那么必须在 Docker 主机上配置 NAT 规则以使这些端口可用。
源自 Internet 的客户端请求由 Docker 主机接收,然后该主机执行端口地址转换 (PAT) 以将公用 IP 地址和端口映射至 NetScaler CPX 实例的单一 IP 地址和端口,并将流量转发至实例。
下图显示了 Docker 主机如何执行端口地址转换以将流量导向至 NetScaler CPX 单一 IP 地址和端口。
在此示例中,Docker 主机 IP 地址是 192.68.x.x,NetScaler CPX 实例的单一 IP 地址是 172.17.0.4。NetScaler CPX 实例的 SSH 端口 22 映射至 Docker 主机上的端口 1100。来自客户端的 SSH 请求通过 IP 地址 192.68.x.x 上的端口 1100 接收。Docker 主机执行端口地址转换以将此地址和端口映射至单一 IP 地址 172.17.0.4 上的端口 22,并转发客户端请求。
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.