通过自定义路由类型监听,您可以精确规划客户端和后端服务的关系,将一个或多个客户端的流量路由到特定服务器中。本文为您介绍自定义路由类型监听的工作原理、使用限制、使用示例、与智能路由类型监听的功能对比。
工作原理
配置自定义路由类型监听后,全球加速实例能够根据配置的监听端口范围、目标终端节点组协议和端口范围,以及终端节点(交换机vSwitch)的IP地址信息,生成端口映射表,从而根据映射关系将一个或多个客户端的流量路由到交换机中特定的后端服务器(IP地址和端口)。
自定义路由类型监听的工作流程如下:
序号 | 工作流程说明 |
① | 全球加速根据您配置的自定义路由类型监听端口范围、终端节点组目标端口范围,以及终端节点交换机IP地址信息,生成端口映射表。 |
② | 客户端向应用发起请求,向应用申请可提供服务的端口信息,即加速端口。 |
③ | 应用调用查询端口映射表的接口获取端口映射表,并结合业务逻辑选取一个允许流量通行的后端服务器。 |
④ | 应用根据端口映射表,向客户端返回特定后端服务器和端口所对应的加速端口,该加速端口在您配置的监听端口范围内选取生成。 |
⑤ | 客户端使用分配的加速端口和加速IP进行访问。 |
⑥ | 自定义路由类型监听将客户端的流量按照端口映射表转发至相应的后端服务器。 |
使用限制
使用自定义路由类型监听有以下限制:
加速区域限制
加速IP协议版本仅支持IPv4。
监听端口限制
可配置的端口范围为1~65499。其中,25、250、4789和4790为系统保留端口。系统生成映射表时会自动忽略系统保留端口。按量付费全球加速实例不支持配置6081端口。
配置的监听端口范围决定了该监听关联的终端节点组内端口和终端节点内IP的组合数量,即需要满足以下数量关系:
监听端口数量(需减去系统保留端口数量)≥终端节点组内所有的端口数量×终端节点内所有交换机的IP数量
。建议为监听配置较大的端口范围。例如,如果您的终端节点组目标端口范围为81-85,包括5个端口;终端节点的所有交换机IP数量为16个,则监听端口范围需包含不少于80个端口。您可以配置监听为101-180,但不能配置为101-179,否则您的监听无法配置成功。
监听端口配置完成后,后续修改端口范围时不能移除已存在映射关系的端口。
例如,您的原监听端口范围为100-10000,其中199端口与终端节点的目的端口80在端口映射表中为映射关系,则您可以扩大监听端口为20-10000,但不支持缩小监听端口范围为200-10000。
同一全球加速实例下,不同监听的监听端口不能重复。
监听协议限制
仅支持TCP和UDP协议(配置终端节点组时指定)。可配置TCP或UDP,也可同时配置TCP和UDP。
后端服务限制
终端节点的后端服务类型仅支持部署在阿里云上的交换机(vSwitch),且仅支持ECS实例的私网IP地址及目标端口作为流量通行目标。
作为终端节点的交换机网段掩码范围为
/17
到/28
,即至少包含16个IP地址。添加终端节点时,默认配置为拒绝所有到目标交换机的访问流量。如需目标ECS实例能接收访问流量,您可以修改配置为允许所有流量通行,或指定目标ECS实例IP地址和端口允许流量通行。
作为终端节点的交换机所关联的网络ACL和作为流量通行目标ECS实例所属的安全组需允许访问流量通行。网络ACL和安全组规则配置,请参见创建和管理网络ACL和添加安全组规则。
不支持对终端节点组及终端节点进行健康检查。无论终端节点的健康状况如何,自定义路由类型监听都按照映射表中的映射关系转发访问流量。
使用示例
自定义路由类型监听适用于需要精确规划客户端和后端服务的关系,可将多个用户分配到特定服务器的应用。例如,您可以在多人在线游戏中使用自定义路由类型监听,游戏系统可以根据自定义路由类型监听配置生成的端口映射表和业务逻辑(例如地理位置、玩家等级等特征),将多个同特征的玩家分配至后端游戏服务器上的同一会话中。
假设您使用3台部署在同一交换机(10.1.1.0/28)的ECS实例搭建了一个游戏应用,ECS实例IP地址分别为10.1.1.1~10.1.1.3,对外提供服务的协议端口为TCP 80~82。其中只有2台ECS实例用于对外提供服务,IP地址分别为10.1.1.1和10.1.1.2。
您可以按照以下信息配置自定义路由类型监听和终端节点以提升玩家游戏体验。
监听端口范围:1001-1050。
终端节点组的映射端口范围和协议:端口范围配置为80-82,协议类型配置为TCP。
终端节点的后端服务和流量通行策略:选择目标交换机,并指定允许流量通行的IP地址10.1.1.1和10.1.1.2,端口均为80-82。
配置完成后,全球加速将生成如下端口映射表:
本示例为方便理解,端口映射表使用顺序映射,实际映射关系不可预测。您可以调用ListCustomRoutingPortMappings和ListCustomRoutingPortMappingsByDestination接口获取真实的端口映射表。
加速端口 | 目标IP | 目标端口 | 流量通行策略 |
1001 | 10.1.1.1 | 80 | 允许 |
1002 | 10.1.1.1 | 81 | 允许 |
1003 | 10.1.1.1 | 82 | 允许 |
1004 | 10.1.1.2 | 80 | 允许 |
1005 | 10.1.1.2 | 81 | 允许 |
1006 | 10.1.1.2 | 82 | 允许 |
1007 | 10.1.1.3 | 80 | 拒绝 |
1008 | 10.1.1.3 | 81 | 拒绝 |
1009 | 10.1.1.3 | 82 | 拒绝 |
如下图所示,不同玩家可分别通过应用分配的加速IP和端口访问游戏应用,玩家1和玩家2分别通过1001和1003端口以及加速IP访问游戏,访问流量均被路由至IP地址为10.1.1.1的服务器会话中;玩家3通过1005端口和加速IP访问游戏,访问流量被路由至IP地址为10.1.1.2的服务器会话中;玩家4尝试访问不允许接收流量的IP地址为10.1.1.3的服务器,该用户的访问请求不会被正常转发。
智能路由类型监听和自定义路由类型监听对比
下表为您汇总智能路由与自定义路由类型监听的功能支持差异。
对比项 | 智能路由 | 自定义路由 |
支持TCP、UDP、HTTP和HTTPS。 | 支持TCP、UDP。 在配置终端节点组中指定。可配置TCP或UDP,也可同时配置TCP和UDP。 | |
根据您为单个智能路由类型监听配置的端口数量,可将智能路由类型监听分为普通端口监听和海量端口监听,两者支持配置的端口数量和使用限制不同。 | 配置的监听端口范围决定了该监听关联的终端节点组内端口和终端节点内IP的组合数量,即需要满足以下数量关系: 监听端口配置完成后,后续修改端口范围时不能移除已存在映射关系的端口。 | |
支持。 | 不支持。 | |
支持IPv4、IPv6和双栈。 | 仅支持IPv4。 | |
根据应用部署位置不同,支持的后端服务类型不同:
| 仅支持部署在阿里云上的交换机(vSwitch)。 支持指定交换机中1个或多个ECS实例的私网IP地址及目标端口作为流量通行目标。 | |
支持。 | 不支持。 | |
支持。 | 不支持。 | |
支持。 | 支持。 | |
根据监听协议的不同,支持的情况也不同:
| 默认不支持 如需保持客户端源IP,请向商务经理申请。 | |
支持。 | 不支持。 |