今天遇到一个问题,同事问怎么来防止LVS环境下的arp欺骗,对于LVS不是太熟悉,于是到whitehat群 中请教,然后自己又看了下关于LVS的资料,做了个简单的分析,记录下。
From:neeao
首先了解下LVS,LVS是Linux服务器集群系统(Linux Virtual Server)的简称,其官方网址为: http://www.linuxvirtualserver.org/zh/lvs3.html, 其中LVS主要采用了三种IP负载均衡技术,即:
VS/NAT 通过NAT实现虚拟服务器(Virtual Server via Network Address Translation);
VS/TUN 通过IP隧道实现虚拟服务器(Virtual Server via IP Tunneling);
VS/DR 通过直接路由实现虚拟服务器(Virtual Server via Direct Routing
具体的介绍可以到官网查看,我们这里只分析下它们的架构:

阅读全文
最近在网络监控中发现某IP持续报ARP MAC冲突,经过查询发现时由于所报IP为使用了HSRP的以太网口虚拟的一个IP,当HSRP工作时,优先级 高的路由器端口是Active,另一个是Standby的。启动HSRP的路由器每3秒钟为周期广播Hello信息包,表示我还活着,这个信息包是基于 UDP的,携带了虚拟IP及物理IP与同一个MAC地址的对应关系,而在IP协议层,一个MAC对应多个IP是不符合RFC的,所以这个就是在网络中出现 ARP MAC冲突的原因。

以下HSRP简介内容来自百度百科:
HSRP:热备份路由器协议(HSRP:Hot Standby Router Protocol)
阅读全文
有时候,我们需要获得所在局域网中所有的主机的MAC地址,不巧,手中又恰恰没有合适的软件。难道我们就束手无策了么?
其实,使用一些DOS命令,完全可以胜任这个工作,而且,效果会比某些软件好的多。
下面介绍下我的思路:
还记得ARP命令么?,利用ARP缓存信息,就可以得到我想要的局域网机器的MAC地址了。呵呵,理了一下思路,动手操作,效果非常好,就连一些试用版、破解版的MAC扫描工具扫不出的有些机器的信息ARP里都有!如何实施呢?
用Ping 命令,先Ping 一下局域网中的机器IP,因为我想在本地机器的ARP缓存信息里得到想要的MAC地址信息。只有Ping 过局域网中在线机器,本地机器的ARP缓存就会记录下Ping 过的机器的IP与MAC地址信息,也就是说,本地机器发出个数据包,目标机器会有一个应答,这个应答里含有IP地址和MAC地址的信息,这些个信息会晢存 在本地机器的ARP缓存里。在本地机器上,用ARP -a就可全部显示出来了。(防火墙或者过滤包的方法也无法禁止ARP的查看,远程计算机不返回Ping成功的消息但会告诉本地计算机该IP地址对应的 MAC地址。有些MAC扫描工具因对方防火墙的原因而无法得到对方的IP和Mac信息。)
有了这些思路,就差不多了。可我总不能一个一个的去Ping 啊,于是我就写个批处理,批量检测局域网中在线的机器。例如要查看192.168.0.*这个网段中有哪些地址在线。在桌面上点鼠标右键新建一个文本文件后输入如下代码:
FOR /L %%i IN (0,1,255) Do ping 192.168.0.%%i -n 1
arp -a -> MAC.txt
将该文件保存为.bat文件,双击这个批处理文件将自动搜索网段中的所有IP,并且将发现出的ARP信息都保存到MAC.txt文件中。
arp –a ->MAC.txt 这行命令表示将ARP显示的结果保存到 MAC.txt的文本文件中。
如果只是想Ping某一部分IP而不是所有该网段中的IP,可以将上面命令行中 IN(0,1,255) 中1,255是<指IP的范围>改写。
注意:批处理没有程序报错功能,所以,IP的范围应严格在1,255之间,防止机器执行批处理时发生意外^_^)。比如,我只想扫描192.168.0.10至192.168.0.200之间的IP与MAC信息,可以这样写:
FOR /L %%i IN (0,10,200) Do ping 192.168.0.%%i -n 1
arp -a -> MAC.txt
提示:扫描过程中可以使用“ctrl+c”命令进行中断。