《TCP/IP详解》实验(二)-DHCP中继

目录

  • 《TCP/IP详解》实验(二)-DHCP中继
    • 一。GNS3安装及配置
    • 二。DHCP中继实验
    • 三。抓包分析
    • 四。总结

《TCP/IP详解》实验(二)-DHCP中继

《TCP/IP详解》学习笔记,这次来做DHCP实验,使用GNS3模拟实验,加深了对DHCP的理解,将这个过程记录下来。

一。GNS3安装及配置

GNS3是一款具有图形化界面可以运行在多平台(包括Windows, Linux, and MacOS等)的网络虚拟软件,关于GNS3的安装和配置参照这里。

二。DHCP中继实验

引用一段网上的解释

DHCP 中继原理
1 当dhcp client 启动并进行dhcp 初始化时,它会在本地网络广播配置请求报文。
2 如果本地网络存在dhcp server,则可以直接进行dhcp 配置,不需要dhcp relay。
3 如果本地网络没有dhcp server,则与本地网络相连的具有dhcp relay功能的网络设备收到该广播报文后,将进行适当处理并转发给指定的其它网络上的dhcp server。
4 dhcp server 根据dhcp client 提供的信息进行相应的配置,并通过dhcp relay 将配置信息发送给dhcp client,完成对dhcp client 的动态配置。
事实上,从开始到最终完成配置,需要多个这样的交互过程。
dhcp relay设备修改dhcp消息中的相应字段,把dhcp的广播包改成单播包,并负责在服务器与客户机之间转换。

拓扑图如下所示
《TCP/IP详解》实验(二)-DHCP中继_第1张图片
其中R1为DHCP服务器,R2,R3为中继路由器。
这里简单介绍一下RIP2路由协议,不开启的话,路由间无法通信,也可以采用

RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议,其最大的优点就是简单。RIP协议要求网络中每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。RIP协议将“距离”定义为:从一路由器到直接连接的网络的距离定义为1。从一路由器到非直接连接的网络的距离定义为每经过一个路由器则距离加1。“距离”也称为“跳数”。RIP允许一条路径最多只能包含15个路由器,因此,距离等于16时即为不可达。可见RIP协议只适用于小型互联网。
RIP 2 由 RIP 而来,属于 RIP 协议的补充协议,主要用于扩大装载的有用信息的数量,同时增加其安全性能。RIPv1和RIPv2 都是基于 UDP 的协议。在 RIP2 下,每台主机或路由器通过路由选择进程发送和接受来自 UDP 端口520的数据包。RIP协议默认的路由更新周期是30S。
RIP的特点
(1)仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器之间不交换信息。
(2)路由器交换的信息是当前本路由器所知道的全部信息。即自己的路由表。
(3)按固定时间交换路由信息,如,每隔30秒,然后路由器根据收到的路由信息更新路由表。(也可进行相应配置使其触发更新)

DHCP服务器R1的配置,这里R1开启了DHCP服务,并且使用RIP2路由协议

ena
conf t
int f0/0
ip addr 12.1.1.1 255.255.255.0
no sh
exit
service dhcp
ip dhcp pool lsz1
network 12.1.1.0 255.255.255.0
default-router 12.1.1.1
dns-server 12.1.1.1
lease 0 0 1
ip dhcp excluded-address 12.1.1.1 12.1.1.10
ip dhcp pool lsz2
network 34.1.1.0 255.255.255.0
default-router 34.1.1.1
lease 0 0 1
ip dhcp excluded-address 34.1.1.1 34.1.1.10
router rip
version 2
no auto-summary
network 12.1.1.0
network 23.1.1.0
network 34.1.1.0
network
end
exit

R2配置,设置了两个端口的ip,开启了RIP2

ena
conf t
int f0/0
ip addr 12.1.1.10 255.255.255.0
no sh
exit
int f0/1
ip addr 23.1.1.1 255.255.255.0
no sh
exit
router rip
version 2
no auto-summary
network 12.1.1.0
network 23.1.1.0
network 34.1.1.0
network
end

R3配置,设置了两个端口的ip,开启了RIP2

ena
conf t
int f0/0
ip addr 34.1.1.1 255.255.255.0
ip helper-address 12.1.1.1
no sh
exit
int f0/1
ip addr 23.1.1.10 255.255.255.0
no sh
exit
router rip
version 2
no auto-summary
network 12.1.1.0
network 23.1.1.0
network 34.1.1.0
network
end

在PC上运行
ip dhcp 即可得到自动分配的IP

三。抓包分析

《TCP/IP详解》实验(二)-DHCP中继_第2张图片
这里可以看到整个DHCP服务过程,可以看到dhcp 服务器发送offer前会发送一个ping,检测是否存在地址
在这里插入图片描述
pc到r3的discover报文
《TCP/IP详解》实验(二)-DHCP中继_第3张图片
r3到r2的报文
《TCP/IP详解》实验(二)-DHCP中继_第4张图片
r1到r2的offer报文
《TCP/IP详解》实验(二)-DHCP中继_第5张图片

四。总结

如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。用DHCP Relay代理可以去掉在每个物理的网段都要有DHCP服务器的必要,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机。
下面这段是网上看到的,但这个疑问一直没有解决,希望有大神指导一下。

在这里,能够指导服务器发送正确IP地址给客户端,是因为有一个被称为option 82的选项,这个选项只要DHCP请求数据包被中继后便会自动添加此选项,中继路由器会在里面的giaddr位置写上参数,这个参数,就是告诉服务器,客户端需要哪个网段的IP地址才能正常工作。中继路由器从哪个接口收到客户的DHCP请求,就在option 82的giaddr位置写上该接收接口的IP地址,然后服务器根据giaddr位置上的IP地址,从地址池中选择一个与该IP地址相同网段的地址给客户,如果没有相应地址池,则放弃响应,所以,服务器R1能够正确发送34.1.1.0/24的地址给客户,正是因为R3在由于IP help-address的影响下,将giaddr的参数改成了自己接收接口的地址,即将giaddr参数改成了34.1.1.1

这里一直没有抓到option 82的包,不知道是什么原因。

参考资料:https://blog.51cto.com/3824597/1214836

你可能感兴趣的:(DHCP,TCP/IP详解,学习笔记)