欢迎关注:1,欢迎关注本博客,你可点击右手边的【QQ邮件订阅】订阅本博客!2,本博客推出江湖救急计划,主要为工作中遇到疑难杂症的兄弟提供远程技术支持和分析,如有需要,请在江湖救急计划页面给我留言!

两台soho级小路由之间的“正义”之战

作者:易隐者 发布于:2012-10-16 9:49 Tuesday 分类:案例讨论

       某用户反应访问互联网经常出现缓慢的情况,向我们发出支援请求。小鲍在现场抓包发现,内部存在两个MAC地址,每秒共发送6万多个免费ARP(IP地址为192.168.1.1)报文,如下图所示: 

点击查看原图

       后经MAC地址分析并通告交换机MAC表,找到这两个MAC的设备为两个小路由器,用户说明因其部分办公室接入点不够,将小路由器当小交换机给信息点不够的办公室使用。

       小鲍经现场测试发现奇怪的现象:

1, 当关闭其中一台路由之后,另一台小路由器发免费ARP报文的频率变为每秒1000多个;
2, 当两台小路由器全部开启接入办公网时,其发送免费ARP报文的频率迅速攀升至每秒30000多个;

       每秒1000多个免费ARP报文的发包频率在一般的以太网内应该影响不大,终端使用者至少不会感觉到明显的速度变慢情况。那么问题来了:

       为什么一台在线没什么问题而两台同时在线发包频率就会出现这种质的变化呢?

        接下来我们一起来分析一下。

       小路由发送免费ARP报文的目的就是防止内部存在伪造默认网关地址192.168.1.1的免费ARP报文实施ARP欺骗的主机,其1秒发送1000多个免费ARP报文可以保证路由下所有的主机ARP表中网关地址(192.168.1.1)的MAC对应关系维持正确。因为大部分的ARP欺骗的发包频率并不需要非常快。

       但是当小路由器检测到(收到)来自于其他MAC的免费ARP(192.168.1.1)报文后,其认为是内部主机在实施ARP欺骗行为,因此逐步提高了其发免费ARP报文的频率,而这个动作会在两个小路由上同步进行,由此导致的后果就是,在其性能可承受的范围内,双方不断的增加其发送免费ARP报文的频率。其交互过程示意图大致如下:

点击查看原图

       通俗点来说,这好比双方都是身怀大招必杀绝技的高手,他们拥有同一个坚定的信念:除恶扬善,拯救人民大众与水火之中,但是他们都误以为对方是恶,双方实力相近,大招必杀全开,拼死一搏的结果就是:他们一起毁了整个战场,人民大众皆因他们的大招必杀技而死。

       网上搜索了一下一般soho级小路由器的硬件架构和配置,发现大部分是ARM9处理器,2M-8M的内存,CPU主频一般也就几百兆赫兹,真没想到这种小路由设备能够具有如此巨大的发包频率潜力。

       我们不可小觑任何一台看似普通的设备,当其抽疯的时候,足以致命。

阅读全文>>

标签: 免费ARP ARP欺骗 发包频率 soho路由

评论(1) 引用(0) 浏览(11001)

关于vista系统机器无法通过防火墙上网的故障分析解决案例

作者:易隐者 发布于:2012-9-17 13:53 Monday 分类:网络分析

【说在之前】:

1,该案例为误开启ARP代理功能导致的疑难故障;

2,该故障的触发是由于XP与vista操作系统发送的免费ARP报文格式不一致导致的;

3,关于ARP代理请参考本博客《ARP代理(Proxy ARP)》一文;关于免费ARP,请参考《免费ARP(gratuitousARP)》一文;

4,跟这个案例分析的原因有关的类似故障案例还有netyourlife论坛上的《为什么VISTA不能穿过ASA》,大家可自行查看比较;

5,针对该案例做的相关实验,请大家参考本博客关于防火墙的arp代理功能对不同格式的arp报文的处理情况的实验》一文

【我的案例】:

故障环境

1 网络拓扑 

点击查看原图


2 说明

1、内部机器全部在同一网段,经过一个二层交换机接入防火墙,通过防火墙的NAT访问互联网;
2、以前内部办公机器都是xp操作系统,现在新采购了一批vista操作系统新机器。

故障现象

1、 vista操作系统的办公机器在接入网络时,本地连接便显示网络连接正在识别,提示找不到网络;
2、 使用ifconfig/all命令查看vista系统的ip地址情况如下图所示: 

点击查看原图

       通过上图,我们发现:vista系统的首选地址变成了169.254.180.208,而不是先前收到设置的192.168.0.23了;
3、 用户反馈,如果vista系统的办公机器只接入交换机不会出现这种情况,但一旦接入防火墙,故障现象就会出现。
4、 XP系统的办公机器一切正常。

故障分析

