运营商劫持大致分为两种方式:
DNS强制解析的方式
访问请求的302跳转。
DNS强制解析是通过修改运营商的本地DNS记录,来引导用户流量到缓存服务器。工作的方式如下:
用户通过域名发起访问请求;
请求通过本地DNS进行解析;
运营商DNS设置强制解析策略;即所有该域名的请求都解析到事先写好的服务器上;
终端用户到劫持服务器交互访问;
劫持服务器如果有需要的访问内容,则直接返回响应给用户;如果没有,则去源站同步内容。
302跳转的方式和DNS强制解析的方式主要在引流的方式上有所区别。内容缓存是通过监控网络出口的流量,分析判断哪些内容是可以进行劫持处理的。再对劫持的内存发起302跳转的回复,引导用户获取内容。其需要对上行的请求流量进行端口镜像或者分光处理。可以理解成复制一份上行的流量信息 。工作的方式如下:
终端用户发起访问请求;
流量通过网络出口对外发起访问;
访问流量被镜像一份给劫持系统的DPI设备;
DPI对流量进行分析判断,比如http get、80端口等数据
缓存系统判断是否热点资源,比如连续请求5次的相同内容;
给用户发送响应请求,告诉客户本地即是客户需要访问的内容;
由于本地的缓存系统离客户更近,所以客户更早收到缓存系统的响应;
用户和本地的缓存系统建立网络交互,源站的响应回来的晚,会自动断开;
如果本地有缓存内容,则给用户响应内容,如果本地没有,会计算访问次数。当达到响应的内容时。
检测网络劫持可以通过IIS7网站监控,可以检测网站是否被劫持、域名是否被墙、DNS污染检测、网站打开速度检测、网站是否被黑、被入侵、被改标题、被挂黑等信息。