前言

以前知道用ip addr查看系统的ip地址,但却没关注它的输出参数是什么意思,今天就来记录一下部分输出参数的意思,顺便看下有没有其它一些以前没注意的地方。


执行ip addr

ipaddr.png

上面就是我的虚拟机执行ip addr(ip a一样的)的输出结果,先留个印象,下面会介绍。


ip地址/24

以前只注意到ip地址,但是却没注意到ip地址后的/24是什么意思,例如上面的网卡eth0中的192.168.129.133/24。

要知道这个/24有什么用,我们要先了解一下ABC三类地址的局限性
ABC三类地址.jpg
上图中可以看见:

  • 三类地址的最大主机数相差甚远
  • C类地址恐怕容不下一家网吧/公司的电脑,但用B类又会溢出很多。

于是,就有人发明了一种叫作无类型域间选路的方案,简称CIDR,这种方式也是将32位的地址一分为二,前边部分是网络号,后边部分是主机号,可以通过调控两者比例达到更加细粒度的控制。主机号决定了最大的主机数量。

而/24意思即:前24位是网络号,后(32-24=)8位是主机号,也就是类似于C类地址,最大主机数为254。对应的子网掩码是255.255.255.0,ip地址跟子网掩码与(and)运算就可以得出网络号。

/24,24=8*3,所以它的子网掩码就是3个二进制11111111组成的,转成十进制就是255.255.255.0。

如果是/22,它的子网掩码就是2个二进制11111111和(22-16=)6个1,即11111111 11111111 11111100 00000000,转十进制就是子网掩码255.255.252.0。


广播地址

同样是网卡eth0,我们可以看到ip地址后面还有个:brd 192.168.129.255。这个是广播地址,一旦将信息发给192.168.129.255,整个192.168.129.x网络中的所有机器都会收到信息。

scope后参数

将视角换到eth1,可以看到scope global dynamic:

  • global:表示网卡是对外开放的,若是本地通信则是host。
  • dynamic:表示IP会动态获取。

网络设备的状态标识

网卡参数第一行,网卡名称:,这里的xxx就是网络设备的状态标识:

  • UP:表示网卡是启动状态。
  • BROADCAST:表示网卡有广播地址,可以发送广播包。
  • LOWER_UP:表示网卡是启动的,且网线插着。
  • MULTICAST:表示网卡可以发送多播包,也叫组播。

排队规则

可以看到eth0和eth1都有qdisc pfifo_fast这样的参数,qdisc 全称是 queueing discipline,中文叫排队规则。

最简单的qdisc是pfifo,它就是采用先进先出的队列规则。

pfifo_fast则复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。三个波段(band)的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2 之间也是一样。

在IP头里有个字段叫TOS(Type of Service),它就是用来标识包的优先级的。