了解最新公司动态及行业资讯
半夜十二点,小王睡得很香。
突然,清脆的手机铃声响起,将睡梦中的小王拉回了现实。
“你好,请问是谁?”
“王功,我是监控中心的,公司的xxx服务器宕机了,请看一下。”
小王揉了揉眼睛,起身,打开笔记本电脑,开始了一个不眠之夜。
作为运维工程师,上面的桥段经常发生在大家身边。白天繁重的工作让人筋疲力尽,而作为夜间值班的工程师,你仍然要面对突发的网络或系统故障。生活是黑白的,白天和黑夜。
请问,运维工程中可以用什么来拯救睡眠?
再讲一个故事。
我有一个朋友是网络工程师。姑且称他为“钱哥”吧。
在和钱哥聊天的时候,我问他们晚上的电话任务是否繁重。他冷漠的回答如下:
“如果我们世界中的某个站点 (PoP) 出现故障,我们完全不必担心或担心。工程师应该睡觉和休息。”
我很疑惑,你要知道它是一家全球CDN服务商,据说全世界10%的互联网流量都跑在他们家的网络上。
按常识来说,这样规模的公司,一个区域性网站倒闭是一件极其严重的事情。但是钱哥的回答让我很疑惑,彻底颠覆了我的认知。
他们都是工程师,差距这么大,别人晚上睡觉,我们的机房很干!
经过一番追问,我终于明白了他们的秘密,原来这一切都是因为他们使用了这项技术。
那我们能不能像钱哥一样,用科技让工程师安睡一夜?
科普,什么是技术?
在IP地址的世界里,众所周知的IP地址类型大致有以下几种:
IP
单播IP服务器运维,IP地址与主机一一对应。
如下图,红色节点为数据包发送方,绿色节点为数据包接收方。
当一个数据包被发送到一个特定的 IP 地址时,全球只有一台主机接收该数据包。这是。
IP
组播IP,组播IP有一个特定的IP地址段。当一个数据包被发送到这个组播IP地址时,组内的成员可以收到该数据包的副本。
如下图,红色节点为数据包发送方,绿色节点为数据包接收方。
当一个数据包被发送到一个特定的组播IP地址时,同时有多个数据包的接收者。
IP
广播IP,任何单播网段的最后一个IP地址。发送到该地址的数据包被泛洪到整个广播域的成员。
如下图,红色节点为数据包发送方,绿色节点为数据包接收方。
当一个数据包被发送到一个广播IP地址时,所有成员都是数据包的接收者。
IP是一种特殊类型的IP地址,结合了各种特点
中文叫任播。
从宏观上看,类似于同一时间有多个相同类型的数据流的接收者。
而且从微观的角度来看,它具有独特性。每个单独的 IP 会话都可以找到唯一的源主机和目标主机。
乍看之下似乎矛盾,其实不然。
以DNS请求为例,假设全国人民同时发送100万个DNS请求,全部发送到1.1.1.的DNS服务器地址@>1.
在宏观层面,所有数据包都被传送到分布在全国各地的 DNS 服务器。分布在各地的DNS服务器分别接收一定数量的DNS请求并做出响应。这反映了特点。
微观上,一个特定的DNS请求包必须发送到某个DNS主机,而不是多个DNS主机同时接收该包。这是一项功能。
如下图,红色节点为数据包发送方,绿色节点为数据包接收方。
在环境中,一般情况下,同时有多个有效的数据包接收者,但对于特定的IP数据包,只有一个接收者主机接收到该数据包。
胡说八道在哪里?
在企业网络环境中比较少见,主要用于大规模DNS部署、CDN数据缓存、数据中心等。
自然很多做企业网络维护的朋友都会有疑问。互联网上的多台主机怎么能使用同一个IP,这不是IP地址冲突吗?
答案:
首先,每个服务器主机位于不同的地理位置,并且它们不在同一个广播域中。所以把所有的主机都配置成同一个IP地址不会造成我们日常看到的IP地址冲突。
其次,配置相同的IP地址是不够的,我们还需要强大的BGP帮助。
使用 BGP,每个站点都通告相同的 IP 地址。
自然会收到不同的目标路径,但IP地址段相同。那么数据包在这个环境中是如何路由的呢?
别着急,往下看。
为了让大家有更深入的了解和了解,下面将详细介绍主要优点和用途
:
使用1:负载-负载均衡和系统冗余
不谈理论,举个例子方便理解。
为了说明使用和负载均衡的关系,以及冗余,一个具体的例子如下:
假设我们现在有三个 DNS 服务器站点,分别位于北京、上海和广州。他们为全国范围的 DNS 解析服务提供服务。
按照一般的方案,为了实现三台DNS服务器的负载均衡,有些人可能会考虑使用硬件负载均衡设备,比如常见的F5负载均衡设备。
但是,如果使用硬件负载均衡,会出现以下问题:
1. 网络流量瓶颈。所有流量都需要先经过负载均衡设备,硬件设备本身的吞吐量决定了整个网络环境的吞吐量。
2. 高昂的硬件成本,为了实现全国流量负载均衡,试想一下需要多少吞吐量的硬件设备。硬件吞吐量越高,购买成本越高。
通过技术,无需任何第三方负载均衡器即可轻松实现负载均衡的效果,同时提供冗余和高可靠性。
实现如下:
通过配置三个DNS站点的服务器IP为同一个IP服务器运维,例如1.1.1.1/32。然后,1.1.1.0/24的网段通过各个站点的BGP对外公布。
(注意:为什么要宣布/24而不是/32?因为在其中,为了减小全局路由表的大小,运营商默认只接受小于等于/8的网段,并且大于或等于 /24 宣布访问 。)
以上步骤完成后,互联网路由表将有三个不同的1.1.1.1/24出口路由器,分别是北京、上海和广州。
这很重要,因为所有用户都使用 1.1.1.1 作为他们的 DNS 服务器。
对于东北地区的用户,哪个DNS服务器会为东北地区的用户提供解析?
答案是:就近原则!
让我们看一下数据包如何通过网络路由的细节:
当用户的DNS请求到达运营商的宽带路由器时,运营商的路由器会根据BGP路由原则选择到1.1.1.1的最优路径。
例如,在用户的宽带运营商和DNS服务器运营商相同的情况下,IGP最终将是决定哪个DNS服务器为用户提供服务的关键因素。
在某种程度上,IGP 是物理距离的代表。
如上图,四川宽带路由器通过查看BGP路由发现1.1.1.1出口的最优路由在广州。然后将四川用户的DNS报文发送到广州的DNS服务器。
同样,东北用户的DNS解析会发给北京的DNS服务器,而上海的DNS服务器负责江南地区。
如果出现问题怎么办?
如果三台DNS服务器中的一台出现故障,例如广东DNS服务宕机。 BGP 协议将立即停止通告这个 1.1.1.0/24 网段。路由表将只有北京和上海的 DNS 可供选择。
此时,原广东DNS服务的用户会根据“最近原则”选择另一台DNS服务器,如上海DNS。
从而实现业务平滑迁移和服务高可用。
基于以上分析,我们不难得出以下结论:
全国用户最终会根据与DNS服务器的距离来决定使用哪个DNS服务器进行域名解析。
从DNS的角度来看,正是因为不同地理位置的用户会根据就近的路由选择不同的DNS服务器,最终达到三台DNS服务器负载均衡的效果。
如果其中一个节点出现故障,业务会立即迁移到其他可用节点,避免网络服务故障。完全不需要人工干预。