【网络】ARP表、MAC表、路由表

ARP表

网络设备存储IP-MAC映射关系的表,便于快速查找和转发数据包

ARP协议工作原理

ARP(Address Resolution Protocol),地址解析协议,能够将网络层的IP地址解析为数据链路层的MAC地址。

1.主机在自己的ARP缓冲区中建立一个ARP表(IP MAC 类型),表示IP和MAC对应关系

2.主机加入网络时(MAC地址变化、接口重启等),会发送免费ARP报文 把自己IP地址与MAC地址映射关系广播给网络内的其他主机

3.网络中的主机收到免费ARP报文时,会将新的映射关系更新到自己的ARP表中

4.当主机需要发送报文时(二层/三层),需要检查ARP表中是否有对应IP的ARP表项,如果有则直接发送数据包,如果没有就向网段内主机 /默认网关 发送ARP请求报文

5.网络内主机收到ARP数据包时,若请求IP不为自身IP则忽略对应的数据包,否则将ARP请求报文 中的IP和MAC更新到自己的ARP表中,向源主机发送ARP应答报文

6. 源主机收到ARP应答报文后将其中的源IP和源MAC更新到自己的ARP表中

动态ARP-拓扑结构复杂

动态ARP是由设备通过ARP学习自动生成和维护的IP-MAC映射关系,可以被老化和自动更新,也可以被静态ARP覆盖,适用于拓扑结构复杂的网络。

静态ARP-安全性较高(网关)

静态ARP由网络管理员手动配置和维护的IP-MAC映射关系,不会被老化机制删除,更加稳定,可以通过将网关设备进行静态ARP绑定,防止ARP欺骗攻击

ARP老化-减少内存占用

ARP老化-将在一定时间(默认1200S)内未使用的动态ARP表项进行删除,维护ARP表项的准确性,减少内存占用

ARP欺骗-伪造ARP报文篡改目标设备ARP缓存表

攻击者发送伪造的ARP报文篡改目标设备的ARP缓存表,导致数据包被发送到攻击者设备,攻击者可通过对数据包进行回传或丢弃,达到监听网络信息或中断通信的目的。

ARP报文格式

免费ARP请求报文格式:(源IP、源MAC、目的IP为主机自身,DMAC广播)

复制代码
Ethernet II, Src:  00:1b:17:00:01:1a, 
             Dst: Broadcast (ff:ff:ff:ff:ff:ff) 

Sender MAC address: 00:1b:17:00:01:1a
Sender IP address:  172.30.129.254
Target MAC address: 00:00:00_00:00:00 
Target IP address:  172.30.129.254

ARP请求报文格式 :(源IP、源MAC为自身,DIP为目的IP,DMAC广播)

Ethernet II, Src: 00:1b:17:00:01:1a,

Dst: Broadcast (ff:ff:ff:ff:ff:ff)

Sender MAC address: 00:1b:17:00:01:1a

Sender IP address: 172.30.129.254

Target MAC address: 00:00:00_00:00:00

Target IP address: Target IP address

ARP应答报文格式 :(源IP、源MAC为自身,DIP与DMAC为ARP请求报文发送者)

Ethernet II, Src: 00:1b:17:00:01:1a,

Dst: 00:1b:17:00:01:1b

Sender MAC address: 00:1b:17:00:01:1a

Sender IP address: 172.30.129.254

Target MAC address: 00:1b:17:00:01:1b

Target IP address: 172.30.129.111

MAC表

MAC表是交换机内部用于存储已知MAC地址及其对应端口的表格。这个表对于交换机来说是至关重要的,因为它决定了数据帧应该从哪个端口转发出去。MAC表中包含的信息通常包括MAC地址、VLAN、出接口、表项类型和老化时间等

MAC学习-实现数据帧转发基础

交换机在接收到数据帧时,会检查帧的源MAC地址,并将这个地址与其接收帧的端口关联起来,添加到MAC地址表中。

动态MAC

动态MAC是通过交换机学习得到的,在经过一定时间(默认300S)内如果未学习到对应地址,则会被老化机制(内存空间有限)删除,动态MAC可以被静态MAC地址覆盖

静态MAC

由网络管理员手动配置的MAC地址,不会被老化机制删除,比动态MAC更加稳定

路由表

路由表是路由器中存储的路由选择信息的数据库,主要是实现路由协议路由选择,其中每一条表项包含以下信息:

目的网络:数据包要到达的目的网络的IP地址范围

子网掩码:用于确定目的网络的精确范围

下一跳地址:转发至目的网络的数据包应该被转发到下个设备的IP

接口:数据包转发对应的接口

度量值:到达目的网络的距离,用来选择最佳路径

路由类型:直连路由、静态路由、动态路由(OSPF路由、RIP路由)

路由类型

直连路由:路由器与网络设备直接相连的路由

静态路由-配置简单,稳定可靠

静态路由是由管理员手动配置的路由信息,适用于网络结构相对稳定且较为简单的环境,优点:配置简单,稳定可靠。缺点:不够灵活,不适用于网络拓扑变化较大的网络

动态路由-灵活性高

动态路由是由路由设备通过动态路由协议进行自动学习和维护的路由信息,可以通过网络拓扑的变化自动学习更新路由表,以适应复杂的网络环境。优点:灵活性高,能够自适应网络设备变化。缺点:配置和管理相对复杂,可能会引入额外开销。

默认路由-兜底静态路由

默认路由,当数据包的目的网络不存在在路由表中,路由器会通过默认路由将数据包通过默认网关转发出去。

路由选择过程:

1.查找路由表:(有则转发,无则通过默认路由转发)

2.选择路由:若有多条匹配路由,则根据路由度量值(跳数/带宽)选择最佳路径

3.转发数据包:根据匹配的路由表项,将数据包转发至下一跳

相关推荐
喵手1 小时前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!3 小时前
实验-基本ACL
网络
ftpeak4 小时前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发4 小时前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序
error:(4 小时前
【从零到公网】本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)
网络·智能路由器
酷飞飞5 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
风中的微尘6 小时前
39.网络流入门
开发语言·网络·c++·算法
hsjkdhs6 小时前
网络编程之UDP广播与粘包问题
网络·网络协议·udp
yzx9910138 小时前
接口协议全解析:从HTTP到gRPC,如何选择适合你的通信方案?
网络·人工智能·网络协议·flask·pygame
程思扬9 小时前
利用JSONCrack与cpolar提升数据可视化及跨团队协作效率
网络·人工智能·经验分享·docker·信息可视化·容器·架构