嗨,我有一个问题陈述,我正试图解决从很长一段时间。
问题陈述(这是一个网络场景):机器A和机器B想连接到机器D,机器C是它们之间的负载均衡器。在机器D,我想确定哪一个连接来自机器A,哪个连接来自机器B。
由于负载均衡器将使用一个IP到SNAT,所有来自机器A和机器B的连接。
我为什么要解决这个问题?考虑到有一个机器Z是一个恶意的机器,它试图连接到机器D,我想控制所有传入的连接到这台机器。
从本质上说,从A到D的每一个请求都有连接发生。
这两个连接的tcp/ip数据包中是否有可用作标识符的共同内容?
发布于 2020-07-06 11:26:53
如果您有一个第7层负载均衡器,并且网络流量支持它,负载均衡器可以插入关于源地址的流量的线索(例如,HTTP反向代理通常添加包含原始调用方地址的X-Forwarded-For头)。
在较低的级别上,您不知道包的来源,因为任何类型的NAT都会修改IP报头。
值得一提的是,在像您这样的场景中,所有的过滤都应该在负载均衡器上完成,或者在此之前完成,而不是在后端服务器上完成。后端服务器不应该关心包过滤和源标识(也许除了应用程序级别的目的之外)。
发布于 2020-07-06 16:28:23
您可以通过检查IP数据包字段来实现它。例如,您可以在源计算机上更改TTL或设置DSCP,并在目的地检查它。但是,这里有一些限制--如果您知道您的“有效”机器有多远(在跃点中),TTL更改就会起作用。
https://serverfault.com/questions/1024177
复制相似问题