题外话:本来想按照互联网的层级自下向上回顾这些协议的,但是今天实在得破个例,DHCP不得不说!
主机从一个网络迁移到另一个网络,那么IP编址的结构就要发生改变,当今主流有如下几种修改方案:
(一)改变地址:
主机在移动到新的网络的时候改变它的地址,这里需要DHCP协议,将其和新的网络关联起来,这么做的话需要我们手动修改可能需要如下的命令
1 sudo vim /etc/network/interface
每次修改若想要使修改之后生成的IP地址生效,大部分情况下需要我们重启主机
1 /etc/init.d/network restart
并且这么做的话DNS表必须要更新,使因特网上的其他主机可以知道其变化
(二)两个地址:
使用两个地址是一种更可行的方法,主机有原始的地址成为归属地址,还有一个临时的地址称为转交地址,前者是永久的,使得它与归属网络永久相关联。
每次当主机发生移动的时候,改变的是临时地址即转交地址,下面重点看这方面的内容。
归属地址和转交地址与之对应的是归属网络和转交网络,归属网络和外地网络之间的桥梁是因特网,而归属网络和因特网之间需要一个归属代理,转交网络和因特网连接需要一个转交代理,所谓的代理就是路由器,但是代理的功能是在应用层完成的,所以两个代理更强调的是作为主机的功能。
当主机在移动到一个外地的网络的时候,外地的网络就需要动态地给加入的主机分配一个IP地址,这个IP地址的分配过程就是DHCP完成的,(当外地主机充当外地代理的时候,这个转交地址就成为同址转交地址,使用同址转交地址的主机可以移动到任何的网络,不必担心代理的可用性)。
关于与远程主机的通信过程,移动主机需要经过三个过程:代理发现,登记和传送数据:
1.代理发现
##移动主机在外地网络进行代理发现的基础条件是已知归属代理地址##
代理发现的过程主要分为两个阶段:
a.代理通告
发送一个ICMP报文(类型值16:用户信息应答)报文中数据是转交地址,只有外地代理才能使用这个字段。
代码位含义:
0 需要登记,没有同址转交地址
1 代理忙,现在不接受登记
2 代理充当归属代理
3 代理充当外地代理
4 代理使用最小的封装
5 代理使用通用路由选择封装
6 代理支持首部压缩
7 Reserved
b.代理询问
发送一个ICMP询问报文,在当移动主机已经移动到了新的网络而没有收到代理通告的时候,它可以发起一个代理询问,让代理知道它需要帮助。
2.登记
移动主机移动到外地网络之后,并且已经发现了外地代理之后,必须登记。登记的四个要素如下:
a.移动主机必须向外地主机进行代理
b.移动主机必须向它的归属代理登记,这通常是由外地代理以移动主机的身份来完成的。
c.如果截至期到了,那么移动主机必须重新登记
d.如果移动主机回到了归属网络,那么必须取消登记
登记的过程之中需要使用登记请求和登记回答,这些信息是封装在UDP协议报中的,代理处理登记请求和回答使用知名端口434,移动主机使用任意临时端口。
报文内容中需要指明归属地址,归属代理地址,转交地址和标识(用于使请求和回应相互匹配)
3.数据传送
进行数据传送的过程时已经搭建了移动IP的通讯环境,通讯过程分为大致两种 :
a.当远程地址向移动地址发送信息时,源地址是远程主机本身的地址,目的地址是移动主机的归属地址,总之就是认为移动主机在归属网络中。实质上呢,是归属代理使用ARP代理技术使用归属物理地址从而在链路层上接收了数据帧分组,然后再将分组转发给移动主机所在的外地网络。
b.从移动主机向远程主机发送信息时,它就像正常的情况一样进行发送,移动主机分片后将分组发送给归属地址,用远程主机的地址作为目的地址。
(三)关于DHCP协议:
绝大多数情况下来讲,对于一台主机四种信息是必要的:
(1)IP address
(2)subnet mask
(3)gateway IP
(4)DNS IP
同样作为IP地址分配/回馈协议的有RARP和BOOTP,不同的是DHCP的出现更为了符合将以上4个必要的信息动态分配(与BOOTP不同,BOOTP为查表静态)的协议。
DHCP客户和DHCP服务器可以处于同一个网络上,也可以处于不同的网络之中,当客户和服务器放在了同一个网络中的时候,会进行如下的操作:
(1)DHCP服务器在UDP端口67发出被动打开命令,等待客户请求。
(2)客户端在UDP68号端口发出主动打开命令,这个报文自然被装入UDP报文的首部之中,再使用IP地址进行封装,这里的IP地址源端IP为0,目的地址-1(受限广播,只在本地网络传播)
(3)服务器使用广播或者单播来响应这个客户,它使用了UDP源端口67和目的端口68,这里回复的过程之中就可以使用IP地址拉,也不需要ARP解析地址。
当DHCP客户和DHCP服务器处于不同的网络之中的时候,会进行如下的操作:
(1)服务器端和客户端进行的操作之前是一样的,但是因为受限广播,没有路由器会接收该IP数据报。
(2)在网络中设置一台主机作为中继代理,中继代理知道DHCP服务器的单播IP地址,然后DHCP服务器和中继代理在应用层完成通讯,中继代理再把它转达给DHCP客户。
通过DHCP报文的格式我们可以注意到DHCP的差错控制和对类型细致的分类。
DHCP服务器分配IP过程分为两种:静态分配和动态分配
静态分配:通过访问DHCP服务器中的表来进行查询与DHCP客户相对应的永久IP地址
动态分配:通过数据库实现IP地址池,当接收请求的时候动态分配一个IP地址,时间长短可以协商。