话不多说,放图
#227历史时刻[超话]#关于那些ao3没被墙的言论,还有什么“只要50次里有1次能登进去就是没被墙”的言论,我今天想争取写一份不是计算机专业的人也能看得懂的教程,科普一下所谓的“ip地址”、“域名”、“DNS污染”到底是什么。先说明一下:本人计算机科班出身,拿过腾讯的s级offer(不过没去,现在跟腾讯没任何关系),如果有虾来杠我,请先确保你比我厉害。
当然了,为了尽量通俗易懂,以下科普对一些知识做了必要的简化和省略。
第一,大家有必要知道一下服务器到底是什么。很简单,你可以理解为:服务器就是一台电脑,它接入互联网的时候,跟你家里用的电脑没区别,跟你的手机也没区别,它就是互联网里的一台设备(也可以叫“主机”)。
第二,ip地址是什么。你想写信给你的朋友,是不是需要知道对方的地址?ip地址就是主机在互联网中的地址,你想要访问别的的主机,首先要知道对方的ip地址。ip地址其实是一个32位的二进制数,就是长这样:01011110101111001110011101100101(我瞎几把打的,真正的ip地址表示有很多规则)。由于32位数字太难记了,所以我们每8位为一个单位,把它划分成4部分,再把4部分分别转化成十进制数,用小数点隔开,这样就有了我们经常看到ip地址形式:172.38.12.2(这也是我瞎几把打的,大家了解一下这个形式就可以了)。
第三,域名是什么。172.38.12.2这样的数字还是很难记,所以人们就引入了“域名”,说白了其实就是用一串有意义的字符来代替ip地址,比如baidu.com,这个域名你一看就知道这是百度的网站,要比39.156.69.79好记多了,39.156.69.79是百度服务器的ip地址,baidu.com是它的域名,39.156.69.79和baidu.com指向同一台服务器。为了方便管理,域名是分级的,比如域名mail.cctv.com,com是顶级域名,cctv是二级域名,mail是三级域名。每一级域名由其上一级的域名管理机构管理,顶级域名由ICANN(互联网名称与数字地址分配机构)进行管理,全球统一管理。顶级域名是固定的那么几个,这里仅举例AO3用到的几个:com(公司企业),net(网络服务机构),org(非营利性组织)。
第四,域名系统(Domain Name System),简称DNS。域名带来的问题是,我们想通过域名访问别的主机,就需要把域名转换成对应的ip地址,因为计算机只能处理数字信号,一切文字到最后都要被转化成数字信号。这个时候就需要DNS。互联网中有一种服务器,叫做“域名服务器”,顾名思义,这些服务器专门用来存放域名。域名服务器也是有层次结构的,从上至下依次是:根域名服务器,顶级域名服务器,权限域名服务器。根域名服务器存放顶级域名和顶级域名服务器的ip地址,顶级域名服务器存放在该顶级域名服务器注册的所有二级域名和权限域名服务器的ip,权限域名服务器存放它管理的区的域名对应的ip地址。大家可以这样简单地理解它们之间的关系:根域名服务器管顶级域名服务器,顶级域名服务器管权限域名服务器,权限域名服务器管它管辖范围内的域名。
还有本地域名服务器,它不属于域名服务器层次结构。
此外,还有一样东西叫做“高速缓存”,用来存放最近查询过的域名以及从何处获得域名映射信息的记录,目的是加快查询速度。比如,我刚刚访问过baidu.com,“域名baidu.com对应的ip地址是39.156.69.79”这个信息就会被存放在高速缓存中,但这个信息会“超时过期”,比如,过了10分钟(这个时长也是我瞎举的例子),它就无效了。但如果我在10分钟之内又访问了baidu.com,那就直接从高速缓存中读取信息就可以了,不用再进行其他查询。
域名查询的过程大致是这样的(这个过程太复杂,我只讲个大概,大家对查询过程有个整体印象就可以了):你在浏览器的地址栏里输入一个网址后,浏览器会解析出网址中的域名,然后你的主机首先检查浏览器高速缓存,如果缓存中有ip地址信息,就直接拿过来用,如果没有,就向本地域名服务器查询;本地域名服务器会检查它的域名服务器高速缓存,如果高速缓存中有这个域名对应的ip地址,则直接返回给你的主机,如果没有,则由本地域名服务器向根域名服务器查询;根域名服务器会告诉本地域名服务器下一步去哪个顶级域名服务器找;接着本地域名服务器向那个顶级域名服务器查询,顶级域名服务器会告诉本地域名服务器下一步向哪个权限域名服务器找;接着本地域名服务器向那个权限域名服务器查询,权限域名服务器返回所需的ip地址。
第五,DNS污染是什么。DNS污染就是,在以上查询的过程中,如果遇到在“黑名单”里的域名,就会有程序冒充域名服务器,返回错误的ip地址。这是墙的工作原理。Mac系统下nslookup命令可以执行对一个域名进行DNS查询的操作,比如执行nslookup baidu.com,会返回域名baidu.com对应的ip地址。我试了一下AO3官博提供的几个域名,发现每次这个命令返回的ip地址结果都不一样,由此推测墙应该是随机返回了一个无效ip。在浏览器中直接输入ip地址也是可以访问网页的,baidu.com有两个对应的ip:39.156.69.79和220.181.38.148,把它们分别输入浏览器地址栏都可以打开网页,但是用nslookup查询到的ao3的域名对应的ip就都打不开网页。所以AO3被墙无疑,别再造谣了。
第六,关于有人反映的3月份有人能登录进去的情况,这个我没法下结论,真正的互联网是一个非常庞大复杂的系统,要根据具体情况具体判断,根据每个人所在的地区不同,每个人访问ao3的时候经过的域名服务器也是不同的。但我可以合理推测,有可能是因为某个服务器的高速缓存的数据没有来得及更新,而这个高速缓存在墙来得及介入查询系统之前就把正确的ip地址返回给了客户。虽然高速缓存内信息的生命周期很短,但我认为依然有这种可能。而等到高速缓存内的信息失效或者被污染之后,自然就又访问不了了。
第七,“只要50次里有1次能登进去就是没被墙”简直是放屁,任何系统都会有bug,墙也可能出bug,如果你们认为这个逻辑成立的话,以后微信崩了腾讯是不是也可以说“只要50次里面有1次可以登进去就是没崩”?
图1为dns工作原理
图2为ao3官方给出的几个域名的ip查询结果
图3为百度的域名查询结果
图4为ao3同一个域名多次查询的结果,可以看到每次都不一样
原作者@点心没了
最后,讲个笑话,google:https://translate.google.cn/
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