目录
1、配置接口mac地址学习优先级(MAC地址表就不会被抢占覆盖了)
一、MAC地址表的组成
MAC: 48bit 16进制
前 24bit(OUI,组织(厂商)唯一标识符)
第8bit =0(单播) =1(组播/广播mac)
1、动态表项:
- 由接口通过报文中的源MAC地址学习获得,表项可老化,默认老化时间300S。
- 在系统复位,接口板热插拔或接口板复位后,动态表项会丢失。
2、静态表项:
- 由用户手工配置,并下发到各接口板,表项不可老化。
- 在系统复位,接口板热插拔或接口板复位后,保存的表项不会丢失。
3、黑洞表项(相当于黑名单):
- 由用户手工配置,并下发到各接口板,表项不可老化
- 配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC报文将被丢弃
命令汇总:
dis mac-address //查看mac地址表
mac-address agin-time <0,10-1000000> //修改mac地址表老化时间配置,默认300S
mac-address static 5489-aaaa-2301 GigabitEthernet 0/0/1 vlan 1 //配置静态MAC表项
mac-address blackhole 5489-9873-3B8B vlan 1 //配置会而动MAC表项
1、动态mac表项 dynamic:接口通过报文源MAC地址学习获得
dis mac-address 查看mac地址表
mac-address agin-time <0,10-1000000> 修改mac地址表老化时间配置,默认300S
- 交换机mac表老化时间300S 如果一直有数据转发,则数据一直更新老化时间一直是300S;
- 交换机重启或者接口down,表消失
- 如果mac地址表满了,不能继续学习mac表,不会丢弃报文,会认为是未知单播,则会群发,从除收到接口之外所有接口泛洪群发;
- mac地址学习是根据源mac进行学习 (dynamici动态)
MAC地址表就是:MAC地址—— 端口—— vlan的映射
华为交换机默认vlan=1
2、静态mac表项:用户手工配置,并下发到各接口板,表项不可老老化,防止mac冒充攻击
静态表项优先于动态表项
mac-address static 5489-aaaa-2301 GigabitEthernet 0/0/1 vlan 1 static(静态)
3、黑洞mac表项:用户手工配置,不可老化,防止虚拟机攻击
相当于配置个黑名单,不论接口,不管源目mac报文都会丢弃(一定要注意vlan x,否则不生效)
mac-address blackhole 5489-9873-3B8B vlan 1 blackhole (黑洞)
二、端口安全(Port Security)
通过将接口学习到的动态mac地址转换为安全地址 (包括安全动态MAC、安全静态MAC和Sticky MAC)阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。
安全MAC地址分类(3类):
- 动态安全MAC地址
缺点:接口设置为动态安全MAC后,只能允许学习一个MAC作为安全MAC,接口只要down,表项就会消失(会认为是第2个MAC不会学习)
int g0/0/2 port-security enable //敲完这个命令默认只允许一个MAC 安全动态MAC地址 接口down后,表项就消失【缺点】
port-security aging-time 30 //(单位分钟,默认没有配置 即接口不down就不会不消失)
- Sticky MAC地址 ---使能端口安全后又同时使能Sticky mac功能后转换到MAC地址 Sticky MAC(黏贴mac)
int g0/0/2 port-security enable //打开安全模式 (默认安全mac为1)
port-security max-mac-num 3 //最大数量修改为3
port-security mac-address stick //打开端口安全黏贴功能
接口的MAC地址超出限制后,会ping不通了
超出的流量会进行丢弃,同时产生日志告警
接口达到限制,接口的状态可以是三种状态动作:
- restrict 严格,(默认动作,丢弃,同时产生日志告警)【推荐动作】
- protect 保护 (报文直接丢弃但是不产生告警)
- shutdown 接口down
- 安全静态MAC地址(手工黏贴Sticky)---使能端口安全时手工配置的静态MAC地址(需要一个一个的敲MAC,不适用人数较多的,但是适用于单独特定MAC) (相当于端口绑定mac)
安全静态MAC和Sticky MAC对比一个是手工黏贴,一个是自动黏贴
int g0/0/2
port-security enable
port-security mac-address stick //开启sticky后自动转换成安全mac
port-security mac-address stick 5489-980c-222 vlan 1 //安全静态mac(需要先开启stick后才能使用)
//sticky mac和安全静态mac地址是永久的
三、MAC地址漂移
MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象
MAC地址漂移可能出现的场景:
①环路
②AP漫游:AP是接在交换机上的,信号在不同的AP间切换时候就是在切换交换机的端口
③攻击
④VRRP:主备迁移,主交换机出现故障,就会切换为备用交换机,下方的交换机就会在不同端口收到
MAC地址漂移避免机制:
- 提高接口MAC地址学习优先级
- 不允许相同优先级的接口发生MAC地址表项覆盖
交换机两个接口可以学习到相同的mac,但是两个接口要属于不同的vlan ,相同的vlan则会把mac覆盖掉
MAC表项: MAC地址—— VLAN——接口
单臂路由配置(启用子接口验证两个接口学习到相同MAC):
5489-9845-3b46是路由器的MAC地址
1、配置接口mac地址学习优先级(MAC地址表就不会被抢占覆盖了)
int g0/0/2 mac-learning priority 3 默认情况下mac地址优先级为0 ,越大优先级越高 (优先级高的可以Ping通,优先级低的不通,) undo mac-learning priority
2、配置不允许相同优先级接口mac地址漂移(不要轻易配置)
int g0/0/2 undo mac-learning priority 0 allow-flapping //配置不允许相同优先级的接口发生MAC地址漂移
配置全局mac地址漂移检测(默认开启新版本)
[Huawei]mac-address flapping detection 需检测10次漂移现象才会弹出日志(实验环境下发现 默认只弹出一次日志) [Huawei]mac-address flapping action { error-down | quit-vlan } (缺省只发出告警,模拟器不支持)
老版本:
配置基于VLAN的mac地址漂移检测(老版本开启mac地址漂移检测)(先学习到的MAC地址就是合法的,后学习的MAC地址就是非法的)
[Huawei]vlan 1 [Huawei]loop-detect eth-loop alarm-only 或者 [Huawei-vlan1]loop-detect eth-loop block-time 10 retry-times 2 //配置MAC地址漂移检测功能,检测到mac漂移后阻塞接口10S,重试2次,如果监测到2次后仍然漂移则一直永久阻塞(block forever) //如果接口一直被阻塞,需要全局 reset loop-detect eth-loop vlan 1 all 才可以恢复被阻塞的接口,shut/undo shut无用。
四、关于MAC地址知识的总结与思考?
1、任何一个MAC地址前24bit都代表OUI吗?
广播和组播就不是
2、PC是否有MAC地址表?
PC没有,但是有ARP表(window的arp表老换时间20分钟,通过arp -s可配置静态arp表项)
3、PC arp表里面是否会存在非直连网段对应的ARP表项?
不存在(只要有网关的MAC就可以了)
4、PC是否有路由表?
PC有路由表,也可以手动添加
5、MAC地址漂移是否一定是攻击或环路?
不一定(VRRP主备切换就会发生MAC地址漂移/AP漫游也会发送MAC地址漂移)
6、数据封装过程?
报文+应用层+传输层(TCP/UDP)+网络层(IP)+数据链路层(MAC地址)
7、报文的二层封装一定是MAC地址吗?
不一定,以太网就MAC封装,串行接口使用PPP封装,其他的还可以封装HDLC或者FR
8、什么是BUM帧?
broadcast(广播) unknown(未知) multcast(组播)
9、当交换机MAC地址表满了后,交换机在收到报文如何处理?
泛洪,会认为是未知单播,则会群发
10、一个MAC地址在同一台交换机上只能对应一个接口吗 ?
MAC不一定可以存在于多个接口,但是要是不同的VLAN
11、交换机MAC地址表有哪些表项?
MAC地址表由 MAC地址+接口号+Vlan 组成
12、交换机如何构建MAC地址表项?
根据收到的广播报文将源MAC地址与接口、vlan对应生成表