一:概述
LInux系统中有很多的网络管理命令,比如ip命令。利用网络管理命令我们可以有效的管理网络,当网络出现故障时可以通过这些网络有效的诊断出问题原因。
二:ip命令实现网络管理
首先来说一下net-tools和iproute这两个工具。早先在Linux系统管理员进行网络配置时主要使用net-tools管理工具,包括ifconfig、route等命令。随着Linux的发展,一些Linux发行版本不在使用net=tools这个工具了,而开始使用iprote这个管理工具。iproute2程序的软件包名称叫iprote,包括ip命令。
iproute2是另一个系列的网络配置工具,用户界面比net-tools更加直观,而且很多功能可以用iproute2实现,却无法使用net-tools来实现。使用net-tools这个管理工具须要安装net-tools软件包,在CentOS和Ubuntu中安装的方式如下:
CentOS:yum install net-tools
Ubuntu:qpt install net-tools
如果你想使用ip命令,先了解一下它们的区别,命令net-tools和iproute2如下表所示:
net-tools | iproute2 |
ifconfig -a | ip aadr |
ifconfig enp0s3 dowm | ip link set enp0s3 down |
ifconfig enp0s3 up | ip link set enp0s3 up |
ifconfig enp0s4 192.168.10.14 netmask 255.255.253.0 | ip link set 192.168.10.15/26 dev enp0s4 |
ifconfig enp0s3 mtu 5000 | ip link set enp0s3 mtu 5000 |
arp -a | ip neigh |
arp -v | ip -s negh |
arp -i enp0s3 -d 172.16.0.12 | ip neigh del 172.16.0.10 dev enp0s3 |
netstart | ss |
netstat -g | ip maddr |
通过这个表格,你可以直观地看到在实现一项相同功能时,这两个管理工具的区别。ip命令用于显示和设置网络接口、路由、ARP缓存、网络名称空间等,带替了常规的idconfig命令,并且具有更多的功能。使用Ip命令的格式如下。
格式:ip [选项] 对象 {命令}
ip命令常用的选项和相关说明如下表所示。
选项 | 说明 |
-s | 显示详细信息 |
-h | 输出可读信息 |
-f | 指定协议族,可取值为:inet、inet6、bridge、opx、dnet |
-r | 显示DNS名称 |
ip命令将操作的的目标指定为对象,并指定对象的命令。ip命令的主要对象及说明如下表所示。
对象 | 说明 |
address | 显示IP地址和属性信息并更改 |
link | 查看和管理网络接口的状态 |
maddress | 组播IP地址管理 |
neighbour | 显示和管理相邻的arp表 |
help | 显示每个对象的帮助信息 |
(1)ip命令的address对象显示ip地址和属性信息并进行修改。在这里输入对象示也可以简写,我输入的ip addr命令其实就是ip address命令,可以显示IP地址的详细信息,如下图所示:
(2)ifconfig命令显示IP地址等详细信息的用法。指定ifconfig -a命令同样可以显示IP地址网络掩码、MAC地址等信息信息,如下图所示:
如果想单独看看enp0s3接口的信息,可以直接指定设备的详细信息,如下图所示。通过ip addr show dev enp0s3命令可以显示enp0s3的详细信息,包括IP地址和MAC等详细信息。
通过ifconfig -v enp0s3命令也可以显示设备的详细信息,如下图所示:
address对象的add命令和del命令可以实现添加和删除IP地址的功能。为接口enp0s3指定IP地址,如下图所示:
(3)link对象,它可以显示和管理网络接口状态。ip link show dev enp0s3显示nep0s3的接口状态为UP(开),这里将enp0s3的接口状态由UP(开)更改为DOWN(关)在更改为UP(开),如下图所示:
在net-tools中,使用ifconfig命令显示并指定网络接口的状态。ifconfig nep0s3命令可以显示nep0s3接口的当前状态,指定down和up可以切换设备的状态,如下图所示:
指定link对象的set命令设置mtu的值,如下图所示。mtu是一帧中可以发送数据的最大值的发送单位,将mtu值改为2000.
(4)maddress对象,指定ip命令的maddress对象可以管理组播IP地址。除了一对一通信外,还有很多的通信类型,主要的通信类型如下。
单播:指定单台计算机进行数据通信,通常普通计算机通信都是单播。
组播:通过指定有多个终端组成的组来传输数据的类型,用于视频分发等。组播的地址范围是d类IP地址:224.0.0.0-239.225.255.255。
广播:数据被传送到属于同一网络的所有计算机,广播通常被计算机用来通知网络上其他的计算机自己的存在或进行信息搜索等。
指定 ip maddr命令显示所有的设备信息,如下图所示:
使用maddr对象的add和del命令添加或者删除多播地址,如下图所示,指定enp0s3显示、添加和删除该设备的多播信息:
(5)neighbour对象,指定ip命令的neighbour对象可以显示和管理arp表。ip neigh用于显示arp表,其中主机(IP地址为192.168.0.111)中的STALE表示已经通过地址解析,并且暂未与其他主机通信。通过ping 192.168.0.111,使该主机与网络上的其他主机通信。再次显示arp表,状态已由STALE变为REACHABLE
ip neigh
ping 192.168.0.111
ip neigh
arp
添加和删除arp记录表,执行ip neigh add命令向arp表中添加一条记录;使用ip neigh显示arp表中的已添加新的记录,使用ip neigh del命令可以删除添加的记录。