为了透传用户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-方法和原理相关推荐

  1. Haproxy 透传IP配置方法及测试

    Haproxy 透传IP配置方法 1. 环境准备 2. 测试准备 2.1 启动Haproxy容器方法 2.1.1 拉取官方haproxy镜像 2.1.2 删除旧的容器 2.1.3 编写haproxy配 ...

  2. 实现透传真实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 --> ...

  3. linux 开启LACP 单端口,Linux 网桥支持LACP 报文透传的解决方法

    IEEE 802.1D MAC网桥过滤MAC组地址 LACP的协议是使用01-80-C2-00-00-0x范围内的MAC地址,这个范围在IEEE标准802.1D中定义为"MAC桥接过滤MAC ...

  4. 基于Protobuf共享字段的分包和透传零拷贝技术,你了解吗?

    导语 | 本文通过介绍实现Protobuf共享字段Guard,并将其应用于中控/召回场景,并获得了显著CPU/时延收益.即使不使用Guard,希望本文的经验和思路也能为读者带来一些帮助和参考. 引言 ...

  5. HAProxy客户端IP地址的透传

    HAProxy客户端IP地址的透传 环境准备 server IP client 172.20.27.10 haproxy 172.20.27.20,192.168.27.10 nginx 192.16 ...

  6. haproxy IP透传

    1.IP透传 web服务器中需要记录客户端的真实IP地址,用于做访问统计.安全防护.行为分析.区域排行等场景 1.1 四层IP透传 1.1.1 HAProxy配置 ##server配置 send-pr ...

  7. 获取用户Ip地址通用方法常见安全隐患 x-forwarded-for

    分析过程 这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. function getIP() { if (isset($_ ...

  8. 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

    ESP8266-AT指令--透传--TCP-UDP 我们来先认识一下ESP8266模块: 模块实物图 资源介绍 原理图 功能介绍 无线组网 SoftAP: Station: SoftAP + stat ...

  9. 使用nginx后如何在web应用中获取用户ip及原理解释

    http://www.iteye.com/topic/1124492 问题背景: 在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用requ ...

最新文章

  1. SXOI2019游记
  2. python函数结构_Python函数基础
  3. Mac系统兼容软件 CrossOver 试用到期了怎么办
  4. mapreduce原理
  5. Nginx的反向代理 和 负载均衡
  6. 查看是否安装android sdk
  7. android 常驻轮询服务,Android实现自动轮询的RecycleView
  8. 修复windows脸部识别_如何在Windows 10中改善面部识别
  9. android 动态规划,7. 动态规划(二)Android移动应用开发.pdf
  10. SQL注入学习part03:(结合sqli-libs学习:21-30关)
  11. jsp,mysql乱码情况1
  12. 关于Quartz 2D绘图的简单使用
  13. 斯坦福大学自然语言处理第四课“语言模型(Language Modeling)”
  14. windows家庭版关闭windows defender
  15. NVIDIA GPU的浮点计算能力
  16. 关于瑞萨RL78系列单片机在线升级
  17. 从源头解决问题,而不是曲线救国
  18. 【日常记录】小米笔记本蓝屏拆机维修(错误信息:WHEA_UNCORRECTABLE_ERROR)
  19. 重聚京都 找不到服务器,阴阳师重聚京都活动怎样玩 重聚京都活动玩法攻略
  20. PayPay猪 文档中心

热门文章

  1. qsettings删除注册表_Qt QSettings读取注册表和ini | 学步园
  2. JS —— 存取器属性get()和set()
  3. 【自定义排序规则】剑指 Offer 45. 把数组排成最小的数
  4. 1.使用适配器模式设计一个仿生机器人:要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人发声方法talk(),机器人移动方法move()等。如果希望在不改变已有Bird类代码的基础上
  5. String,char,数组,列表 相互转化 (更新中)
  6. (*长期更新)软考网络工程师学习笔记——Section 8 传输层
  7. unlegal android,百度地图定位 Cordova 插件 cordova-plugin-baidumaplocation
  8. clr 面试_一个static和面试官扯了一个小时,舌战加强版
  9. centos mysql 安装 yum源_Linux - CentOS 7 通过Yum源安装 MySql 5.7
  10. OpenStack(一)——OpenStack与云计算概述