锐捷RCNA | ARP协议原理与应用与DHCP协议原理及应用

news2024/12/23 3:19:52

一、ARP协议原理与应用

OSI参考模型将网络划分为7层,IP地址工作在第三层网络层中,MAC地址工作在第二层数据链路层。

在以太网发送IP数据包时,先封装网络层的包头再封装数据链路层的包头,由于在发送时只知道目标IP地址而不知道MAC地址,又不能跨越层,所以需要使用ARP地址解析协议。

ARP协议可以根据网络层IP数据包头中的IP地址信息解析出对应的MAC地址,确保通信。ARP协议不能穿越路由器,不能被转发到其它广播域中

ARP缓存表:用于存储IP地址和经过解析的MAC地址对应关系

1. ARP的工作流程和工作原理

工作流程

在这里插入图片描述

工作原理

  1. 先查看ARP表,如果ARP表中没有目的IP地址对应的MAC表项,则发送ARP请求包
  2. 源主机发送ARP request 请求包,请求目的主机的MAC地址
  3. 同网段内的所有主机都能收到ARP request请求包,但是只有目的主机才会回复ARP reply数据包
  4. 源主机收到 ARP reply 数据包后,将目的主机的 IP-MAC对应关系添加进ARP表中,完成数据的以太网封装【指的是将数据包封装在以太网帧中的过程,帧包含源和目的设备的MAC地址和数据本身】,进行数据交互

在这里插入图片描述

2. ARP缓存表

  • 动态表项
    • 通过ARP协议自动学习,可以被更新,缺省老化时间为120秒
  • 静态表项
    • 手动配置,不能被更新,没有老化时间限制

Windows系统查看ARP表项

arp -a

Linux系统查看ARP表项

arp -v

RGOS查看ARP表项

show arp

2.1 免费ARP

免费ARP,也被称为Gratuitous ARP或无故ARP,是一种特殊的ARP请求报文

  • IP地址冲突检测:免费ARP报文通过广播的方式发送到网络中,如果某台主机使用了当前主机的IP地址,则会回复一个ARP响应;收到ARP响应后,主机会发出IP地址冲突的警告
  • 更新ARP表项:当某台主机的MAC地址变化或IP地址变化,该主机会发送免费的ARP广播,网络中所有主机的ARP表项中如果存在该条目将会根据免费的ARP报文来更新自己的缓存表
  • 免费ARP报文还在一些特定场景中产生,如主机/系统启动期间进行网口/接口配置时,或者网卡进行了某些配置变动导致网口重新启动(如插拔网线、自动获取IP地址、手动更改IP地址、掩码、网关等参数)时

2.2 代理ARP

代理ARP(Proxy ARP)是ARP协议的一个变种

  • 提供网络通信效率和稳定性:在局域网中,当一个主机需要和另一个主机进行通信,它需要知道该主机的MAC地址。如果缓存表中没有对应的MAC地址,主机会发送ARP请求广播;代理ARP能够代替主机完成ARP协议的操作,响应ARP请求,并将主机的IP地址和MAC地址进行映射记录在本地缓存表中。
  • **解决跨网段ARP请求:**出现跨网段的ARP请求时,路由器会将自己的MAC地址返回给发起ARP广播请求的主机,实现MAC地址的代理(善意的欺骗),使主机能够通信。

在这里插入图片描述

  • ARP请求的源IP地址与路由器的IP地址处在同一个子网中,且路由器有ARP请求的IP地址的路由,代理ARP就可以使网络中的主机无需配置默认网关和路由策略,就能实现与其他网络中的计算机通信。
    • 源IP地址与路由器的IP地址处于同一个子网中:发送ARP请求的主机与路由器在同一个网段中,在TCP/IP网络中,处于同一个网段的主机可以直接通信无需经过路由器转发。当主机需要获取目标主机的MAC地址时,会直接在本地子网中发送ARP广播
    • 路由器有ARP请求的IP地址路由:即使发送ARP请求的主机与路由器同一网段,当请求的目标IP地址可能在另一个网段中。这样就需要路由器只能存在通往目标IP地址段的路由条目,这样才可以处理跨网段的通信
    • 也就是说,代理ARP允许路由器代替目标主机响应ARP请求,路由器会告知发送ARP请求的主机,自己知道如何达到目标IP地址,并提供自身的MAC地址作为“下一跳”地址。这样主机可以将数据包发送到路由器,由路由器将数据包根据路由发送到目标网络中。

