当前位置: 首页 > news >正文

半透明反向代理 (基于策略路由)

定义

半透明反向代理一般是指 代理本身对于客户端透明,对于服务端可见。
从客户端视角看,客户端访问的还是服务端,客户端不知道代理的存在。
从服务端视角看,服务端只能看到代理,看不到真实的客户端。

示意图

在这里插入图片描述

  1. 客户端访问服务器的数据包,通过交换机时,交换机利用配置的策略(此时数据包的目的mac被改为nginx机器)把数据包引流到nginx机器,数据包入口为36.57的网卡。这一步很重要。
  2. 流量到达nginx机器后,此时数据包的目的ip是仍然是server机器,所以需要利用iptables规则修改包的目的ip为nginx机器,然后才能与nginx建立tcp连接。nginx的1234端口代理的是服务器192.168.37.6,nginx此时作为反向代理的准备完成。
iptables -t nat -A PREROUTING -d 192.168.37.6 -p tcp --dport 3306 –j DNAT --to-destination 192.168.36.57:1234
  1. 客户端发往服务器的数据包,都会中转经过nginx,然后在发送给服务器。
  2. 服务器响应给客户端的数据包,会首先到达nginx,再由nginx转给客户端。

遗留问题

nginx机器有2张网卡,流量入口一定是从36.57的网卡。那么流量出口呢?
从41.15网卡出去?从36.57网卡出去?
基于路由的匹配规则,流量从哪张网卡出去都是有可能的。如果41.15是千兆网卡,36.57是万兆网卡,那么从万兆网卡出去无疑是最好的选择,那么就需要用到linux的策略路由。

策略路由

添加路由表

ip route add default via 192.168.36.1 dev enp24s0f1 table 101

添加策略路由

ip rule add from 192.168.37.6 table 101
ip rule add to 192.168.37.6 table 101

src和dst是服务器(192.168.37.6),都走路由表101,而这张路由表以网卡(192.168.36.57)为出口的

持久化配置

在/etc/sysconfig/network-scripts目录下,添加rule-XXXX和route-XXXX文件,实现配置持久化。

  1. route-enp24s0f1
default via 192.168.36.1 dev enp24s0f1 table 101
  1. rule-enp24s0f1
from 192.168.37.6 table 101
to 192.168.37.6 table 101
http://www.lryc.cn/news/58947.html

相关文章:

  • 课前测5-超级密码
  • QML控件--Menu
  • 002:Mapbox GL更改大气、空间及星星状态
  • 2022年第十三届蓝桥杯题解(全)C/C++
  • 【cmake学习】find_package 详解
  • WEB攻防-通用漏洞PHP反序列化POP链构造魔术方法原生类
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK里的图像处理库进行图像转换(C++)
  • JD开放平台接口(获得JD商品详情, 按关键字搜索商品,按图搜索京东商品(拍立淘), 获得店铺的所有商品,获取推荐商品列表, 获取购买到的商品订单列表)
  • 上海亚商投顾:沪指震荡反弹 游戏、传媒概念股再度大涨
  • C/C++ 玩转StoneValley库:从入门到精通
  • CentOS7-部署Tomcat并运行Jpress
  • 菜鸟程序员的3年心酸逆袭之旅!今天你对我爱搭不理,明天我让你高攀不起!
  • 【Scala】异常 隐式转换 泛型
  • 1673_MIT 6.828 Homework xv6 lazy page allocation要求翻译
  • 六、Locust之TaskSets详解
  • flask_知识点3_css
  • Redis_概述_特性_IO模型
  • [论文速览] Sparks of Artificial General Intelligence: Early experiments with GPT-4
  • 舔狗日记:学姐生日快到了,使用Python把她的照片做成视频当礼物
  • 从《移动互联网应用程序(App)收集使用个人信息自评估指南》看个人信息保护着力点
  • 电脑0x0000001A蓝屏错误怎么U盘重装系统教学
  • Day939.如何小步安全地升级数据库框架 -系统重构实战
  • 2023 年十大 API 管理趋势
  • 计算机网络微课堂1-3节
  • [Eigen中文文档] Array类与元素操作
  • python学习,全球有哪些特别好的社区推荐呢?
  • LC-1042. 不邻接植花(四色问题(染色法))
  • python实战应用讲解-【numpy科学计算】scikits-learn模块(附python示例代码)
  • 大数据开发必备面试题Spark篇01
  • SpringBoot整合xxl-job详细教程