清除dns缓存命令行_怎么防止移动dns劫持,防止移动dns劫持要先了解什么是dns劫持...

本人以网络技术出身,近两年接触CDN网络,处理了一些CDN方面的网络问题,大多数以运营商丢包,延迟抖动为主,也处理一些硬件故障,比如机械硬盘的读写io测试,内存条兼容性测试,服务器IPMI规划等。这篇文章打算把自己对运营商对资源请求的劫持写下来,这个其实不是很罕见的事例,也不是网上找不到解决办法,也不是无法理解的尖钻技术,只是罗列一下自己的所知。


CDN网络访问拓扑

既然提到了CDN网络,那就顺带提一句吧。

这回可以开始废话了吧?:大体的工作逻辑有用户的访问、localdns的解析、CDN资源调度、资源应答。

如果按照这种方式去运营CDN,估计CDN行业早就倒闭了,先不说资源调度的好坏,如果有恶意的攻击流量,整个CDN系统就直接可以GG思密达了。

IIS7网站监控工具可以做到提前预防各类网站劫持,并且是免费在线查询,通过查询知道域名是否健康等等。

它可以做到24小时定时监控:

2、网站是否被劫持

3、域名是否被墙

4、DNS是否被污染

5、独家检测网站真实的完全打开时间

检测地址:IIS7网站检测

f3b8a1f31043cba38f57a10c4cecf7a9.png

所以我这里也只是为了阐述运营商劫持行为,简单的说明了一下CDN网络,读者千万不要认为CDN如此的简单,CDN需要更多更强大的调度系统、数据监控系统、nginx、lvs等系统技术(我也就知道这些了)。高端的CDN厂商还有自建专线、自建IDC、甚至用到了ISP的骨干策略MPLS-TE。这些都是不可小觑的技术,详细的CDN知识我就不卖弄了,毕竟我只是做网络的,对系统部分还很薄弱,喜欢了解的读者可以阅读《CDN技术详解》来增长对CDN的见解。

运营商劫持概述

劫持的目的

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

劫持的方法

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

劫持的演变

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

劫持类别

劫持大可分为三类:

– DNS解析劫持

– 域名302劫持

– NATip劫持

关于DNS劫持

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

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

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

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

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

zone "http://cdnxx.com" {

type forward;

forward first;

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

};

zone "http://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解析有时候成功有时候失败。

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

其实我在排版的时候一直在纠结,我这个图应该放在这部分的前面还是后面,左右了半天还是决定贴在后面吧,这样不会冲乱DNS forward的配置。

关于域名劫持HTTP302

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

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

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

当然,再进一步讲,劫持动作可以做到你家门口,原理、意义,同上。

解决办法

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

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

  • 我们应该向客户说明情况并收集一些证据如劫持证据、证明CDN授权、监控数据等。
  • 联系劫持ip归属地的IDC机房负责人或者运营商的人来说明情况。
  • 有些运营商也建议直接找当地公安局、网警进行报案,并配合处理。
  • 自行去当地机房查看设备情况,一同排查内部架构。
  • 找到被劫持的友商了解情况,通过公司高层、集团领导出面处理。
  • 技术过硬的话可以采取HTTPS进行加密传输,或者其他技术手段避开数据采集。
  • 最后一点,希望以上建议可以解决问题,如不能,请看下一条。
  • 最最后一条,终极奥义!以其人之道还治其人之身!

收个尾巴

暂且,个人对运营商劫持的理解也就到这个层次,但是我相信,在我职业生涯中这里面的猫腻肯定不是只有这些,运营商想搞事情,谁拦得住?!

2017年10月25日

工作中遇到新的劫持现象,http状态码499突增。

我先说现象:

抓包看到,客户端有request请求包过来,然后按理说服务器需要回response返回给客户端,但是随即又收到了客户端发来的RST这就表示客户端又把连接关闭,起初排查时候认为是下载速递有影响导致客户端等待不及就把连接手工断开了,或者是客户端的故障导致重新建联,随后找到运营商那边了解情况,发现业务访问没有影响,细查后发现是有缓存设备。

缓存原理:

