HCIE_交换篇_MAC地址

HCIE_交换篇_MAC地址

 


 

HCIE之路----交换篇

1、MAC

(1)mac-address

关于MAC地址,拿我自己的笔记本电脑来举例子,是这样的B2-D1-6B-C3-46-F3,一共12个字符,但是经常在书中被说成是48位的,这是为何?为什么这么说呢?每一个字符都代表4位,12乘以4正好是48位,为什么说一个字符代表4呢?这是怎么算的呢?是通过16进制算的,所谓的16进制就是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中每一个字符都可以通过四个二进制来表示,比如4,那就是0100,A是1010,F是1111。

MAC地址的前24位唯一标识符,也被称为OUI,通常这个这24bit可以判断网络设备厂商。

MAC地址分为三种:单播、广播、组播,如何区分呢?通过第二个16字符转换成内核之后的最后一位,如果最后一位如果是0的话,那就是单播,如果是1就是组播,如果全是1,那就是广播。

(2)交换机工作原理

交换机的行为有三种行为:泛洪(flooding),转发(forward),丢弃(discrad)

交换机遇到广播报文时会直接泛洪,但面对单播数据帧时,就得视情况而定。当交换机收到的数据帧是源和目标mac一样时,这明显不合理,哪有自己给自己发数据帧的,交换机面对这种操蛋的行为会直接将此数据帧丢弃;很少有上述这种操蛋的数据帧,大多数都是正常的数据帧,交换机面对正常的数据帧时,会根据其目标mac查找mac地址表,如果表里面有对应的表项,则根据表项对应的端口转发,如果没有的话,就会泛洪。

(3)MAC地址表

MAC地址表相当于二层的路由表,是数据帧转发的依据,MAC地址表是物理接口与MAC地址的对应关系,此外,还有vlan信息,MAC地址的类型,如下所示:

<Huawei>dis mac-address
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-989e-2544 1           -      -      GE0/0/2         dynamic   0/-         
5489-987d-5765 1           -      -      GE0/0/1         dynamic   0/-         
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2 

1、交接机是通过源MAC地址进行学习的,原因也很简单,因为源MAC是确定的,而目的MAC是要通过泛洪才能找到的。

2、交换机学习MAC地址表往往是在正式通信之前,就是说,当我们ping某一个主机时,要先arp广播,在arp广播的过程当中,mac地址表就已经学习完成了。

3、一个交换机接口是可以学习多个MAC地址的,通常一个交换机的机连口学习到的MAC地址表比较多,我们可以通过查看接口下的MAC地址来判断下连了多少台主机,比如我就可以在我们公司的公网口查看一下,而且还可以通过端口安全做一个限制。

MAC地址表并不是无限大的,这一点很好理解,就像一个电脑,文件也不可能是无限大的,起码是受到硬盘和内存的限制。这一个电脑硬盘满了之后,还能继续向里面存东西吗?肯定是不能了。交换机也是这样,如果MAC地址表满了,那它还能继续学习吗?也不能了,不能了会发生什么现象呢?收到数据帧如何处理呢?倒是不会丢弃,面对这种未知单播包,交换机会泛洪呀,但是回复的数据包又无法学习到MAC地址表当中,因为已经满了,所以数据帧就无法转发出去,这就是二层泛红攻击的原理,我们可以通过端口安全,限制端口学习到MAC地址数量,这样MAC地址表就不会被打满。

MAC地址表默认是有老化时间的,默认是300s,这是可以调整的,所以想要二层泛红攻击有效的话得保证持续性,否则,MAC地址表内的地址失效了之后,之前的攻击效果也就没有了。

#老化时间的修改方法
mac-address aging-time 300 

2、限制MAC地址学习数量

(1)静态表项MAC

动态表项

动态表项是最常见的表项,就是动态学习到的表项,这个表项有什么特点呢?由于是动态的,所以它很不靠谱,有老化时间,而且down了之后,表项就消失了。

静态表项

静态表项是手工配置的,既然是手工配置的,那就不会老化,接口down或设备重启啥的还是会存在,也就是说手工配置的会写入到内存或内存当中。一条静态MAC地址只能绑定一个物理接口(验证一下),但一个物理接口可以绑定多个MAC地址(验证一下),这一点也很好理解。

[Huawei]mac-address static 5489-987D-5765 GigabitEthernet 0/0/1 vlan 1
[Huawei]
Oct 14 2020 23:23:01-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 6, th
e change loop count is 0, and the maximum number of records is 4095.

