看清ARP 排除网络故障技巧

我也发现这个问题所以,找了这篇arp导致网卡经常上不了网的问题
最近,我单位碰到一个非常奇怪的问题,一台P4品牌电脑,内置英特尔网卡,一直以来用得挺好,浏览因特网,内网的通信都很正常。突然有一天,发现这台计算机在浏览因特网时时通时断,ping因特网上的地址时,也是通一下,断一下,但ping内网时什么问题也没有,和内网的通信也非常正常,就是和因特网通信时有这种现象,非常令人费解。这台电脑的IP地址为192.168.24.55,防火墙的IP地址为192.168.24.7。

  故障分析:检查物理链路

  我单位所有访问因特网的电脑都是通过Netscreen NS25防火墙来连接的,如果说是防火墙的问题,那其他的电脑访问因特网都挺正常,没有时通时断的现象。根据这台电脑ping的现象来看,问题似乎应该在下三层,而时通时断的现象好像是典型的物理层的问题,那么首先开始检查链路。

  这台电脑接在一台Cisco三层交换机的某一个端口上,防火墙也接在这台三层交换机上,在三层交换机上启用了路由,配置上肯定没有问题。先检查电脑到交换机的网线,如果说这根网线有问题,那么这台电脑与内网的通信也应该有问题,通过对这根网线的测试证实没有问题。防火墙到交换机的跳线就更应该没有问题了,因为其他的电脑都没有问题。由此可以判断链路是没有问题的,网卡会有问题吗?肯定也不会,因为它跟内网的通信是正常的,所以网卡肯定也没有问题。那么就可以排除物理层的问题了。

  故障分析:模拟数据通信

  再看网络层,这台电脑能够访问因特网,只不过有丢包而已,似乎网络层也不应该有问题,那么所有问题似乎就集中在数据链路层了。数据链路层的问题会是哪里呢?思考了几天,毫无头绪,最后只好仔细地想一想网络通信的过程,看能不能找到问题。

  假设这台电脑有一个数据包需要发送到因特网,那么首先它会检查目的地址与本机地址是否在一个网络中,如果不在一个网络中,就会将数据包发送给默认网关。本案例中目的IP为因特网地址,肯定不在一个网络中,所以数据包会发送给默认网关。在这里默认网关为那台Cisco三层交换机,IP地址为192.168.24.10。这时192.168.24.55这台电脑会检查本机的ARP表,查找192.168.24.10所对应的MAC地址,如果在ARP表中没有发现相应的ARP表项,它就会发送一个ARP请求包,并将它发送给网络中的所有设备来获得192.168.24.10的MAC地址。由于ARP请求包是以广播方式发送的,网络中的所有设备都会接收到这个包,然后传送给网络层检验。

  当Cisco三层交换机接收到这个ARP请求时,就会检查本机的IP地址和ARP请求包中的目的IP地址是否相同,如果相同,交换机就会做出ARP应答,将它的MAC地址发送给源,也就是192.168.24.55这台电脑。这台电脑收到ARP应答包后,就会将交换机的IP地址(192.168.24.10)和MAC地址写入ARP表,然后将交换机的MAC地址作为目的MAC地址封装到数据包中,并将数据包发送到交换机。交换机在收到数据包后,就会检查目的IP是否在本网段中,若发现不在本网段中,就会查找路由表,看看有没有到目的IP的路由条目,如果没有,就会将数据包发送给默认路由。在本案例中这台交换机的默认路由是那台IP为192.168.24.7的防火墙。所以交换机就会发送一个ARP广播,以获得防火墙的MAC地址。防火墙做出ARP应答后,交换机就会将防火墙的MAC地址作为目的MAC地址封装到数据包中,数据包就会发送到防火墙,然后防火墙就会又重复上述过程,将数据包发送给因特网上的目的地址。这一切过程都是正常的,没有什么问题。在电脑和交换机的ARP表中都能找到相应的ARP记录,用tracert命令跟踪路由也是正常的。那问题究竟在什么地方呢?看来还得继续分析。

  故障分析:过滤ARP表

  在数据包到达了因特网上的目的地址之后,响应的数据包要返回到这台电脑,那么它也应该重复前面的过程。返回数据包先到达防火墙,在防火墙的ARP表中寻找目的IP地址所对应的MAC地址,如果没有,就会发送ARP请求,得到目的电脑的MAC地址,将电脑的IP地址和MAC地址写入防火墙的ARP表,封装后发送给这台电脑。这一切看起来都是正常的,但为什么会出现时通时断的现象呢?由这台电脑在内网都是正常的现象来判断,在三层交换机上应该是没有问题的,只是在访问因特网时才出现问题,最后决定从防火墙上开始检查。

  Telnet上防火墙,检查防火墙配置,一切正常;检查端口,一切正常;检查路由表,也是一切正常。疑惑中,似乎不知该从哪里下手了。突然间,想起来为了防止内网用户盗用IP地址上网,在防火墙上做了IP地址和MAC地址的绑定!对,检查ARP表。于是输入命令get arp,显示一大串ARP表的信息,竟然全部是IP地址和MAC地址的静态绑定的信息,仅有一条动态的,那是防火墙的下一跳的IP地址和下一跳的MAC地址的信息,就是没有192.168.24.55的ARP表项,难道是ARP表的问题?似乎看到了一线希望!

  于是决定先清除几个静态绑定的ARP表项试试。先用unset arp命令一连清除了6条静态绑定的ARP表项,然后在那台电脑上ping因特网的地址,居然不丢包了!?困扰我几天的问题难道就这样解决了吗?我简直有点不敢相信,又让我的同事在这台电脑上面测试一下,登录QQ,浏览网页,收发邮件……居然一切正常,再也没有原来时通时断的现象了!再Telnet到防火墙上,执行get arp命令一看,192.168.24.55那台电脑的ARP表项赫然在目。看来问题真的解决了!高兴之余坐下来再好好想一想原因吧。

  故障溯源

  这台Netscreen NS 25防火墙最多支持128个ARP表项,如果不进行静态绑定,ARP表项会不断地进行更新,超时的自动会删掉,所以不会出现ARP表项被占满的情况。而如果是静态绑定,那么它永远就不会被清除,永远会占据一个ARP表项,留给动态使用的ARP表项空间就会越来越少,直到全部占满,导致我所碰到的情况。那么既然如此,有朋友会问了,既然都占满了,其他的电脑就会完全不通,为什么会出现时通时断的现象呢?于是我将ARP表项数了一下,静态绑定的刚好达到127个,剩下一个给防火墙的下一跳的地址占用了,注意这个是动态的,当它的更新时间到了之后,就被删掉了,那台电脑就占用了这个表项,于是网络就通了,因为还有其他的电脑在不断地访问因特网,所以192.168.24.55的ARP表项一到达更新时间马上就会被防火墙的下一跳的地址所占用,这时网络就不通了。其实在这时,我单位的所有机器在访问因特网时都会出现时通时断的现象,只不过防火墙的下一跳的地址占用ARP表项的时间长,因特网中断的时间在大家能够忍受的范围内,都没有发觉罢了。因为防火墙的下一跳的地址占用ARP表项的时间长,192.168.24.55的ARP表项写不进ARP表,产生超时,所以它不通的时间就长一些,就出现时通时断的现象了。

