juniper服务器连接显示都是网关,Juniper防火墙,LVS DR mode 与 HTTP keepalive 丢包问题追查...-深圳网站优化推广公司

juniper服务器连接显示都是网关,Juniper防火墙,LVS DR mode 与 HTTP keepalive 丢包问题追查...

最近业务上新上了 Juniper 的防火墙。在防火墙上线后发现,原先业务上的调用同网段内 LVS VIP 的 HTTP 长连接在使用一段时间后频繁出现丢包重传现象,而其它网段连接此 LVS IP 则没有丢包。

概要

Juniper SRX 防火墙默认规则关于 TCP 连接建立的判定方法以及相关配置。

同网段中向DR模式 LVS 发出的TCP包,其回包不通过网关而是直接返回到发起机器。

使用python3 + urllib3 模拟 HTTP keepalive 长时间保持连接情况

症状

应用服务器上向 LVS IP 发的 HTTPS 请求丢包非常之惨烈。

6115e857130afc1acb2c5e9db01c709b.png

网络拓扑

先上一张网络拓扑,方便说明问题。

ca13194892bda5b7e9a5c9b4e2cfbbea.png

LVS IP 是公网IP

Juniper 防火墙设备同时充当默认网关。

复现、调查与分析过程

复现

为了能够在不影响业务的情况下方便调查,稳定复现问题是关键。

在复现的方法上想了很多办法,耗费了最多时间。

第一种方法,也是直接想到的方法,尝试用 curl。

但是连接丢包是在长连接建立一段时间后才发生的,所以使用 curl 需要 1) 模拟长连接 2) 长连接需要保持一段时间。

查阅手册,发现使用 curl 保持长连接不难,但是由于内网请求速度非常快,因此要保持长连接一段时间难以做到。

第二种方法,使用 python 的urllib3。

查了下urllib3的手册,写出下面代码。

Python

import urllib3, certifi

import time

#http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())

http = urllib3.PoolManager()

for i in range(1000):

r = http.request("GET", "http://xxx.xiaomi.com")

print(i, r.status)

time.sleep(1)

1

2

3

4

5

6

7

8

9

10

importurllib3,certifi

importtime

#http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())

http=urllib3.PoolManager()

foriinrange(1000):

r=http.request("GET","http://xxx.xiaomi.com")

print(i,r.status)

time.sleep(1)

运行该代码约20秒后,输出卡住了。重复多次稳定复现。

调查

先在业务机器上和 Real Server 上抓包,发现连接建立一段时间后一定会出现丢包,然后整个连接被关闭。

后尝试在 LVS 机器上和业务机器上抓包分析。

LVS 上抓包图:

fdba7a4f2dcb5a7b6bec4cb27c908a39.png

业务机器上抓包图:

0650f695d6d0150471f29a8e6571335c.png

蓝色的行为同一个包在 LVS 和业务机器上的同一个包。

通过在 LVS 机器和业务机器上抓包,确定是防火墙硬件将包丢弃。

至此,将调查重点放在防火墙配置上。

可疑的防火墙配置

现在问题已经明确为:

因为某个原因或者配置,防火墙将超过20秒的长连接的包丢弃了。

检查防火墙的配置,找找与 “20″ 相关的项目,在其默认配置中有所发现

set security screen ids-option untrust-screen tcp syn-flood alarm-threshold 1024

set security screen ids-option untrust-screen tcp syn-flood attack-threshold 200

set security screen ids-option untrust-screen tcp syn-flood source-threshold 1024

set security screen ids-option untrust-screen tcp syn-flood destination-threshold 2048

set security screen ids-option untrust-screen tcp syn-flood timeout 20

set security screen ids-option untrust-screen tcp land

1

2

3

4

5

6

setsecurityscreenids-optionuntrust-screentcpsyn-floodalarm-threshold1024

setsecurityscreenids-optionuntrust-screentcpsyn-floodattack-threshold200

setsecurityscreenids-optionuntrust-screentcpsyn-floodsource-threshold1024

setsecurityscreenids-optionuntrust-screentcpsyn-flooddestination-threshold2048

setsecurityscreenids-optionuntrust-screentcpsyn-floodtimeout20

setsecurityscreenids-optionuntrust-screentcpland

其中

set security screen ids-option untrust-screen tcp syn-flood timeout 20

这一条其意义是:TCP 连接的建立必须在20秒内完成,否则该连接请求将被丢弃。链接

至此,已大致可以确定问题所在了:防火墙将超过20秒的连接强行关闭了。

LVS DR模式

在 LVS DR 模式下,请求方向 LVS 发起 TCP 请求,但是 TCP 请求的回包并不从 LVS 返回,而是由 Real Server 直接返回给请求方。

如果请求方与 LVS 不在同网段,则返回的 TCP 包需要通过网关转发给请求方。但是如果请求方与 LVS 是同网段且网关是防火墙设备,那情况要稍微复杂些。

如图:

478e3b302091e36a5889ee55dcf5b021.png

TCP包流向图

注意到经过防火墙的 TCP 包是单方向的。防火墙一直认为 TCP 连接没有建立。

解决方法

根据之前的分析,想到的解决方法有两个:

调整防火墙配置和应用程序的配置,让 HTTP 长连接保持一个合适的时间。

在该网段搭建内网 LVS,流量不经由防火墙。

weixin_39949473 CSDN认证博客专家 CSDN认证企业博客
码龄7年 暂无认证
146
原创
-
周排名
175万+
总排名
27万+
访问
等级
246
积分
35
粉丝
38
获赞
0
评论
238
收藏
私信
为什么被折叠? 到【灌水乐园】发言
前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

相关内容推荐

