美文网首页程序员基础知识
计算机网络-2.IP地址(2)

计算机网络-2.IP地址(2)

作者: 封不然 | 来源:发表于2018-08-12 21:21 被阅读22次

IP地址是查找设备的位置的网络通讯地址,那么当我们链接网络的时候会被配置一个IP地址,那么这些IP地址是如何分配给我们的设备的呢?

  • 1.配置IP地址

如何配置一个IP地址呢?在Linux下,我们可以使用ifconfig或ip addr进行配置,设置完成后,相应的启动网卡即可,下面给予个简单的配置的例子

# 使用net-tools(ifconfig命令)
$ sudo ifconfig eth1 10.100.165.3/24
$ sudo ifconfig eth1 up

# 使用iproute2(ip addr 命令)
$ sudo ip addr add 10.100.165.4/24 dev eth2
$ sudo ip link set up eth2

需要注意的是,在配置的时候一定要配置自己网段的,并且是不与别人冲突的。不与别人冲突很容易理解,那么配置自己网段的是怎么一回事呢?例如,自己网段的ip地址都是10.100.165.x,如果配置一个10.110.100.x的,虽然配置不会出现问题,但是实际上是无法使用网络的。

下面咱们分析下为什么无法进行联网,众所周知,只要在网络上跑的包,一定是完整的,可以有下层没有上层,但是不能只有上层,没有下层。在产生网络请求的时候,虽然知道源IP以及目标IP,但是MAC地址是没有填的。在发出请求的时候,Linux会先判断要去的地址和自己是一个网段的吗,或者和我的网卡是统一网段的吗?只有是一个网段的他才会进行ARP请求获取MAC地址,如果发现不是一个网段的,它便不会直接发出去,而是先尝试发送到网关。这里有会产生两种情况,一是设置了网关,Linux会获取网关的MAC地址,然后将包发出去,这就产生了一个尴尬的情况,包内的IP是我的,但是MAC地址却不是我的,那么到时候回来的响应,虽然IP是我的,但是MAC不是我的,我也不会吧包收过来;二是没有设置网关,这种情况包压根就出不去,所以也不需要详细的说明了。

所以当手动配置自己的静态IP的时候,一定要确定是正确的IP地址。当然一般情况下配置的时候,是不需要自己输入命令配置的,是在一个配置文件中,可能是配置格式不同,但是无非也就是CIDR/网关/子网掩码等。

  • 2.DHCP

从上面知道,配置一个IP并不是那么简单的随随便便的事,那么如果我电脑关机,每次都需要找公司IT确定一个可用的ip,估计这样的话,公司的IT会被累死。因此我们需要一个自动配置的协议,可以自动的把可用IP地址分配给设备,这就是DHCP。

有了这个协议之后,网络管理员就可以通过设置一段共享的IP地址,自动的分配个每一个接入到网络中的设备。每一台机器进入网络都去这里申请,用完了就还回去给其他机器用,循环往复。可以类比租房,DHCP就是大房东,接入的客户端就相当于租客,暂时用一下,用完换回去就行。

  • 3.DHCP 的工作方式

当一台新的设备加入网络中时,第一步必须进行的是DHCP Discover,简单的说就是,“新人来了,大喊一声,我是新人,我的身份证是这个,我还没有位置,请帮我分配一个位置”。计算机处理过程就是,新设备使用0.0.0.0地址发送一个目标地址为255.255.255.255的广播包,其中广播包封装在UDP中,UDP封装在BOOTP中。

第二步广播包提交到了DHCP Server中,“他看了眼这个新来的人的身份证,发现是个新人,就给他找了个地方坐下,并给新人记录了签到信息”。计算机处理的过程就是,DHCP Server获取包中的MAC地址信息,对比自己缓存中的信息,发现这个设备还没有对应的IP,便租用给设备一个临时IP,这个过程叫DHCP Offer,同时DHCP Server将这个MAC对应的IP进行存储,保证不会将这个IP分配个其他设备。注意,当网络中有多个DHCP Server的时候,设备会取其中一个Server给的信息,并告诉所有Server它接受的是那个Server的Offer的IP地址,告诉其他Server 撤销他们的分配。