(0)

相关推荐

  • 服务器遭受arp欺骗的解决方法 原创

    为了让大家跟我们一样以后免受arp攻击之苦,我们特给大家准备了下面的文章. 1.arp欺骗不论是局域网也好,还是我们的服务器内网也好,其实都是一样的,无外乎ip是内网还是外网的,都可以安装360的arp防火墙,不论是反追踪还是防御都是不错的,之前我们安装了antiarp的防火墙感觉终于被攻击到停止防御.这里并不是说antiarp防火墙不好只是在一些超大规模的攻击,antiarp容易挂掉.大家可以根据需要安装. 2.服务器最好arp绑定下. 复制代码 代码如下: if exist ipconfig

  • 防arp欺骗的批处理(绑定arp)

    复制代码 代码如下: @echo OFF arp -d if %~n0==arp exit if %~n0==Arp exit if %~n0==ARP exit echo 正在获取本机信息..... :IP FOR /f "skip=13 tokens=15 usebackq " %%i in (`ipconfig /all`) do Set IP=%%i && GOTO MAC :MAC echo IP:%IP% FOR /f "skip=13 token

  • ARP实现本机绑定的批处理文件

    @echo off if exist ipconfig.txt del ipconfig.txt ipconfig /all >ipconfig.txt if exist phyaddr.txt del phyaddr.txt find "Physical Address" ipconfig.txt >phyaddr.txt for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M if 

  • ARP本机绑定的bat代码

    复制代码 代码如下: @echo off if exist ipconfig.txt del ipconfig.txt ipconfig /all >ipconfig.txt if exist phyaddr.txt del phyaddr.txt find "Physical Address" ipconfig.txt >phyaddr.txt for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set

  • 看清ARP 排除网络故障技巧

    我也发现这个问题所以,找了这篇arp导致网卡经常上不了网的问题最近,我单位碰到一个非常奇怪的问题,一台P4品牌电脑,内置英特尔网卡,一直以来用得挺好,浏览因特网,内网的通信都很正常.突然有一天,发现这台计算机在浏览因特网时时通时断,ping因特网上的地址时,也是通一下,断一下,但ping内网时什么问题也没有,和内网的通信也非常正常,就是和因特网通信时有这种现象,非常令人费解.这台电脑的IP地址为192.168.24.55,防火墙的IP地址为192.168.24.7. 故障分析:检查物理链路 我单

  • 菜鸟必读之网络故障两例

    最近,笔者在学校网络的维护过程中碰到了两例并不常见的网络故障,但却非常有意思,觉得有必要把它们拿出来供大家参考. 第一例故障:客户机不能即时自动从DHCP服务器上获得它的TCP/IP配置 我们学校的IP地址.DNS和网关都是通过DHCP服务器自动获得的.前段时间,学校领导觉得通过教育城域网上网速度不够快,就决定直接通过电信专线上网,这样一来我就修改了DHCP服务器的DNS设置,并且将DHCP服务器重启.之后有少数几个教师向我反映他们的电脑打不开网页了,但是QQ都能上.排除了病毒.系统的原因后,我

  • 排除路由故障的常见方法

    一 静态路由故障 1. 静态路由和有类别查找 当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由. 使用show ip route查看路由选择表. 使用debug 可以显示某个网络宕掉了. 如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路由失效时装入到路由选择表中.这

  • 改注册表保证顺利关机—排除奇怪故障一例

    笔者是一名计算机机房管理员,机房的计算机使用的是Windows XP系统联网,在实际管理中发现有时计算机不能自动关闭电源,而是停留在"现在可以安全的关闭计算机了"的画面上就不动了,可是我们的机箱都是使用的爱国者月光宝盒,属于ATX电源,从理论上来看应该是能自动关闭的,通过实践最后终于排除了故障,具体过程如下. 首先怀疑是系统中装的软件有时不能自动退出造成的,于是对这些计算机重新使用没有故障的计算机系统安装方法重新进行安装,但是仍然不能解决问题. 其次启动两台计算机,分别是一好一坏,通过

  • 新手看招:避免网络 IP 地址被非法修改

    局域网中各工作站的TCP/IP参数被随意修改后,很容易造成IP地址的冲突,这会给管理工作带来不小的麻烦.那么,有没有办法保护好自己的网络,不让别人非法修改IP地址呢? 其实,很简单,你只要参照下面的步骤,就能轻松避免IP地址被非法修改的麻烦! 注册表设置法 首先,需要将桌面上的"网上邻居"图标隐藏起来,让其他人无法通过"网上邻居"属性窗口,进入到TCP/IP参数设置界面.依次展开注册表编辑窗口中的"HKEY_CURRENT_USER"."

  • Windows XP网络故障修复的步骤

    What actions occur when I click Repair on a network connection in Windows XP and later? A.If you right-click a network connection and select Status, Windows displays information about the connection's speed, duration of connection, and packet activit

  • 排除路由故障

    一 静态路由故障    1. 静态路由和有类别查找    当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由.    使用show ip route查看路由选择表.    使用debug 可以显示某个网络宕掉了.    如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路

  • Ubuntu系统网络故障排查的方法

    一.首先说明的是连不上 wifi 的原因无外乎以下几点 1.网卡问题 2.没有安装网络驱动 3.安装了网络驱动,但是没有加载进内核 4.以上均没问题,那么就是路由器没有接入 internet 了 接下来,一步步排查 二.查看网卡信息 可以使用以下命令查看网卡信息 $ lshw -C network 正常情况至少会显示两个网卡,一个 eth0, 一个 wlan0.运行这个命令,我电脑的情况是: 两个网卡的 description 字段后面都是 unclaim,并且没有 logical name.

  • 有笔记本必看的笔记本电脑充电等使用技巧

    首先,我们询问了一名长期销售笔记本电脑的经销商,得到如下答案: Q:新买来的笔记本电脑,到底需不需要激活? A:需要激活,一两次就够了,每次最好超过10个小时: Q:那么,如何正确充电?有人说每次使用到机器自动关机再充电比较好.有人说,不必刻意去讲究,随时都行. A:这个无所谓了,随时充就行. Q:很多人在使用外接电源时,为了节省电池的损耗,都拔下电池使用.这种做法提倡吗? A:对,提倡如此. 编辑总结:从这名经销商口中我们可以看到,他在每次给消费者指导购机时都提倡:新买的笔记本电脑,要激活电池

  • 买电脑应当看清数字后面的数字!!

    在电脑数字型号的背后其实有着许多不被人注意的秘密,买电脑时商家给你吹CPU是几点几的,可是殊不知,同一频率的背后却有着许多种不同类型的产品,自然它们的价格也不样,DELL换芯事情就是一个很好证明. 本人第一个台式机,神舟新梦1300H...CPU是P4 1.3G,可针脚是423的,属于一个早期的P4产品,在推出的一个月后便被478脚的P4挤下市场.造成今年主板出问题,准备换新主板时发现市面上根本没有支持423脚CPU的主板了.....幸好后来主板修好了,要不然..唉..得大放血..... 接下来

随机推荐