• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

L5000基于URL的二次跳转重定向七层负载业务异常案例

  • 1关注
  • 1收藏 427浏览
粉丝:26人 关注:2人

组网及说明

客户端---LB---实服务器


问题描述

设备LB基于URL做七层负载,客户端请求来的流量先请求带有testzzwxyURL的域名,然后通过后再跳转请求带有ish URL的域名,测试时发现客户端无法访问成功。

主要地址如下:

虚服务地址:192.140.203.12

SNAT地址:192.140.203.12

testzzwxy实服务器地址:192.141.83.3 8081

ish实服务器地址:192.141.8.73 8081    192.141.8.74 8081

LB主要配置如下:

#
virtual-server gjjzzgrwsyw type http
 port 443
 virtual ip address 192.140.203.12
 parameter http pp-gjj
 lb-policy gjj_zzgrwsyw
 sticky COOKIE1
 ssl-server-policy gjj-20221221
 route-advertisement enable
 service enable
#
parameter-profile pp-gjj type http
 rebalance per-request
#
sticky-group COOKIE1 type http-COOKIE
 COOKIE insert
 check all-packet
#
loadbalance policy gjj_zzgrwsyw type http
 class gjj_zzgrwsyw_ish action https-upgrade
 class gjj_zzgrwsyw_testzzwx action gjjxcx_testzzwx
#
loadbalance class gjj_zzgrwsyw_ish type http match-any
 match 1 url ish
#
loadbalance class gjj_zzgrwsyw_testzzwx type http match-any
 match 1 url testzzwx
#
loadbalance action gjjxcx_testzzwx type http
 server-farm gjjxcx_testzzwx sticky COOKIE1
 header insert both name x-forwarded-for value %is
#
loadbalance action https-upgrade type http
 server-farm gjjzzgrwsyw_sf sticky COOKIE1
 header insert both name x-forwarded-for value %is
 header insert response name content-security-policy value upgrade-insecure-requests
#
server-farm gjjxcx_testzzwx
 predictor random
 snat-pool gjjzzgrwsyw_snat
 probe t1
 success-criteria at-least 1
 real-server gjjxcx_192.141.83.3_8081_testzzwx port 8081
  success-criteria at-least 1
  probe t1
#
real-server gjjxcx_192.141.83.3_8081_testzzwx
 ip address 192.141.83.3
 port 8081
 probe t1
 success-criteria at-least 1
#
server-farm gjjzzgrwsyw_sf
 predictor hash address source
 snat-pool gjjzzgrwsyw_snat
 probe t1
#
real-server gjjzzgrwsyw_192.141.80.73_8081
 ip address 192.141.80.73
 port 8081
 server-farm gjjzzgrwsyw_sf
#
real-server gjjzzgrwsyw_192.141.80.74_8081
 ip address 192.141.80.74
 port 8081
 server-farm gjjzzgrwsyw_sf
#

 


过程分析

通过再LB设备上抓包,发现LB七层负载代理请求时,针对testzzwxy URL的域名请求,设备可以正常转发到实服务器192.141.83.3 8081服务上,后续的域名跳转到ish后,设备依旧往192.141.83.3上负载,而不是向192.141.8.73/74上负载,导致服务器侧回复了404无效请求文件报错。

根据抓包定位问题出现在这个地方,针对这种二次跳转域名,并且域名服务器地址或者端口不同的业务模型,需要开启逐请求转发,即每来一个报文设备就重新根据LB policy策略进行负载调度。查看配置中是配置了并且调用了模版参数:

#
virtual-server gjjzzgrwsyw type http
 port 443
 virtual ip address 192.140.203.12
 parameter http pp-gjj
 lb-policy gjj_zzgrwsyw
 sticky COOKIE1
 ssl-server-policy gjj-20221221
 route-advertisement enable
 service enable
#
parameter-profile pp-gjj type http
 rebalance per-request
#

正常情况下调用了逐请求后,这种业务模型会重新负载到对应的域名服务器上请求报文,但是现场配置中在虚服务下调用了持续性组,虚服务下调度的持续性优先级最高,过来的流量匹配了持续性组后,就不会继续匹配lb-policy,所以导致后续跳转的ish域名请求不会负载到正确的实服务器上。

#
virtual-server gjjzzgrwsyw type http
 port 443
 virtual ip address 192.140.203.12
 parameter http pp-gjj
 lb-policy gjj_zzgrwsyw
 sticky COOKIE1
 ssl-server-policy gjj-20221221
 route-advertisement enable
 service enable
#
sticky-group COOKIE1 type http-COOKIE
 COOKIE insert
 check all-packet
#


解决方法

解决方案是取消虚服务下调用的持续性组

#
virtual-server gjjzzgrwsyw type http
 port 443
 virtual ip address 192.140.203.12
 parameter http pp-gjj
 lb-policy gjj_zzgrwsyw
 sticky COOKIE1           undo掉
 ssl-server-policy gjj-20221221
 route-advertisement enable
 service enable
#

如果客户又持续性组的需求,可以在负载动作中进行调用,例如:

#
loadbalance action gjjxcx_testzzwx type http
 server-farm gjjxcx_testzzwx sticky COOKIE1
 header insert both name x-forwarded-for value %is
#
loadbalance action https-upgrade type http
 server-farm gjjzzgrwsyw_sf sticky COOKIE1
 header insert both name x-forwarded-for value %is
 header insert response name content-security-policy value upgrade-insecure-requests
#

 


该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作