強制門戶技術是一種位於網關上的功能,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