电脑上不了网,ping 网关一会儿通一会儿断,机房师傅上来先敲了个 arp -a 看缓存。这个 arp 指的是地址解析协议,Address Resolution Protocol,局域网里离不开它。

它到底干什么用

同一局域网里两台机器通信,网络层认的是 IP 地址,实际收发包靠的是网卡的 MAC 地址。ARP 就夹在中间做翻译:我知道你的 IP 是 192.168.1.1,但我需要你的 MAC 地址才能把数据帧发给你。

过程是广播问、单播答:发一个广播帧问全网谁是这个 IP,对应的机器回应自己的 MAC,问答结果记进 ARP 缓存表,下次直接查表不用再问。缓存不是永久保存,Windows 一般几分钟不用就会过期删掉。缓存表里有类型一栏,dynamic 是自动学来的,static 是手工绑定的。不在同一网段的机器 ARP 查不到,数据会先交给网关转发,所以 ARP 只在局域网内起作用。

arp 命令常用三条

arp -a
arp -d
arp -s 192.168.1.1 00-11-22-33-44-55
  • arp -a:列出当前缓存表,IP 和 MAC 的对应关系一目了然
  • arp -d:清空缓存,网络异常时先清一遍再试是常规操作
  • arp -s:手工绑定 IP 和 MAC,把这条记录固定下来,常见于网关防欺骗

注意 arp -s 绑的记录重启后会丢,要长期生效得做成开机脚本,或者干脆在交换机和网关侧做绑定,那是网管的正路。

ARP 出问题的典型表现

局域网里有人伪造 ARP 应答冒充网关,就是常说的 ARP 欺骗,中招后多是上网上到一半频繁掉线、网速忽快忽慢。判断线索是 arp -a 里网关 IP 对应的 MAC 变了,或者多台机器的 MAC 撞了。

防护主要在网络侧:交换机开动态 ARP 检测,网关上做静态绑定,终端装企业版防护软件。个人电脑中了招,先断网,清缓存再杀毒,观察是否复发;公司网络里别自己乱绑,先跟网管打招呼。把 arp是什么意思弄明白之后你会发现,多数时候问题出在内网某台设备上,找网管查比自己瞎折腾快。