
全球互联网共有13台根服务器,其中有10台在美国。从理论上分析,只要通过根服务器屏蔽某个域名,就能让使用该域名的地区,与互联网切断关系。这让不少人开始担心,如果美国在根服务器上动手脚,切断服务,岂不是会让我们断网吗?
千万不要以为这是痴人说梦,美国还真的这样做过。2004年,利比亚因为顶级域名的管理权限与美国意见不合,就吃过这样的亏。利比亚的顶级域名是“ly”,美国直接停止了该域名的解析服务,导致利比亚断网。
无独有偶,当年美国为了对付伊拉克,也采取了相同的措施。根服务器锁定了伊拉克的顶级域名“iq”,导致伊拉克在很长一段时间内,从互联网上消失。这意味着,根服务器确实权限很大,有让指定顶级域名断网的能力。
到底什么是根服务器,如果美国真要这样做,我们会不会有断网的风险呢?难道真的在互联网上,我们就束手无策吗?
如今的互联网服务,已经遍布各个行业,再加上移动互联网技术的发展,我们的生活和工作,已经很难离开互联网。网络对很多人来说,很熟悉,每天都在用,却又很陌生,对其运行的原理,又知之甚少。其实,当你了解根服务器的工作原理后,就知道为何它如此厉害了。
美国拥有10台根服务器,为何关闭服务,就会引起断网呢?除了根服务器之外,公司的机房,平台的后端,其实都有服务器。每台服务器,都有一个对应的IP。我们使用电脑等设备访问互联网时,就是通过这些IP地址,找到对应的服务器,并进行数据包的传递。但是,IP地址是一串没有规律的数字,不方便记忆,于是就有了域名,也就是我们常说的网址。
当浏览器拿到用户输入的域名或网址后,会通过DNS域名系统转换为IP,并建立网络通信关系,完成互联网服务。简单地说,域名就相当于名字,IP地址相当于身份z号码,而DNS服务器,就相当于户籍管理系统。
电脑本身就有DNS解析服务器,当本地无法完成时,解析工作就需要更高级别的DNS服务器。这就好比户籍管理的权限,有些业务在当地就能办理,有些则需要到市级,甚至省级的户籍管理机构办理。
服务器会按照域名的不同,根据实际需求,逐级响应,而最高级别的DNS服务器,就是前面提到的根服务器。
不仅如此,服务器内的数据,也相互关联,如果根服务器对某个域名进行了屏蔽,一旦子服务器进行了数据同步,整个互联网就将失去访问该域名的权限。
全球目前有13台根服务器,其中10台在美国,另外3台分别在日本、瑞典和英国。中国也曾尝试申请,但并未如愿以偿。
因此,全球互联网对根服务器都有很强的依赖性,如果真的出现变故,根服务器也将成为全球互联网安全的潜在威胁。美国坐拥10台根服务器,如果美国关闭服务,真的会让我们断网吗,事实可能并没有那么简单。
如今如果关停,影响不大其实,很多地区都有专门的服务器中心,对根服务器的数据,进行DNS数据备份。简单地说,即便根服务器关闭某个范围,只要不进行数据同步,依然可以通过本地服务器,访问这些域名。
这种方式已被很多地区采用,并在全球成立了一个名为互联网名称与数字地址分配的机构。这套可以备份根服务器的系统,也被称为镜像服务器。
据不完全统计,全球已有1100多个镜像服务器,其中有10个在中国。这意味着,即便根服务器删除了“cn”的域名访问权限,我们依然可以通过本地的镜像服务区,正常进行访问。
其实,在进行国内的域名解析时,也不需要根服务器的参与,因此,如果美国真把根服务器关了,我们也不会受到太多影响。
除此以外,新一代互联网技术(IPv6)的根服务器,也在2015年启动,并被称为“雪人计划”。新的网络协议,不仅增加了网络地址的数量,而且也解决了IPv4网络地址分配不合理的问题。截至2017年11月底,全球已经部署IPv6根服务区25个,其中有4个在中国。
不难看出,无论是镜像服务器,还是新一代的IPv6根服务器,都从技术上,为全球互联网的正常运行,提供了更多保障。全球互联网看似很脆弱,实则早已有了多层保护措施,切断根服务器,对全球网络服务的影响,也变得十分有限。
值得一提的是,这些新技术和新措施的应用,都需要建立在过硬的科技实力上。技术领先,才能不受制于人,始终是一条硬道理。
比如在中国,被人为划分成两大区域,北方是网通,南方是电信。这两个网络之间互访是比较慢的。作为大型网站,一种解决办法是将全部服务器架设在双线或三线ISP处,由ISP来提供路由上的选择。这样做,线路的成本会比较高。另一种办法就是将服务器架设在两边,南方一台,北方一台,然后由服务器自己选择,如果IP在电信,就转发请求到南方的服务器,如果是网通就转发到北方的服务器。
再扩大范围,可以将美国来的请求交由美国服务器处理,这样也缩短了用户在路由上的等待时间。这就是内容分发网络。
而作为这个网络上的所有节点,都可以当成虚拟服务器来看待。至于在各地的服务器如何做负载均衡,可以由各节点之间完成。
准备工作如下:你需要下载如下软件以实现上述功能
Nginx,BIND,GeoIP,Varnish
接下来是编译和安装bind9和geoip
# tar -xzvf bind-924targz
# tar -xzvf GeoIP-146targz
# cd GeoIP-146
# /configure –prefix=/usr/local/geoip
# make
# make install
# cd
# patch -p0 < bind-924-geodns-patch/patchdiff //给bind9打补丁,让bind9直接支持geoip库
# cd bind-924
# CFLAGS=”-I/usr/local/geoip/include” LDFLAGS=”-L/usr/local/geoip/lib -lGeoIP” /configure –prefix=/usr/local/bind
# make
# make install
装好bind后我们来制作namedconf
view “us” {
// 匹配北美的客户端 US & Canada
match-clients { country_US; country_CA; };
// Provide recursive service to internal clients only
recursion no;
zone “cdnxiangleicom” {
type master;
file “pri/xianglei-usdb”;
};
zone “” IN {
type hint;
file “namedca”;
};
};
view “latin” {
// 匹配到南美国家
match-clients { country_AR; country_CL; country_BR; };
recursion no;
zone “cdnxiangleicom” {
type master;
file “pri/xianglei-latindb”;
};
zone “” IN {
type hint;
file “namedca”;
};
};
照此办理,你也可以匹配到欧洲,非洲等等,然后来开始制作nginx和varnish
注意,以上内容是你要在主节点服务器上做的,主节点服务器只负责对DNS请求进行转发。
约定一下,我们将Bind服务器叫做动态节点服务器,Nginx+Varnish叫做边界服务器。
以下内容是副节点服务器需要做的,也就是实际在某个地区放置的服务器
# /configure –prefix=/usr/local/nginx –with->域名解析系统就像是一本巨大的“地址簿”,记录全世界所有网站域名对应的IP地址。但是这本“地址簿”的记录分布在全球各地的权威域名服务器上,要在里面查到一条域名记录可不是一件简单的事情,需要一个熟悉规则的代理人帮忙----本地域名服务器Local DNS。
域名解析整体流程:
这张图的右侧部分就是网站域名的“地址簿”,也就是权威域名服务器,左边是用户侧的部分,从图中就可以看出来,主机浏览器并没有直接访问域名系统进行查询,而是通过本地域名服务器实现域名查询的 *** 作。
1: 用户在浏览器地址栏输入>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)