【网络】DNS、ICMP、NAT

这篇具有很好参考价值的文章主要介绍了【网络】DNS、ICMP、NAT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、DNS(Domain Name System)

1、DNS背景

2、域名简介

二、ICMP协议

1、ICMP功能

2、ICMP的报文格式

3、ping命令

4、traceroute命令

三、NAT技术

1、NAT技术背景

2、NAT IP转换过程

3、NAPT

4、NAT技术的缺陷

5、NAT和代理服务器


一、DNS(Domain Name System)

DNS是一整套从域名映射到IP的系统

1、DNS背景

 TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序。但是IP地址不方便记忆。于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

 最初,通过互连网信息中心(SRI-NIC)来管理这个hosts文件的。

  •  如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
  •  其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。

这样就太麻烦了,于是产生了DNS系统。

  • 一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
  • 如果新计算机接入网络,将这个信息注册到数据库中。
  • 用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。

 至今,我们的计算机上仍然保留了hosts文件。在域名解析的过程中仍然会优先查找hosts文件的内容。

cat /etc/hosts

2、域名简介

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。

www.baidu.com

域名使用 . 连接

  • com:一级域名。表示这是一个企业域名。同级的还有 "net"(网络提供商),"org"(非盈利组织) 等。
  • baidu:二级域名,公司名。
  • www:只是一种习惯用法。之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。

二、ICMP协议

ICMP协议是一个 网络层协议。

 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通。但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。

1、ICMP功能

ICMP正是提供这种功能的协议; ICMP主要功能包括:

  •  确认IP包是否成功到达目标地址。
  •  通知在发送过程中IP包被丢弃的原因。
  •  ICMP也是基于IP协议工作的。但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议。
  •  ICMP只能搭配IPv4使用。如果是IPv6的情况下,需要是用ICMPv6。
  •  应用层可以绕过TCP/UDP协议,直接使用ICMP协议进行测试工作。

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

2、ICMP的报文格式

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

 ICMP是作为IP报文的有效载荷使用的。 

 ICMP大概分为两类报文:

  • 一类是通知出错原因
  • 一类是用于诊断查询

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

3、ping命令

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

  •  注意,此处 ping 的是域名,而不是url。一个域名可以通过DNS解析成IP地址。
  •  ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)。
  •  ping命令会先发送一个 ICMP Echo Request给对端。
  •  对端接收到之后,会返回一个ICMP Echo Reply。

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

 ping命令基于ICMP,是在网络层。而端口号,是传输层的内容。在ICMP中根本就不关注端口号这样的信息。

4、traceroute命令

 也是基于ICMP协议实现,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

三、NAT技术

1、NAT技术背景

IPv4协议中,IP地址存在数量不充足的问题。

NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。

  •  NAT能够将私有IP对外通信时转为全局IP。也就是一种将私有IP和全局IP相互转化的技术方法。
  •  很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP。
  •  全局IP要求唯一,但是私有IP不需要。在不同的局域网中出现相同的私有IP是完全不影响的。

2、NAT IP转换过程

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系

3、NAPT

 那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

 又如果同一个局域网内有多个主机的多个客户端访问同一个外网服务器,且不同主机的客户端的端口号恰好相同,又怎么区分这些相应分别属于哪些客户端。

 这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系。

【网络】DNS、ICMP、NAT,网络,网络,linux,服务器

 这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项。在断开连接后,就会删除这个表项。

 在网络中,要弱化主机的概念,把所有的请求或响应都看作是一个个独立客户端或服务器发起的,NAPT给每一个进程使用 IP + port 起了一个名字,这个名字在本局域网与公网中,全网唯一。

 在NAT路由器把数据进行转发时,会在内部建立一个源地址与目的地址的映射表,这些地址都是唯一的。因此在收到数据时,也可以根据映射表找到对应的进程,并转发回去。

 这样看来,似乎只需要维护内网客户端的 IP + port 与NAPT根据 IP + port 所取的名字的映射关系就可以了,这样足以完成数据发送与接收的过程,为什么还要维护公网服务器的IP + port 的映射关系呢?这是处于安全的考虑,如果不维护,那么公网中所有的请求响应,只要 IP + port 是正确的,就可以成功发送到内网之中,这样很容易搞崩一个内网。

4、NAT技术的缺陷

由于NAT依赖这个转换表,所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接。
  • 装换表的生成和销毁都需要额外开销。
  • 通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开。

5、NAT和代理服务器

 路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。

 代理服务器看起来和NAT设备有一点像。客户端像代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器。服务器返回结果后,代理服务器又把结果回传给客户端。

那么NAT和代理服务器的区别有哪些呢?

  •  从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  •  从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层。
  •  从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
  •  从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

