点击注册
点击注册
.
.
 
你的位置:澳门旅游攻略 > 澳门资讯 >

菠菜引流之劫持第二篇

菠菜引流之劫持第二篇

菠菜引流之劫持第二篇


今天聊聊运营商劫持


运营商劫持概述


劫持的目的


其实目的很简单,关于运营商劫持,一般运营商也不是无故做劫持,毕竟他们维护服务器,维护相应设备(比如分光器、分流器)也需要成本,运营商主要劫持出省流量,对于“小”运营商来说他们有省内流量考核,跨省访问会增加成本输出,集团控制出省流量,所以劫持往往发生在省间传输上。其次所有运营商都可能会做劫持,目的是减少省骨干网络链路的负载压力,尽可能的减少中继链路、远距离骨干链路,负载能力弱的链路上的流量,则会出现劫持的现象。


这个在上一面文章已经有过阐述了



劫持的方法


运营商/或者小区宽带会有分光器设备,因此可以把用户请求流量进行映射,从而获取用户请求响应,即可达到用户需要什么,然后再根据抢先建立HTTP连接,优先传给用户数据,这样真正提供资源的服务器返回来的数据就自然的被丢弃掉了。


劫持的演变


劫持的逻辑,慢慢的转化为了目前的CDN厂商在做的事,当然CDN厂商的流量调度主要是为了解决客户资源的分布式访问,避免用户访问资源时长时间等待。运营商主要的劫持动作还是修改访问资源的ip,也就是域名302了



劫持类别


劫持大可分为三类:


– DNS解析劫持


– 域名302劫持


– NATip劫持



关于DNS劫持


DNS劫持也可以理解为用户的请求去往了错误的DNS服务器进行查询解析,返回来的目的主机IP自然不是我们想要达到的资源服务器主机,这往往发生在用户请求的第一步,目前在鹏博士网内遇见的比较常见。


长宽资源经常出现被劫持和转发错误的现象。解决办法如下:


1、把转发列表写到named.conf文件里,更新我们的转发ip


2、然后编写策略针对我们要去的域名从BGP出口出去,防止NAT。


x.x.x.x.com,(绑定hosts: xxxx.xxxx.com )


zone "cdnxx.com" {

    type forward;

    forward first;

    forwarders { x.x.x.x;x.x.x.x;x.x.x.x};

};


zone "cdnxx.com" {

    type forward;

    forward first;

    forwarders { x.x.x.x;x.x.x.x;x.x.x.x };

};


场景1:


DNS服务器为本地运营商的DNSip,但是解析到的目标cache是其他省市的ip。


原因是转发或者nat没有做好,没有转发到我们指定的DNS服务器上进行解析,或者从nat口出去,改变了长宽的源地址。


场景2:


DNS服务器为本地运营商的DNSip,但是解析到的目标cache是本省市的ip。


原因是本地运营商有cache缓存,相当于小型的CDN节点服务器(浏览器的cookie),要把我们需要的域名添加到缓存黑名单里,不进行本地缓存。


场景3:


DNS服务器为本地运营商的DNSip,但是解析出来的ip,有时候是正确的,有时候是其他运营商的。


原因是该地市有多个cache服务器,需要在缓存服务器里把所有的转发ip和域名都做好缓存黑名单。


运营商解决时需要添加的列表:


ixcache缓存设备 panabit(流控)把不做缓存的域名加入到名单里。


场景4:


DNS解析有时候成功有时候失败。


原因是长宽本地会有缓存服务器,之上有一个缓存控制器,如果我们的解析被缓存服务器命中,就会本地直接返回结果,所以要在控制器上做策略,禁止调用到缓存。





关于域名劫持HTTP302

HTTP302即为:访问的资源暂时性转移,得到新的资源位置,然后重新访问获取资源。


这其实就是典型的CDN运营架构了,CDN的资源调度就是这么去做的。假如北京的用户需要访问某个网站,CDN公司得到网站方的授权后,就会把直接访问的URL做CNAME跳转到CDN调度服务器上,接下来根据区域localdns的识别将北京的用户请求,调度到就近的节点进行服务。


那么,CDN可以利用HTTP302进行调度,那么运营商“更”可以这么做了,这里说的“可以”中心意义是运营商有着近水楼台的优势,在IDC出口方向可以把流量做镜像到自己的服务器上,该服务器可以将URL上的资源提取出来,然后查找自己的数据库、存储资源是否有该资源,如果有那么就会302到自己的服务器上,为用户提供资源,从而拦截了正常的请求响应。如果没有该文件,运营商通常会统计资源的热点程度,毕竟运营商的存储设备也不是无限大的,为了提高利用率肯定要优先缓存访问量高的文件。接着刚才的说,如果存储设备里没有该资源,那么运营商会监听这个请求流,直到请求返回应答,这样自己在本地也就可以备份一份资源了,如再有请求过来,就可以直接吐给用户数据。这样就做到了劫持。