1、 首先根据用户反馈的故障现象,从自己的经验出发,个人认为这个跟网络应该没有什么关系,估计是操作系统的问题,于是打microsoft OEM厂商的800电话咨询关于vista系统ip地址“突变”的原因,得到的回复是:从未出现过此类问题,可能跟现场环境有关。
2、 根据用户反馈的情况测试:首先,设好vista系统机器的ip地址后,将其接入一台普通的交换机,查看vista机器的ip地址,的确正常,如下图所示: 

点击查看原图

       难道真的跟防火墙有关?
3、 既然怀疑跟防火墙有关,我们便将注意力放到防火墙上来,telnet到防火墙上,使用使用tcpdump –i eth2 host 192.168.0.23 –n命令抓取测试vista主机的数据包。
4、 重启vista主机,发现vista主机在系统启动后,发送了一个源ip为0.0.0.0、目的ip为其配置的ip的arp请求包,同时,防火墙回应了该arp请求包,如下图所示: 

点击查看原图

5、防火墙为什么会回应该数据包?我们检查防火墙配置,发现防火墙上手动将内部办公网段设为静态arp代理。跟用户确认该问题,原来用户误认为该功能可能会解决arp欺骗问题,尝试设置后,忘记将其删除了。

故障解决

       删除防火墙上手动添加的arp代理项,故障现象消失,故障解决。

引申问题

1、通过抓取数据包,我们可以发现vista系统与xp系统在网卡引导阶段发送的“免费”arp报文格式的差别:
VISTA 系统发送的免费ARP请求包格式为:

点击查看原图

下图为wireshark抓取的vista系统网卡引导阶段发送的arp数据包格式:                      
 

点击查看原图

XP系统中发送的免费ARP请求包格式为:

点击查看原图

下图为xp系统发送的免费arp包格式: 

点击查看原图

       为什么VISTA系统在网卡地址加载期间发送这种格式的ARP数据包呢?关于这个问题已经有人做过相关的测试,我也验证了这个实验,下面为实验的过程,引用自netexpertgwdwx
“A机-B机两台xp对联测试:
1)按照xp的arp包格式(源ip=目的ip=a机ip),用sniffer伪造arp包向b机发包,b机不断提示ip冲突;
2)按照vista的arp包格式(源ip=0.0.0.0),用sniffer伪造arp包向b机发包,b机不提示。
这就是最明显的区别,看来vista比xp还谦虚,它不仅让出ip,而且还不让对方发现有ip冲突,宁可牺牲自己”。

关于这个问题的详细讨论,可以参考如下链接:
http://www.netexpert.cn/viewthread.php?tid=19463&pid=125237&page=1&extra=page%3D1#pid125237

2、细心的兄弟应该会发现这样一个问题:既然是防火墙启用了针对内部办公网段的arp代理功能,使得vista在网卡加载地址期间发生了ip地址冲突,导致了vista系统机器无法访问互联网,那么,为什么xp系统在网卡加载地址期间没有出现地址冲突呢?
       实验证明:防火墙虽然启用了针对办公网段的arp代理功能,但是,防火墙只响应vista系统格式的arp请求报文,而不响应xp系统网卡加载地址时发送的免费arp报文。

阅读全文>>

标签: 疑难故障 ARP 防火墙 免费ARP ARP代理 VISTA

评论(0) 引用(0) 浏览(8834)

关于防火墙的arp代理功能对不同格式的arp报文的处理情况的实验

作者:易隐者 发布于:2012-9-16 10:42 Sunday 分类:网络分析

1 实验环境

       构建如下图所示的简单的实验环境即可,测试机为xp系统。 

点击查看原图

2 实验目的

       验证防火墙的arp代理功能对不同格式(主要指xp系统免费arp格式和vista系统在网卡加载地址时发送的arp报文格式)的arp报文的响应情况。

3 实验工具

       在此实验中使用到的工具主要有:
1、wireshark,主要用于实验时的报文捕获;
2、科来网络分析系统,主要用于构造vista系统网卡加载地址时发送的arp报文。

4 实验步骤

一、验证防火墙对xp系统免费arp报文的响应情况

实验步骤:
1、配置防火墙的arp代理功能;
2、在测试机器上开启wireshark,抓取本地网卡的数据包;
3、更改测试机网卡地址,以便测试机发送免费arp报文;
4、地址更改成功后,查看数据包。
实验现象:
      通过分析数据包,我们发现,防火墙没有响应xp系统的免费arp报文。

二、验证防火墙对vista系统网卡加载地址期间发送的arp报文的响应情况

实验步骤:
1、配置防火墙的arp代理功能;
2、在测试机器上开启wireshark,抓取本地网卡的数据包;
3、使用科来网络分析系统,构造vista系统网卡加载地址期间发送的arp报文并向本地网卡发送;
4、地址更改成功后,查看数据包。
实验现象:
       通过分析数据包,我们发现,防火墙以下图所示的报文格式响应的这个arp请求报文: 

点击查看原图

       同时,测试机弹出地址冲突提示窗口。

