您的位置:首页 > 理论基础 > 计算机网络

运维面经知识点总结--网络部分(1)

2018-03-27 22:52 288 查看

DNS

dns简介

dns是Domain Name System的缩写,中文名称为域名系统。其存在是为了方便用户在访问互联网时不需要去记忆复杂的ip数字串,只需要使用容易记忆的域名来访问相关的的内容。在这个过程中,dns起到了将域名转换为对应的ip地址的作用。表现形式为ip与域名相互映射的一个分布式数据库,该服务运行在UDP协议之上,使用的端口号为53.

dns解析的过程



如图所示,网络客户端是我们所使用的电脑,在浏览器中,输入一个域名,在图中我们使用的是www.163.com。在此时,会发送一个DNS请求到本地的DNS服务器,这个DNS服务器一般都是由接入服务器提供商提供,比如说移动、电信什么。

当接入到本地DNS服务器之后,本地服务器熟悉会在缓存记录中搜索关于这个www.163.com的记录,如果有就直接返回查询结果,如果没有就向根服务器查询。

根服务器中并不会记录具体的域名和IP地址的映射关系,而是告诉本地DNS服务器在某个域服务器上可以继续查询,并且给出了域服务器的地址。

本地服务器接着向域服务器发出请求,在这个例子里面请求的对象是.com域的服务器,.com域服务器在收到请求后同样也不会直接返回域名和IP地址的对应关系,而是给你域名的解析服务器的地址。

最后本地的DNS服务器向域名的解析服务器发出请求,这是就能收到一个域名和IP地址对应的关系,本地DNS服务器不仅要把IP地址返回给用户电脑,为了下次访问速度更快,还会保存在缓存中,下次有用户来查询时可以快速返回查询的结果。

DNS的一些概念

nameserver(名字服务器)

在这个解析的过程中我们在之中看到参与者有DNS服务器和DNS客户端,其实在这个过程中还有名字服务器的参与。

这个名字服务器是用于标记区域权威服务器的DNS服务器,只要指定好了nameserver,其他服务器就认为它是该区域的权威服务器。在linux下进行修改需要修改/etc/resolv.conf在之中指定nameserver即可。接下来我们解释一下域和区域的概念

domain(域)

网址是分层的,域名系统就像是文件目录一样。首先是根,然后是一级域、二级域、三级域…..。我们常见的一级域有:com net org cn edu gov等等等。父域将某个标示符分配给子域,然后子域(比如说cn)将全权负责cn下面的二级域的具体分配。对于cn,常见的二级域有com.cn、edu.cn这些,同样的edu.cn又会负责下面的三级域名分配。这样分层分片有助于管理。



zone(区域)

区域的概念是这样,假如A是一个域,而且A有子域a和b.如果域A的管理者把a和b授权给另外的人管理,那么a和b各自形成一个区域。然后每一个区域都会有名字服务器,用来管理这个区域。管理包括对这个分成更小的子域以及对子域名IP的解释。在某个区域中,该区域的nameserver就是该区域的权威。

DNS的查询方式

DNS的查询方式有两种:迭代查询和递归查询。

(1)递归查询

递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

(2)迭代查询

DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果

为止。



ttl参数

TTL这个参数告诉本地DNS服务器,域名缓存的最长时间。用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是,本地DNS服务器对于域名的缓存时间是10分钟,10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。

其实,如果网站已经进入稳定发展的状态,不会轻易更换IP地址,我们完全可以将TTL设置到协议最大值,即24小时。带来的好处是,让域名解析记录能够更长时间的存放在本地DNS服务器中,以加快所有用户的访问。

DNS资源记录类型

A 地址 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。

CNAME 标准名称 此记录指定标准主机名的别名。

MX 邮件交换器此记录列出了负责接收发到域中的电子邮件的主机。

NS 名称服务器此记录指定负责给定区域的名称服务器。

https://blog.csdn.net/parameter_/article/details/72898559 具体可参考

DNS服务器的配置过程(BIND的使用)

见博客https://blog.csdn.net/parameter_/article/details/71305418

DHCP

DHCP简介

DHCP是Dynamic Host Configuration Protocol的缩写,中文名称动态主机配置协议。这一个用于局域网的网络协议 ,基于UDP协议工作。 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

DHCP的工作原理



如图所示,DHCP工作时一共有六个阶段,我们来一一解释一下