第三步,DHCP Server最后确认,当Server收到设备发来的DHCP request后,发送DHCP ACK消息包,表明已经接收到了设备的选择和确认,将IP的租用信息以及其他的配置信息发送个设备,达成最后,确认加入到局域网,并且广播以下,让局域网内其他设备都知道新加入了一台设备。注意,在DHCP Server没有做左后确认的时候,设备的IP地址还是0.0.0.0,以目标地址为255.255.255.255进行广播着。

    1. IP地址的回收和续租

DHCP为一台设备分配IP是有租期的,如果租期到了就会将这个IP进行回收。那么会产生两种情况,一种是不用了,另一种是还需要接着用。

不用了的情况,这种处理很简单,收回就收回去了。那当还要接着用的时候,该如何告知DHCP Server这个IP地址还需要继续的租用呢?实际上,设备会在租期过去50%的时候,自动向DHCP Server发送消息包,然后Server会回应DHCP ACK消息报,设备通过包中提供的新租期一起新的一些TCP/IP的参数更新自己的配置,就可以完成续租了。

  • 5.介绍个有意思的东西

这个有意思的东西叫做 预启动执行环境(PXE),可以实现的是当一台空机设备加入网络的时候,就自动给设备安装系统,这件事看起来还是挺有难度的,不止要分配一个IP,还要给装一个操作系统。

如果有兴趣的同学可以去了解下,下面是几个别人写的相关博客。
https://zh.wikipedia.org/wiki/%E9%A2%84%E5%90%AF%E5%8A%A8%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83

https://blog.csdn.net/nirendao/article/details/76012939

https://linux.cn/article-4902-1.html

总结下:
1.DHCP协议 可以自动给 新入网的设备分配一个IP地址
2.IP地址可以自己配置
3.一个有意思的 PXE 协议,在云计算领域有很大的用途

相关文章

  • 计算机网络-2.IP地址(2)

    IP地址是查找设备的位置的网络通讯地址,那么当我们链接网络的时候会被配置一个IP地址,那么这些IP地址是如何分配给...

  • 2.IP地址详解

    一、IP地址和MAC地址 1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或...

  • 计算机网络-2.IP地址(1)

    说起IP地址,大家应该都不陌生,由于网络的普及,咱们在很多地方都可以听到这个名词。那么IP地址是什么呢?该怎么查询...

  • Java网络编程 - 01 网络编程的基础知识

    1.TCP/IP参考模型 OSI(Open System Interconnection)参考模型 2.IP地址 ...

  • 手机ip地址

    1.ip地址 .h .m 2.ip配置文件 .h .m 文件结构: 参考:https://www.jianshu....

  • 从 URL 输入到页面展现发生了什么

    1.浏览器获取URL,通过DNS服务把URL转换成IP地址 2.IP地址对应的webserver获取请求,将请求转...

  • 网络基础

    1.OSI,TCP/IP,五层协议的体系结构,以及各层协议 2.IP地址的分类 3.ARP是地址解析协议,简单语言...

  • IP、子网掩码

    1.地址 用来标记地点的 2.IP地址 用来在网路中标记一台电脑的一串数字 3.IP地址的分类 每一个IP地址包括...

  • 计算机基础

    1 .数据库主要模型 层次模型 网状模型 关系模型 2.IP设置->网络地址 主机的 IP 设置为 192.168...

  • 网络编程

    01 网络编程的三要素 1.协议:能够保证数据传输通畅 2.IP地址:定义到网络中的某个终端设备 3.端口:定位到...

网友评论

    本文标题:计算机网络-2.IP地址(2)

    本文链接:https://www.haomeiwen.com/subject/hzhebftx.html