首页 > 其他分享 >NAT的简单概述

NAT的简单概述

时间:2022-10-05 22:35:29浏览次数:47  
标签:计算机 映射 简单 地址 概述 NAT IP地址 设备

作者:Three

链接:https://www.lofter.com/lpost/1f01bc1b_1c61e1ed6

来源:LOFTER

NAT(Network Address Translation)网络地址转换

IP地址已经变得稀缺和昂贵(当到完全采用IPV6)。So,有的人就想出了网络地址转换这样使得网络不必遵守互联网的寻址方案,但是仍然能够通过Internet进行通信

 

如下的3类私有IP地址范围:

  • 10.0.0.0~10.255.255.255A类网络

  • 172.16.0.0~172.31.255.255 B类网络

  • 192.168.0.0~192.168.0.0 C类网络

 

NAT可以说是位于一个网络到互联网(或者说到另一个网络的网关)。执行的是透明路由的选择和地址的转换。

 

NAT能带来很大的安全利益,多数防火墙的供应商都在它们的产品中实现了NAT。当攻击者要攻击一个网络时,他要尽可能要去了解这个网络具体的内容、有用的信息,如拓补结构、服务和地址。有了NAT,攻击者就无法轻易发现所攻击的地址方案和拓补结构,NAT就像夜总会的保镖一样站在网络的前面,并隐藏真实地址。

 

通过内部地址集中在一个设备上,NAT隐藏了内部地址,并且任何离开网络的数据帧都只有那台(安装了NAT的)设备的源地址,并不是发送消息的实际计算机的源地址。我们可以假设发送信息的计算机源地址为10.10.10.2的内部计算机,消息到达NAT设备处就停止了,而NAT设备的地址为1.2.3.4(1.2.3.4这个地址是不合法的,这里只是做个例子,你懂我意思就行了)。NAT会修改数据帧的首部,从内部计算机地址修改为NAT设备的地址1.2.3.4。当互联网上的计算机回复消息时,它回复的地址是NAT设备的地址,即1.2.3.4,NAT再讲回复消息首部内的地址改为10.10.10.2,然后提供给内部用户接受。

 

  • 静态映射:NAT软件配置了一个公共IP地址池。每个私有地址都被静态地映射到一个特定的公共地址上。因此,计算机A总是接收公共地址X,计算机B总是接收公共地址Y,以此类推。所以说,静态映射是用来那种需要一直保持相同公共地址的服务器通常使用这种映射

     

  • 动态映射:NAT软件配置有一个IP地址池。但是它不将公共地址映射到特定的私有地址上。而是一种”先到先得“的方式运行。因此,如果Mr.Three需要与互联网进行通信时那么它的系统就会向NAT服务器发送一个请求,NAT服务器将提取列表中的第一个IP,并将其映射为Mr.Three的私有地址,使其能够与互联网通信。动态映射可以减少公共地址的使用(公共地址有点贵哦),这样就不必为每台计算机配备一个公共地址了。

     

  • 端口地址转换(PAT Port Address Tranlation):对于所有需要与外部网络通信的系统来说,学校或者公司仅有一个公共IP地址。系统中所有的计算机如何能够使用一个相同的IP地址呢?  是这样的,举个例子,NAT设备的地址为1.2.3.4。当计算机A需要与互联网上的一个系统通信时,NAT设备会记录这台计算机的私有地址和源端口号(10.10.10.2:40001)。当计算机B也要和互联网上的一个系统通信时,NAT设备也会记录这台计算机的私有地址和源端口号(10.10.10.254:40001),并将首部信息改为1.2.3.4:40005.因此,当一个系统响应计算机A时,数据包首先到达NAT设备,该设备检查端口号为40001,以查看他是否是映射到计算机A的真实信息。于是,NAT设备将首部信息修改为地址10.10.10.2和端口40001并将数据包发送到计算机A处理

 

大多数NAT实现都是有状态的,这意味着他们保持内部主机和外部主机之间的通信记录,直至会话结束。NAT设备需要记住内部IP地址和端口以发送回复信息。这种有状态的特点与检测防火墙想思,但是NAT不对进来的包执行扫描以发现恶意特征。相反没NAT通常是一种在公司屏蔽子网内的路由器或防火墙上执行的服务

标签:计算机,映射,简单,地址,概述,NAT,IP地址,设备
From: https://www.cnblogs.com/For3Ever/p/16756604.html

相关文章

  • 数据库—数据库系统概述
    一、数据库的地位      数据库技术产生于六十年代末,是数据管理的有效技术,是计算机科学的最重要分支。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算......
  • TypeScript中typeof的简单介绍
    简单介绍typeof我们都知道js提供了typeof,用来获取基本数据的类型。实际上,TS也提供了typeof操作符。可以在【类型上下文】中进行类型查询。只能够进行变量或者属性查......
  • 377.combination-sum-iv 组合总和IV
    问题描述377.组合总和IV解题思路本题依旧是一个完全背包问题,但是本题求的是排列而非组合。参考518.零钱兑换II,先遍历体积,再遍历物品。代码classSolution{public:......
  • 实现一个简单的Database4(译文)
    前文回顾实现一个简单的Database1(译文)实现一个简单的Database2(译文)实现一个简单的Database3(译文)译注:cstsck在github维护了一个简单的、类似SQLite的数据库实现,通过......
  • 重识Nginx - 01 Nginx 主要应用场景及版本概述
    文章目录​​Nginx的三个主要应用场景​​​​静态资源服务​​​​反向代理服务​​​​API服务​​​​WhyNginx​​​​Nginx的优点​​​​Nginx本发布情况(mainline......
  • 通过JDBC进行简单的增删改查(以MySQL为例)
    目录前言:什么是JDBC一、准备工作(一):MySQL安装配置和基础学习二、准备工作(二):下载数据库对应的jar包并导入三、JDBC基本操作(1)定义记录的类(可选)(2)连接的获取(3)insert(4)upda......
  • leetcode 530. Minimum Absolute Difference in BST二叉搜索树的最小绝对差 (简单)
    一、题目大意给你一个二叉搜索树的根节点root,返回树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。示例1:输入:root=[4,2,6,1......
  • 简单查询语句
    查询一个字段:select字段名from表名;其中要注意:select和from都是关键字字段名和表名都是标识符强调:对于SQL语句来说,是通用的所有的SQL语句以“;”结尾另外SQL语句......
  • C#建立最简单的web服务,无需IIS
    软件架构师何志丹本程序只是入门级程序,所以不考虑1,多线程。2,安全性。3,不考虑端点下载文件。4,Keep-Alive。5,不考虑head。6,为了简洁,删掉了catch的内容。exe的祖父目......
  • 通信交互 socket套接字 简单通信
    服务端importsockets=socket.socket()s.bind(('0.0.0.0',1234))#主机ip,端口号s.listen()#等待连接c,addr=s.accept()#等待连接print(c)print(addr)客户端import......