aaa是认证、授权和计费三个的缩写。
总的来说就是为了对用户身份,用户行为,用户计费相关所推出的一些机制。
用户通过NAS网络接入点去访问网络,或是访问设备。这些需要aaa进行用户的身份认证,当用户进行一些上网行为的时候,还需要对其访问的资源进行记录,并依据这些资源的访问记录进行计费。
aaa的认证方式有三种,第一种是不认证,第二种是本地认证,本地认证很好理解,将用户的信息存储在本地设备,当认证成功后就为其提供服务,但是本地认证是不提供用户计费的功能的,第三种是远端认证,远端认证采用额外的aaa服务器提供认证,授权,计费的三种功能,如果采用aaa服务器进行aaa的相关业务,那么NAS的功能就仅仅只是将用户信息传递到aaa服务器上进行认证。NAS与aaa服务器之间使用的协议是radius。
当用户想要上网的时候,它就将用户信息传递给NAS,然后NAS将用户信息传递给aaa服务器,因为使用的协议是radius,所以aaa服务器在认证成功之后会将授权的相关信息传递给NAS,然后NAS再将认证成功的信息传递给用户。于是用户就可以进行正常的上网,当用户在上网的时候,aaa服务器会将其上网时所访问的资源进行记录,然后根据计费规则进行计费。
aaa相关配置
aaa //进入aaa视图下
authentication-scheme xxx //创建对应的认证模式
认证视图:authentication-mode [radus|local|hwtacacs] //选择认证模式,可以选择local本地认证也可以选择hwtacacs协议或者radius协议支撑的远端认证。
authorization-scheme xxx //创建对应的授权模式
accounting-scheme xxx //创建对应的计费模式
domain xxx //创建一个域,创建一个域的目的是为了将用户划分到固定的域中,然后使用域绑定的认证、授权模式以及计费规则
authentication-scheme xxx //将认证模式绑定到对应的域
authorization-scheme xxx //将授权模式绑定到对应的域
accounting-scheme xxx //将计费模式绑定到对应的域
创建用户
local-user xxx password cipher xxx
如果用户名的名字格式是xxx@domain
那么当用户进行认证的时候会判断用户名@后面的域名,去匹配使用对应域名中的配置,比如验证,授权和计费就是使用该域中的模式
如果没有@,那么使用的是默认域中的配置。
local-user xxx service-type xx //设置用户的类型。比如用于telnet还是ssh
其实创建认证模式并将对应的认证模式绑定到域中,其作用
是为了让用户使用不同的aaa配置,比如使用的是本地
认证,hwtacas还是radius协议进行认证,如果是radius的
远端认证,那么用户的相关aaa服务将会被aaa服务器判断
比如认证是否通过,授权是否通过,又该如何计费。
而设置用户类型也是为了设置用户上网的一个使用类型。
实例分析
在华为的一些教材上一定会出现一个配置实例就是telnet的配置,telnet的配置首先就是在aaa视图中创建一个用户,然后设置这个用户的服务类型,以及这个用户的使用权限,然后再虚拟接口上配置虚拟接口的认证模式。
我们在上面这个过程中需要注意,我们并没有设置对应的认证模式并将认证模式绑定到域中,我们是直接进行用户的创建,这个过程该用户使用的是默认域中的配置,它使用的就是本地认证。在aaa视图中进行了用户的配置,然后用户进行认证的时候直接使用本地认证,将用户输入的信息与本地的信息进行比对,若比对成功则认证成功。
display domain name default_admin //显示的是默认的域配置
display aaa offline-record all //显示用户下线信息