如何在 4 层协议的基础上实现域名转发
有一个特殊的需求:需要在 4 层协议上实现域名转发
正常情况下域名在 http 层,
这个能实现吗?各位有没有好的方案
目前尝试过 nginx 和 haproxy 都实现不了
原始需求:实现一个支持域名分发、负载均衡的 4 层高性能代理服务器,
关键点在:要支持在第四层,也就是传输层 解析出请求要访问的域名,然后根据这个域名将请求转发出去 先谢谢大家
了解到不存在“支持在第四层解析出域名”的情况,现在把需求改为:
实现一个支持域名分发、负载均衡的高性能代理服务器,
因为开启 TLS 双向验证,如何在握手失败前解析出 Host,然后根据 Host 进行分发
有一位朋友建议使用 sni ----------------------- 以下是精选回复-----------------------
答:什么叫 4 层协议和域名转发...
答:同没看懂,感觉像是反代
答:四层 => 传输层?
域名转发 => 代理?
答:就是 tcp 层面转发吧。。
答:http 层???
OSI 模型并没有所谓的 HTTP 层,HTTP 协议是属于第七层;
而第四层是属于 TCP/UDP 协议这样的;
同样的是,DNS 也属于七层;
所以并不懂你说的什么意思。
答:原始需求:实现一个支持域名分发、负载均衡的 4 层高性能代理服务器,
关键点在:要支持在第四层,也就是传输层解析出域名
答:要解析出域名,你就变成 7 层了,当然你可以解析出来之后原样把 tcp 包发过去……
答:大厂一般都有这些东西
没有就自己写一个
答:负载均衡应该做过吧 ? nginx 之类能不能实现我不了解,网上查查
你要是一点背景知识都不会的话,,,这论坛上不可能说的清楚的
答:没有用的,你了解下 tcp 协议就知道,不可能,在第四层的时候,只有 ip 和端口的,没有域名的概念
答:四层没有域名啊。
域名这个东西是七层搞出来的。同样,DNS 是工作的七层,目的是将七层自定义的“域名”与三层的 IP 做一个映射关系。
所以不存在“支持在第四层解析出域名”的情况。
而 IP 协议是工作在三层的,我们常说的 TCP/IP 是协议簇,而不是一个协议。TCP 与 IP 是分开的。
当信息流进入四层的 TCP 后,已经只存在 IP 信息了。
你这不是一个伪需求,而是一个不存在的需求。
不过四层是可以做负载均衡的。
所以,如果如是我理解错你的意思的话,那就是你对这些概念理解有一点偏差。
答:需求描述有点奇怪,楼上已经说了,在四层是不存在域名的概念的,解析出域名就变成一个七层的事情了
但我猜你需要的是类似 LVS 的东西?
答:我能想到的只有 SNI 了。如果客户端不支持 SNI 就没办法了。
答:如果只是要根据 SNI 进行转发,我记得 HAProxy 应该是可以的。
答:不就是中间人攻击嘛
如果可以实现,那还要 tls 之类的干嘛?
定期做 dns 查询,根据域名对应的 ip 做转发即可
当然也只是转发,想解析是不可能的
答:DNS 负载均衡
0条评论