当客户端(真)发起请求时,经过一系类的dns解析、调度来我们服务器,然后建立tcp连接后准备请求数据,然后缓存服务器进行数据流分析,根据文件类型做匹配,如果匹配到缓存服务器中有该请求文件,则做2个动作,第一是返给客户端302跳转到自己的缓存存储服务器上请求数据,第二是模仿客户端的ip地址向真正的业务服务器发起断开连接,服务器会认为客户端(假)取消了建联,进而切断了真的客户端与服务器之间的数据交互。然后缓存服务器把资源吐给客户端。

排查后就需要联系缓存业务的人员取消劫持,只是在排查过程中很难发现有“中间人”在从中捣乱。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动硬盘格式化(pc和mac共用)-菜鸟级解决方案[转]

用pc的时候买了一个320G的移动硬盘&#xff0c;从来没考虑过什么格式化的问题&#xff0c;插上就用了。 后来接触mac才发现pc和mac在移动存储设备的格式化上还是有不少冲突的。如果你的移动硬盘mac上不能修改&#xff0c;或者pc上找不到&#xff0c;那就尽情得批判万恶的资本主…

回答知乎问题:你写过什么自认为惊艳的诗?

首次整理于 2019-07-27 22:04:00&#xff0c;现在整理发布在公众号申明原创。整理了一下大学期间2012年&#xff5e;2016年发布在QQ空间&#xff0c;自己感觉写得还行的七首“诗词”。回答知乎问题&#xff1a;你写过什么自认为惊艳的诗&#xff1f;中国古诗词博大精深。小时候…

密码可逆不可逆选择_膝关节损伤不可逆!跑步要注意!

膝盖同时也是运动者最常受伤的关节。根据美国运动医学整型外科协会的报告&#xff0c;美国每年约有三百万人拉伤、挫伤、或扭伤他们的膝部&#xff0c;其中约有一半是因为运动引起的。而对于跑者而言&#xff0c;影响最大的就是我们的膝关节。换言之&#xff0c;长跑的潜在危害…

面试官问:能否模拟实现JS的call和apply方法

写于2018年11月30日&#xff0c;发布在掘金上阅读量近一万&#xff0c;现在发布到微信公众号申明原创。相对比较基础的知识&#xff0c;虽然日常开发可能用得比较少&#xff0c;各种源码中有很多call和apply&#xff0c;需要掌握。前言这是面试官问系列的第三篇&#xff0c;旨在…

prometheus 发送恢复 值_Prometheus基础知识介绍

【编者的话】本文会让你了解Prometheus是什么&#xff0c;并让你理解它在监控领域的适用场景。Prometheus起源很久以前&#xff0c;加利福尼亚州山景城有一家名为Google的公司。他们推出了大量产品&#xff0c;其中最著名的是广告系统和搜索引擎平台。为了运行这些不同的产品&a…

面试官问:JS的this指向

写于2018年12月25日&#xff0c;发布在掘金上阅读量近一万&#xff0c;现在发布到微信公众号申明原创。前言这是面试官问系列的第四篇&#xff0c;旨在帮助读者提升JS基础知识&#xff0c;包含new、call、apply、this、继承相关知识。面试官问系列文章如下&#xff1a;感兴趣的…

要做PPT,一直找不到资源?

写于 2016年6月&#xff0c;工作后就很少做PPT了。但工作至今也有人问我如何做PPT有没有模板之类的问题&#xff08;比如&#xff1a;大学室友做公司年度汇报时也找到我问有没有模板&#xff0c;我发了这篇文章给他&#xff0c;他说不记得我写了这篇文章呀&#xff09;&#xf…

Linux系统安装Appach 2.4.6

转载链接&#xff1a;http://www.cnblogs.com/kerrycode/p/3261101.html Apache简介 Apache HTTP Server&#xff08;简称Apache&#xff09;是Apache软件基金会的一个开放源码的网页服务器&#xff0c;可以在大多数计算机操作系统中运行&#xff0c;由于其多平台和安全性被广…

学习 redux 源码整体架构,深入理解 redux 及其中间件原理

如果觉得内容不错&#xff0c;可以设为星标置顶我的公众号1. 前言你好&#xff0c;我是若川。这是学习源码整体架构系列第八篇。整体架构这词语好像有点大&#xff0c;姑且就算是源码整体结构吧&#xff0c;主要就是学习是代码整体结构&#xff0c;不深究其他不是主线的具体函数…

pdf安装包_有么有pdf控件,不需要用户安装任何安装包直接打印的?

