用户pc为ipv4+ipv6形式访问互联网,要求做到pc在没有进行任何协议栈认证前禁止上互联网,只需要认证一次即可访问互联网,无需多协议多次认证。
截止标准版本12.0.62和AC/SG13.0.62,AC/SG设备内网电脑同一个网卡使用IPV6和IPV4双栈的情况,不支持实现只认证一次就都可以上网;从AC/SG13.0.80版本开始,支持IPv4/IPv6双栈认证。
注:目前展示版本为13.0.80版本
5、功能实现原理
(1)、原理逻辑图片
(2)、文字描述
a. PC浏览器访问网站时,设备驱动获取到PC当前的发请求的ip(如IPv4)
b. 如果当前ip在线则直接放通,若不在线且属于密码认证则会被重定向到HTTPGET:/ac_portal/proxy.html
c. 后台redirect.lua中监听到该URL请求,则获取双栈配置dual_stack是否开启,并带上该参数重定向到实际的proxy.html
d. 前端proxy.html页面判断dual_stack为1且非认证中心场景是否满足
e. 不满足则走原密码认证逻辑,否则构造双栈请一次js请求获取PC当前ip以及双栈配置的另一类型虚拟ip和是否继续双栈等信息
f. 若不继续走双栈认证则走原密码认证逻辑,否则构造第二次请求,带上第一次请求获取到PC的ip和 proxy.html中相关参数,获取联动上线状态
g. 后台获取到PC另一ip后,查询其在线状态以及上线时的认证方式
h. 若不在线或为不需要认证,则返回前端走原密码认证逻辑
i. 若在线且为非不需要认证,则根据另一ip上线信息,将PC当前ip以密码认证方式直接tryLogon
j. 若PC当前ip联动上线失败,则将失败信息返回给前端,由前端走原密码认证逻辑并显示联动失败原因
k. 若PC当前ip联动上线成功,则返回给前端,由前端跳转到原用户访问URL或者对应认证结果页面
(3)简言之:
a. 第一次访问的页面是v4,跳转认证界面,以V4的地址上线AC,然后访问v6页面时,重定向到AC认证请求页面(用户无感知),检测设备V4地址是否在线,若在线则无需认证直接上线
b. 第一次访问的页面是v6,跳转认证界面,以V6的地址上线AC,然后访问v4页面时,重定向到AC认证请求页面(用户无感知),检测设备V6地址是否在线,若在线则无需认证直接上线
6、配置
(1) 双栈认证默认时关闭的,后台开启配置并重启服务
a、注:重启服务不影响在线用户,但是影响新用户认证上线。
(2)具体操作:
a、vi /ac/etc/config/fw/dual_stack.ini(修改配置文件 enable=1其他保持默认)
b.、/etc/init.d/nginx restar
/ac/common/scripts/waf_host_conf.sh
daemonrestart ac-auth-mon
(3)策略配置
a、配置认证策略,认证范围需要填写涉及所有pc的网卡的所有IP信息
b、上线验证
同一用户,会关联双栈ip,且都是以密码认证形式上线。
ipv6地址以无需认证形式上线,为双栈认证异常状态