dns协议

网络协议 17 - HTTPDNS

拟墨画扇 提交于 2019-11-28 19:25:14
全球统一的 DNS 是很权威,但是我们都知道“适合自己的,才是最好的”。很多时候,标准统一化的 DNS 并不能满足我们定制的需求,这个时候就需要 HTTPDNS 了。     上一节我们知道了 DNS 可以根据名称查地址,也可以针对多个地址做负载均衡。然而,我们信任的地址簿也会存在指错路的情况。明明离你 500 米就有个吃饭的地方,非要把你推荐到 5 公里外。为什么会出现这样的情况呢?     还记得吗?由我们发出请求解析 DNS 的时候,首先会连接到运营商本地的 DNS 服务器,由这个服务器帮我们去整棵 “DNS 树” 上进行解析,然后将解析的结果返回给客户端。但是本地的 DNS 服务器,作为一个本地导游,往往会有自己的“小心思”。 传统 DNS 存在的问题 1)域名缓存问题     它可以在本地做一个缓存。也就是说,不是每一个请求,它都会去访问权威 DNS 服务器,而是把访问过一次的结果缓存到本地,当其他人来问的时候,直接返回缓存的内容。     这就相当于导游去过一个饭店,自己记住了地址,当有一个游客问的时候,他就凭记忆回答了,不用再去查地址簿。这样会存在一个问题,游客问的那个饭店如果已经搬走了,然而因为导游没有刷新“记忆缓存”,导致游客白跑一趟。     另外,有的运营商会把一些静态页面,缓存到本运营商的服务器内, 这样用户请求的时候,就不用跨运营商进行访问,既加快了速度

使用socket进行DNS协议解析

一个人想着一个人 提交于 2019-11-28 19:15:03
仔细看了看DNS协议的相关东西,其实实际编程的时候根本用不到DNS 细节的东西,要获取域名的时候经终端下用host或者nslookup指令就可以,在c里面使用gethostbyname或者getaddrinfo都 能很轻松得将dns域名解析为ip地址,写这个纯粹出于个人兴趣,或者说是闲得吧。 在进行域名解析的时候,解析程序向域名服务器发起请求,域名服务器也就是在操作系统网络配置的时候写进去的那个DNS服务器地址,或者也有可能是由 ISP提供的自动获取的,原理都一样,域名服务器收到请求后进行处理,首先在本地缓存中查找对应的域名,找到后将IP地址直接返回,找不到就向其它的授权 服务器请求数据,又可以分为著名的递归查询和非递归查询。 递归查询就是说自始至终都由一台域名服务器进行查询,它在自己这里找不到的时候会向其它的域名服务器请求并且获取数据,然后返回给请求方。 非递归查询是指域名服务器收到请求后,如果自己有这个域名的信息就返回,如果没有就返回其它域名服务器的指针,请求方再根据这些域名服务器再发起查询。 按自己的理解瞎扯了一通,也不知道准不准确,关于DNS的相关资料网上有的是,中文的都大批大批的。 DNS服务器的原理其实没什么好说的,每天都在跟DNS打交道,但DNS的协议在实现上还是稍微有点意思的,本来想写个程序来测试一个我所了解的 DNS协议,后来在写的时候还真发现一个小问题

DNS域名解析服务及其配置

橙三吉。 提交于 2019-11-28 17:50:41
一、背景 到 20 世纪 70 年代末,ARPAnet 是一个拥有几百台主机的很小很友好的网络。仅需要一个名为 HOSTS.TXT 的文件就能容纳所有需要了解的主机信息:它包含了所有连接到 ARPAnet 的主机名字到地址的映射(name-to-addressmapping)。 HOSTS.TXT 文件是由 SRI 的网络信息中心(Network Information Center,简称 NIC)负责维护,并且从一台主机 SRI-NIC 上分发到整个网络。ARPAnet的管理员通常是通过电子邮件通知 NIC,同时定期 FTP 到 SRI-NIC 上获得最新的 HOSTS.TXT 文件。 但是随着 ARPAnet 的增长,这种方法行不通了。每台主机的变更都会导致 HOSTS.TXT 的变化,导致所有主机需要到 SRI-NIC 上获得更新文件。当ARPAnet 采用 TCP/IP 协议后,网络上的主机爆炸性的增长,出现了以下问题: 流量和负载 名字冲突 一致性 二、DNS介绍 DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53

CentOS---网络配置详解

