FDB表-ARP表-路由表

6 篇文章 0 订阅
4 篇文章 0 订阅

简介

  1. 二层转发通过查询FDB表实现,不对报文做任何修改。
  2. 三层转发通过查询路由表和arp表实现,路由表确定出接口,然后以出接口的MAC作为报文的源MAC;以报文的目的IP查询arp表获取下一跳MAC,以该MAC作为报文的目的MAC; 因此三层转发会修改报文的二层地址。

FDB表

一、 简介

  1. FDB表即二层MAC地址表。
  2. 记录MAC、端口、VLAN的对应关系。
  3. 用于二层转发。
  4. FDB表存有交换机发送端口与报文目的MAC地址的映射,有动态和静态两部分,当某个端口收到一个数据帧时,会将该数据帧的源MAC地址与端口的映射关系存储在FDB表中, 如果FDB表中已经存在该表项,更新该表项的老化时间。

二、 类别

  1. 动态地址表项
    最开始的时候,交换机FDB地址表中的所有地址表项都是动态的。如果经过一段时间(老化时间Agingtime)之后,设备没有数据传输,那么该地址表项就会被删除。这样能防止地址表项变得过于庞大,当确信某个设备从网络中去除后,就把该设备的地址表项删除掉。当交换机关机重启动或者reset时,所有的动态地址表项都将被删除。
  2. 固定地址表项
    如果老化时间(Agingtime)被设为0,那么该地址表项将存储在MAC地址表中而不会被动态删除,直到交换机关机或者重启。
  3. 永久地址表项
    永久地址表项将一直保存在MAC地址表中,即使交换机关机或者重启。永久地址表项必须由系统管理员手工设定。一个永久地址表项可以是一个单播地址,也可以是一个组播地址(本系统暂时不支持组播地址)。所有由命令行输入的静态地址表项都将被存储为永久地址表项。永久地址表项一经建立,不会老化,但会随交换机的配置变化而变化。
    在这里插入图片描述

三、生成过程

(一)单个交换机

在这里插入图片描述

  1. 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
  2. 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。
  3. 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(泛洪:也就是除了Ethernet 0/0/1接口)。
  4. 这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个报文,并回应一个数据帧,此数据帧源MAC是主机B的MAC地址, 目的MAC是主机A的MAC地址。
  5. 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址)和入接口到FDB表中,这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。

(二)多个交换机

在这里插入图片描述

  1. 主机A将一个源MAC地址为自己,目标MAC地址主机C的数据帧发送给交换机1。
  2. 交换机1收到此数据帧后,会学习源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧泛洪出去,主机B和交换机2都会收到此数据帧。
  3. 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的入接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会泛洪此数据帧。
  4. 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机2和交换机1都会将主机C的MAC地址和对应入接口记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。
  5. 这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口Ethernet0/0/1。

(三)总结

  1. 从上面的两幅图可以看出,交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口。
  2. 交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。
  3. 报文经过交换机时只查FDB表进行转发,查不到则泛洪,不会修改报文内容。

ARP表

一、简介

  1. 记录IP与MAC的对应关系。
  2. 每台主机中保留着一张ARP表。
  3. ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。
  4. 用于三层路由转发时查询目的IP的下一跳MAC,填充为报文的目的MAC。

二、生成过程

在这里插入图片描述

  1. 如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机A的MAC地址作为源MAC地址,ARP表中B的IP地址对应的MAC作为目的MAC封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。
  2. 当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
  3. 当主机B接受到此数据帧后,会校对IP地址是否是自己的,如果不是,丢包。如果是,将主机A的IP地址和源MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,源IP和MAC是自己的地址。
  4. 主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了(FDB表)。
  5. 如果一段时间,ARP中的表项没有用的,则回老化掉,再次使用时需要再次ARP请求。

三、免费ARP

(一)简介

  1. 免费 ARP(Gratuitous ARP)包是一种特殊的 ARP 请求,它并非期待得到 IP 对应的 MAC 地址,而是当主机启动的时候,发送一个 Gratuitous ARP 请求,即宣告自己的 IP 地址的 MAC 地址。
  2. 免费 ARP 报文与普通 ARP 请求报文的区别在于报文中的目标 IP 地址。普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。

(二)作用

  1. 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
  2. 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
  3. 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。

路由表

一、简介

  1. 路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。
  2. 直连路由:是直接连接在路由器接口的网段,由路由器自动生成 通过接口的IP和掩码生成。
  3. 非直连路由:就是不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由。
  4. 路由表中记录的条目有的需要手动添加(称为静态路由),有的动态获取的(称为动态路由)。直连路由属于静态路由。
  5. 路由器是工作在网络层的,在网络层可以识别IP地址。当路由器的某个接口收到一个包时,路由器会读取包的目的IP,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。

二、生成过程

在这里插入图片描述

  1. HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由AR1的转发。
  2. HostA通过ARP请求获取网关路由AR1的E0口的MAC地址,并在链路层将E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。
  3. 路由器A从E0接口接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,出接口时E1,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器AR2的E0接口的MAC地址。
  4. 路由AR2从E0口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E1口的直连网段,出接口是E1口,路由器AR2通过ARP广播,获知HostB的MAC地址,此时数据包在路由器AR2的E1接口再次封装,源MAC地址是路由器AR2的E1接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器AR2的E1接口发送给HostB。
  5. 此时HostB才会收到来自HostA发送的数据。

三、总结

  1. 路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。

总结

  1. 三层转发先调用路由表查询路由信息,获取出接口;然后查询arp表获取下一跳mac。
  2. FDB表:MAC,PORT,VLAN的对应。
  3. ARP表:IP与MAC的对应。
  4. 路由表:IP网段与IP网段的对应。
  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值