NAT及其实验(eNSP,细致易懂)

 

目录

NAT产生背景

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

NAT工作规则

标准NAT技术

NAPT[网络地址端口转换[Port-->传输层-端口编号]]

Easy IP——最简单的PAT

NAT Server

静态NAT实验

动态NAT实验

NAPT实验

NAT server实验

Easy IP实验


NAT产生背景

  1. 为了节省IP地址和费用,一般企业内部都是使用私有IP地址
  2. Internet网路的组成设备,使用的都是公有IP地址
  3. 企业内网要与internet互通,必须拥有公有IP地址
  4. 企业内网中的设备,无法使用私有地址与internet互通


 

 

分析:

  1. 在企业网络的边缘设备(路由器)上,配置默认路由,企业内网可以将数据发送到Internet
  2. 由于Internet设备上没有私有IP地址的路由条目,所以数据无法返回到企业内网
  3. 在企业网络的边缘设备(路由器)上,使用NAT技术,实现私有地址和公有地址互相转换

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

  1. 主要应用在企业网络的边缘设备上
  2. 对数据包的私有IP地址和公有IP地址进行转换,实现内网到外网的访问
  3. 实现企业内网的保护,增强企业内网的安全性。因为外网无法直接访问内部设备的私有IP地址

NAT工作规则


①发送数据时,修改数据的源地址,将私网的地址修改为某个公网地址,然后形成本地的一个映射信息
表,发送数据;
②接收数据时,根据数据的目的地址,在本地的NAT映射信息表中查看是否有该地址的记录,如果有,
则将目的地址修改为NAT映射表中的地址。 

标准NAT技术

静态NAT:内部的私网地址和公网地址的1:1的关系,无法解决内部多个私网主机 使用一个公网地址上网的需求。

 

动态NAT:内部的私网地址和公网地址实现了n:1的关系 内部多个私网地址可以使用一个公网
地址 ,但是无法实现多个地址同时使用一个公网地址进行通信 面对网络的并发流量时,体验感较差。

特点:仅有IP地址参数参与转换,无非就是出私网的时候,源IP改为公网IP,进私网的时候目的IP改为私网IP,如果无法理解,看完后面的实验可以有更好的理解。

NAPT[网络地址端口转换[Port-->传输层-端口编号]]

 

通信原理:通信时,修改数据中的源地址及源端口信息,形成NAT的映射表,数据回报时,根据映射表中的信息将其顺利转换回来。

  • 在动态NAT技术突出的主要矛盾就是:用来进行地址转换的公网地址太少了,并且无法多个地址同时使用一个公网地址进行通信。
  • 以后在进行地址转换的时候,不仅仅是转换地址,还转换端口
  • 因为一个公网地址,最多可以对应 65536 个端口号
192.168.10.1 - 100.1.1.10:1001
192.168.10.2 - 100.1.1.10:1002
192.168.10.3 - 100.1.1.10:1003
192.168.10.4 - 100.1.1.10:1004
192.168.10.5 - 100.1.1.10:1005
192.168.10.6 - 100.1.1.10:1006
192.168.10.7 - 100.1.1.10:1007
192.168.10.8 - 100.1.1.10:1008

 

Easy IP——最简单的PAT

如果企业规模很小,经费有限。大概率上企业可能仅仅购买1个公网IP地址。在这种情况下,我们想要实现内网多个主机同时上网的话,就只能用“配置在公网接口”上的这个IP地址进行 NAT 转换。因为这种方式不需要任何的公网地址 此时使用出接口的地址进行转换 即便出接口的地址发生变化,依然不会影响地址的转换。[端口复用]

 我们可以看到,私网IP+端口直接转换成了公网接口上的公网IP+端口,所以说他节省了公网IP。

NAT Server

如果想要实现外网到内网的访问那么必须得在公司的边界设(R1)上,提前设置“nat转换条目”并且这种条目,仅仅允许某一种特定的业务的流量。

 

如上图: 

  • 企业内部有一个 web 服务器,私有IP地址 192.168.1.100/24
  • 希望互联网用户,通过浏览器,访问公网地址 200.10.10.1:80 ,就可以获得我们公司内部的 web 服务器的网站

静态NAT实验

网络拓扑图如下:

实验要求:

1,在路由器上配置静态nat,是的pc1和pc2可以访问外网。

