标题是非常多的。 是否有任何特定行为表示某个站点上存在负载平衡器?
编辑:这将是非常困难的,如果不是不可能(不喜欢这个词),因为有一个LoadBalancer的整个点是使客户端的交互与透明,基本上是看不见的。 这就是说,这是我原来的职位:
我pipe理一个相当大的站点负载平衡器。 我们访问者访问任何特定应用程序服务器的唯一迹象是,我们实际上将服务器的特定名称放在其login页面的底部。 这有助于我们解决他们遇到的问题。
除此之外,如果我们没有遵循这个政策,我只能想到一件事会“关键”到我们运行负载平衡器的事实。 以下是你可以告诉,但它会需要一些运气。
假设负载平衡器设置为将所有stream量转发到一台服务器或另一台服务器。 或者至less它将一台服务器之间的sshstream量转发给另一台服务器。 即使您可能没有login到任何一个login信箱,如果您尝试login,两者都会为您提供不同的密钥。因此,如果您尝试通过sshlogin,第一次会询问您是否你想接受的关键。 然后,如果你在第二个或第三个请求中得到幸运,你会被告知有一个不同的密钥(即另一个盒子)。 在一个* nix系统中,你经常被警告,这可能是由于一个中间人攻击。
所以有两件事必须到位:
因此,如果在相对较短的时间内获得两个密钥,则可以假定系统pipe理员没有更改它们,而是只是在负载均衡器后面与两台独立的计算机进行通信。
注意:还有一个项目,但它是在黑暗中的实拍。 你可以试图找出这个服务器分组的IP地址块。 那么让我们说,在这些特定的IP地址之一放置在LB(实际上是在这些IP之一)。
例如,负载平衡器位于XXX.XXX.XXX.5。 然后,LB将设置为捕获至less一个附加IP地址的所有stream量。 它通常不转发XXX.XXX.XXX.5的stream量(商业硬件我绝对不会这样做)。 所以你可以指望有和pipe理地址。
如果LB设置为允许来自所有外部主机的pipe理员,那么您可以使用/ admin这样的IP地址直到findLB. 这假定LB使用该path进行pipe理。
没有决定性的方法,但是你可以寻找一些线索。
– nmap它。 nmap可以提供任何你正在谈论的设备的操作系统的一些线索。 如果它说BSD和URL在.aspx中结束,那么你正在进行一些操作。
– cookies:很多负载均衡器添加(或可以添加)会话cookie。 寻找任何奇怪的和谷歌他们,如果你登陆F5的支持论坛,中提琴。
– 什么其他头:很多'时间添加标题的东西,如一个项目被caching或不(和其他原因)。 寻找任何有趣的标题和谷歌他们。
– 在页面上或者埋在一个html注释中,开发者通常会添加一个“由web7服务”来帮助他们排除故障。
– 从多个不同的IP请求相同的内容,并比较ETag头。 默认情况下,Apache将etag从文件系统inode中解放出来,很多pipe理员从不会调整它,所以如果你看到不同的Etag为相同的内容,你可以猜测它来自不同的服务器(只适用于Apache,只能工作如果没有调整,只有在不是共享文件系统的情况下才起作用)。
实际上,我只希望所有这些能够给你一个有意义的答案,就像4点的1次一样,但总的来说,除非凯瑟琳说“有些事情是错误的”,否则你不可能知道。
每个IP堆栈都会更改IP ID,因此IP主机位于负载平衡器“后面”。 像hping这样的工具只会给你:注意那些不属于同一个范围的ID,或者 – 即使是靠近一些奇怪的巧合 – 不会增加:
hping3 www.yoursite.com -S -p 80 (or whatever)
上面的例子捕获应用层下的LB之后的多个主机。
使用IP标识字段可能值得尝试识别不同的IP栈(如果有的话)。 您可能需要阅读关于如何在Scapy Demo页面上执行的更多信息 (查找具有“IPID字段”字样的行)。
所以,我想问题是,如果有一个负载平衡器,你能从网站行为中随便弄明白,我敢说,答案是“除非有什么错误”(比如服务器不同步)。 然而,至less在理论上可以确定在你和响应请求的服务器之间是否有额外的“不可见”设备。 该设备可能是代理服务器,端口转发器,静态NAT设备,负载均衡器,或可能是我错过的其他东西。 基本上,任何响应IP上的ping,但不是最终服务于HTTP请求。 从本质上讲,您可以使用traceroute等方法计算出您与网站的公共IP之间有多less跳。 然后你做一些数据包检查,以确定从主机到达的数据包的TTL。 由于TTL可能的起始值是有限的,并且定义得很好(除非有人正在对他们的networking堆栈进行严重的黑客攻击),你可以确定是否有额外的跳跃。 不知道这是否对你有所帮助,但我至less认为这是一个有趣的想法。
如果负载均衡器正在执行基于cookie的持久性,那么查看cookie可能会给您一个线索。
密切关注HTTP标头。
wget –save-headers
可以帮助你捕捉他们..(也有firefox插件跟踪标题)
一遍又一遍地浏览同一页面,查找交替的“Last-Modified或Expires”标题。
许多网站也在头文件中对其后端服务器进行编码。 如果它在那里,那应该是突出的。
祝你好运。