发现阶段

在这个阶段中DHCP客户端需要寻找DHCP服务器,需要发送DHCP discovery,因为DHCP服务器对于DHCP客户端是未知的,所以发出的这个DHCP Discouver是广播的,源地址为0.0.0.0目的地址为255.255.255.255。所有的主机都会收到这个报文,但是只有DHCP服务器会响应这个报文。

DHCP server提供阶段

这个阶段在DHCP服务器响应DHCP Discouvery,发出DHCP offer的一个阶段。在服务器端收到DHCP Discovery报文后,解析报文请求IP地址所属的子网。然后从dhcp.conf文件中之与匹配的子网中选择一个可用的子网IP地址。检测这个子网是否可用的办法是,通过发送ICMP报文来ping该IP地址,如果该IP地址可以ping通,则重新选择IP,重复此步骤直到选出一个没有被使用的地址。这个地址设置在DHCP discover报文中的yiaddress字段中,表示为该客户端分配的IP地址。

DHCP从地址池中选择IP地址,以如下优先级进行选择:

1、当前已经存在的Ip Mac的对应关系

2、Client以前的IP地址

3、读取Discovery报文中的Requested Ip Address Option的值,如果存在并且IP地址可用

4、从配置的Subnet中选择IP地址:

DHCP Server解析DHCP Discovery请求的IP所属的Subnet,首先看该DH
4000
CP Discovery报文中giaddress是否有DHCP Relay,如果有,则从giaddress所述的subnet中可用IP地址段中获取,并分配IP。如果giaddress没有IP地址,则从该DHCP Server绑定的接口的IP地址所属的网段分配IP地址。

DHCP Client 选择阶段

因为之前说到discover的报文是广播多以会有多个DHCP服务器返回响应的报文,所以在这时客户端需要选择一个DHCP服务器。选择的策略通常就是先到先选,首先选择第一个响应DHCP server报文的服务器。

使用广播方式回答一个DHCP request报文,包含了向目标DHCP请求的IP信息。

DHCP server确认阶段

当服务器端收到客户端发送的DHCP request后,确认要为该客户端提供IP地址,向这个客户端响应一个包含该IP地址以及其他Option的报文,这样这个客户端就可以使用这个IP地址了。然后客户端将这个分配的IP地址与网卡绑定。那些没有与其响应的DHCP服务器将回收之前预留分配的IP地址。

DHCP client重新登陆网络 *

当DHCP client重新登陆后,发送一个包含之前分配 IP地址信息的request报文,当服务端收到这个报文后,让这个客户端继续使用该IP,并回答一个ACK。如果不能使用这个IP了,则返回一个NAK报文,当客户端收到这个NAK报文后又回到了第一个阶段,需要重发discovery报文。

DHCP client更新租约

DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP Client如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,当当前租约期限过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。

linux主机dhcp的配置

1.首先安装dhcp组件

yum install dhcp -y


2.编辑dhcp的配置文档

vim /etc/dhcp/dhcp.conf


基本的配置参数如下

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "bigstar.com";  #目的主机中/etc/resolv.conf 中 search bigstar.com
option domain-name-servers 114.114.114.114 ;  #目的主机中/etc/resolv.conf 中 nameserver 114.114.114.114.114

default-lease-time 600;   #默认组期为600s
max-lease-time 7200;      #最大组期为7200s

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

# This is a very basic subnet declaration.

subnet 172.25.77.0 netmask 255.255.255.0 {
range 172.25.77.10 172.25.77.120;  #ip地址池范围
option routers 172.25.77.1;  #路由器地址
}

#host fantasia {  #用于MAC地址绑定
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;
#}


3.然后启动服务

/etc/init.d/dhcpd start


HTTP

http简介

http是HyperText Transfer Protocol缩写,中文名称为超文本传输协议,是当下互联网使用最为广泛的一种协议,属于应用层,由响应与请求过程,几乎所有的WWW文件都需要遵守这个协议。

http的基本结构

http是一个很标准的C/S结构,客户端是终端的用户,服务端就是网站,客户端通过浏览器等工具,在客户端上发起一个在服务器上指定端口的请求(默认为80端口),这个客户端被称为用户代理,而应答的服务器也被称为源服务器。http协议并没有规定必须使用它和(基于)它支持的层。

通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: