Tacacs服务端 2020-1-15启动 现状: ---现有tacacs+后端加入了freeraidus等组件,每一个环节都会影响着tacacs+的性能 ---现有的tacacs+采用的是多进程的方案(传统的apache方案),虽然在linux上创建一个进程的代价是很小的,但是仍旧不可忽略,对于成千上万的tcp连接请求,另外进程之间数据交付较为麻烦。增加了程序的复杂度 ---java nio 基于Linux epoll ,epoll支持一个进程打开的socket描述符(fd)不受到进程的限制(仅仅受到系统本身的限制) 预留问题.... 分网段多共享密钥? 日志外发? 授权的权限匹配度? ====db=== select v.*,e.permission_id,e.ace_order,p.id,p.name,p.type from (SELECT v1.acl_id, v1.usertype, v1.usergroupid, v1.usergroupname, v1.userid, v1.username, v2.restype, v2.resgroupid, v2.resgroupname, v2.clientid, v2.clientname FROM ( SELECT t0.acl_id, 'user'::text AS usertype, ''::character varying AS usergroupid, ''::character varying AS usergroupname, m.id AS userid, m.name AS username FROM (t_aaa_acl_object_identity t0 JOIN t_acc_master m ON (((t0.object_id_identity)::text = (m.id)::text)and m.status='normal')) WHERE (t0.object_id_class = 1) UNION SELECT t0.acl_id, 'usergroup'::text AS usertype, g1.id AS usergroupid, g1.name AS usergroupname, m.id AS userid, m.name AS username FROM (((t_aaa_acl_object_identity t0 JOIN t_acc_master_group g1 ON (((t0.object_id_identity)::text = (g1.id)::text))) JOIN t_auth_r_mastergroup_master ma1 ON (((ma1.mastergroupid)::text = (g1.id)::text))) JOIN t_acc_master m ON (((ma1.masterid)::text = (m.id)::text)and m.status='normal')) WHERE (t0.object_id_class = 2)) v1, ( SELECT t0.acl_id, 'res'::text AS restype, ''::character varying AS resgroupid, ''::character varying AS resgroupname, r.id AS clientid, r.name AS clientname FROM (t_aaa_acl_object_identity t0 JOIN t_auth_res r ON (((t0.object_id_identity)::text = (r.id)::text)and r.status='normal')) WHERE (t0.object_id_class = 3) UNION SELECT t0.acl_id, 'resgroup'::text AS restype, g2.id AS resgroupid, g2.name AS resgroupname, r.id AS clientid, r.name AS clientname FROM (((t_aaa_acl_object_identity t0 JOIN t_auth_res_group g2 ON (((t0.object_id_identity)::text = (g2.id)::text))) JOIN t_auth_r_resgroup_res ma2 ON (((g2.id)::text = (ma2.resgroupid)::text))) JOIN t_auth_res r ON (((ma2.resid)::text = (r.id)::text)and r.status='normal')) WHERE (t0.object_id_class = 4)) v2 WHERE ((v1.acl_id)::text = (v2.acl_id)::text) ORDER BY v1.acl_id) v,t_aaa_acl_entry e,t_aaa_permission_group p where e.id =v.acl_id and p.id=e.permission_id and p.type='1' and p.status='on' order by ace_order desc