熟悉相关网络配置文件
TCP/IP网络基本知识
TCP/IP体系结构
TCP/IP协议包括TCP、IP、UDP、ICMP、SMTP、TFTP等许多协议。TCP/IP模型将协议分成4个层次:网络接口层、网际互连层、传输层(主机到主机)和应用层,TCP/IP体系结构及其与OSI模型的对应关系如下所示。

- 应用层
应用层对应于OSI参考模型的高三层,为用户提供所需要的各种服务,例如,FTP、DNS等。 - 传输层
为应用层实体提供端到端的通信功能,保证数据包的按序传输以及数据的完整性。该层定义了两个主要的协议:面向有连接的传输控制协议(TCP)和面向无连接的用户数据报协议(UDP)。
TCP协议提供的是一种可靠的通过"三次握手"来连接的数据传输服务;而UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务。 - 网际层
主要解决主机到主机的通信路由问题。它注重协议数据包在整个网络上的逻辑传输,赋予主机一个IP地址来完成对主机的寻址。 - 网络接口层
负责监视数据在主机和网络之间的交换,事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层于数据链路层协议,然后与TCP/IP的网络接口层进行连接。地址解析协议(ARP)工作在此层。
TCP/IP基本知识
-
IP地址
目前广泛使用的是IPv4,它由一个32位的二进制数字组成,通常用"点分十进制"表示法写成4个十进制数字,例如,192.168.1.11。ip地址采用两级结构,一部分表示主机所属的网络,另一部分表示主机,网络地址表示主机的网段,同一网段中的所有主机拥有相同的网络地址,网络地址是统一分配的,目的是为了保证为了地址的全球唯一性,主机地址表示某个网段中的一个具体的网络接口,主机地址由各个网络的系统管理员分配。
考虑到不同规模网络的需要,为充分利用ip地址空间和便于管理,IP地址又被分为A、B、C、D、E五类,其中A、B、C三类由InterNIC在全球范围内统一分配,D、E类为特殊地址。IP地址采用高位字节的的高位来标识地址类别,IP地址编码方案和A、B、C类地址格式如下图所示:

-
子网与子网掩码
划分子网是指把主机地址中的一部分借用为网络地址,这样可以把一个较大的网络划分为多个较小的网络,这些较小的网络即为子网,子网是基于一组相关IP地址的逻辑网络。
为了确定网络地址和主机地址就必须借助子网掩码,子网掩码是一个32位地址,其作用是用于屏蔽ip地址的一部分以区分网络地址和主机地址,指明32位ip地址中哪些位为网络地址,哪些位为主机地址。
默认子网掩码:根据传统IP地址类别划分。
- A类地址:255.0.0.0
- B类地址:255.255.0.0
- C类地址:255.255.255.0