2.3 RARP反向地址解析协议

  • 用于将物理地址(MAC地址)转换为网络层地址(IP地址)的协议

它主要在以太网上实现,用于网络启动和其他情况下的动态IP地址分配。当一个设备需要知道相应的IP地址时,它会在网络上广播一个RARP请求包,拥有该IP地址的设备会向请求设备返回一个RARP响应包,从而告诉请求设备所需的IP地址。这种机制主要用于实现无盘系统的网络启动,例如某些工作站

二、DHCP协议原理及应用

DHCP动态主机配置协议,应用在大型的局域网环境找。集中管理和分配IP地址,使网络中的主机可以动态获取IP地址、网关、DNS等TCP/IP参数。

1. DHCP服务器配置

在这里插入图片描述

DHCP-Server

DHCP-Server(config)#service dhcp 
DHCP-Server(config)#ip dhcp pool vlan10
DHCP-Server(dhcp-config)#network 192.168.10.0 255.255.255.0
DHCP-Server(dhcp-config)#default-router 192.168.10.254
DHCP-Server(dhcp-config)#dns-server 8.8.8.8
DHCP-Server(dhcp-config)#exit

2. DHCP协议工作过程

在这里插入图片描述
在这里插入图片描述

3. DHCP报文介绍

报文类型用途
DHCP discover客户端广播查找可用服务器
DHCP offer服务器响应DHCP discover报文,分配TCP/IP信息
DHCP request客户端请求配置参数、请求配置确认、续租
DHCP ack服务器确认DHCP request报文
DHCP decline客户端发现地址被占用时,通知服务器
DHCP release客户端释放IP地址告知服务器的报文
DHCP inform客户端已有IP地址,请求更详细配置参数
DHCP nak服务器告知客户端请求不正确或租约过期

3.1 DHCP Discover

DHCP Discover报文为PC通过广播的形式发出的请求报文,主要作用是用来发现DHCP服务器,但PC并不知道DHCP的IP地址,因此目的MAC和目的IP地址都为广播

通过抓取DHCP Discover报文分析

在这里插入图片描述

3.2 DHCP Offer

DHCP Office报文为DHCP服务器返回的第一个报文,当网络中存在多台服务器时,PC只保留最先收到的DHCP Offer。DHCP Offer中包含DHCP服务器可以为PC分配的TCP/IP信息(如IP地址、网关、DNS等)

通过抓取DHCP Offer报文分析

在这里插入图片描述

3.3 DHCP Request

PC发出的第二条请求报文,PC根据DHCP服务器发送的DHCP Offer报文中的信息,发起正式申请

通过抓取DHCP Request报文分析

在这里插入图片描述

3.4 DHCP ACK

DHCP服务器收到PC的请求报文后,从地址池中分配相应的IP地址返回给PC

通过抓取DHCP ACK报文分析

在这里插入图片描述

4. DHCP协议的租约

租约还剩下50%时间

  • 客户端主动先服务器发送DHCP request报文,请求更新租约时间
    • 服务器可用:回复DHCP ack,更新租约
    • 服务器不可用:回复DHCP nak,不更新租约

租约还剩下87.5%时间

  • 客户端主动先服务器发送DHCP request报文,请求更新租约时间
    • 服务器可用:回复DHCP ack,更新租约
    • 服务器不可用:回复DHCP nak,不更新租约

租约时间过期

  • 客户端主动发送DHCP discover报文

5. 常见的DHCP服务部署方式

网关交换机作为DHCP服务器

  • 优点:不需要单独设置一台DHCP服务器
  • 缺点:地址池配置分布在多台网关交换机上,无法集中管理

网关交换机作为DHCP中继,单独架设一台DHCP服务器

  • 优点:集中管理,节约资源
  • 缺点:需要多架设一台服务器
  • 需要保证DHCP中继设备与DHCP服务器之间路由可达

6. DHCP的安全设计

6.1 NP-IP Source Guard – 解决用户使用静态IP地址接入

