MAC 认证,是种基于端口和 MAC 地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件;
接入设备在启动了 MAC 认证的接口上首次检测到用户的 MAC 地址后,即启动对该用户的认证操作;
原理简述
以用户的 MAC 地址作为身份凭据到认证服务器进行认证;
特性特征
在认证过程中,不需要用户手动输入用户名或者密码;
应用场景
MAC 认证的应用场景:
1)哑终端的接入认证(如 IP 电话、打印机):哑终端表示相对于其他终端而言功能较为有限、交互方式比较单一,这里泛指无法输入用户名和密码等认证信息的终端;
2)不需要或用户无法安装任何客户端软件;
3)或结合认证服务器实现「MAC 优先的 Portal 认证」:当用户首次认证通过后,一定时间内免认证再次接入;
组网方式(网络结构)
包含认证客户端、接入设备、认证服务器;
在无线网络中:
触发认证的方式
缺省时,交换机收到 DHCP/ARP/DHCPv6/ND 报文后均能触发对用户进行 MAC 认证。支持通过配置,使交换机收到任意的数据帧后触发 MAC 认证;
在缺省情况下,MAC 认证的用户名和密码均为不带分隔符“-”的 MAC 地址。如“0005e0112233”;
认证的交互流程
PAP
1)接入设备首次检测到终端的 MAC 地址,进行 MAC 地址学习,触发 MAC 认证;
2)接入设备生成一个随机值(MD5 挑战字),并对 MAC 认证用户的[MAC 地址、密码、随机值]依次排列后经过 MD5 算法进行加密,然后将用户名、加密后的密码以及随机值封装在 RADIUS 认证请求报文中发送给 RADIUS 服务器,请求 RADIUS 服务器对该终端进行 MAC 认证;
3)RADIUS 服务器使用收到的随机值对本地数据库中对应 MAC 认证用户的[MAC 地址、密码、随机值]依次排列后进行加密(MD5 算法)处理,如果与设备发来的密码相同,则向设备发送认证接受报文,表示终端 MAC 认证成功,允许该终端访问网络;
CHAP
该方式的 MAC 认证与 PAP 方式的 MAC 认证相比,不同之处在于是:对 MAC 认证用户的[CHAP ID、MAC 地址、随机值]依次排列后进行 MD5 算法加密;
MAC 旁路认证(MAC Authentication Bypass)
802.1X 认证、MAC 认证和 Portal 认证各有各的特点,可采用混合认证的方式来满足不同的应用场景与认证需求;
当接入设备接口下同时存在 PC 和打印机 / 传真机等哑终端时,可以通过 MAC 旁路认证功能,使不具备 802.1X 认证能力的哑终端能够通过 MAC 认证方式接入网络;
MAC 旁路认证比单纯的 MAC 认证多一个 802.1X 认证环节(需要等待 dot1x 认证失败,而后 NAC-DEV 才会发起 MAC 认证),故时间要比 MAC 认证时间长;
配置案例
创建 / 进入 MAC 接入模板视图 [Huawei] mac-access-profile name access-profile-name 设备通过 MAC 接入模板统一管理 MAC 用户接入相关的配置。缺省情况下,设备自带 1 个名称为 mac_access_profile 的 MAC 接入模板; 配置 MAC 认证用户的认证方式 [Huawei-mac-access-profile-ProfileName] mac-authen authentication-method { chap | pap } 缺省情况下,MAC 认证用户认证方式为 PAP 认证。MAC 认证时,接入设备和认证服务器之间通过 RADIUS 报文进行交互,有 PAP 和 CHAP 两种交互方式,CHAP 方式较 PAP 方式安全性更高; 配置能够触发 MAC 认证的报文类型 [Huawei-mac-access-profile-ProfileName] authentication trigger-condition { dhcp | arp | dhcpv6 | nd | any-l2-packet } 缺省情况下,DHCP/ARP/DHCPv6/ND 报文均能够触发 MAC 认证; 配置 MAC 认证用户采用的用户名形式 [Huawei-mac-access-profile-ProfileName] mac-authen username { fixed username [ password cipher password ] | macaddress [ format { with-hyphen | without-hyphen } [ password cipher password ] ]} fixed username 参数指定 MAC 认证用户采用的用户名为固定用户名。若不设置密码则用户无需使用密码即可登录,不建议使用; macaddress 参数指定 MAC 认证用户采用的用户名为 MAC 地址。若不设置密码则用户密码即为用户的 MAC 地址。当采用本地认证时,必须配置密码; with-hyphen:指定 MAC 地址带有分隔符; without-hyphen:指定 MAC 地址不带有分隔符;