Linux网络命令:用于显示和管理ARP(地址解析协议)缓存,即邻居表的命令ip neigh 详细介绍

目录

一、概述

 二、基本功能和用法

1、基本功能

2、基本语法

3、常用选项

4、获取帮助

三、常见用法

1. 显示ARP缓存

2. 添加ARP条目

3. 删除ARP条目

4. 清空ARP缓存

四、条目状态

五、使用示例

 1. 显示所有邻居表项

 2. 显示特定 IP 地址的邻居表项

 3. 显示特定网络接口的邻居表项

 4. 添加一个新的邻居表项

 5. 替换现有的邻居表项

 6. 删除一个邻居表项

 7. 清空所有邻居表项

六、其他事项


一、概述

        在Linux系统下,ip neigh命令是iproute2软件包中的一个工具,用于显示和管理ARP(地址解析协议)缓存,也就是邻居表。ARP缓存存储了局域网内IP地址与物理地址(MAC地址)之间的映射关系,这对于网络通信至关重要。

       这个命令提供了比传统的 arp 命令更多的功能和灵活性。通过 ip neigh 命令,可以查看、添加、删除和修改邻居表项,这对于网络管理和故障排除非常有用。

        若有兴趣可以参考以前的一篇文章:《Linux网络命令:系统中用于显示和操作 ARP缓存表的命令arp详解》。

 二、基本功能和用法

1、基本功能

        ip neigh命令的主要功能是显示ARP缓存中的条目,以及允许用户添加、删除或修改这些条目。这对于网络故障排除、性能优化以及确保网络安全都非常重要。

2、基本语法

ip neigh [命令选项] [目标地址]

3、常用选项

- show:显示邻居表项。

- add:添加一个新的邻居表项。

- replace:替换现有的邻居表项。

- delete:删除一个邻居表项。

- flush:清空邻居表项。

- -statistics:显示统计信息。

- -dev:指定网络接口。

- -n 或 --numeric:以数字形式显示 IP 地址,不进行域名解析。

- -to:指定目标地址。

4、获取帮助

可以通过如下命令获取帮助:

        ip neigh help

实际操作如下:

帮助信息

三、常见用法

1. 显示ARP缓存

         ip neigh show 或 ip neigh:显示当前ARP缓存中的所有条目。输出将包括IP地址、MAC地址、设备名称(网络接口)、状态等信息。

2. 添加ARP条目

        ip neigh add <IP地址> lladdr <MAC地址> dev <设备名称> [其他选项]:向ARP缓存中添加一个新的条目。其中,<IP地址>和<MAC地址>分别指定要添加的IP地址和对应的MAC地址,<设备名称>指定网络接口名称。[其他选项]可以包括设置条目的状态(如nud permanent表示永久有效)。

3. 删除ARP条目

        ip neigh del <IP地址> dev <设备名称>:从ARP缓存中删除指定的条目。需要指定要删除的IP地址和网络接口名称。

4. 清空ARP缓存

        ip neigh flush [dev <设备名称>] [all]:清空ARP缓存中的所有条目。如果指定了dev <设备名称>,则只清空该设备上的ARP缓存;如果指定了all,则清空所有设备上的ARP缓存。

四、条目状态

        ARP缓存中的条目具有不同的状态,这些状态反映了条目的当前情况和可用性。常见的状态包括:

- NUD_NONE:初始状态,表示条目刚刚被创建,但尚未进行任何验证。

- NUD_INCOMPLETE:未完成状态,表示正在尝试解析该条目的MAC地址,但尚未成功。

- NUD_REACHABLE:可达状态,表示该条目是活动的,可以成功通信。

- NUD_STALE:过期状态,表示该条目已过期,但可能仍然有效(取决于网络配置和策略)。

- 其他状态:如NUD_DELAY、NUD_PROBE、NUD_FAILED等,这些状态用于在ARP解析过程中处理各种情况。

五、使用示例

 1. 显示所有邻居表项

        ip neigh show

        输出示例:

192.168.3.105 dev wlp3s0 lladdr d0:ad:08:50:de:b2 STALE

192.168.3.10 dev wlp3s0 lladdr 50:84:92:7d:3e:da DELAY

192.168.3.44 dev wlp3s0 lladdr 2e:d1:8e:27:0d:e0 STALE

192.168.3.51 dev wlp3s0 lladdr 6c:b1:58:db:d0:4b STALE

192.168.3.1 dev wlp3s0 lladdr c0:d1:93:b6:87:c7 STALE

        如下图所示:

ARP表所有项目

 2. 显示特定 IP 地址的邻居表项

        使用如下命令:

        ip neigh show 192.168.1.1

        输出示例:

        192.168.1.1 dev eth0 lladdr 00:1a:2b:3c:4d:5e STALE

 3. 显示特定网络接口的邻居表项

        使用如下命令:

ip neigh show dev eth0

输出示例:

192.168.1.1 dev eth0 lladdr 00:1a:2b:3c:4d:5e STALE

192.168.1.2 dev eth0 lladdr 00:1a:2b:3c:4d:5f REACHABLE

 4. 添加一个新的邻居表项

        使用如下命令:

ip neigh add 192.168.1.3 lladdr 00:1a:2b:3c:4d:60 dev eth0

 5. 替换现有的邻居表项

        使用如下命令:

ip neigh replace 192.168.1.1 lladdr 00:1a:2b:3c:4d:5e dev eth0

 6. 删除一个邻居表项

ip neigh delete 192.168.1.1 dev eth0

 7. 清空所有邻居表项

        使用如下命令:

ip neigh flush all

六、其他事项

1、使用ip neigh命令需要超级用户权限(sudo)。

2、在修改ARP缓存之前,请确保了解相关命令的效果,并在必要时备份相关配置。

3、网络接口:确保指定的网络接口名称正确。

4、状态管理:手动添加的邻居表项可能会被自动更新覆盖,除非将其设置为永久状态。

5、ARP缓存的更改可能会影响网络连接和性能,因此请谨慎操作。

综上所述,ip neigh命令是Linux系统下用于管理和查看ARP缓存的强大工具。通过使用该命令,用户可以轻松地查看网络设备之间的IP地址和MAC地址映射关系,并手动添加、删除或修改这些映射关系以满足网络故障排除、性能优化和安全需求。

通过 ip neigh 命令,可以更灵活地管理和操作邻居缓存表,这对于网络管理和故障排除非常有用。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


猜你喜欢

转载自blog.csdn.net/weixin_70208651/article/details/143442477