SW转发与MAC地址表

一个心胸狭隘的人讲不出来大格局的话,一个没有使命感的人呢讲不出来有责任的话。—翟鸿燊

一、MAC地址表

1、作用: MAC表记录了相连设备的MAC地址、接口号以及所属的VLAN ID之间的对应关系。在转发数据时, 路由设备根据报文中的目的MAC地址查询MAC地址表,快速定位出接口,从而减少广播。

2、分类:

(1)动态表项由接口通过源MAC地址学习获得,表项有老化时间。
(2)静态表项由用户手工配置,并下发到各接口板,表项不老化。
(3)黑洞表项用于丢弃含有特定源MAC地址或目的MAC地址的数据帧,由用户手工配置,并下发到各接口板,表项不老化。

3、形成

(1)自动生成:
MAC表是SW通过源MAC地址学习过程而自动建立的,MAC表中自动生成的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到刷新的表项将被删除,这个生存周期被称作老化时间(默认300S)。如果在到达生存周期前记录被刷新,则该表项的老化时间重新计算。

(2)手工配置:
SW通过源MAC地址学习自动建立MAC地址表时,无法区分合法用户和黑客用户的报文,带来了安全隐患。如果黑客用户将攻击报文的源MAC地址伪装成合法用户的MAC地址,并从设备的其它接口进入,设备就会学习到错误的MAC表项,于是就会将本应转发给合法用户的报文转发给黑客用户。

为了提高接口安全性,网络管理员可手工在MAC表中加入静态MAC地址表项,将用户与接口绑定,从而防止假冒身份的非法用户骗取数据。通过手工配置黑洞MAC,可以限制指定用户的流量不能从设备通过,防止非法用户的攻击。

注意: 手工配置的MAC表项优先级高于自动生成的表项;且手动配置的MAC地址会随配置文件一起保存而不会老化。

4、SW基于MAC表的报文转发

(1)单播方式:当MAC地址表中包含与报文目的MAC地址对应的表项时,设备直接将报文从该表项中的转发出接口发送。

(2)广播方式:当设备收到的报文为广播报文、组播报文或MAC地址表中没有包含对应报文目的MAC地址的表项时,设备将采取广播方式将报文向除接收接口外同一VLAN(本广播域)内的所有接口转发。

二、拓扑

在这里插入图片描述

三、基础配置与分析

SW所有接口类型无需更改,默认VLAN 1即可,所有PC属于192.168.1.0/24

1、MAC地址表老化时间调整

修改SW-1的MAC地址表老化时间为10000S

[SW-1]mac-address aging-time 10000
//修改本SW的动态MAC地址表的老化时间为10000(默认300S,取值范围为10----100000S)

2、关闭动态MAC地址学习功能

(1)对于SW-1的G0/0/1接口关闭MAC地址学习能力,默认数据执行丢弃动作

[SW-1]int g0/0/1
[SW-1-GigabitEthernet0/0/1]mac-address learning disable  //关闭本接口的mac地址动态学习功能

(2)图式PC-1是合法用户,保证其在G0/0/1接口下的正常通信;使得PC-2通信失败

[SW-1]mac-address static 5489-980F-0D0C GigabitEthernet 0/0/1 vlan 1
//将MAC地址5489-980F-0D0C静态映射到vlan 1下属的接口G0/0/1

[SW-1]mac-address blackhole 5489-9854-080E 
//针对VLAN X所属接口接收到的源MAC地址为5489-9854-080E的数据扔向“黑洞”等同于丢弃此源MAC地址的数据。

验证:

PC-1 ping测 PC-6
在这里插入图片描述
PC-2 ping测 PC-6
在这里插入图片描述
从以上输出结果可以看出,需求已实现。

dis mac-address
在这里插入图片描述
3、部署黑洞MAC地址表

SW-1下的PC-6为攻击者,通过配置黑洞MAC地址表,阻止PC-6的数据经过SW-1转发

[SW-1]mac-address blackhole  5489-98A4-1EB7 

5489-98A4-1EB7为PC-6的mac地址

dis mac-address
在这里插入图片描述
4、部署静态MAC地址

在SW-2上,PC-3的MAC地址通过静态方式和SW-2的vlan 1下的G0/0/3接口做绑定
配置完成后测试PC-3是否能和其他人正常通信,如若不能,请正确连线

[SW-2]mac-address static 5489-982C-1B22 GigabitEthernet 0/0/3 vlan 1

