【网络协议】通信协议综述4

如何配置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

Linux上网络包的传输

Linux首先会判断,要去的地址和我我是一个网段的吗,或者和我的一个网卡是同一网段的吗?只有是一个网段的,它才会发送ARP请求,获取MAC地址。如果发现不说。Linux默认的逻辑是,如果这是一个夸网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关

如果你配置了网关的话,Linux会获取网关的MAC地址,然后将包发出去。对于192.168.1.6来讲,虽然路过它家门的这个包,目标IP是它,但是无奈MAC地址不是它的,所以它的网卡是不会把包收进去的。如果没有配置网关呢?那包压根就发不出去。

如果将网关配置为192.168.1.6呢?这是不可能的,因为网关和当前的网络至少要在同一个网段的。所以,当需要手动配置一台机器的网络IP时,一定要好好问问网络管理员。如果在机房里面,要去网络管理员那里申请,让他给你分配一段正确的IP地址。当然真正配置的时候,一定不说直接用命令配置的,而是放在一个配置文件里面。不同系统的配置文件格式不同,但是无非就是CIDR、子网掩码、广播地址和网关地址。

动态主机配置协议(DHCP)

DHCP(动态主机配置协议/Dynamic Host Configuration Protocol):是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。

解析DHCP的工作方式

  1. DHCP Discover:新来的机器使用IP地址0.0.0.0(其此时并没有IP地址)发送一个广播包,目的IP地址为255.255.255.255。广播包封装了UDP,UDP封装了BOOTP。在这个广播包中一定有MAC地址,不然广播包是发不出去的。
    格式就像这样:
    【网络协议】通信协议综述4_第1张图片
    2.DHCP Offer: DHCP Server根据广播包中的MAC地址,发送一个含有IP地址、服务器IP地址、网关等信息的回应帧。除此之外,服务器还发送了子网掩码和IP地址租用期等信息。
  2. 当有多个DHCP Server的时候,客户机通常会选择最先到达的,然后向网络发送一个DHCP Request广播数据包
  3. 接收到DHCP Request的DHCP Server会发送一个DHCP ACK消息包返回给客户机
  4. 客户机租约达成,广播一下

IP地址的收回和续租

租期到期之后,管理员会将IP收回。如果还要续租的话,客户机会提前和DHCP Server说。

客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP request消息包。客户机接收到该服务器回应的DHCP ACK消息包后,根据包中所提供的新的租期以及其他已经更新的TCP/IP参数,更新自己的配置

预启动执行环境(PXE)

预启动执行环境也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的穷的那个可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE协议大致上结合了DHCP和TFTP,虽然都有在两者上面进行改进。DHCP用于查找合适的引导服务器,TFTP用于下载初始引导程序和附加文件。为了开始一个PXE自检会话,PXE固件广播一个带有明确的PXE选项DHCP DISCOVER包到67/UDP端口。PXE选项是PXE固件有PXE能力的鉴定,但是会被一般的DHCP服务忽略。当固件收到从这样的服务收到的DHCPOFFER包时,它会通过要求提供配置信息来自我配置。

PXE客户端启动的时候,什么都没有。好在DHCP Server除了分配IP地址以外,还可以做一些其他的事情。这里有一个DHCP Server的一个样例配置:

ddns-update-style interim;
ingore client-updates;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
range dynamic-bootp 192.168.1.240 192.168.1.250;
filename "pxelinux.0";
next-server 192.168.1.180;
}

按照上面的原理,默认DHCP Server是需要配置的,无非是我们配置IP的时候所需要的IP地址段、子网掩码、网关地址、租期等。如果想使用PXE,则需要配置next-server,指向PXE服务器的地址,另外要配置初始启动文件filename。

解析PXE的工作过程

  1. 首先,启动PXE客户端。第一步是通过DHCP协议告诉DHCP Server,我刚来什么都没有。DHCP Server便租给它一个IP地址,同时也给它PXE服务器的地址、启动文件pxelinux.0。
  2. PXE客户端知道要去PXE服务器下载这个文件后,就可以初始化机器。于是便开始下载,下载的时候使用的是TFTP协议。所以PXE服务器上,往往还需要有一个TFTP服务器。PXE客户端向TFTP服务器请求下载这个文件
  3. PXE客户端接收到这个文件后,就开始执行这个文件。这个文件会指示PXE客户端,向TFTP服务器请求计算机的配置信息pxelinux.cfg。TFTP服务器会给PXE客户端一个配置文件,里面会说内核在哪里,initramfs在哪里,PXE客户端会请求这些文件
  4. 最后,启动Linux内核。一旦启动了操作系统,以后就啥都好办了【网络协议】通信协议综述4_第2张图片

你可能感兴趣的:(网络协议)