当用户手动配置IP地址时,DHCP服务无法得知,在DHCP下发地址时,可能会导致IP地址冲突

相关介绍

  • DHCP Snoopingto通过窥探DHCP ACK报文,提取其中的IP地址、MAC地址,形成本地的DHCP Snooping表项,为IP Source Guard模块提供动态的IP Source Guard数据包过滤信息来源;
  • 不符合DHCP Snooping表项的数据包将会被过滤掉,避免了DHCP环境私设IP地址的问题
  • 可以通过手动绑定 ip source guard 静态条目的方式来添加数据包过滤信息来源
  • 手动绑定条目在 IP Source Guard 源数据信息表中以 static 方式存在
  • 手动绑定其实相当于给提供允许私设白名单(即私设的IP地址可以通过静态绑定的方式放行)

端口下配置数据包过滤规则语法

# 前提需要全局开启 Ruijie(config)#ip dhcp snooping 
Ruijie(config)#int gigabitEthernet 0/0							# 进入设定规则的端口
Ruijie(config-if-GigabitEthernet 0/0)#ip verify source ?		# 可选选项
  dai-source     Provide entries for dai						# 提供动态ARP检测,防止ARP欺骗攻击
  exclude-vlan   IP source guard exclude vlan					# 指定例外VLAN,该VLAN不受限制
  port-security  Check both IP and MAC information				# 基于IP+MAC进行检查
  trust          Set the interface to be an ipsg trust port		# 该接口不接受检查
  <cr>           												# 直接回车,检查规则为IP-Only,只对IP检

IP Source Guard源数据-静态添加

# 一共有三种方式静态添加,需要注意的是,在静态添加完后,需要在接口下也开启 ip verify source x (x为IP-Only或IP-Mac)
# 全局绑定的方式与端口过滤的规则保持一致,不一致则以全局配置为主
Ruijie(config)# ip source binding 0000.0000.0001 vlan 1 192.168.1.1 interface g0/0		# 接口+IP添加
Ruijie(config)# ip source binding 0000.0000.0001 vlan 1 192.168.1.1 ip-mac				# IP+Mac添加
Ruijie(config)# ip source binding 0000.0000.0001 vlan 1 192.168.1.1 ip-only				# 仅IP添加

6.2 相关案例

在这里插入图片描述

DHCP-Server

DHCP-Server(config)#service dhcp 
DHCP-Server(config)#ip dhcp pool vlan10
DHCP-Server(dhcp-config)#network 192.168.10.0 255.255.255.0
DHCP-Server(dhcp-config)#default-router 192.168.10.254
DHCP-Server(dhcp-config)#dns-server 8.8.8.8
DHCP-Server(dhcp-config)#exit
DHCP-Server(config)#vlan 10
DHCP-Server(config-vlan)#exit
DHCP-Server(config)#interface vlan 10
DHCP-Server(config-if-VLAN 10)#ip address 192.168.10.254 24
DHCP-Server(config-if-VLAN 10)#exit
DHCP-Server(config)#interface g0/0
DHCP-Server(config-if-GigabitEthernet 0/0)#switchport mode trunk 
DHCP-Server(config-if-GigabitEthernet 0/0)#switchport trunk allowed vlan allowed vlan only 10
DHCP-Server(config-if-GigabitEthernet 0/0)#exit

接入交换机SW

SW(config)#interface range g0/1-2
SW(config-if-range)#switchport mode access 
SW(config-if-range)#switchport access vlan 10
SW(config-if-range)#exit
SW(config)#interface g0/0
SW(config-if-GigabitEthernet 0/0)#switchport mode trunk 
SW(config-if-GigabitEthernet 0/0)#switchport trunk allowed vlan only 10
SW(config-if-GigabitEthernet 0/0)#exit

PC1自动获取IP地址
在这里插入图片描述

PC2手动配置IP地址
在这里插入图片描述

在接入交换机中配置IPSG

SW(config)#ip dhcp snooping 
SW(config)#interface g0/0              
SW(config-if-GigabitEthernet 0/0)#ip dhcp snooping trust
# 开启DHCP Snooping功能后需要将