≯℡__Kan透↙ 提交于 2019-11-28 15:59:49
一、配置文件详解 在RHEL或者CentOS等Redhat系的Linux系统里,跟网络有关的主要设置文件如下: /etc/host.conf 配置域名服务客户端的控制文件 /etc/hosts 完成主机名映射为IP地址的功能 /etc/resolv.conf 域名服务客户端的配置文件,用于指定域名服务器的位置 /etc/sysconfig/network 包含了主机最基本的网络信息,用于系统启动. /etc/sysconfig/network-script/ 系统启动时初始化网络的一些信息 /etc/xinetd.conf 定义了由超级进程xinetd启动的网络服务 /etc/networks 完成域名与网络地址的映射 /etc/protocols 设定了主机使用的协议以及各个协议的协议号 /etc/services 设定主机的不同端口的网络服务 1. /etc/host.conf文件的默认信息如下: multi on #允许主机拥有多个IP地址 order hosts,bind #主机名解析顺序,即本地解析,DNS域名解析的顺序 这个文件一般不需要我们修改,默认的解析顺序是本地解析,DNS服务器解析,也就是说在本系统里对于一个主机名首先进行本地解析,如果本地解析没有,然后进行DNS服务器解析。 2. /etc/hosts文件默认的内容大概如下: 127.0.0.1

使用dig进行DNS查询

南笙酒味 提交于 2019-11-28 12:16:21
dig全称Domain Information Groper,是一个DNS域名信息查询的工具,可以使用来查看域名解析的过程。 dig是linux下自带的工具,如果要在windows下使用需要自行下载和配置,过程也很简单。 引用一位csdn博主的博客: windows下载配置dig 如上图,下面以怎么从地址栏输入 https://www.cnblogs.com/jeavenwong 到找到该域名对应的ip地址的过程为例,先去掉https协议 ''https://" 和后面的用户资源空间 "/jeavenwong"。 即查询www.cnblogs.com的ip地址。 我们知道,如果查询ip的时候没有命中操作系统的host配置文件和cpu的三级缓存的话,DNS的解析就要分级递归查询,大致过程如下: 从根域名服务器查询顶级域名的NS记录和A记录(ip) --> 从顶级域名查询到次级域名服务器的NS记录和A记录(ip) --> 从次级域名服务器查询主机的ip地址 下图是用dig直接查询结果: 可以看出ANSWER SECTION中有两个ip地址,说明www.cnblogs.com主机有两个ip地址。 下面展示整个规矩: 可以从上图看出是从根域名服务器(.root)获得的顶级域名服务器(.com)的NS记录,然后从顶级域名服务器获得的次级域名服务器(cnblogs.com)的NS记录

【DNS域名解析原理】

时间秒杀一切 提交于 2019-11-28 10:57:20
原文: http://blog.gqylpy.com/gqy/390 网络通讯大部分是基于 TCP/IP 协议的,而 TCP/IP 是基于 IP 地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”这样的IP地址,而不能识别域名。我们无法记住很多个像这样的IP地址的网站,所以我们访问网站时,更希望的是在浏览器地址栏中输入域名便可看到需要的页面。因此, DNS服务器 便出世了,它能把我们的域名“翻译”成相应的IP地址。 所谓DNS服务器 DNS (Domain Name System)是 域名系统 的英文缩写,它用于 TCP/IP 网络,它所提供的服务是用来将主机名或域名转换为IP地址的。基本工作原理如下图: DNS解析全过程 当用户在地址栏中输入如:www.baidu.com时,DNS解析大致有如下过程: 首先,浏览器先检查自身缓存中有没有这域名对应的IP地址(之前是否解析过),如果有,则解析结束。 如果浏览器缓存中没有(专业点叫做未命中),浏览器会检查操作系统缓存中有没有对应的已解析过的域名。 操纵系统也有一个域名解析的过程,在windows中可通过 hosts 文件来定义,如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。 如果至此还未命中域名,才会真正的请求本地域名服务器—— LDNS ,来解析这个域名

出现空白网页可能的原因

