haproxy透传用户ip-方法和原理
为了透传用户ip到后端server,proxy机器需要解决两个问题:
1.在创建到后端server的套接字时,将用户ip作为套接字的源ip,从而让后端server看到;
2.后端server在回包时,能够将目的地为用户ip的回包,返回给proxy机器,而proxy机器能够将该包,从网卡驱动(链路层)收下来,并正确递交给应用层的haproxy进程。
为了解决这两个问题,haproxy进程和所在机器需要做三个事情:
1.haproxy进程在创建到后端server的tcp套接字时,开启IP_TRANSPARENT选项,并绑定用户ip为源ip;
2.后端server修改路由规则,将目的地为用户ip的回包,路由给proxy机器;
3.proxy机器在处理回包时,在ip层,由TProxy通过结合netfilter/iptables,对该回包做一些小动作,将该回包的skb->sk = sk(sk为haproxy进程创建的对应套接字),从而让tcp层能够根据skb->sk,将该回包递交给haproxy进程进行处理,最终返回给客户端。
haproxy透传用户ip-方法和原理相关推荐
- Haproxy 透传IP配置方法及测试
Haproxy 透传IP配置方法 1. 环境准备 2. 测试准备 2.1 启动Haproxy容器方法 2.1.1 拉取官方haproxy镜像 2.1.2 删除旧的容器 2.1.3 编写haproxy配 ...
- 实现透传真实IP地址
环境 10.0.0.1 --> client ip.qwe.com 10.0.0.5 --> proxy-1 10.0.0.7 --> proxy-2 10.0.0.8 --> ...
- linux 开启LACP 单端口,Linux 网桥支持LACP 报文透传的解决方法
IEEE 802.1D MAC网桥过滤MAC组地址 LACP的协议是使用01-80-C2-00-00-0x范围内的MAC地址,这个范围在IEEE标准802.1D中定义为"MAC桥接过滤MAC ...
- 基于Protobuf共享字段的分包和透传零拷贝技术,你了解吗?
导语 | 本文通过介绍实现Protobuf共享字段Guard,并将其应用于中控/召回场景,并获得了显著CPU/时延收益.即使不使用Guard,希望本文的经验和思路也能为读者带来一些帮助和参考. 引言 ...
- HAProxy客户端IP地址的透传
HAProxy客户端IP地址的透传 环境准备 server IP client 172.20.27.10 haproxy 172.20.27.20,192.168.27.10 nginx 192.16 ...
- haproxy IP透传
1.IP透传 web服务器中需要记录客户端的真实IP地址,用于做访问统计.安全防护.行为分析.区域排行等场景 1.1 四层IP透传 1.1.1 HAProxy配置 ##server配置 send-pr ...
- 获取用户Ip地址通用方法常见安全隐患 x-forwarded-for
分析过程 这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. function getIP() { if (isset($_ ...
- 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问
ESP8266-AT指令--透传--TCP-UDP 我们来先认识一下ESP8266模块: 模块实物图 资源介绍 原理图 功能介绍 无线组网 SoftAP: Station: SoftAP + stat ...
- 使用nginx后如何在web应用中获取用户ip及原理解释
http://www.iteye.com/topic/1124492 问题背景: 在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用requ ...
最新文章
- SXOI2019游记
- python函数结构_Python函数基础
- Mac系统兼容软件 CrossOver 试用到期了怎么办
- mapreduce原理
- Nginx的反向代理 和 负载均衡
- 查看是否安装android sdk
- android 常驻轮询服务,Android实现自动轮询的RecycleView
- 修复windows脸部识别_如何在Windows 10中改善面部识别
- android 动态规划,7. 动态规划(二)Android移动应用开发.pdf
- SQL注入学习part03:(结合sqli-libs学习:21-30关)
- jsp,mysql乱码情况1
- 关于Quartz 2D绘图的简单使用
- 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)”
- windows家庭版关闭windows defender
- NVIDIA GPU的浮点计算能力
- 关于瑞萨RL78系列单片机在线升级
- 从源头解决问题,而不是曲线救国
- 【日常记录】小米笔记本蓝屏拆机维修(错误信息:WHEA_UNCORRECTABLE_ERROR)
- 重聚京都 找不到服务器,阴阳师重聚京都活动怎样玩 重聚京都活动玩法攻略
- PayPay猪 文档中心
热门文章
- qsettings删除注册表_Qt QSettings读取注册表和ini | 学步园
- JS —— 存取器属性get()和set()
- 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数
- 1.使用适配器模式设计一个仿生机器人:要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人发声方法talk(),机器人移动方法move()等。如果希望在不改变已有Bird类代码的基础上
- String,char,数组,列表 相互转化 (更新中)
- (*长期更新)软考网络工程师学习笔记——Section 8 传输层
- unlegal android,百度地图定位 Cordova 插件 cordova-plugin-baidumaplocation
- clr 面试_一个static和面试官扯了一个小时,舌战加强版
- centos mysql 安装 yum源_Linux - CentOS 7 通过Yum源安装 MySql 5.7
- OpenStack(一)——OpenStack与云计算概述