在工程入网框架中介绍了DNS是网络链路的第一层,见https://segmentfault.com/a/11...。在DNS层可以配置域名到具体机房入口,可以做静态域名和动态域名的分离。静态多数基于CDN做缓存。本文介绍dns查找ip的详细过程,cdn的调用过程(只作为了解),cdn与dns的结合。常规dns会有缓存等缺陷,可以用httpdns解决,介绍httpdns的实现方案
dns
httpdns
运营商LOCALDNS存在问题:域名缓存,替换广告地址,转发到其他运营商localDNS使返给用户的ip不是最近的,配置多个运行商NAT使ip不是最近的。
httpdns需要调用方放弃直接域名发送,先通过http请求到httpdns服务器上,取域名和ip对应配置做dns本应做的地域运营商的负载均衡,直接返回ip,当dns不可用降级为常规发送。
限制:因为调用方更改,无法嵌入webapp等,对json跨域无法处理。
cdn
请求过程
1.当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
2.CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
3.用户向CDN的全局负载均衡设备发起内容URL访问请求。
4.CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
5.区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
6.全局负载均衡设备把服务器的IP地址返回给用户。
7.用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地(回源)。
组件技术
内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术
内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;
内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;
性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。
集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。
整体动态静态处理
访问域名,权威上配的是smartdns的VIP或者IPs。smartdns的域名配置系统中若是静态的配置配成cnd服务器cdndns的域名。然后再进行所谓的cdn自己的ip选择和摘除等(阿里和腾讯的CDN。内部实现就先忽略了,回源正常给IPs或者域名。)。对于动态的直接配置我们自己机器的VIP(进入内部网络,详见公司网络入口:https://segmentfault.com/a/11...)
外网故障摘除、机房切换是在smartpdns上改配置
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。