无人久伴 提交于 2019-11-28 10:32:25
一、网络设置的问题 这种原因比较多出现在需要手动指定IP、网关、DNS服务器联网方式下,及使用代理服务器上网的。仔细检查计算机的网络设置。 二、DNS服务器的问题 当IE无法浏览网页时,可先尝试用IP地址来访问,如果可以访问,那么应该是DNS的问题,造成DNS的问题可能是连网时获取DNS出错或DNS服务器本身问题,这时你可以手动指定DNS服务(地址可以是你当地ISP提供的DNS服务器地址,也可以用其它地方可正常使用DNS服务器地址。)在网络的属性里进行,(控制面板—网络和拔号连接—本地连接—右键属性—TCP/IP协议—属性—使用下面的DNS服务器地址)。不同的ISP有不同的DNS地址。有时候则是路由器或网卡的问题,无法与ISP的DNS服务连接,这种情况的话,可把路由器关一会再开,或者重新设置路由器。 还有一种可能,是本地DNS缓存出现了问题。为了提高网站访问速度,系统会自动将已经访问过并获取IP地址的网站存入本地的DNS缓存里,一旦再对这个网站进行访问,则不再通过DNS服务器而直接从本地DNS缓存取出该网站的IP地址进行访问。所以,如果本地DNS缓存出现了问题,会导致网站无法访问。可以在“运行”中执行ipconfig /flushdns来重建本地DNS缓存。 三、IE浏览器本身的问题 当IE浏览器本身出现故障时,自然会影响到浏览了;或者IE被恶意修改破坏也会导致无法浏览网页

NTP服务和DNS服务

时光毁灭记忆、已成空白 提交于 2019-11-28 10:13:48
NTP时间服务器 作用:ntp主要是用于 对计算机的时间同步管理 操作。 时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响。 部署安装NTP服务器 第一步:安装服务 [root@ken ~]# yum install ntp -y 第二步:配置NTP文件 [root@ken ~]# vim /etc/ntp.conf server 127.127.1.0 #本地时钟地址,以本机作为时间服务器,也可以根据需要选择阿里时间服务器 restrict 127.0.0.1 #允许本机使用时间服务器 restrict 172.20.10.7 mask 255.255.255.240 #允许172.20.10.7使用本机的时间服务器 第三步:重启NTP服务 [root@ken ~]# systemctl restart ntpd 第四步:检查NTP状态 [root@ken ~]# ntpstat synchronised to local net at stratum 6 time correct to within 7948 ms polling server every 64 s 第五步:客户端下载NTP客户端程序 [root@host1 ~]# yum install ntpdate -y 第六步:客户端进行同步

nginx负载均衡?

蹲街弑〆低调 提交于 2019-11-28 06:30:23
本文目录 1 什么是负载均衡? 2 HTTP重定向实现负载均衡 3 DNS负载均衡 4 反向代理负载均衡 5 负载均衡组件 回到目录 1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。 那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡问题。 下面详细介绍负载均衡的四种实现方式 回到目录 2 HTTP重定向实现负载均衡 过程描述 当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,并将选中的服务器的IP地址封装在HTTP响应消息头部的Location字段中,并将响应消息的状态码设为302,最后将这个响应消息返回给浏览器。 当浏览器收到响应消息后,解析Location字段,并向该URL发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。 在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。 调度策略

http协议详细介绍

僤鯓⒐⒋嵵緔 提交于 2019-11-28 03:16:10
1.1 HTTP协议简介 我们日常生活中经常会使用浏览器访问Web站点,但是大家有思考过在这个过程中到底发生了什么吗?为什么我们在浏览器地址栏上面输入要访问的URL后就可以访问到Web页面呢? 1.1.1 浏览器背后的故事 当我们在浏览器地址栏上输入要访问的URL后,浏览器会分析出URL上面的域名,然后通过DNS服务器查询出域名映射的IP地址,浏览器根据查询到的IP地址与Web服务器进行通信,而通信的协议就是HTTP协议。 我们可以把这个过程类比成一个电话对话的过程。当我们要打电话给某个人,首先要知道对方的电话号码,然后进行拨号。打通电话后我们会进行对话,当然要对话肯定需要共同的语言,如果一个人说国语,而另一个人说英语,那肯定不能进行沟通的。在本例中,电话号码相当于上面的IP地址,而共同语言相当于HTTP协议。 我们通过一个简单的图来阐述这个过程: 浏览器与Web服务器使用HTTP协议进行通信,那么什么是HTTP协议呢?接下来我们会详细介绍HTTP协议的相关知识。 1.1.2 TCP/IP协议 HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集,所以要理解HTTP协议,有必要先了解下TCP/IP协议相关的知识。 由于TCP/IP协议族包含众多的协议,在这里我们无法一一讨论。接下来,我们仅介绍理解HTTP协议需要掌握的TCP/IP协议族的一些相关知识点