5 实验总结

       以上实验证明:防火墙的arp代理功能,不会响应标准的免费arp请求包,而正如七哥所说的“Vista的ARP报文似乎不符合ARP请求的规范,所以不能算做免费的ARP”,因此防火墙对vista系统网卡地址加载期间发送的arp请求包进行了回应。

阅读全文>>

标签: wireshark ARP 防火墙 科来 免费ARP ARP代理 VISTA 实验

评论(0) 引用(0) 浏览(11362)

免费ARP(gratuitousARP)

作者:易隐者 发布于:2012-9-15 17:26 Saturday 分类:网络分析

 免费ARP的格式

       免费ARP报文与普通ARP请求报文的区别在于普通的ARP请求报文,其ARP封装内的“目的IP地址”是其他机器的IP地址,而免费ARP的请求报文,其ARP封装内的“目的IP地址”是其自己的IP地址。免费ARP的封装格式如下图所示: 

点击查看原图

免费ARP报文的封装格式图示

免费ARP在实际环境中的一些应用

       免费ARP主要用于检测IP地址冲突。当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机。

       在实际的工作环境中,免费ARP除了用于检测地址冲突之外,我们还可以用于以下几个方面:

1,利用免费ARP确认设备接口地址

       一般的设备在网卡地址加载阶段都会向网络中发送免费的ARP报文(也有些安全设备为了安全起见,让设备在加载地址期间不向外发送免费ARP报文),当我们想知道某些设备的接口地址但又没有相应记录可查时,我们就可以利用设备的这种特性,抓取其免费ARP报文,从而分析出其接口使用的IP地址。这个方法曾数次在用户处使用,效率很高,效果非常明显。

2,使用免费ARP报文,更新某些设备的ARP表项

       在《TCP/IP详解卷1》的第四章中,有讲到使用免费ARP报文,更新其他主机设备的ARP表项的应用,在我们的工作环境中最常见的应用可能是网关设备双机热备的应用场景,网关在双机热备的工作模式下,由主设备切换到备用设备时,与之相连的设备的ARP表项需要由以前主设备的MAC地址更新为现在主设备(切换前的从设备)的MAC地址,这时,一般从设备在切换为主设备时,就利用向网络中发送免费ARP请求报文, 达到让其他设备更新ARP表项的效果。下面这个图示说明了这个切换的过程: 

点击查看原图

 双机热备模式下主从设备切换利用免费ARP的过程

3,利用免费ARP的攻击

       在实际环境中,如果构造网关地址的免费ARP报文,并将ARP的源MAC地址设为任何非网关的MAC地址,再把构造的这个虚假的网关免费ARP报文向网络中发送,那么所有接收到这个免费ARP报文的主机都会更新自己的ARP表项中网关地址对应的MAC地址,导致这些主机的数据报文全部会被转发到错误的MAC地址上,从而实现了ARP欺骗的攻击。

4,网关设备利用免费ARP防止ARP攻击

       有些网关设备为了防止内部中毒机器对内部其他机器实施网关的ARP欺骗攻击,其会在一定的时间间隔内向网络中主动发送免费ARP报文,让网络内的主机更新ARP表项中的网关MAC地址信息,从而达到防止或缓解ARP攻击的效果。

阅读全文>>

标签: 地址冲突 ARP 免费ARP ARP攻击 ARP欺骗 gratuitousARP

评论(0) 引用(0) 浏览(23063)

ARP表的更新和老化

作者:易隐者 发布于:2012-9-14 22:22 Friday 分类:网络分析

ARP表的更新的条件

       在实际的环境中,只有同时满足以下两个条件时,设备的ARP表项才会更新:
1,设备收到来自某IP的ARP请求包或免费ARP包;
2,设备的现有ARP表项中已经存在该IP对应的ARP表项。
其他的非ARP报文不会对设备的ARP表项产生影响。

ARP表的老化时间

       不同的系统对ARP表的老化时间设定不太一样,在Windows2000/XP环境中,ARP表项的老化时间是2分钟,95/98以及NT环境下为10分钟,在大部分Cisco交换机中,该值是5分钟,华为的设备一般为20分钟……这些值可以通过系统注册表或设备的某些命令进行设置,具体设置的命令和参数请自行参考相关文档。

ARP表老化时间定时器的重置

       满足以下任一条件时,设备的ARP表项的老化时间定时器会重置:
1,设备相应的ARP表项更新时;
2.,设备调用(引用)ARP表项转发数据后。

如果ARP更新存在问题我们如何解决?

       在实际的环境中,经常遇到某些设备的ARP表项更新速度非常慢,甚至ARP学习存在问题,从而导致我们的网络连接出现异常,我们如何解决?
       解决的方式就是在ARP表学习或更新出现异常的时候,在该设备上手动静态绑定ARP表项。

阅读全文>>

标签: ARP 免费ARP ARP表 ARP表更新 ARP表老化 ARP老化时间 ARP绑定

评论(1) 引用(0) 浏览(31567)

Powered by 易隐者 基于emlog 皖ICP备12002343号-1