SW(config-if-GigabitEthernet 0/0)#exit
SW(config)#int range g0/1-2
SW(config-if-range)#ip verify source port-security 
SW(config-if-range)#exit

PC2测试连通性,可以看到无法ping通网关
在这里插入图片描述

PC1重新获取DHCP 查看IP Source Guard源数据信息
在这里插入图片描述

查看IPSG端口以及对应检测类型
在这里插入图片描述

查看DHCP Snooping表项
在这里插入图片描述

6.3 NP-DHCP Snooping – 解决用户私设DHCP服务器

  • 在接入交换机开启DHCP Snooping功能
  • 将指向合法DHCP服务器的接口设置为信任端口,其它接口默认为非信任接口

配置步骤

# 接入交换机配置
SW(config)#ip dhcp snooping 			# 开启DHCP Snooping功能
SW(config)#interface gigabitEthernet 0/0
SW(config-if-GigabitEthernet 0/0)#ip dhcp snooping trust	# 指向合法DHCP服务器的接口设置为信任端口,否则无法下发DHCP地址
SW(config-if-GigabitEthernet 0/0)#exit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络实现数字识别(机器学习)

我们有很多0到9的图片集&#xff0c;我们要训练一个网络来自动识别数字&#xff0c;我们有20*20的图像5000个。 把图片展平&#xff0c;这样每个记录就有400个特征&#xff0c;最后一列是标签值&#xff0c;1-9表示数字1-9&#xff1b;10表示数字0。数据集&#xff1a;ex_2/ex…

【设计模式:单例模式】

单例模式的特点&#xff1a; 单例类只允许一个实例单例类必须自己创造自己的唯一实例单例类必须给所有其他对象提供这一实例 单例模式底层如何实现&#xff1a; 私有化构造函数&#xff0c;类外部无法创造类对象&#xff0c;实现了单例类只允许有一个实例对象的特点类定义中含有…

vue3+g2plot之瀑布图

