强制门户技术是一种位于网关上的功能,lan侧用户访问外网,强制先进行网关认证,认证经过,才能够访问外网。最近研究了一下这种技术,并在项目中实现,用于用户的web快速登录web
我认为强制门户技术的核心是重定向
,重定向的方法有多种,好比基于MAC或IP的重定向、DNS重定向、HTTP重定向、WPAD等等,固然重定向的做用范围远不止强制门户技术。不管是何种重定向,本质上是利用通讯协议的机制和规则,实现特定数据流的转发浏览器
我使用的是DNS重定向和HTTP重定向结合的方案,经过DNS重定向,将lan侧用户的外网访问请求指定到网关管理地址,网关HTTP进程接收特定的HTTP请求后,返回特定的重定向报文,lan侧客户端浏览器以重定向报文中指定的URL再次发起请求,以此将用户强制到网关的登录页面。整个通讯过程以下图服务器
这里有几个前提:dom
基于这样的前提,会有如下的几个过程:tcp
www.hao123.com
,可是主页是一个域名(domain name)而非一个ip地址,浏览器不知道主页www.hao123.com
的ip地址是多少,没法与该域名所在服务器创建tcp链接,因此须要经过DNS协议向DNS服务器查询域名对应的的ip/wpad.dat
,这个特殊URL是WPAD协议规定,该协议还未研究,只是PC机固定会发该URL