#同样的MAC是不能绑定到其它接口上的,只能绑定在一个物理接口之上
[Huawei]mac-address static 5489-987D-5765 GigabitEthernet 0/0/2 vlan 1
Error: The same MAC address has been configured on another port.

#通过dis mac-address可以查看上述做的配置
[Huawei]dis mac-address 
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 1           -      -      GE0/0/1         static    -           
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1 

MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-988d-0dd0 1           -      -      GE0/0/10        dynamic   0/-         
5489-9811-1111 1           -      -      GE0/0/4         dynamic   0/-         
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2 

在某个接口上绑定了MAC地址之后,如果在其它接口上学到的话,就会丢弃,无论原接口是否是down的。

黑洞MAC
黑洞MAC其实十分简单,就是交换机一旦遇到我们配置黑洞MAC就丢弃,不转发

#必须得加上vlan信息,否则不生效
[Huawei]mac-address blackhole 5489-98DF-6666 vlan1
[Huawei]dis mac-ad
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 -           -      -      -               blackhole -           
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 1 

MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address    VLAN/       PEVLAN CEVLAN Port            Type      LSP/LSR-ID  
               VSI/SI                                              MAC-Tunnel  
-------------------------------------------------------------------------------
5489-98df-6666 1           -      -      GE0/0/1         dynamic   0/-         
5489-988d-0dd0 1           -      -      GE0/0/10        dynamic   0/-         
-------------------------------------------------------------------------------

(3)限制MAC地址学习数量

可以限制某个接口学习MAC地址的数量,而且还可以设置动作,当超过某个数量时如何处理,默认的处理的方法有丢弃和转发,默认是丢弃。

## 限制学习数量
mac-limit maximum 2

## 处理动作,默认是丢弃
mac-limit acition {discard| forword}

## 还可以决定是否报警,默认是报警
mac-limit alarm {enable|disenable}

注意,如果数量已经到达上限,动作是转发时,会转发,但是不记录到MAC地址表项当中,以上配置当中的具休的MAC地址不会保存,超时就重新学习。

3、接口安全

这个功能与port-limit是有冲突的,所以尽量不要同时存在,如果要同时存在的话,端口安全优先生效

int g0/0/1
	port-security enable
	port-security max-mac-num 1
	port-security port-action protect|restrict|shutdown
## 报警信息如下
[Huawei-GigabitEthernet0/0/1]
Oct 17 2020 20:58:10-08:00 Huawei L2IFPPI/4/PORTSEC_ACTION_ALARM:OID 1.3.6.1.4.1
.2011.5.25.42.2.1.7.6 The number of MAC address on interface (6/6) GigabitEthern
et0/0/1 reaches the limit, and the port status is : 1. (1:restrict;2:protect;3:s

解释一下动作,

  • protect,代表数量到了之后就丢弃 ,不报警
  • restrict,代表数量到了之后就丢弃,报警(默认)
  • shutdown,代表数量到了之后就down,并报警

还有一个补充功能,就是当地址因违规之后被down之后,过一段还能恢复

error-down auto-recovery cause port-security interval 30,30秒之后自动恢复,配置之后才生效,之前不生效。

注意:port-security所保存的mac地址,缺省不会被老化,但在接口down之后就会失效,怎么办呢?就出来了sticky功能,这个功能与上述功能相比,就是他将保存的安全MAC彻底保存下来了,接口断电重启之后,也不会失效。

int g0/0/1
	port-security enable
	port-security max-mac-num 1
	port-security mac-address sticky
	
	
#可以手动在接口上通过sticky功能加MAC
[Huawei-GigabitEthernet0/0/1]port-secur mac-add sticky 5489-98DF-6623 vlan 1

思考题

数据封装的过程
什么是BUM帧(BUM是广播、组播、未知单播的缩写),交换机遇到组播帧不一定会泛洪,如果配置了IGMP的相关配置,就可能不会泛洪。
MAC地址表满了收到数据帧怎么办呢?
报文的二层一定是封装MAC地址吗?不一定,只有以太网是这么做,二层除了以太网之外,还有ppp,还有帧中继、HDLC
IPV6的组播地址范围?
常见的组播MAC地址?常见的组播MAC:0180c2开头的,是生成树报文的MAC地址

posted @ 2021-06-02 18:24  精舞门2020  阅读(552)  评论(0编辑  收藏  举报