基础瀑布图 - 每月收支情况 效果预览: 核心代码: import {Waterfall } from @antv/g2plot;const data = [{type: 日用品, money: 120 },{type: 伙食费, money: 900 },{type: 交通费, money: 200 },{type: 水电费, money: 300 },{type: 房租, money: 1200 },{type: 商场消…

MyBatis批量更新:报错The error occurred while setting parameters

使用mybatis批量更新时&#xff0c;报以下错误。反复检查过mysql语句没有任何问题。而且本地可以正常执行&#xff0c;生产环境却报错。起初怀疑是数据表&#xff0c;把生产环境表导入本地测试后依然没有问题。数据表没问题就定位到数据库&#xff0c;先检查本地数据库链接与生…

家庭教育系列—剑桥通用英语五级考试介绍

文章目录 1. 背景介绍2. 详细介绍2.1 **KET&#xff08;Key English Test&#xff09;&#xff1a;基础英语考试**2.2 **PET&#xff08;Preliminary English Test&#xff09;&#xff1a;初级英语考试**2.3 **FCE&#xff08;First Certificate in English&#xff09;&#…

自定义类加载器 1.继承ClassLoader 2.findClass 3.defineClass

一、自定义类加载器 1.自定义 2.使用 总结&#xff1a;这种情况&#xff0c;由于loadClass会采用双亲委派机制&#xff0c;如果类已经被加载&#xff0c;那么就不会重复加载。 二、热部署的实现原理 使用loadClass&#xff0c;发现加载是同一个类 使用findClass实现&#xf…

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation 一、前言Abstract1 Introduction2 Related Work3 Methodology3.1 Preliminary of Latent Diffusion Models3.2 The model variants of Latte3.3 The empirical analysis of Latte3.3.1 Latent video c…

测试环境领域到测试环境产品

作者&#xff1a;攻心 去年之前&#xff0c;阿里巴巴的淘天集团测试环境是以领域方式运作&#xff1a;不局限测试环境治理本身&#xff0c;从测试模式方法论及用好测试环境思路引领集团测试环境治理。领域运作最难的是“统一思想”。业务进一步细分调整后&#xff0c;测试环境治…

Xilinx FPGA:vivado SPI实现FLASH通信

一、实验要求 要求使用SPI协议实现对flash芯片的页编程、读操作、页擦除等功能。 二、模块划分 大概的时序图&#xff1a; 三、程序设计 &#xff08;1&#xff09;接收端模块 timescale 1ns / 1ps module uart_rx(input sys_clk ,input …

Mongodb新增文档、查询文档、更新文档、删除文档

文章目录 1、新增文档1.1、进入容器1.2、向集合插入一个新文档1.3、查询文档1.4、向集合插入一个或者多个文档 2、查询文档2.1、查询年龄等于202.2、查询年龄是20的男性2.3、查询年龄是20或者性别是男2.4、查询年龄小于232.5、查询年龄小于等于232.6、查询大于等于232.7、查询年…

新型蜜罐有哪些?未来方向如何?

前言&#xff1a;技术发展为时代带来变革&#xff0c;同时技术创新性对蜜罐产生推动力。 一、新型蜜罐的诞生 技术发展为时代带来变革&#xff0c;同时技术创新性对蜜罐产生推动力&#xff0c;通过借鉴不同技术思想、方法&#xff0c;与其它技术结合形成优势互补&#xff0c;…

Docker 搭建 Minio 容器

Docker 搭建 Minio 容器 (完整详细版) 简介&#xff1a; Minio 是一个基于Apache License v2.0开源协议的对象存储服务&#xff0c;虽然轻量&#xff0c;却拥有着不错的性能。它兼容亚马逊S3云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据。 例如图片、视频、日…

CentOS通过rsync实现文件同步(daemon方式)

rsync介绍 rsync是Liunx下的远程数据同步工具&#xff0c;可快速同步多台服务器间的文件和目录&#xff0c;并可实现增量同步以减少数据的传输。 rsync有两种常用的认证方式&#xff0c;一种是rsync-daemon方式&#xff0c;另外一种是ssh方式。 daemon 方式与 ssh 方式相比有…

Nginx代理路径被吃

Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源&#xff0c;有时正常代理&#xff0c;发现代理不过去。 验证被吃调location情况 通过浏览器访问&#xff1a; https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…

深度学习Day-27:生成对抗网络(GAN)入门

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 要求&#xff1a; 了解什么是生成对抗网络生成对抗网络结构是怎么样的学习本文代码&#xff0c;并跑通代码调用训练好…

【MeterSphere】3.X备份与还原

目录 一、手动备份数据库 二、备份 minio 目录 三、自动备份 3.1 设置备份服务器 3.2 创建文件夹 msdb_bak 3.3 设置备份脚本 3.4 创建用于定时任务脚本文件 3.5 为msdb_bak赋权 3.6 执行 install_ms_backup.sh 3.7 查看定时任务是否成功 四、还原数据 4.1 还原 s…

LinkedHashSet底层原理

LinkedHashSet 的特点 去重&#xff1a;不允许重复的元素&#xff0c;类似于 HashSet。有序&#xff1a;能够记住元素的插入顺序&#xff0c;类似于 LinkedList。性能&#xff1a;具有较好的平均时间复杂度&#xff0c;如添加、删除和查找操作通常都是 O(1)。 内部实现 数据…

Java全栈课程之Linux——进程管理

一、什么是进程 1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号! 2、每一个进程呢,都会有一个父进程! 3、进程可以有两种存在方式:前台!后台运行! 4、一般的话服务都是后台运行的,基本的程序都是前台运行的! 二、命令 ps 查看当前系统中正在执行的…

航空客运订票系统(数据结构与算法课设)(C语言版)

本文为数据结构与算法课设《航空客运订票系统》的分享与实践,采用了顺序表和链表两种数据结构。贴近生活采用了系统选择来区别用户和管理员。 目录 1.设计内容与要求 2.功能实现和程序调试 功能实现 函数原型清单 程序调试 3.代码实现 (1)结构体定义 (2)管理员菜单…

若依开发平台数据权限设计与实现深度剖析

概述 在之前的博客《数据权限的设计与思考》中&#xff0c;我们对软件系统的数据权限进行了全面的梳理。接下来&#xff0c;本文深度剖析主流开源的若依开发平台数据权限是怎么设计与实现的。 平台展示 在角色管理菜单中&#xff0c;在角色列表中选择一个具体角色&#xff…