2,主机和服务器的IP地址信息如上图

pc1的配置:

pc2的配置类似就不展示了,接下来展示服务器的配置:

注意:画红圈的地方不要填路由器的IP,不然的话这个服务器就可以ping通我们的私网了。

路由器的配置如下:

给内网接口配个IP

进入公网接口。

1,配置公网IP。

2,在公网接口上配置静态nat——nat static global 100.1.1.3 inside 192.168.1.20。

3,展现本接口的配置信息——dis th。

配置好之后我们在这俩个位置抓包看看报文有什么特点

在pc1接口下的报文如下:

如上图:可以看到,在私网下的报文是私网IP可以和公网IP直接通信,并且可以收到以公网IP为源IP私网IP为目标IP的报文。

然后我们再来看看在路由器下抓到的报文:

如上图:可以看到,原本是192.168.1.10的源IP被替换为100.1.1.2——这也是我们给192.168.1.10做的地址转换,所以服务器无法得知我们的私网IP,只知道在公网上有个叫100.1.1.2的家伙在给我发request。

动态NAT实验

网络拓扑图如下:

实验要求:

1,在路由器上配置动态nat,是的pc1和pc2可以访问外网。

2,主机和服务器的IP地址信息如上图

其他的配置与上面类似,所以这次只展示路由器上g0/0/1接口上的配置。

1,定义要转换的公网地址范围。

2,创建acl——用于抓取允许通过的流量。

3,定义acl规则。

4,进入公网接口。

5,配置公网IP。

6,配置动态nat。

然后我们测试一下;用pc3 ping一下服务器。

NAPT实验

网络拓扑图如下:

实验要求:

1,使用NAPT技术使得主机可以向外通信。

2,client要建立http连接,server为http类型。

首先对server进行配置:

基础配置就不展示了,现在展示服务器信息配置(文件根目录随便选一个文件夹就好)。

路由器的配置如下:

1,定义可以转换到的公网IP(注意这里不是转换到30和40,而是可以转换到30到40之间)。

2,定义acl。

3,定义允许进行通信的私网地址。

4,进入公网接口。

5,配置公网接口的IP。注意:千万记得配IP,我当时就忘了。

6,配置NAPT

7,私网接口的地址就不在此展示了,配个IP就好了。

注意: 如果添加了"no-pat" 则执行动态NAT
            如果未添加"no-pat"则执行NAPT技术

注意:我后面改了一下可转换的地址范围,现在私网地址只可以转换为100.1.1.30.

然后是client1配置:

先填上客户端的IP,然后点击获取,

client2也进行如上的操作,当然,client建立http连接之前,首先我在路由器的公网接口抓包,得到信息如下:

从上面我们可以看到,client1和client2都在使用100.1.1.30通信,但是通信的路由器端口不同。

NAT server实验

网络拓扑图如下:

实验要求:

1,将R4作为NAT Server,使得client3可通过访问特定的公网IP+端口访问到私网的服务器。

2,IP地址信息如上图所示。

首先我们来对路由器R4进行配置:

这里我们只展示做了nat server服务接口的配置,其他的IP地址自己配置一下就好:

1,进入公网接口。

2,配置IP地址。

3,外网访问100.1.1.8的80端口相当于在访问192.168.1.1的80端口——nat server protocol tcp global 100.1.1.8 80 inside 192.168.1.254 80。

4,展示一下接口的配置看是否有错误。

5,配置回到200.1.1.0/24网段的路由,不然的话,R4无法回包。

Server配置:

client配置:(其他的部分配置就不过多展示了,就是普通的配置IP。)

然后,我们在client向server发起http连接请求:注意我们这里填写的IP,访问这个IP之后,nat server 会自动访问到私网的192.168.1.254的80端口。

我们在这两个地方抓包看一下:

路由器R4接口g0/0/0下的报文:

路由器R5接口g0/0/1下的报文:

可以看到,我们确实通过访问100.1.1.8:80访问到了私网的192.168.1.254:80。实验成功。

Easy IP实验

网络拓扑图如下:

实验要求:

使用Easy IP技术使得主机和client可以和server通信。

这里我只展示一下路由器R6的配置,其他的接口IP配置和主句ip配置就不展示了。

1,创建acl。

2,定义acl规则用于抓取允许通过的流量。