解决办法


原理和现象比较好说,但是说到解决办法其实并没有什么主动出击,考自己攻破的方法,只能求爷爷告奶奶的去找我们的IDC机房,让他们把我们劫持的现象(HTTP302)、诉求、相关数据上传到集团哪里,找到相对应的人员才可以解决。运营商一般处理办法就是在他们自己的缓存设备上把劫持的域名加入白名单,然后清除缓存。这样再过来请求的流就不会被劫持了。


我还见过其他方式的劫持,不是运营商自己做的,而是和竞争厂商一起做的,比如A公司和B公司为行业利益相争的友商,不凑巧的是A公司的实力比较雄厚可以收拢运营商的人,或者某个IDC机房的人,在机房出口或者小区出口架设分流器等设备来采集通过的业务流量,一旦流量被匹配上之后也直接做劫持,这种情况再工作中虽然不常见,但是只要遇到解决起来极其的费劲


我们应该向客户说明情况并收集一些证据如劫持证据、证明CDN授权、监控数据等。


联系劫持ip归属地的IDC机房负责人或者运营商的人来说明情况。


有些运营商也建议直接找当地公安局、网警进行报案,并配合处理。


自行去当地机房查看设备情况,一同排查内部架构。


找到被劫持的友商了解情况,通过公司高层、集团领导出面处理。


技术过硬的话可以采取HTTPS进行加密传输,或者其他技术手段避开数据采集。



IP网中的用户流量采集方式有多种方式,例如Port Montoring、WCCP协议(Web Cache Communication Protocol)的流量重定向、分光器流量采集、四层交换机的流量重定向等,在具体应用时,可根据网络结构、网络流量、设备特点等情况决定采用合适的流量采集方式。


现对Port Montoring和分光器两种方式分别进行说明,并进行分析比较。



方式一:端口镜像(Port Monitoring)


通过在网络的核心层或汇聚层交换机上设置端口镜像,将交换机上联端口的出境流量复制(镜像)一份到Openet BSMP前置机上,即可采集到所有用户访问网络的请求。目前,绝大部分中高端交换机均支持端口镜像功能,如Cisco Catalyst 序列、3Com CoreBuilder序列、华为的S8000序列、Foundry的BigIron 4000/8000序列、Extreme的BD6800/AP3800序列等。


这种方式的优缺点如下。


优点:


1、成本低廉,不需要增加任何网络设备;


2、启动端口镜像会话(Session)时,对交换机的性能基本无影响;


3、可从交换机上采集到所有用户访问请求数据;


4、故障保护,当采集系统或前置机出现故障时,对现有的网络和业务没有任何影响。


缺点:


1、占用交换机端口:采集系统需要和交换机直连,将占用交换机一定数量的GE和FE端口;


2、需要修改交换机配置:需要修改交换机的配置,将合适的流量复制到镜像端口,但在修改配置时不会对交换机性能和业务有影响;


方式二:分光器(Optical Splitter)


对于某些节点,宽带接入服务器通过光口GE链路直接与核心路由器(一般为Cisco GSR)相连,宽带接入服务器及GSR均不支持端口镜像,这时采用分光器进行流量采集是最合适的方法。当某些节点的核心交换机、汇聚层交换机没有足够的GE端口,不适合采用端口镜像进行流量采集时,或希望在出口采集网络流量,就可以采分光器进行流量采集。分光器是一种无源光器件,通过在物理层上进行光复制来进行用户访问请求数据的采集,其优缺点如下。


优点:


1、性能优异:可支持GE甚至在2.5Gbps POS链路上通过分光器进行流量采集;


2、故障保护:当采集系统故障时,对现有网络及业务无任何影响;


3、无需修改现有网络设备的任何配置,不改变网络结构,可采集到所有的网络流量,和网络无缝集成;


4、可靠性高:分光器是一种无源光器件,可以看作是一种特制的光纤,可靠性高;


5、不占用网络设备端口,投入成本低。


缺点:


需要将设备的上联光纤改为分光这涉及到一次简单的网络割接,这将导致网络瞬时中断(不超过5秒钟),对业务有细微的影响;



对于以上的是比较专业的一些干货了,有的是理论上的,说起来有点难以理解,但是如果想了解劫持怎么做,或者想把劫持做好,你需要不被忽悠才是王道,希望对各位朋友有所帮助。