代理服务器是一种应用比较广的技术:

  • 翻墙:广域网中的代理。
  • 负载均衡:局域网中的代理。

代理服务器又分为正向代理和反向代理。

正向代器服务器一般比较靠近客户端,可以:

  • 缓存资源,提高用户体验与访问效率。
  • 过滤非法请求。

 反向代理服务器一般比较靠近服务端,可以把所有用户的请求收集到一起,并合理分配到机器集群的不同的服务器上,保证负载均衡。文章来源地址https://www.toymoban.com/news/detail-626371.html

到了这里,关于【网络】DNS、ICMP、NAT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux-搭建DNS服务器

    操作系统:CentOS 7 IP地址:10.27.106.201 测试域名:aec.testuc.com 作用:主要提供解析aec.testuc.com域名的服务 主要修改以下两个地方 末尾添加如下配置: 拷贝其他区域数据文件,保留源文件的权限和属主的属性复制 修改该文件,结果如下: 仅检查语法不检查逻辑关系。当显示的

    2023年04月17日
    浏览(37)
  • Linux DNS服务器配置

     准备条件:配置需要yum源( 本地yum源配置请参考http://t.csdn.cn/JW1mn) [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33        给网卡配置相关参数 [root@localhost ~]# systemctl restart network         [root@localhost ~]# setenforce 0                关闭selinux防火墙 [root@localhost ~]#

    2024年02月07日
    浏览(41)
  • Linux之DNS服务器配置

      一、安装DNS服务 bind : DNS服务器软件包 bind-utils : DNS测试工具,包括dig,host与nslookup等。 bind-chroot : 使BIND运行在指定的目录中二点安全增强工具。 我们选择 bind 和 bind-utils 就够了: yum install bind bind-utils systemctl start named      //开启DNS服务 systemctl enable named   //开机自启动DN

    2024年02月07日
    浏览(47)
  • linux配置DNS主从服务器

    实验设备   主服务器:OpenElur Linux  IP地址为192.168.188.129   从服务器:RedHat Linux  IP地址为192.168.188.128 实验步骤 1.进行主服务器的基础配置  2.配置主服务器的解析配置文件 3.进行从服务器的基础配置   4.实验结果检验

    2024年01月18日
    浏览(57)
  • Linux搭建主从DNS服务器

    DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 互联网的不同计算机之间通信是通过IP地址来进行实现的,每台联网计算机都需要通过 IP 地址来互相联系,但由于 IP 地址是由一串容易混淆的数

    2024年01月19日
    浏览(47)
  • 【网络篇】如何搭建自己的DNS服务器

    平时练习域名解析,一般直接修改的/etc/hosts文件。对于服务器数量小的情况完全可以,但是如果服务器数量较多,每个都修改比较麻烦。 DNS是作为域名解析。在实际的生产过程中,尤其是对于内网搭建的情况,DNS不可能使用互联网的DNS,这时需要我们自行搭建。 我这里准备

    2024年02月05日
    浏览(54)
  • Linux系统中配置DNS服务器

    分布式数据库(满足大量用户访问,将流量越分越小)。功能是域名解析,主机名与IP地址之间的转换,①正向解析(主机名-ip)。②反向解析(ip-主机名。 在域名服务器中,一个域名只能对应一个ip地址,但是一个ip地址可以对应多个域名,也可以没有。 在Linux系统中,常用

    2024年02月03日
    浏览(36)
  • Linux服务器如何清除dns缓存

    DNS缓存是一个临时数据库,用于存储已解释的DNS查询信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留域名和相应IP地址的记录。 这消除对远程DNS服务器重复查询,并允许你的操作系统或浏览器快速解析网站的域名。 但是在某些情况下,例如对网络问

    2023年04月15日
    浏览(37)
  • 网络技术学习十三:DNS(域名服务器)

    产生背景 通过IP地址访问目标主机,不便于记忆 通过容易记忆的域名来标识主机位置 域名的树形层次化结构 根域 领级域 主机所处的国家/区域,注册人的性质 二级域 注册人自行创建的名称 主机名 区域内部的主机的名称 由注册人自行创建和管理 用于域名和IP地址的互相解

    2024年02月09日
    浏览(39)
  • Linux设备配置DNS服务器,实现正向解析和反向解析,实现DNS主从服务器同步,实现批量域名正/反向解析

    本文基于Linux上CentOS 7版本配合bind(named)服务进行演示 目录 一.DNS域名服务器原理及作用等介绍 1.DNS简介:  2.原理简单介绍 3.常见域名后缀 4.DNS域名服务器类型 5.DNS服务器的对应关系查询方式 6.具体解析过程 二.bind(named)服务配置文件介绍 1.主配置文件在/etc/named.conf 2.数

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包