发新话题
打印

一个关于网络交换数据转发的问题

一个关于网络交换数据转发的问题

问题来源:ARP病毒的讨论
问题的过程:
我们所知道交换机是通过MAC地址与相对的端口做对应表,有机器发出连接请求对应此表来转到相应的端口,而ARP病毒就是伪造错误的MAC地址而上不了网,但后来各种各样的变种已经改变了这种方式,比如一种这样的ARP病毒,比如IP为192.168.0.150的机器中了毒,这时候所有的客户机也是可以上网的,但PING网关时,比如网关的IP是192.168.0.1,PING出来显示的列表中IP会变成192.168.0.150,显示也是通的,但字节从默认的32会变成64,这时候网是通的,但打开IE所有的网页就会弹广告,查看当前网页都被注入了<iframe src=http://xxxxx.xxxx.cn/xxx.htm width=0 height=0></iframe>  类似的代码,会造成部份网页打不开,会下载木马,这时候用ARP-A时,会查看到有几种情况:一个MAC地址对就N个IP,或者一个IP对应有N个MAC地址,还可能会有MAC为0的IP,内网做了基本的绑定,就是客户机绑定了路由,路由也绑定了所有的客户机,这种绑定已经无效,这时候有朋友告诉我要做全绑,就是网内所有的IP与MAC都互相绑定,每台机ARP缓存表都是静态的了,这时候运行这个病毒就无效了。

这里面我们想不明白的是:为什么当初没有绑定所有的机器时,只绑网关与本机MAC地址,这种ARP病毒能攻击成功?按我们理解,交换机收集了MAC地址对应的端口表,收到连接再转发,如果说病毒可以修改那个交换机,告诉交换机IP为1的机器MAC地址是另一个MAC,而且端口在另一个,拼命发这个包,那交换机在接到其他机器请求时是怎么认识到正确的端口的,如果说绑定就不会变,那么开始的只做路由绑定为什么会失败,他也是绑定,也只做了找路由的过程,如果说绑定会变,那我们全绑定,只是加了网内其他的机器,为什么就不会找错,就会找到正确的端口与MAC对应的机器呢?如果有一个中了病毒的机器告诉交换机,我就是1号机,我的MAC也就一号机的MAC,有两个一样的提交,那交换机在全绑的情况下怎么能分出来哪个端口是正确的,而在普通双绑的情况又认识不呢?

这问题困扰我很久了,找到很多地方找不到答案,希望在这里能有高人帮忙指点迷津,谢谢

TOP

o(∩_∩)o...呵呵!!!!~~~

TOP

发新话题