交换机domain 概念详解

来源:互联网 发布:特效制作软件 编辑:程序博客网 时间:2024/06/04 18:30

  

交换机是基于域(domain)对用户管理

交换机时基于域对用户进行管理,

在目前AAA的实现中,所有用户都属于某个域。用户属于哪个域是由用户名中带的“@”后的字符串来决定的,比如“user@hua”,就属于“hua”域;如果用户名中没有带“@”,对于普通用户,属于系统缺省的default域,对于管理用户,属于系统缺省的default_admin域。

domain  default // 普通用户的默认域

 domain  default_admin // 管理人员的默认域

 domain  huawei         //创建一个huawei的域

做802.1x认证时,交换机domain的几种用法分析

         在做802.1X认证时,3A RADIUS服务器上需要存储用户的用户名和密码。客户端做认证时输入的用户名和3A RADIUS服务器上的用户名的不一定是          一样的。客户端上输入的用户名可能为A@X,也可能直接就是A这个和交换机上的domain配置有关

     原理分析

       EAPCHAP的区别

首先分析一下EAPCHAP之间的区别:

EAPchap的区别就在于,如果1x的认证方式是EAP的话,即dot1x authentication-method eapNAS(交换机等)仅仅是做到了EAP报文的透传,准确地说就是在Client端和Radius之间作消息的封装和转发。所以认证时输入的用户名是什么,交换机就上传什么到3A服务器上。这个可以通过在交换机上debug看到,或者抓包在Access-request报文中看到。

      CHAP对认证报文的处理方式

chap的方式,会对上传到设备的用户名是否带后缀做处理。具体的处理方式就是:

1 当如果交换机上配置了user-name-format with-domain,不管认证时输入的用户名是否带后缀,交换机都会处理成带后缀的用户名(例如test@abc上传到3A服务器上去匹配

举例来说:

3A服务器上有两个帐号,一个是test1,一个是test2test1申请的服务是suffix(这个服务是配置了suffixabc的),test2申请的服务是nosuffix(这个服务是没有配置suffixabc的)。

这里的对象是交换机,如果交换机上指定缺省的domain就是是abc,即domain default enable abc

当认证输入的用户名是test1时,按照上面的配置,则上传到服务器上的就是test1@abc,显然和服务器上的帐号test1(对应的服务后缀为abcsuffix服务)相匹配,就认证通过了。当输入用户名是test1@abc时,上传到服务器上的就是test1@abc,认证会通过

当认证输入的用户名是test2时,按照上面的配置(domain default enable abc),则上传到服务器上的报文属性中就是携带test2@abc,但服务器上的帐号test2和其服务nosuffix并不知道还有一个abc存在,相当于test2@abc和服务器上的test2做比较,所以就会报“The user does not exist or has not subscribed for this service”。 当认证输入用户名是test2@abc时,上传到服务器上的是test2@abc,也会报“The user does not exist or has not subscribed for this service”。

交换机上如果没有指定缺省domainabc的话,则交换机默认认为domainsystem,此时用户输入的用户名test1不带后缀,交换机就会默认这个用户名的后缀是system,当成test1@system,那交换机本机就认为这个用户名是不对的,直接就被本机拒绝了,就是reject by local server若输入test1@abc,还是会认证通过。只输入test2也是认为是test2@system,直接就reject by local server。输入test2@abc的话仍然和前面的情况一样The user does not exist or has not subscribed for this service

2) 当如果交换机上配置了user-name-format without-domain,对于chap方式,无论客户端发起认证时用户名后面是否有后缀,交换机在认证或计费请求报文中username属性中都不带域名后缀-------上传到服务器时都不带后缀

仍然以上面的例子来说:

如果交换机上指定缺省的domain就是是abc,当输入的用户名是test1时,按照上面的配置,则上传到服务器上的就是test1,显然和服务器上的帐号test1(对应的服务后缀为abcsuffix服务)不匹配(相当于test1test1@abc做比较),所以会报“The user does not exist or has not subscribed for this service”。当输入的用户名是test1@abc,上传到3A服务器上的就是test1,仍然是test1和服务器上的test1@abc做比较,会报“The user does not exist or has not subscribed for this service”。

当认证输入用户名是test2或者test2@abc时,上传到服务器上的就是test2,就会和服务器上的test2比较,则认证时通过的。

如果交换机上没有指定缺省的domain的话,和前面一样,输入test1test2的话,就会直接reject by local server。输入test2@abc,上传到3A上的是test2,可以认证成功。(服务上 关于test2 的认证是不带后缀的)

      EAP对认证报文的处理方式

对于EAP方式的话,由于设备是实行eap透传,不对用户名和其后缀域名进行改动。分析和上面一致。差别就是上传到3Ausername是带域名还是不带域名是由认证输入来决定(即用户输入),而不再是设备。

1 如果交换机上指定了缺省了domainabc的话,不管交换机上配置了user-name-format with-domain还是user-name-format without-domain当认证输入用户名test1上传到3A上的是test1,会和3A上的test1@abc比较,显然是“The user does not exist or has not subscribed for this service”。当输入用户名是test1@abc时,上传到3A服务器上的是test1@abc,认证是通过的。当输入用户名是test2时,上传到3A服务器上的是test2,与3A服务器上用户列表中的test2匹配,认证成功。当输入用户名是test2@abc时,上传到3A服务器上的是test2@abc,与列表中test2不匹配,因此“The user does not exist or has not subscribed for this service”。

2 如果交换机没有指定缺省的domain的话,默认是system作为这个缺省domain。不管交换机上配置了user-name-format with-domain还是user-name-format without-domain,当认证输入用户名test1时,在交换机本机的域是system,直接就reject by local server。当输入用户名是test1@abc时,上传到3A服务器上的是test1@abc,认证是通过的。当输入用户名是test2时,在交换机本机的域是system,直接就reject by local server。当输入用户名是test2@abc时,上传到3A服务器上的是test2@abc,与列表中test2不匹配,因此“The user does not exist or has not subscribed for this service”。

 

0 0
原创粉丝点击