#d:0:7:f:b:7:4:4:c:c:4:4:3:4:7:9:7:6:2:b:e:6:c:2:4:5:c:5:a:5:7:7#
#4:a:a:d:a:7:7:b:0:a:2:d:c:f:5:f:1:5:e:a:4:3:7:6:b:1:8:a:d:f:c:4#
你晓得如何查看IP地址吗?
当笔试的时侯看到这个问题,笔试者往往会认为走错了卧室:我笔试的是技术岗位啊,怎样问那么简单的问题?
的确,即使没有专业学过计算机的人,只要鼓捣过笔记本,重装过系统,大多也会晓得这个问题的答案:在Windows上是ipconfig,在Linux上是ifconfig。
那你晓得在Linux上还有哪些其他命令可以查看IP地址吗?答案是ipaddr。假如回答不上来这个问题,那你可能没怎样用过Linux。
那你晓得ifconfig和ipaddr的区别吗?
这是一个有关net-tools和iproute2的“历史”故事。想像一下,你登入步入一个被裁切过的特别小的Linux系统中,发觉既没有ifconfig命令,也没有ipaddr命令,你是不是觉得这个系统非但无法用?这个时侯,你可以自行安装net-tools和iproute2这两个工具。其实,大多数时侯这两个命令是系统自带的。
安装好后,我们来运行一下ipaddr。不出意外,应当会输出下边的内容。
#2:8:2:e:b:a:3:b:c:5:a:0:1:1:4:8:2:4:c:b:e:b:8:9:0:a:7:6:7:a:8:a#
这个命令显示了这台机器上所有的网卡。大部份的网卡就会有一个IP地址,其实,这不是必须的。在前面的分享中,我们会碰到没有IP地址的情况。IP地址是一个网卡在网路世界的通信地址,相当于我们现实世界的门牌号码。既然是门牌号码,不能你们都一样,不然都会起冲突。比方说,如果你们都叫六单元1001号,那快件就找不到地方了。所以,有时侯俺们的笔记本弹出网路地址冲突,出现上不去网的情况,多半是IP地址冲突了。
如上输出的结果,10.100.122.2就是一个IP地址。这个地址被「点分隔为四个部份」,每位部份「8个bit」,所以IP地址总共是「32位」。这样形成的IP地址的数目很快就不够用了。由于当时设计IP地址的时侯,哪晓得明天会有如此多的计算机啊!由于不够用,于是就有了IPv6,也就是前面输出结果上面inet6fe80::f816:3eff:fec7:7975/64。这个有128位,如今看来是够了,然而未来的事情谁晓得呢?
原本32位的IP地址就不够,还被分成了5类。如今想想,当时分配地址的时侯,真是太奢华了。
在网路地址中,起码在当时设计的时侯,对于A、B、C类主要分两部份,后面一部份是网路号,旁边一部份是主机号。这挺好理解,你们都是六单元1001号,我是新村A的六单元1001号,而你是新村B的六单元1001号。
下边的表格,详尽地展示了A、B、C三类地址所能包含的主机的数目。这儿面有个难堪的事情,就是C类地址能包含的最大主机数目实在太少了,「只有254个」。当时设计的时侯似乎没想到,如今恐怕一个网咖都不够用吧。而B类地址能包含的最大主机数目又太多了。6万多台机器置于一个网路下边,通常的企业基本达不到这个规模,闲着的地址就是浪费。
无类型域间选路(CIDR)
于是有了一个折中的方法叫作「无类型域间选路」,简称「CIDR」。这些方法打破了原先设计的几类地址的做法,将32位的IP地址一分为二,「前面是网路号,旁边是主机号」。从那里分呢?你若果注意观察的话可以看见,10.100.122.2/24,这个IP地址中有一个斜杠,斜杠旁边有个数字24。这些地址表示方式,就是CIDR。前面24的意思是,32位中,前24位是网路号,后8位是主机号。
伴随着CIDR存在的,一个是「广播地址」,10.100.122.255。假如发送这个地址,所有10.100.122网路上面的机器都可以收到。另一个是子网网段,255.255.255.0。将子网网段和IP地址进行AND估算。上面三个255,转成二补码都是1。1和任何数值取AND,都是原先数值,因此前三个数不变,为10.100.122。前面一个0,转换成二补码是0,0和任何数值取AND,都是0,因此最后一个数变为0,合上去就是10.100.122.0。这就是「网络号」。将子网网段和IP地址「按位估算AND」,就可得到网路号。
公有IP地址和私有IP地址
在日常的工作中,几乎不用界定A类、B类或则C类,所以时间长了,好多人就忘掉了这个分类,而只记得CIDR。并且有一点还是要注意的,就是公有IP地址和私有IP地址。
#b:5:c:b:e:8:f:5:f:5:d:a:b:3:9:3:2:b:1:a:0:e:e:6:6:7:9:a:b:6:e:f#
继续看里面的表格。表格最右列是私有IP地址段。平常我们看见的数据中心里,办公室、家里或中学的IP地址,通常都是私有IP地址段。由于这种地址容许组织内部的IT人员自己管理、自己分配,并且可以重复。为此,你中学的某个私有IP地址段和我中学的可以是一样的。这如同每位新村有自己的楼编号和门钢号,大家新村可以叫6栋,我们新村也叫6栋,没有任何问题。并且一旦出了新村,就须要使用公有IP地址。如同人民路888号,是国家统一分配的,不能两个新村都叫人民路888号。
「公有IP地址有个组织统一分配」,你须要去买。假如你搭建一个网站,给你中学的人使用,让大家中学的IT人员给你一个IP地址就行。并且如果你要做一个类似网易163这样的网站,就须要有公有IP地址,这样全世界的人才能访问。
表格中的192.168.0.x是最常用的私有IP地址。你家里有Wi-Fi,对应都会有一个IP地址。通常你家里地上网设备不会超过256个,所以/24基本就够了。有时侯我们也能看到/16的CIDR,这两种是最常见的,也是最容易理解的。
不须要将十补码转换为二补码32位,还能显著看出192.168.0是网路号,旁边是主机号。而整个网路上面的第一个地址192.168.0.1,常常就是你这个私有网路的出口地址。诸如,你家里的笔记本联接Wi-Fi,Wi-Fi路由器的地址就是192.168.0.1,而192.168.0.255就是广播地址。一旦发送这个地址,整个192.168.0网路上面的所有机器都能收到。并且也不总都是这样的情况。因而,其他情况常常都会很难理解,还容易出错。
举例:一个容易“犯错”的CIDR
我们来看16.158.165.91/22这个CIDR。求一下这个网路的第一个地址、子网网段和广播地址。
你要是上来就写16.158.165.1,那就「大错特错」了。
/22不是8的整数倍,不好办,只能先弄成二补码来看。16.158的部份不会动,它占了前16位。中间的165,变为二补码为10100101。不仅后面的16位,还剩6位。所以,这8位中前6位是网路号,16.158.,而.91是机器号。
第一个地址是16.158..1,即16.158.164.1。子网网段是255.255..0,即255.255.252.0。广播地址为16.158..255,即16.158.167.255。
这五类地址中,还有一类「D类是组播地址」。使用这一类地址,属于某个组的机器都能收到。这有点类似在公司上面你们都加入了一个电邮组。发送短信,加入这个组的都能收到。组播地址在前面述说VXLAN合同的时侯会提及。
讲了如此多,才讲了前面的输出结果中很小的一部份,是不是认为原先并没有真的理解ipaddr呢?我们接着来剖析。
在IP地址的旁边有个「scope」,对于eth0这张网卡来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于lo来讲,是host,说明这张网卡仅仅可以供本机相互通信。
lo全称是「loopback」,又称环回插口,常常会被分配到127.0.0.1这个地址。这个地址用于本机通讯,经过内核处理后直接返回,不会在任何网路中出现。
MAC地址
在IP地址的上一行是link/ether「fa:16:3e:c7:79:75」brdff:ff:ff:ff:ff:ff,这个被称为「MAC地址」,是一个网卡的「物理地址」,用「十六补码」,6个byte表示。
MAC地址是一个很容易让人“误解”的地址。由于MAC地址堪称全局惟一,不会有两个网卡有相同的MAC地址,但是网卡自生产下来,就带着这个地址。好多人听到这儿都会想,既然这样,整个互联网的通讯,全部用MAC地址好了,只要晓得了对方的MAC地址,就可以把信息传过去。
这样其实是不行的。一个网路包要从一个地方传到另一个地方,不仅要有确定的地址,还须要有定位功能。而有门牌号码属性的IP地址,才是有远程定位功能的。
比如,你去北京市网商路599号B楼6层找刘超,你在路上问路,可能被问的人不晓得B楼是那个,而且可以给你指网商路如何去。而且假如你问一个人,你晓得这个身分证号的人在那里吗?可想而知,没有人晓得。
MAC地址更像是「身份证」,是一个惟一的标示。它的惟一性设计是为了组网的时侯,不同的网卡置于一个网路上面的时侯,可以不用害怕冲突。从硬件角度,保证不同的网卡有不同的标示。
「MAC地址是有一定定位功能的,只不过范围极其有限」。你可以按照IP地址,找到北京市网商路599号B楼6层,并且仍然找不到我,你就可以靠吼了,小声喊身分证XXXX的是哪位?我看到了,我都会站上去说,是我啊。并且假如你在北京,四处喊身分证XXXX的是哪位,我不在现场,其实不会回答,由于我在北京不在广州。
所以,「MAC地址的通讯范围比较小,局限在一个子网上面」。比如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的。一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,须要IP地址起作用了。
网路设备的状态标示
解析完了MAC地址,我们再来看
「UP」表示网卡处于「启动」的状态;「BROADCAST」表示这个网卡有「广播地址」,可以发送广播包;MULTICAST表示网卡可以发送多播包;LOWER_UP表示L1是启动的,也即网线插着呢。
「MTU1500」是指哪些意思呢?是哪一层的概念呢?「最大传输单元MTU为1500」,这是以太网的默认值。上一节,我们讲过网路包是层层封装的。「MTU是二层MAC层的概念」。MAC层有MAC的头,以太网规定连MAC头带正文合上去,不容许超过1500个字节。正文上面有IP的头、TCP的头、HTTP的头。假如放不下,就须要分片来传输。
qdiscpfifo_fast是哪些意思呢?qdisc全称是queueingdiscipline,英文叫排队规则。内核假如须要通过某个网路插口发送数据包,它都须要根据为这个插口配置的qdisc(排队规则)把数据包加入队列。
最简单的qdisc是pfifo,它不对步入的数据包做任何的处理,数据包采用先入先出的方法通过队列。pfifo_fast稍为复杂一些,它的队列包括三个波段(band)。在每位波段上面,使用先进先出规则。三个波段(band)的优先级也不相同。band0的优先级最高,band2的最低。假如band0上面有数据包,系统就不会处理band1上面的数据包,band1和band2之间也是一样。数据包是根据「服务类型」(TypeofService,TOS)被分配多三个波段(band)上面的。TOS是IP头上面的一个数组,代表了当前的包是高优先级的,还是低优先级的。
小结
如何样,看上去很简单的一个命令,上面学问很大吧?通过这一节,希望你能记住以下的知识点,之后可都用得上:
01
IT服务管理ITIL
#e:c:c:b:8:5:0:c:6:f:d:7:8:e:9:6:6:3:a:d:3:1:8:1:4:5:b:3:8:5:9:e#
02
华为认证HCIA
#b:c:a:3:7:6:2:a:3:5:0:b:0:6:f:0:8:9:c:8:2:c:b:a:d:e:5:1:3:3:2:f#
03
红帽认证RHCE
#b:c:0:2:5:c:f:f:7:f:7:1:4:b:d:d:c:7:e:b:3:8:d:d:7:9:a:5:e:f:3:1#
为何选择三网教育
#9:b:f:b:d:a:4:0:e:b:3:4:e:e:4:2:4:8:d:e:1:7:5:1:8:2:9:0:f:4:0:5#
01
培训积淀深厚
三网教育创办于2006年,16年耕耘,成果丰硕,已累计为上海及周边城市培养超过10000名高档IT人才,学员遍布上海各种中、外资企业和日本、加拿大、日本、新西兰、韩国、新加坡、以及台湾和香港等国家地区。三网的顾客群体覆盖了政府、金融期货、外资企业、大型央企、高校等行业。
02
专业IT认证培训考试中心
三网教育是一家拥有多家原厂授权的培训中心,目前,我们提供的培训服务涉及华为,思科,红帽,Oracle,谷歌,VMware,IT项目管理、云估算等技术领域,同时也是PROMETRIC授权考试中心、ATAC授权考试中心。
03
师资力量强悍
三网牵手业界顶级的技术厂商,签约多名资深技术专家提供专业IT认证课程,我们拥有HCIE/CCIE/RHCA/OCM讲师,项目经验和讲课经验丰富,旨在于帮助学员和企业有效提高自身竞争力。
04
诸多价值顾客的共同选择
中国邮政、中国网通、中国联通青岛研制中心、华衍水务、博世车辆、怡和交通、苏州水灾测绘研究所、山石网科、富士通、江苏天创、内蒙古神华集团等等。
#e:8:6:4:4:3:5:5:c:9:e:0:f:b:2:f:e:0:8:5:b:3:6:2:4:5:c:b:5:f:7:2#
#c:6:d:8:1:9:4:0:4:6:c:5:e:9:6:b:3:a:9:f:b:0:3:8:4:b:a:a:3:f:3:3#
#7:a:9:e:d:9:1:3:9:f:f:d:a:5:2:6:a:b:5:8:a:2:8:f:1:9:9:7:8:2:a:2#
#c:6:d:8:1:9:4:0:4:6:c:5:e:9:6:b:3:a:9:f:b:0:3:8:4:b:a:a:3:f:3:3#