网络地址转换NAT与端口地址转换PAT
网络地址转换NAT与端口地址转换PAT
一、网络地址转换 NAT (Network Address Translation)
1.1.网络地址转换简介
- 需要在专用网(内网)连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。
- 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
1.2.网络地址转换的过程
- 内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
- NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
- NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
- 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
举例
如图:
如图,当位于内网10网段的用户A想要访问Internet上的网站时,数据包可以出去,但是数据包返回时目标地址为内网地址,Internet中的路由器无法中转,所以内网的用户A无法访问Interner,并且可能存在多个相同的内网10网段。
那么我们平时是如何顺利访问Internet的呢?
- 连接内网的路由器至少有一个公网地址,如图中路由器X的公网地址111.24.0.1。用户A访问Internet上的网站时,数据包在内网传输时源地址为10.12.4.2目标地址为168.12.4.202,当数据包传输到路由器X处时,路由器将数据包的源地址改为了公网地址111.24.0.1 。
- 这样数据包的目标地址和源地址都是公网地址能去能回,当目标地址为111.24.0.1的返回数据包到达路由器X时,路由器再将数据包的目标地址改为10.12.4.2,最后转发给用户A。由此用户A能够顺利访问Intenet。
- 也就是说,连接内网与外网的路由器上的一个公网地址可以代表整个内网用户。比如一公网地址代表某学院内网的全部用户,该学院有人在网上干了坏事,根据公网IP地址查到的源头就是整个学院,学院内网里的全部用户都是嫌疑人。
1.3.注意
严格意义上的NAT不会进行端口地址转换,因此并不节省公网IP地址。而通过端口地址转换PAT,能够节省公网IP地址。
如图,内网中有5位用户,但是只在路由器上配置了3个公网IP地址,那么只有先访问公网的3位用户能够替换到公网地址。由于没有公网地址替换,剩下的2位用户无法访问公网。
即:使用NAT内网的用户可以主动访问公网,但是公网用户不能主动访问内网。利用此特点有以下应用(包含NAT和PAT):
应用举例
场景一:
某公司有这样的需求,由于技术部有不能泄露的机密资料,现要求:技术部可以访问市场部网段,但市场部不能访问技术部网段,两个网段网管都可以访问。
解决方法为:
在网管的计算机上安装两个网卡A和B,网卡A连接及技术部网段,网卡B连接市场部网段。当技术部的用户访问市场部时先经过网管的计算机,使用网卡B地址做替换。这样一来,在市场部用户看来,来访的只是网管的计算机,而实际上是技术部的用户来访。
计算机间能够通信要求数据包有去有回,当技术部的用户向市场部发出的数据包经网管计算机的网卡B地址替换发向市场部后,网管的计算机上会留下这样的记录:哪个端口对应着技术部的哪个用户。当市场部的数据包返回时,网管的计算机就会按照之前保留的对应关系把数据包转给技术部的对应用户。由此实现数据包的有去有回。
另一方面,当市场部用户想要主动访问技术部时,由于网管计算机上没有相关的端口对应关系(端口映射),所以无法将数据包中转给技术部用户。可以这样想:网管相当于小区保安,小区的住户相当于技术部用户发出的数据包。由于保安处有每位住户对应的门牌信息,所以住户可以自由出入。但是,小区外的人保安不认识,所以不让进。
由此实现了:技术部能主动访问市场部,而市场部不能主动访问技术部。
场景二:
学校网管分配给教师一个IP地址,满足教师上课时的上网需求。如果学生也要上网那该怎么办呢?
解决方案为:在教师计算机上配置NAT和PAT,学生上网经过教师的计算机进行地址和端口转换。在网管看来只有教师在上网,其实教师和学生都在上网。
二、端口地址转换 PAT
2.1.简介
当我们上网打开网页的时候,可以在命令行窗口通过以下命令查看建立的会话:
netstat -n
如图所示,红色框内为建立的TCP连接的源地址及其使用的端口,蓝色框为TCP连接的目标地址和端口。可以看到建立的每一个连接中源地址使用的端口都是不同的。
那么内网用户访问Internet是会不会出现以下情况呢?
如图,内网用户1和2访问公网网站时使用路由器的公网地址111.10.0.1替换,数据包可以顺利发出去,等到数据包返回时,源地址和端口为168.20.1.202:80,目标地址和端口为111.10.0.1:1234。但是,内网用户1和2可能都使用了1234端口,数据包可能是用户1发出的,也有可能是用户2发出的,此时路由器就不知道要把返回数据包转发给谁了。
解决该问题的方法为,当内网用户访问公网时,不仅要进行地址替换(NAT)也要进行端口替换(PAT),如下图所示:
如图,用户1或2访问公网网站时,无论源地址和端口是什么都统一替换为路由器分配的地址和端口。即用户1使用地址:111.10.0.1,端口:4000;用户2使用地址:111.10.0.1,端口:4001;
这样,如果返回的数据包目标端口为4000,那么路由器就知道要转给用户1;目标端口为4001,路由器就转给用户2;即使用户1和2原来使用的端口号一样路由器也知道该把数据包转给谁。
也就是说:端口地址转换就是由路由器为内网用户统一分配端口。
2.2.端口地址转换的好处
能够大量节省公网IP地址。只需要一个公网IP地址就可以供整个内网的用户使用,内网中配置了公网地址的路由器负责给内网的所有用户统一分配端口,这样便能区分不同的内网用户。
2.3.NAT的端口映射
什么是端口映射?
如图,内网中有个地址为10.0.2.1的Web站点服务器,它的80端口提供Web服务,内网路由器上的公网地址为111.0.2.1,能让外网用户也能访问内网Web站点服务器的技术就是端口映射。
端口映射的作用
可以配置内网路由器公网地址的80端口映射内网Web站点服务器的80端口,当公网用户A访问路由器公网地址的80端口服务时,路由器自动映射到内网的Web站点服务器的80端口上,这样公网用户就能访问内网Web站点服务器80端口提供的Web服务了。
如果,公网用户A想要通过远程桌面管理内网的计算机B和C,那么用户A就需要访问计算机B和C的3389端口(远程桌面使用3389端口)。但是内网路由器只有一个3389端口,只能映射一台计算机的3389端口,那该怎么办呢?其实并不要求内网路由器上的端口与所映射端口相同,只要不重复即可。即可以使用内网路由器的4000端口映射计算机B的3389端口,使用内网路由器的4001端口映射计算机C的3389端口。由此,用户A可以通过远程桌面管理内网的计算机B和C了。
解决公网访问私网的问题,使用端口映射是一种解决方案,前面讲到的VPN技术同样是一种可行的解决方案。
网络地址转换NAT与端口地址转换PAT的更多相关文章
- 第11章 拾遗1:网络地址转换(NAT)和端口映射
1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的 ...
- nat的翻译类型(3)--端口地址转换
目的:在1.1 1.2 1.3 三台内网的服务器访问外网的服务器(202.1.1.2)时,将内网ip转换为外网ip. 1.设置内网三台服务器的Ip ,网关,以及外网服务器的ip网关 分别为:192.1 ...
- 网络端口地址转换的NAPT配置
背景:只有一个IP地址,实现内网内多台主机访问外网 原理:NAPT使用不同的端口来映射对各内网的IP地址到一个指定的外网IP地址,多对一. NAPT采用端口多路复用的方式.内部网络的所有主机均可共享一 ...
- CCNA 之 十一 NAT 子网地址转换
NAT 网络地址转换 全称:Network Address Translation 为什么需要NAT? 因为公网IP(IPv4)地址紧缺,内容地址通过NAT转换成一个公有地址去访问公网资源: 如下图展 ...
- 云计算--网络原理与应用--20171123--网络地址转换NAT
NAT的概述 NAT的配置 实验 一. NAT的概述 NAT(Network address translation,网络地址转换)通过将内部网络的的私有地址翻译成全球唯一的共有网络IP地址,是内部网 ...
- HCNA Routing&Switching之地址转换技术NAT
前文我们了解了包过滤工具ACL相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15156308.html:今天我们来聊一聊地址转换技术NAT相关话题: ...
- NAT地址转换原理全攻略
NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...
- NAT(地址转换技术)学习
一.什么是NAT,NAT产生的背景 NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力. NAT产生的背景是为了解决IPv4地址不足的 ...
- NAT 地址转换
NAT功能 NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机.1.宽带分享:这是 NAT 主机的最大功能.解决IP4地址短缺的问题 ...
随机推荐
- AtCoder Grand Contest 033
为什么ABC那么多?建议Atcoder多出些ARC/AGC,好不容易才轮到AGC…… A 签到.就是以黑点为源点做多元最短路,由于边长是1直接bfs就好了,求最长路径. #include<bit ...
- The website is API(2)
一.Beautifu Soup库 from bs4 import BeautifulSoup soup = BeautifulSoup(demo,"html.parser") Ta ...
- GSON解译Json为DTO
除了用okhttp网络库外,还用到google的gson库. 1. uti类的对象一般都用懒汉模式.这次gson也是用懒汉模式. public class GsonTools { private st ...
- skip-list(跳表)原理及C++代码实现
跳表是一个很有意思的数据结构,它实现简单,但是性能又可以和平衡二叉搜索树差不多. 据MIT公开课上教授的讲解,它的想法和纽约地铁有异曲同工之妙,简而言之就是不断地增加“快线”,从而降低时间复杂度. 当 ...
- poj-3662 Telephone Lines 二分答案+最短路
链接:洛谷 POJ 题目描述 Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone co ...
- 32)PHP,遍历对象的属性或者属性值
首先是遍历属性: <?php class A{ ; ; ; function fetchAllProp(){ //遍历时,key取得属性名,value取得对应值 foreach($this as ...
- Ubuntu中Unable to acquire the dpkg frontend lock解决方案
根据百度总结三种方式:第三种解决了我的问题 1. ps -e|grep apt-get 结果:6965 ? 00:00:01 apt-get 执行:sudo kill 6965 #强制解锁,会删除文件 ...
- replace|同时替换
a= 'eeekkksksksk' print a.replace('e','s').replace('s','k') #kkkkkkkkkkkk change={"e":&quo ...
- 01-Java 教程
一.我的第一个 java 程序 创建文件 HelloWorld.java(文件名需与类名一致), 代码如下: public class HelloWorld { public static void ...
- made his acquaintance|adequate|advisable|announce|contrived to|made up|toss|considering that
PHRASE 与(某人)初次相识;结识(某人)When you make someone's acquaintance, you meet them for the first time and ge ...