运行命令
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:58:90:23 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3
valid_lft 86325sec preferred_lft 86325sec
inet6 fe80::c389:d404:f40e:a58d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:03:7d:96 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.100/24 brd 192.168.56.255 scope global noprefixroute enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::99fd:7f9f:85e9:f6f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:9a:5a:8d brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:9a:5a:8d brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#
ip addr命令显示了这台机器上所有的网卡。大部分的网卡都会有一个IP地址,但这不是必须的。
命令解析
scope
在IP地址的后面有个scope。
对于enp0s8来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包。
对于lo来讲,是host,说明这张网卡仅仅可以供本机相互通信。
lo全称是 loopback,又称 环回接口,往往会被分配到127.0.0.1这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
MAC地址
在IP地址的上一行是 link/ether 08:00:27:03:7d:96 brd ff:ff:ff:ff:ff:ff,是一个MAC地址,即一个网卡的物理地址,用十六进制6个字节表示。
MAC地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。
MAC地址的通信范围比较小,局限在一个子网里面。例如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的。一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,需要IP地址起作用了。
注:IP是地址,有定位功能;MAC是身份证,无定位功能;
网络设备的状态标识
<BROADCAST,MULTICAST,UP,LOWER_UP>叫做 net_device flags, 网络设备的状态标识。
- BROADCAST表示这个网卡有广播地址,可以发送广播包;
- MULTICAST表示网卡可以发送多播包;
- UP表示网卡处于启动的状态;
- LOWER_UP表示L1是启动的,也即网线插着呢。
- MTU1500表示MAC层最大传输单元MTU为1500,是以太网的默认值。MAC层有MAC的头,以太网规定正文部分不允许超过1500个字节。正文里面有IP的头、TCP的头、HTTP的头。如果放不下,就需要分片来传输。
- qdisc pfifo_fast是什么意思呢?qdisc全称是 queueing discipline(排队规则)。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。
最简单的qdisc是pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。
三个波段(band)的优先级也不相同。band 0的优先级最高,band 2的最低。如果band 0里面有数据包,系统就不会处理band 1里面的数据包,band 1和band 2之间也是一样。
数据包是按照服务类型( Type of Service,TOS)被分配到三个波段(band)里面的。TOS是IP头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。