手机网站设计欣赏网站沈阳电商网站设计企业静态网站设计哪家有名长沙行业网站设计服务报价广西电气企业网站设计闵行区品质网站设计创意云龙区智能化网站设计室内设计模型质量好的网站独栋别墅改造设计网站河南什么是网站建设设计主视觉设计网站崂山区手机网站设计多少钱ui设计欣赏网站设计师手绘插画素材网站visio设计网站图怎么设置国外设计有名网站优秀的电商设计网站惠州电气产品网站设计模板设计类导航网站广州小企业网站建设设计潮流设计素材网站简约浴室会所装修设计网站莆田餐饮品牌设计网站徐汇区在线网站设计系统怎么设计推广网站龙岩农产品品牌设计网站时代设计网 新网站郑州购物网站设计方案新手学习网站设计江门网站设计服务专业酒店设计网站服务专业的网站设计推广顶级服装设计网站网站的设计教案阿里云网站建设设计图室内设计户型方案网站平面设计素材网站的er图北京开关企业网站设计方案动感网站设计与制作读后感设计师新手兼职接单网站平台设计师常用有趣网站美甲店装修设计网站it技术社区网站毕业设计天津白酒包装设计网站邵阳智能化网站设计费用是多少黔南个性化网站设计哪家专业无锡低温冷冻库设计网站天府新区网站建设设计河北互联网网站设计咨询热线小米6网站设计广告制作设计网站模板湛江电气安全展示网站设计价格网页设计与网站建设教程苏州正规网站设计哪家好简历设计免费网站面试设计作品集放在哪个网站旅游网站设计毕业论文ppt无锡旅游网站设计多少钱一年旅游专题网站设计论文重庆南川网站设计哪家靠谱电影购票网站的设计与实现汽车线束设计的网站溧阳第三方网站设计开发报价行情厦门设计网站多少钱深圳网站详情页设计费用九江国外网站设计河北电商网站设计哪家好长沙制作网站设计找哪家好手机网站开发设计方案设计开发网站图儿童服装网站设计设计师必备懒人网站金华推荐网站设计优化兰州专业网站设计哪家好广州网站建设设计哪里好大型网站设计费用报价合肥网站开发设计家具设计都在那个网站上找资料温州网站设计企业制作网站网站设计比较好看的网站图片成都网站设计教程有哪些免费设计效果图的网站深圳平面创意设计网站黄岩网站设计园林设计师常用的园林设计类网站余姚永州网站制作设计需要多少钱发作品赚钱的设计网站设计师包装素材网站无锡国际网站设计开发质量推荐湖北正规网站建设设计马鞍山智能化网站设计费用是多少建筑类设计师找资料去哪个网站好小面积办公楼装饰设计网站河北定制网站设计设置合肥电话网站设计费用是多少益阳设计猎头网站武汉网站设计培训网站设计哪个牌子好厦门不染品牌设计网站电影网站毕业设计论文哪个网站给人设计衣服大学生环境设计比赛网站佛山主题网站设计价格表毕节电子商务网站设计哪家好无锡营销网站设计开发咨询热线东莞变压器厂家网站设计制作兴宁网站建设设计订做深圳网站设计师培训网站设计主管设计开发一个网站要多少费用南京进口网站设计服务应用范围网站开发设计学历要求北流网站设计-贝壳下拉北宁网站设计-贝壳下拉诸暨营销型网站设计家装室内设计手绘网站靖江商城网站设计咨询电话分享餐厅门头设计案例网站网站配置表 数据库设计日本设计大师的网站途家网站页面设计昆明奶茶logo设计网站合山网站设计-贝壳下拉陕西网站设计需要多少钱中山电商网站设计制作学品牌记忆设计看什么网站旅游类网站的设计背景湛江企业网站设计价格表郑州旅游网站设计服务多少钱吴先生设计网站花瓣设计网站官网进入宁波组合式冷库设计网站武汉购物网站设计价格全包办公室走廊设计网站上海工业pcb设计网站茂名购物网站设计vscode网站设计实验报告用代码设计网站个人小结江苏电子网站设计开发是什么河源响应式网站建设计划书临江网站设计-贝壳下拉娄底学网站设计哪家不错营销网站建设设计制作公司辽宁靠谱的网站设计推广能设计衣服的网站网站搜索排名优化设计厨房设备设计网站商业软装设计网站哪个好天津网站设计首选刻北仑企业网站设计报价北京中央美院设计网站主题餐厅室内设计网站网站设计建设公司哪家好云南二层房屋设计图网站嘉兴工业产品设计网站网站设计的内容素材江门联客易网站设计费用网站链接设计的方法银川市规划设计院官方网站家装设计案例 网站做设计好用网站网站加盟页怎么设计商业公司网站页面设计的论文佛山网站开发网站设计费用铜山区运营网站设计多少钱电商网站设计的流程台州行业网站设计服务费用含金量比较大的网站设计证书空间设计网站推荐宜兴提供网站设计开发管理系统韩国设计图网站昭通刀具课程设计哪个网站上有字母设计网站叫什么北京网站设计策划方案欧美网站的设计江岸专业从事网站设计费用美业设计网站排行榜前十名美食网站的设计与制作说明宁波外贸网站设计怎么样怎么用ps设计网站logo尺寸福建网站设计概况印刷工艺与印前设计网站比较好网站设计按天计费安徽网站设计服务商景观设计师在哪些网站找工作常州品质网站设计零售价格江苏品牌网站设计联系方式重庆綦江网站设计哪里好东晓产品网站设计知否设计网站室内设计师常用的网站湘乡网站设计贝壳下拉鞋设计参考网站适合平面设计学习提升的网站个人网站的设计类图山南顶新集团网站设计怎么样中小办公楼维修设计网站惠州电器厂家网站设计方案一套企业网站设计图片曲靖餐饮店面装修设计网站

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统

>