0
在 L4 交换机中,有一个“x-forwarded-for”功能,它将客户端源 ip 地址放在 http 标头中。
l4 交换机只能知道第 4 层信息,所以我很好奇如何放置 x-forwarded-for 信息 http 标头(http 标头在第 7 层!!)。即使在 https 中,http 标头也是加密的,L4 交换机如何解密这个加密的 http 标头,插入 x-forwared-for 信息,并将数据包发送到后端?
谢谢!
答案1
不可以,仅有第 4 层的设备不能破坏第 7 层应用程序数据。
第 4 层主机可能是一台路由器,可以转发到2001:db8:e856:edff::a0f8
。2606:2800:220:1:248:1893:25c8:1946
也许它有足够的传输层知识来让防火墙规则允许tcp/443
。但它不知道如何进一步解开数据包并操纵 http 标头。
通常,设计中会有一个负载均衡器或其他中间件,用于重定向或修改应用程序数据。这时,放置前端服务地址、终止 TLS、转换请求以及将新请求代理到后端就变得有意义了。由于这是一个新请求,因此客户端 IP 会丢失,这也是最初发明 Forwarded header 的原因。完成所有这些工作需要应用程序知识,因此这样的主机具有 7 级功能。