3&4,进入接口,给接口配置IP。

5,给本接口配置Easy IP。

配置好之后在如下的位置抓包看看。

客户端client先服务器端发起请求,报文如下:

可以看到,直接在使用我们的公网接口IP在通信,这么多主机都是用同一个IP,我们是如何区分的呢?这里和NATP有着异曲同工之妙,我们是通过端口来进行区分的。使用不同的端口来与使用本IP的主机做映射。到此,实验成功。

 最后

本次对NAT的介绍就到这里了,如果有讲得不对的或者有所欠缺得地方,欢迎大家来指正与补充,创作不易,还请点个赞再走吧!后面我还会更新其他计算机方面的博客,咱们下篇博客再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/58352.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用eXosip+ffmpeg、ffplay命令行实现sip客户端

文章目录 前言一、关键实现1、主要流程2、解决端口冲突(1)、出现原因(2)、解决方法 3、解析sdp(1)、定义实体(2)、解析视频(3)、解析音频 4、命令行推拉流&am…

安全杂记 - Linux文本三剑客之awk

目录 1.什么是AWK2.正则表达式3.语法4.内置变量示例printf命令5.复现awk经典实例(1).插入几个新字段(2).格式化空白(3).筛选IPv4地址(4).筛选给定时间范围内的日志 1.什么是AWK awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。三者的功能都是处理文本&a…

vscode extension 怎么区分dev prod

开发模式注入环境变量 使用vsode 提供的api

C语言经典小游戏之扫雷(超详解释+源码)

“少年气,是历尽千帆举重若轻的沉淀,也是乐观淡然笑对生活的豁达!” 今天我们学习一下扫雷游戏怎么用C语言来实现! 扫雷小游戏 1.游戏介绍2.游戏准备3.游戏实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2打印棋盘3.3布置雷…

【Ubuntu】安装docker,docker compose 以及部署一个docker应用

大家好!在过去,已经分享了很多有关通过Docker部署应用的内容。今天,我将为大家详细介绍如何在Ubuntu系统上部署最新的Docker平台。 Docker是什么 Docker是一个开源的容器化平台,它允许您将应用程序及其所有依赖项打包到称为容器…

Clickhouse 存储引擎

一、常用存储引擎分类 1.1 ReplacingMergeTree 这个引擎是在 MergeTree 的基础上,添加了”处理重复数据”的功能,该引擎和MergeTree的不同之处在于它会删除具有相同主键的重复项。 特点: 1使用ORDERBY排序键作为判断重复的唯一键 2.数据的去重只会在合并…

ClickHouse(十一):Clickhouse MergeTree系列表引擎 - MergeTree(1)

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…

洛阳Geotrust旗下有RapidSSL https证书吗

Geotrust是知名的CA认证机构,旗下的https数字证书产品众多,Geotrust的数字证书具有高度的兼容性和可信度,得到了全球用户的广泛认可和信赖。Geotrust是一家全球领先的数字证书颁发机构,提供多种数字证书服务,包括SSL证…

漫画算法做题笔记

诸神缄默不语-个人CSDN博文目录 哦这是我三年前写的,我现在Java语法都快忘光了…… 反正之前的博文也发一下好了。这个因为我当年是用有道云笔记而不是直接用CSDN编辑器写的,所以后面有些内容写乱了,因为我现在猛的一看有点看不懂&#xff0…

Tailwind CSS:简洁高效的工具,提升前端开发体验

112. Tailwind CSS:简洁高效的工具,提升前端开发体验 1. 什么是Tailwind CSS? Tailwind CSS是由Adam Wathan、Jonathan Reinink、David Hemphill和Steve Schoger等人共同创建的一种现代CSS框架。与传统的CSS框架不同,Tailwind CS…

C语言学习笔记 vscode使用外部console-11

前言 在默认情况下,我们运行C语言程序都是在vscode终端的,在小程序运行时这个是没有问题的,但是当程序变得复杂它就不好用了,这时我们可以将这个终端设置为外部console,这样方便处理更多、更复杂的程序。 步骤 1.点击…

zookeeper --- 基础篇

一、zookeeper简介 1.1、什么是zookeeper zookeeper官网:https://zookeeper.apache.org/ 大数据生态系统里的很多组件的命名都是某种动物或者昆虫,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。顾名思义就是管理…