DHCP与PXE:IP是怎么来的,又是怎么没的?

栏目: 服务器 · 发布时间: 5年前

如何配置 IP 地址?

那如何配置呢?如果有相关的知识和积累,你可以用命令行自己配置一个地址。可以使用 ifconfig,也

可以使用 ip addr。设置好了以后,用这两个命令,将网卡 up 一下,就可以开始工作了。

使用 net-tools:

$ sudo ifconfig eth1 10.0.0.1/24

$ sudo ifconfig eth1 up

使用 iproute2:

$ sudo ip addr add 10.0.0.1/24 dev eth1

$ sudo ip link set up eth1

你可能会问了,自己配置这个自由度太大了吧,我是不是配置什么都可以?如果配置一个和谁都不搭边

的地址呢?例如,旁边的机器都是 192.168.1.x,我非得配置一个 16.158.23.6,会出现什么现象呢?

不会出现任何现象,就是包发不出去呗。为什么发不出去呢?我来举例说明。

192.168.1.6 就在你这台机器的旁边,甚至是在同一个交换机上,而你把机器的地址设为了

16.158.23.6。在这台机器上,你企图去 ping192.168.1.6,你觉得只要将包发出去,同一个交换机的另

一台机器马上就能收到,对不对?

可是 Linux 系统不是这样的,它没你想得那么智能。你用肉眼看到那台机器就在旁边,它则需要根据自

己的逻辑进行处理。

还记得我们在第二节说过的原则吗?只要是在网络上跑的包,都是完整的,可以有下层没上层,绝对不

可能有上层没下层。

所以,你看着它有自己的源 IP 地址 16.158.23.6,也有目标 IP 地址 192.168.1.6,但是包发不出去,这

是因为 MAC 层还没填。

自己的 MAC 地址自己知道,这个容易。但是目标 MAC 填什么呢?是不是填 192.168.1.6 这台机器的

MAC 地址呢?

当然不是。Linux 首先会判断,要去的这个地址和我是一个网段的吗,或者和我的一个网卡是同一网段

的吗?只有是一个网段的,它才会发送 ARP 请求,获取 MAC 地址。如果发现不是呢?

Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发

送到网关。

如果你配置了网关的话,Linux 会获取网关的 MAC 地址,然后将包发出去。对于 192.168.1.6 这台机器

来讲,虽然路过它家门的这个包,目标 IP 是它,但是无奈 MAC 地址不是它的,所以它的网卡是不会把

包收进去的。

如果没有配置网关呢?那包压根就发不出去。

如果将网关配置为 192.168.1.6 呢?不可能,Linux 不会让你配置成功的,因为网关要和当前的网络至

少一个网卡是同一个网段的,怎么可能 16.158.23.6 的网关是 192.168.1.6 呢?

所以,当你需要手动配置一台机器的网络 IP 时,一定要好好问问你的网络管理员。如果在机房里面,要

去网络管理员那里申请,让他给你分配一段正确的 IP 地址。当然,真正配置的时候,一定不是直接用命

令配置的,而是放在一个配置文件里面。不同系统的配置文件格式不同,但是无非就是 CIDR、子网掩

码、广播地址和网关地址。

动态主机配置协议(DHCP)

原来配置 IP 有这么多门道儿啊。你可能会问了,配置了 IP 之后一般不能变的,配置一个服务端的机器

还可以,但是如果是客户端的机器呢?我抱着一台笔记本电脑在公司里走来走去,或者白天来晚上走,

每次使用都要配置 IP 地址,那可怎么办?还有人事、行政等非技术人员,如果公司所有的电脑都需要 IT

人员配置,肯定忙不过来啊。

因此,我们需要有一个自动配置的协议,也就是称动态主机配置协议(Dynamic Host Configuration

Protocol),简称DHCP。

有了这个协议,网络管理员就轻松多了。他只需要配置一段共享的 IP 地址。每一台新接入的机器都通过

DHCP 协议,来这个共享的 IP 地址里申请,然后自动配置好就可以了。等人走了,或者用完了,还回

去,这样其他的机器也能用。

所以说,如果是数据中心里面的服务器,IP 一旦配置好,基本不会变,这就相当于买房自己装修。

DHCP 的方式就相当于租房。你不用装修,都是帮你配置好的。你暂时用一下,用完退租就可以了。

解析 DHCP 的工作方式

当一台机器新加入一个网络的时候,肯定一脸懵,啥情况都不知道,只知道自己的 MAC 地址。怎么

办?先吼一句,我来啦,有人吗?这时候的沟通基本靠“吼”。这一步,我们称为DHCP Discover。

新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255。广播包封装在

UDP 里面,UDP 封装在 BOOTP 里面。其实 DHCP 是 BOOTP 的增强版,但是如果你去抓包的话,很

可能看到的名称还是 BOOTP 协议。

在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我还没有

IP,谁能给租给我个 IP 地址!

**DHCP 协议主要是用来给客户租用 IP 地址,和房产中介很像,要商谈、签约、续租,广播还不

能“抢单”;

DHCP 协议能给客户推荐“装修队”PXE,能够安装操作系统,这个在云计算领域大有用处**


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言算法速查手册

C语言算法速查手册

程晓旭、耿鲁静、张海、王勇 / 2009-10 / 49.00元

《C语言算法速查手册》用C语言编写了科研和工程中最常用的166个算法,这些算法包括复数运算、多项式的计算、矩阵运算、线性代数方程组的求解、非线性方程与方程组的求解、代数插值法、数值积分法、常微分方程(组)初值问题的求解、拟合与逼近、特殊函数、极值问题、随机数产生与统计描述、查找、排序、数学变换与滤波等。同时结合这些算法列举了将近100个应用实例,对其进行验证和分析。 《C语言算法速查手册》适......一起来看看 《C语言算法速查手册》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试