如果开发一个软件&#xff0c;需要用到PDF功能&#xff0c;您的选择是基于Adobe PDF吗&#xff1f; 如果是基于Adobe PDF&#xff0c;需要用户安装一个几十M的Adobe的安装包&#xff0c;这显然是不友好的。即使目前也有了一些其它的阅读器&#xff0c;大小也还好。但是&#xf…

[转] C#异步操作

Title 通过委托实现异步调用中BeginInvoke及回调函数的使用 通过委托实现异步调用的步骤&#xff1a; 1.定义委托。 2.将要进行异步调用的方法“实例化”到定义的委托。 3.在委托上调用BeginInvoke方法。其中&#xff0c;BeginInvoke的参数由三个部分构成。第一部分&#xff1…

HTTP Server Error 500 内部服务器错误

问题&#xff1a;HTTP500错误 或 Server Application Error ------------------------------------Server Application ErrorThe server has encountered an error while loading an application during the processing of your request. Please refer to the event log for mo…

使用 ohmyzsh 打造 windows、ubuntu、mac 系统高效终端命令行工具

如果觉得内容不错&#xff0c;可以设为星标置顶我的公众号原标题名&#xff1a;oh my zsh 和 windows git bash 设置别名提高效率写于2018年06月03日在我的微信交流群中听闻很多前端开发比较贫穷&#xff0c;没有买mac电脑&#xff08;比如我&#xff09;&#xff0c;也没有用过…

request获取mac地址_【Go】获取用户真实的ip地址

原文链接&#xff1a;https://blog.thinkeridea.com/201903/go/get_client_ip.html用户请求到达提供服务的服务器中间有很多的环节&#xff0c;导致服务获取用户真实的 ip 非常困难&#xff0c;大多数的框架及工具库都会封装各种获取用户真实 ip 的方法&#xff0c;在 exnet 包…

iPhone开发四剑客之《Objective-C基础教程》

iPhone 开发四剑客之《Objective-C 基础教程》 Objective-C 语言是 C 语言的一个扩展集&#xff0c;许多&#xff08;可能是大多数&#xff09;具备 Mac OS X 外观的应用程序都是使用该语言开发的。它以 C 语言为基础&#xff0c;添加了一些微妙但意义重大的特性。 苹果公司为…

keras训练完以后怎么预测_还在使用“龟速”的单显卡训练模型?动动手,让TPU节省你的时间...

点击上方关注&#xff0c;All in AI中国本文将介绍如何使用Keras和Google CoLaboratory与TPU一起训练LSTM模型&#xff0c;与本地计算机上的GPU相比&#xff0c;这样训练能大大缩短训练时间。很长一段时间以来&#xff0c;我都在单张GTX 1070显卡上训练我的模型&#xff0c;它的…

手把手教你写个小程序定时器管理库

背景凹凸曼是个小程序开发者&#xff0c;他要在小程序实现秒杀倒计时。于是他不假思索&#xff0c;写了以下代码&#xff1a;Page({init: function () {clearInterval(this.timer)this.timer setInterval(() > {// 倒计时计算逻辑console.log(setInterval)})}, })可是&…

[New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

《Windows Azure Platform 系列文章目录》 之前的内容里&#xff0c;我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure&#xff0c;并创建基于该Server 2012 VHD的虚拟机。 我们知道&#xff0c;VHD不仅仅可以保存操作系统&#xff0c;而且可以保存数据文件。 如…

python 退出程序_Python:用Ctrl+C解决终止多线程程序的问题!(建议收藏)

前言&#xff1a;今天为大家带来的内容是Python:用CtrlC解决终止多线程程序的问题&#xff01;文章中的代码具有不错的参考意义&#xff0c;希望在此能够帮助到各位&#xff01;(多数代码用图片的方式呈现出来&#xff0c;方便各位观看与收藏)出发点&#xff1a;前段时间&#…

若川知乎高赞:有哪些必看的 JS 库?

欢迎星标我的公众号&#xff0c;回复加群&#xff0c;长期交流学习我的知乎回答目前2w阅读量&#xff0c;270赞&#xff0c;现在发到公众号声明原创。必看的js库&#xff1f;只有当前阶段值不值看。我从去年7月起看一些前端库的源码&#xff0c;历时一年才写了八篇《学习源码整…