-
端口
在internet上,各主机之间通过TCP/IP协议发送和接收数据报,各个数据报根据其目的主机的IP地址来进行互连网络中的路由选择,但是当多个应用程序在同一主机上运行时,目的主机必须通过一组方法来确定应该把接收到的数据报传送给主机中众多同时运行的程序中的哪个程序,这就需要用到端口,按端口号可以分为3大类。
- 公认端口(WellKnownPorts):从0~1023,它们紧密绑定(bindling)于一些服务。通常这些端口的通信明确表明了某种服务的协议。例如,80端口实际上总是HTTP通信。
- 注册端口(RegisteredPorts):从1024~49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。例如,许多系统处理动态端口从1024左右开始
- 动态和/或私有端口(Dynamicand/orPrivatePorts):从49152~65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
-
网关地址
主机的IP地址和子网掩码设置后,同一网段内的主机就可以相互通信了,而处于不同网段的主机则必须通过网关才能进行通信。网关就是一个网络连接到另一个网络的入口地址,在TCP/IP网络中就是一个网络通向其他网络的IP地址。为了实现与不同网段的主机进行通信,必须为主机设置网关地址,它一定是同网段主机或路由器的IP地址。
只有设置好网关的Ip地址,TCP/IP才能实现不同网段之间的相互通信,例如,假设网段A的IP地址范围为192.168.10.1 ~ 192.168.10.254,子网掩码为255.255.255.0;网段BIP地址范围为192.168.10.1~192.168.10.254,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络即使连接在同一台交换机上,TCP/IP也会根据子网掩码判定两个网络中的主机处于不同的网络里,而不能进行TCP/IP通信,只有通过网关才能进行通信。如果网络中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它的网关,再由网关转发到相应的网络。
-
域名
IP地址即使采用点分的十进制标识法也不方便记忆,为了便于使用和记忆,采用了域名管理系统,在ip地址之外,网上的主机还有另一种表示法:域名表示法,它由代表一定意义的英文单词的缩写构成,例如,www.xxx.com。
-
DNS服务器地址
为了能够使用域名,网络中的计算机至少要指定一台DNS服务器来完成域名解析工作。域名解析包括从域名到IP地址映射的正向解析和从IP地址到域名映射的反向解析。
DNS采用层次化的分布式数据结构,DNS的数据库系统分布在因特网的不同地域的DNS服务器上,每个DNS服务器只负责管辖区域中的主机域名与IP地址的映射表。当用户的浏览器访问域名表示的主机时,它会向指定的DNS服务器查询其映射的IP地址。如果这个DNS服务器没有找到映射记录,它会向上一级DNS服务器去查询,直到最终找到其对应的IP地址,并将IP地址信息返回给发出请求的应用程序。
Linux网络配置文件
在linux中,TCP/IP网络的配置信息是分别存储在不同的配置文件中的,相关配置文件有/etc/sysconfig/network、/etc/hosts、/etc/resolve.conf、/etc/host.conf 及网卡配置文件等文件。
-
/etc/sysconfig/network文件
/etc/sysconfig/network文件主要用于基本的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数,包括主机名、网关等,其文件的内容如下所示:
powershell[root@node1 network-scripts]# cat /etc/sysconfig/network # Created by cloud-init on instance boot automatically, do not edit. # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html # NETWORKING=yes其中:
- NETWORKING------用于设置Linux网络是否运行,取值为yes或者no。
- NETWORKING_IPV6------用于设置是否启用ipv6,取值为yes或者no。
- HOSTNAME------用于设置主机的名称。
- GATEWAY------用于设置网关的IP地址。
此外,该配置文件中常见的还有一下这些:
- GATEWAYDEV------用来设置连接网关的网络设备。
- DOMAINNAME------用于设置本机的域名。
- NISDOMAIN------在有NIS系统的网络中,用来设置NIS域名。
- NTPSERVERARGS------设置网络时间服务器参数。
- FORWARD_IPV4------设置是否开启IPv4的包转发功能。在只有一块网卡时,一般设置为false;若安装了两块网卡,并要开启IP数据包的转发功能,则设置为true。
对于/etc/sysconfig/network文件进行修改之后,应该重启网络服务或注销系统以便使配置文件生效。
-
/etc/hosts文件
/etc/hosts文件是早期Linux实现域名解析的一种方法,该文件中存储IP地址与主机名的静态映射关系,用于本地名称解析,是DNS的前身。利用该文件进行名称解释时,系统回直接读取该文件中的IP地址和主机名称的对应记录。
powershell[root@node1 network-scripts]# cat /etc/hosts 182.61.20.43 node1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 -
/etc/resolve.conf文件
DNS客户端用于指定系统所用的DNS服务器的IP地址,在该文件中除了可以指定DNS服务器之外,还可以设置当前主机所在的域,以及DNS搜索路径等,该文件的默认内容如下所示:
powershell[root@node1 network-scripts]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 100.100.2.136 nameserver 100.100.2.138 search localdomain domain localdomain -
/etc/host.conf文件
用来指定如何进行域名解析,该文件一般包含以下几部分内容:
- order------设置主机名解析的可用方法以及顺序。可用的方法包括hosts(利用/etc/hosts文件进行解析)、bind(利用DNS服务器解析)和NIS(利用网络信息服务器解析)。
- multi------设置是否从/etc/hosts文件中返回主机的多个IP地址,取值为on或off。
- nospoof------设置是否启用对主机名的欺骗保护。取值为on或off,当设置为on时系统会启用对主机名的欺骗保护以提高rlogin、rsh等程序的安全性。
powershell[root@node1 network-scripts]# cat /etc/host.conf multi on -
/etc/services文件
保存网络服务名和它们所使用的协议以及端口号。文件中的每一行对应一种服务,它由4个字段组成,分别表示"协议名称","端口号"、"传输层协议"。Linux系统在运行某些服务时会用到该文件,一般不需要修改该文件的内容。
-
/etc/nsswitch.conf文件
定义了网络数据库文件的搜索顺序,例如,主机名称、用户口令、网络协议等网络。要设置名称解析的先后顺序,可利用该文件中的hosts选项来定制,其默认解析顺序为hosts文件,DNS服务器。
-
cat /etc/sysconfig/network-scripts/ifcfg-ethN文件
网卡配置文件保存着网卡设备名称、IP地址、子网掩码、网关等配置信息,每一块网卡对应一个配置文件,配置文件都位于目录"/etc/sysconfig/network-scripts/"中,文件名以"ifcfg"开头,后跟网卡类型(通常使用的以太网卡用"eth"表示)加网卡的序号(序号从0开始)。即系统中以太网卡的配置文件名为"ifcfg-ethN",其中的"N"是从0开始的整数,例如,"ifcfg-eth0"表示系统中第一块以太网卡的配置文件,"ifcfg-eht1"表示第二块以太网卡的配置文件,以此类推。如果相关修改某个网卡的配置就可以在该文件中进行修改,修改完成之后记得必须重启网卡(执行"service network restart"命令)或重启计算机才能使设置生效。然后可以通过执行命令"ip addr"查看修改是否生效。
Linux系统支持在一块物理网卡上绑定多个IP地址,需要再建立多个网卡配置文件其文件名的形式为"ifcfg-ethN:M",其中N和M都是从0开始的数字,与上面说明的一样N代表网卡的序号,M代表虚拟网卡序号,如第一块网卡etho的第一个虚拟网卡(设备名为eth0:0)的配置文件名为"ifcfg-eth0:0",第二个虚拟网卡(设备名为ifcfg-eth0:1)的配置文件名为"ifcfg-eth0:1", Linux 最多支持255个IP别名,对应的配置文件可以通过复制ifcfg-eth0配置文件,并修改其配置内容来获得所有网卡的配置文件都有类似的格式,配置文件中每行进行一项内容设置,左边为项目名称,中间为"一"表示赋值,右边为项目的设置值。配置文件格式如下:
powershell[root@node1 network-scripts]# cat ifcfg-eth0 # Created by cloud-init on instance boot automatically, do not edit. # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html # BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet USERCTL=no [root@node1 network-scripts]# cat ifcfg-eth0:1 BOOTPROTO=static DEVICE=eth0:1 IPADDR=8.134.111.98 PREFIX=32 TYPE=Ethernet USERCTL=no ONBOOT=yes其中:
- DEVICE------表示当前网卡设备的设备名称。
- HWADDR------该网卡的硬件地址(MAC地址)。
- TYPE------该网络设备的类型。
- ONBOOT------设备系统启动时是否启动该设备,取值为yes或no。
- BOOTPROTO------获取IP设置的发送,取值为static、bootp或dhcp。
如果在采用静态IP方式中,还有以下这些项目:
- IPADDR------该网络设备的IP地址。
- BROADCAST------广播地址。
- NETMASK------该网络设备的子网掩码。
- NETWORK------该网络设备所处的网络地址。
- GATEWAY------网卡的网关地址。
网络基本配置命令
在了解了网络相关配置文件之后,接下来进行网络相关配置,linux网络配置的方式有以下三种:
- CLI命令行方式。在字符界面下,通过执行有关网络配置命令实现对网络的配置,此方式只是临时生效,系统或网络服务重启后便失效。
- GUI图形方式。通过窗口填写网络配置参数。
- 修改网络配置文件方式。使用vi编译器直接修改网络配置文件或通过setup等工具间接修改网络配置文件,此种方式需要系统或网络服务重启后才能生效,且长期保存、生效。
熟悉网络测试命令
-
ping命令
ping命令是最常用的额网络诊断命令之一,它是通过向目标主机发送一个个数据包以及接收数据包的回响来判断主机和目标主机之间网络连接情况。ping命令提供两种基本服务功能:一个是用来确定网络上远程目标主机是否可达,测试系统之间连通性问题;另一个是提供基本的网络性能统计数据,该数据可用于诊断与通信量相关的网络问题。ping命令的基本格式如下:
powershellping [选项] 目标主机名或IP地址常用选项及含义如下:
powershell-4 只使用 IPv4 -6 只使用 IPv6 -A 探测包发送间隔自适应往返时间,这样网络中存在的未应答的探测请求一般不会超过一个 -a 每次发送数据时发出鸣响(Audible) -B 不允许 ping 改变包头的源地址 -b 允许 ping 一个广播地址 -c COUNT 发送 count 个 ECHO_REQUEST 数据包后结束 ping 程序 -D 在每行前打印时间戳 -d 使用 socket 的 SO_DEBUG 选项。实际上,Linux 内核不使用这个套接字选项 -F FLOW_LABEL 仅 IPv6 有效。为请求包分配一个 20 比特的 flow label。如果 FLOW_LABEL 为 0,内核会随机分配 -f 采用洪泛模式大量且快速地向目标发送数据包。如果发送间隔没有设置,则默认设置为 0,并按照报文接受的速度和一百次每秒的速度来发送报文(以最快的为准)。只有超级用户能够将此选项和 -i 0 选项一起使用 -h 显示帮助信息 -I INTERFACE 使用指定的网络接口地址发送数据包 -i INTERVAL 每隔 INTERVAL 秒发送一次数据包,默认一秒 ping 一次。只有超级用户可以将间隔设置为小于0.2 秒的值 -L 抑制组播报文回送,只适用于 ping 的目标为一个组播地址 -l PRELOAD 在没有接受到回复报文之前能发送的最多报文。非超级用户最多只能设置为 3 -M PMTUDISC_OPT 选择 Path MTU Discovery 策略模式。PMTUDISC_OPT 取值可以为 do(不允许分段,甚至不允许在本地分段)、want(找出 PMTU,在如果包太大就在本地分段) 或 dont(不要设置 IP 包首部中的 DF 位,即允许分段) -m MARK 使用标记来标记发送的数据包 -n 只输出主机 IP 地址,不通过查询 DNS 获知 IP 地址对应的主机名,以节省时间 -O 在发送下一个数据包之前报告未完成的 ICMP Echo 请求 -p PATTERN 最多指定 16 个字节去填充发送的数据包,这对于诊断网络中数据依赖问题很有用。例如,-p ff 会将所有的填充数据设置为 1 -Q TOS 用来设置服务质量(Quality of Service )。ICMP 协议有一个 8 bits 的区分服务(Differentiated Services)。低两位用于分离数据,高 6 位表示区分服务,一般有最小时延、最大吞吐量、最高可靠性、最小代价 -q 静态输出。仅程序启动和结束时显示摘要行 -R 记录路由过程 -r 忽略正常的路由表,而直接向主机发送数据包。如果目标主机不再直连的网络上,则返回异常 -S SNDBUF 设置套接字的发送缓冲区大小。如果没有设置,则被设定为不超过一个报文长度 -s PACKETSIZE 指定要发送的数据的字节数。默认是 56 字节,与 8 字节的 ICMP 头部结合刚好是 64 字节的 ICMP 数据包 -T TIMESTAMP_OPTION 设置 IP 报文的时间戳选项。选项可以是以下三种: (1)-T tsonly 只记录时间戳; (2)-T tsandaddr 收集时间戳和 IP 地址; (3)-T tsprespec [host1 [host2 [host3[host4]]]] 收集来自预定的网络地址的时间戳 -t TTL 设置 IP 包的 TTL 值 -U 打印完整的用户对用户延迟 -V 显示版本信息并退出 -v 详细模式输出 -W TIMEOUT 设置等待 ICMP 响应的超时时间,单位秒 -w DEADLINE ping 程序在 DEADLINE 秒后退出,不管发送或接收多少数据包 -
traceroute命令
traceroute 命令的功能就是跟踪从当前主机到目标主机沿途所经过的网络结点,并显示这些中间结点的IP地址和响应时间。该命令跟踪本地与远程主机之间UDP 数据报,并根据接收到的回应信息判断网络故障可能的位置。
traceroute命令向目标主机发送UDP数据报,并为数据报设置一个较小的TTL值,路由器收到数据报时会将TTL减1。当TTL为0时,路由器会将数据报丢弃,并向源主机发送一个ICMP消息。如果路由器在5s内没有回应,则显示为"*"号,表示该路由器在规定的时间内没有响应对它的探测,这样就可以根据返回信息判断网络故障可能发生的位置。
格式:
powershelltraceroute [选项] 目标主机名或IP地址 [datasize]常用选项及含义如下
- -p<端口号> ------设置UDP传输协议的端口号,默认值为33434。
- -q------设置TTL测试数目(默认为3)。
- -t------设置检测数据包的TOS数值,即设置测试包的服务类型。
- -n------直接使用IP地址而非主机名称,即不进行IP地址到城名的解释。
- -d------使用Socket 层级的排错调试功能。
- -f------设置第一个检测数据包的存活数值TTL的大小。
- -g------设置来源路由网关,IPv4最多可设置8个。
- -i------使用指定的网络接口来送出数据包。
- -I------使用ICMP回应取代UDP资料信息。
- -m------设置检测数据包的最大存活数值TTI的大小,默认值为30。
- -r------忽略普通的Routing Table,直接将数据包送到远端主机上。
- -s------设置本地主机送出数据包的IP 地址。
- -w------设置等待远端主机回报的时间。
- -x------开启或关闭数据包的正确性检验。
- -data size------设置每次测试包的数据字节长度,默认为40字节。
powershell[root@node1 network-scripts]# traceroute www.baidu.com traceroute to www.baidu.com (183.2.172.177), 30 hops max, 60 byte packets 1 10.231.217.34 (10.231.217.34) 1.129 ms 1.145 ms 1.161 ms 2 11.73.15.9 (11.73.15.9) 0.664 ms 11.73.14.153 (11.73.14.153) 0.665 ms 11.73.15.65 (11.73.15.65) 0.646 ms 3 11.73.41.17 (11.73.41.17) 0.642 ms 11.73.27.225 (11.73.27.225) 0.719 ms 11.73.25.117 (11.73.25.117) 0.793 ms 4 11.73.53.169 (11.73.53.169) 1.041 ms 0.968 ms * 5 11.94.57.217 (11.94.57.217) 1.320 ms 11.94.57.81 (11.94.57.81) 0.933 ms 10.102.62.1 (10.102.62.1) 1.114 ms 6 10.54.220.161 (10.54.220.161) 0.998 ms 11.94.152.245 (11.94.152.245) 1.298 ms 10.54.220.161 (10.54.220.161) 0.945 ms 7 11.94.153.137 (11.94.153.137) 1.208 ms 11.94.155.85 (11.94.155.85) 1.385 ms 11.94.155.121 (11.94.155.121) 1.783 ms 8 * * * 9 14.215.175.241 (14.215.175.241) 2.488 ms * * 10 * * * 11 14.29.117.178 (14.29.117.178) 10.309 ms 14.29.117.170 (14.29.117.170) 10.772 ms 14.29.117.178 (14.29.117.178) 10.250 ms 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * * -
netstat命令
netstat 命令是 network statistics的缩写,其主要用于检测主机的网络配置和状况,用于查看与IP、TCP、UDP和ICMP协议相关的统计数据,可以查看显示网络连接(包括进站和出站)、系统路由表、网络接口状态等,功能非常强大。
格式:
powershellnetstat[选项]netstat命令常用选项及含义如下:
- -r------显示当前主机路由表的信息。
- -a------显示当前主机所开放的所有端口。
- -t------显示TCP传输协议的连接状况。
- -u------显示UDP传输协议的连接状况。
- -i------显示所有网络接口的统计信息表。
- -l------显示所有正处于监听状态的服务和端口。
- -p------显示正在使用端口的服务进程号和服务程序名称。
- -c------持续列出网络状态,监控连接情况。
- -s------显示按协议统计的网络信息,默认显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计信息。
- -n------以数字的方式显示IP地址和端口号。
- -e------显示以太网的统计信息,此选项可以与-a选项组合使用。
powershell[root@node1 network-scripts]# netstat -atn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:31993 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:32379 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:31715 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:36549 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:31111 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30443 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30379 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:33163 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30092 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN- Proto------表示协议的类型,如TCP、UIDP等。
- Recv-Q------由远程主机传送来的数据已经在本地接收缓冲,但还没有recv()的字节数。
- Send-Q------表示对方没有收到的数据或都还没有ACK的字节数。
- Local Address------表示本地地址,默认显示主机名和服务名称,若使用-n选项则显示主机的IP地址及端口号。
- Foreign Address------表示与本机连接的远程主机的地址,默认显示主机名和服务名称,若使用-n选项则显示主机的IP地址及端口号。
- State------表示连接的状态,常见的状态有:LISTEN(表示监听状态,等待接收入站State的请求)、ESTABLISHED(表示本机已经与其他主机建立好连接)、TIME_WAIT(等待足够的时间以确保远程TCP接收到连接中断请求的确认).SYN SENT(尝试发起连接)、SYN RECV(接受发起的连接)等。
-
arp命令
arp命令是地址解析协议Address Resolution Protocol的缩写,用于将某个IP地址解析为对应的MAC地址。在网络通信中,接收方主机的数据链路层通过MAC地址判断数据是否是发送给自己的,从而决定接收还是丢弃该数据帧,因此,为了确保接收方能够正确地接收到数据,发送方需要知道接收方的MAC地址。由于MAC地址比IP地址更难于记忆的十六进制表示方法,通常并不需要记住所有其他主机的MAC地址,而是使用arp协议自动进行MAC地址的解析。
其工作原理是:当一台主机要发送数据时,首先查看本机MAC地址缓存中有没有目标主机的MAC地址,如果有就使用缓存中的结果,如果没有则ARP协议会发出一个广播包,该广播包要求查询目标主机IP地址对应的MAC地址,拥有该IP地址的主机会发出个回应,应答帧中包含目标主机的MAC地址,这样发送方就得到了目标主机的MAC地址。如果目标主机不在本地子网中,则ARP解析到的MAC地址是默认网卡的MAC地址。
使用arp命令可以配置和查看Linux系统的ARP缓存,包括查看arp缓存删除某个缓存条目或者添加新的IP地址和MAC地址的静态映射条目。
格式:
powershellarp [选项]arp命令常用选项及含义如下:
-
-a------以BSD方式显示所有主机。
-
-e------以默认的Linux方式显示所有主机。
-
-d------删除指定的条目。
-
-n------不解析主机名称。
-
-i------指定网络接口,如eth0。
-
-f------从指定的文件读入ARP绑定。
-
-s------添加arp缓存条目。
powershell[root@node1 network-scripts]# arp Address HWtype HWaddress Flags Mask Iface 10.244.1.50 ether 0e:c6:2e:c2:3f:25 C cni0 10.244.1.31 ether c6:65:e4:66:98:1f C cni0 10.244.1.49 ether 42:61:e6:a7:9f:f8 C cni0 10.244.1.26 (incomplete) cni0 10.244.1.25 ether 72:74:94:a6:26:ba C cni0 10.244.1.38 ether da:0c:8a:9a:b7:06 C cni0 10.244.1.37 ether 56:63:b4:ea:d8:38 C cni0 10.244.1.32 ether 96:03:ce:7d:3a:df C cni0 10.244.1.47 ether 76:4e:dd:7b:c9:19 C cni0 10.244.2.0 ether 42:8a:9d:91:0b:88 CM flannel.1 10.244.1.42 (incomplete) cni0 10.244.1.41 ether a6:16:fa:b2:23:4d C cni0 _gateway ether ee:ff:ff:ff:ff:ff C eth0 10.244.1.20 ether 0a:c6:1e:16:ee:87 C cni0 10.244.1.54 ether da:01:71:3f:29:1c C cni0 10.244.1.19 (incomplete) cni0 10.244.1.53 ether 0a:82:67:9b:1f:cf C cni0 10.244.1.30 ether 66:16:ba:c6:aa:37 C cni0 10.244.1.48 ether a2:1d:12:03:8b:25 C cni0 10.244.1.29 (incomplete) cni0 10.244.1.24 ether de:37:15:b0:bb:34 C cni0 10.244.1.36 ether 7a:a8:7c:eb:66:30 C cni0 10.244.1.35 ether f6:aa:86:20:c5:70 C cni0 10.244.1.46 ether c2:4c:ae:2b:84:6f C cni0 10.244.1.45 ether 8e:d5:d9:f7:67:36 C cni0 10.244.1.40 (incomplete) cni0 10.244.0.0 ether f2:0f:0e:66:37:84 CM flannel.1 10.244.1.23 ether 4e:36:8f:27:5b:3e C cni0 10.244.1.18 ether aa:d5:e3:b9:86:02 C cni0 10.244.1.52 ether 56:96:74:9d:0c:08 C cni0 10.244.1.17 (incomplete) cni0 10.244.1.51 ether a6:64:3f:5c:21:57 C cni0 10.244.1.28 (incomplete) cni0 10.244.1.27 (incomplete) cni0 10.244.1.39 ether 9a:dd:66:60:bb:d5 C cni0 10.244.1.34 ether c2:1a:f3:45:0f:80 C cni0 10.244.1.33 ether 92:7f:1d:90:21:21 C cni0 10.244.1.44 (incomplete) cni0 10.244.1.43 ether 8e:67:96:cc:ca:00 C cni0 10.244.1.22 (incomplete) cni0 10.244.1.21 ether 52:92:44:11:a0:d4 C cni0 10.244.1.55 ether 36:08:5e:4c:26:61 C cni0 -
Address------主机名或IP地址,这些主机名或IP地址由应答记录在arp信息中,该地址用来查找ARP表来确定需要的信息是否存在。当该地址显示的是IP地址而不是主机名时,表示该IP地址不能解释到一个主机名或者使用了-n选项。
-
HWtype------表示网络接口的类型,ether表示以太网,ARCnet表示arcnet,PRO表示pronet、AX.25表示ax25以及NET/ROM表示netrom。
-
HWaddress------表示MAC物理地址,以冒号隔开的6个十六进制数表示。
-
Flags Mask------提供ARP的其他信息,关键字有P、M、C等,标记为P的ARP信息表示永久(或静态)的,并且是在ARP协议之外定义的;C标志表示一个普通完成的表项,大多数的表项会出现这个标志;M表示永久(静态)的ARP表项。
-
Iface------指出连接到本地网络的网络接口,该ARP信息实际上是从该接口获得的,大多数系统仅包含一个接口,eth表示以太网,它是以太网硬件设备驱动程序的名字,最后的0指出该接口是系统定义的第一个接口。
-