在这里插入图片描述
不能和其他人正常通信;
需要通过静态方式和SW-2的vlan 1下的G0/0/1接口做绑定。

[SW-2]undo mac-address static 5489-982c-1b22 GigabitEthernet0/0/3 vlan 1
[SW-2]mac-address static 5489-982c-1b22 GigabitEthernet0/0/1 vlan 1

修改之后,能和其他人正常通信;
在这里插入图片描述
5、限制MAC地址学习数量

在SW-3的G0/0/1下开启动态MAC地址学习最大数量为 1。
PC-4为合法用户,保证PC-4的MAC地址被SW-3的动态MAC地址表学习到。

[SW-3]int g0/0/1
[SW-3-GigabitEthernet0/0/1]mac-limit maximum 1  //对本g0/0/1的mac地址最大学习数量为1,超过的不再学习 

dis mac-address
在这里插入图片描述

四、SW的数据转发

1、SW指导数据转发的表项是什么,如何形成的?

表项:MAC地址表

形成:MC地址条目
(1)动态学习
(2)手动配置

2、SW对于动态构成的转发表项条目默认保存时间为多少? 如何刷新的

MAC动态学习与转发

(1)学习–查看数据帧的源MAc地址

① 每一个MAC条目有一个单独的计时器—300S
如果连续老化时间超时之内没有这个源MAC地址的数据经过,老化时间结束后删除对应的条目;对应条目的数据转发就是MAC老化计时器的刷新
② 学习的顺序
动态MAC地址如果接口发生变化,后学习到的生效----覆盖

③ 静态与动态的优先级
静态优于动态

(2)转发–查看数据帧的目的MAC地址

3、SW对于组播广播和未知单播帧做如何处理

广播----默认泛洪
组播----默认泛洪
单播----已知单播----单播发送
未知单播----泛洪

对于未知数据----泛洪

4、MAC地址的三种类型

(1)动态MAC地址表
(2)静态MAC地址表
(3)黑洞MAC地址表(blackhole)

五、MAC地址表安全

5.1 攻击原理

由于MAC表的容量是有限的,当黑客伪造大量源MAC地址不同的报文并发送到设备后,设备上的MAC地址表项资源可能会被耗尽。此时即使它收到正常的报文,也无法学习到报文中的源MAC地址。

5.2 防御措施

对MAC地址学习进行限制

1、基于VLAN或接口关闭学习MAC能力

(1) 关闭学习MAC能力后,则接口将不再自动学习到新的动态MAC表项,之前学习到的动态表项可以等待老化。

(2) 关闭学习功能后默认情况SW对于接收到的数据帧的源MAC地址不存在MAC地址表的默认动作为转发,可以设定对于源mac地址不存在表的情景设定丢弃。
(3)接口下执行MAC地址学习能力此命令针对此接口生效,VLAN下执行此命令针对VLAN下的所有接口生效。

2、基于VLAN或接口进行MAC地址数限制

(1) VLAN或接口学习动态MAC表项的最大数目。当VLAN或接口学习到的MAC表项达到最大数目,则该VLAN或接口将不能再学习新的MAC表项,直到它以前学习到的MAC表项老化。

(2)关闭学习功能后默认情况SW对于接收到的数据帧的源MAC地址不存在MAC地址表的默认动作为转发,可以设定对于源mac地址不存在表的情景设定丢弃。

[SW-1-vlan1]mac-limit maximum 1 alarm enable //限制本vlan 1mac地址最大学习数量为1,超过触发告警信息

3、手动配置MAC地址

(1)黑洞MAC地址

发往黑洞的的数据黑被网络转发设备丢弃,是有效防止各种二层泛洪攻击的有效手段。

(2) 静态部署MAC地址表

静态MAC地址映射表优于动态MAC地址表;
如果已经通过静态部署了指定MAC地址与接口的对应关系,无法再被动态刷新。

(3) 调整MAC地址表的老化时间

① 动态学习到的MAC地址保存与SW的内存(RAM)当中,设备断电及重启或者老化时间到了之后动态MAC地址表会被清空

② 老化时间是针对MAC地址条目来说的,不是针对MAC地址表。

③ 默认老化时间为300S,调整为0S表示此SW的动态MAC地址表里的条目不再老化,在设备加电开机期间会一直保留条目(当然还是可以使用 und mac-address 来清空mac地址表的)

在这里插入图片描述

本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。

猜你喜欢

转载自blog.csdn.net/HYD696/article/details/107379804