趣谈网络3讲| ifconfig

在 Linux 系统你想查看 ip 地址,你有什么办法呢?
最常用的是 ifconfigip addr
为什么会有两个查看 ip 地址的命令呢?这就要从 net-tools 和 iproute2 的历史故事说起。

net-tools起源于BSD,自2001年起,Linux社区已经对其停止维护,而iproute2旨在取代net-tools,并提供了一些新功能。一些Linux发行版已经停止支持net-tools,只支持iproute2。

net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。

net-tools中工具的名字比较杂乱,而iproute2则相对整齐和直观,基本是ip命令加后面的子命令。

下面运行一下 ip addr,不出意外,应该会出现下面的内容。

在解释上图中的参数之前,先来了解一些 IP地址 的概念

ip 地址是一个网卡再网络世界中的通讯地址,相当于我们现实世界的门牌号码。也就是说没有相同的IP地址。在上图输出的IP地址172.*是一个32位的ip地址,每8位由一个 . 分割。这样设计造成的后果是 ip地址很快就不够用了,因为设计者没有想到计算机会发展如此之快。现在提出了 IPv6,地址长度有128位,这个应该是够用了。

下面看一下ip地址的划分准则:

根据网络号和主机号我们可以得到 A、B、C 三类地址所能包含的主机的数量。

从上图中可以明显看出,C 类地址的最大主机数是 254,现在一个网吧的主机数量可能都不小于254.为了解决这个问题,提出了一个新的划分网络号和主机号的方法。

无类型域间选路(CIDR)
无类型域间选路,简称CIDR。这种方式打破了原来设计的几类地址的做法,将32位的IP地址一分为二,前面是网络号,后面是主机号。这个如何划分呢?从图中的ip地址:172.16.* .* /20可以看到,ip地址后面有一个 /, / 后面跟着20、这种表示形式就是 CIDR。后面20的意思是,32位中ip地址。前20位是网络号,后面12位是主机号。

伴随着 CIDR 存在的,一个是广播地址 172.16.15.* ,如果发送这个地址,所有172.16.* 网络里面的机器都能收到。另一个是子网掩码 255.255.240.0

将子网掩码和 ip 地址进行 AND 操作可以得到网络号。

公有IP地址和私有IP地址
私有IP地址:一般公司和学校的IP地址都是私有地址段。因为这些地址段允许组织内部IT人员自己管理,自己分配
公有IP地址:公有IP地址有一个组织统一分配,需要去买。

现在可以开始分析 ip addr 命令:
IP 地址后面有个scope,对于eht0这个网卡来说,是 global,说明这张网卡是可以对外的,可以接受来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡 仅仅可以供本机相互通信。
lo 全称是 loopback,又称环回接口,往往会被分配127.0.0.1这个地址。这个地址用于本机通信,经过内核处理后,直接返回。

MAC地址
IP 地址的上一行就是 MAC地址用 link/ether 52:54:00:fc:* :* brd ff:ff:ff:ff:ff:ff表示,MAC地址具有全球唯一性。

网络设备标识状态
在图中,有这样的一行标记 <BROADCAST,MULTICAST,UP,LOWER_UP>。这个叫作:net_device flags,网络设备的状态标识。

  • BROADCAST : 表示这个网卡(eth0)有广播地址
  • MULTICAST : 表示网卡可以发送多播包
  • UP : 表示网卡是启动的
  • LOWER_UP : 表示L1是启动的,即网线插着呢

mtu 1500 : 二层MAC帧大小不超过1518. MAC头14字节,尾4字节。以太网的默认值。
MTU 是二层 MAC的概念。MAC层有 MAC 的头,以太网规定除了MAC头和尾,正文不超过1500个字节,正文有IP的头,TCP的头、HTTP的头。如果正文大小超过1500字节,则分片传输。

qdisc pfifo_fast:qdisc 全称是 queueing discipline,中文叫 排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列。最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,采用先来先服务的策略、pfifo_fast比较复杂,网上寻找资料学习。

小结

  • IP地址
  • CDIR
  • IP分公有的IP和私有的IP

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部