NAT协议

目录

NAT

前言

NAT地址转换表

NAT分类

前言

静态NAT

192.168.1.2访问200.1.1.2执行过程

动态NAT

192.168.1.2访问200.1.1.2执行过程

NAPT

192.168.1.2的5000端口访问200.1.1.2的80端口执行过程

基本命令

配置动态NAPT转换

定义内外网接口

配置NAPT

静态NAPT配置

定义内外网接口

配置静态NAPT

NAT

前言

  • 如今IPV4地址已经严重不够了,我们能够使用的只有A、B、C三类地址
  • IP地址分为公网IP和私网IP,公网IP只能在公网上使用,私网IP只能在私网上使用。
  • 公网上不允许出现私有IP地址(公网路由器不会配置指向私网路由器的路由表)

含义:NAT协议是将IP数据包头中的IP地址转换为另外一个IP地址的过程, 主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭

注意:

  • 网络地址转换主要完成了私网到公网地址的转换,一般是路由器或防火墙上来完成,不建议在三层交换机上配置。
  • NAT协议可以节约公网IP资源,也可以内网访问外网的真实IP

NAT地址转换表

  • NAT地址转换表就是路由器进行地址转换的依据。
  • NAT地址转换表记录了源IP与公网IP的映射关系(静态nat的NAT地址转换表需要自己手动配置)
  • NAT表中的公网地址不一定是路由器接口处的公网IP地址,也可以是其他公网地址。
  • 在配置NAT转换表之前,路由器要想启用NAT,那么必须首先定义内外网的路由端口
  • 内网中,数据包里面一定有源IP和目标IP,从内往外走目标IP不动,只改变源IP;从外往内走,源IP不动,只改变目标IP
  • 当我们配置好静态NAT后,那么就会生成NAT转换表。

NAT分类

前言

注意:以上都是24位子网掩码,其中第一个路由器分割了内网与外网。

静态NAT

理解:手动配置nat映射表,自己配置私网IP所对应的公网IP来进行nat转换(一对一转换)

192.168.1.2访问200.1.1.2执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了NAT,那么就会检查地址转换表(192.168.1.2——100.1.1.1)发现有源IP的匹配条目进而将源地址转换为100.1.1.1后将数据包从右接口发出(源IP:100.1.1.1,目标IP:200.1.1.2),之后就可以访问200.1.1.2,200.1.1.2收到了请求就会回应(源IP:200.1.1.2,目标IP:100.1.1.1)这个数据包发到了路由器1,路由器1配置了NAT,那么就检查目标IP,发现有匹配的项目,进而将目标IP转换为192.168.1.2进而发给192.168.1.2数据响应(源IP:100.1.1.1,目标IP:192.168.1.2)

注意:

  • 这种方式在仅有1个公网IP地址的情况下,内网中仅有1台设备可以访问外网。
  • 上面这种方式中没有对端口进行转换,那么访问公网的特定端口就会转化到私网的特定端口上,如今也推出了静态NAPT,可以实现静态配置内网IP端口与公网IP端口的映射

动态NAT

理解:定义内外部地址池,动态随机转换,当有一个私网IP要访问互联网,那么就会自动拿出地址池里面的公网IP来进行对接转换,若再有一个私网IP想要访问外部网络,则会再从地址池中拿出公网IP对接(一对一转换)

192.168.1.2访问200.1.1.2执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了动态NAT,那么就会检查地址转换表,发现没有映射关系但配了动态NAT,那么就会把源IP拿去内部地址池比较,发现属于内部地址池(动态在NAT地址转换表补充至源IP),那么就从外部公网地址池拿出一个公网IP(动态的在NAT地址转换表补充至公网IP)在NAT地址表中形成一个转换关系(源IP:192.168.1.2;公网IP:100.1.1.1),同时将源IP转化为100.1.1.1将数据发到200.1.1.2(源IP:100.1.1.1,目标IP:200.1.1.2);(后面就和静态NAT一样了)

注意:动态NAT中的NAT地址转换表的条目将会在源IP设备停止发包的24小时后消失。

NAPT

前言:

  • 网络地址端口转换NAPT(Network Address Port Translation)是把内部地址映射到外部网络的一个IP地址的不同端口上。
  • NAPT相对于动态NAT来说,它实现了外部公网地址池的复用。

NAPT协议的NAT表

源IP地址公网IP地址源端口号路由器端口
内网设备1源IP公网地址内网设备1开放端口路由器监听端口1
内网设备2源IP公网地址内网设备2开放端口路由器监听端口2

注意:

  • 该表中对于没有消失的表项中路由器使用的端口号路由器不能用第二次
  • NAT表中的公网地址不一定是路由器接口处的公网IP地址,也可以是其他公网地址,当一个外部数据发过来的时候,就会检查目标IP是否与公网IP匹配,目标端口是否与路由端口匹配,若都匹配了则能转发数据到内网

192.168.1.2的5000端口访问200.1.1.2的80端口执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2;源端口:5000,目标端口:80),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了NAT,那么就会检查地址转换表,发现没有映射关系但配置NAPT,于是就去拿源IP去内部地址池比较,发现属于内部地址池(将该地址动态在NAT地址转换表补充至源IP,将源端口补充至源端口),于是就从外部公网地址池复用一个公网IP(将该IP动态的在NAT地址转换表补充至公网IP,路由器随机开启端口1补充至路由器端口),形成路由表(源IP地址:192.168.1.2;公网IP:100.1.1.1;源端口:5000;路由器端口:1)后将公网地址作为源IP地址,路由器随机开启的端口作为源端口(源IP:100.1.1.1,目标IP:200.1.1.2;源端口:1,目标端口:80)将数据包发送到200.1.1.2;200.1.1.2收到后向100.1.1.1回复消息(源IP:200.1.1.2,目标IP:100.1.1.1;源端口:80,目标端口:1)路由器1配置了NAT于是就查看目标IP并且将其转化为源IP,查看目标端口号转化为源端口号(源IP:200.1.1.2,目标IP:192.168.1.2;源端口:80,目标端口:5000)并将数据发送给192.168.1.2的5000端口。

注意:使用NAPT协议可以复用公网地址,进而达到局域网内的多台设备仅用一个公网IP实现上网的目的。

基本命令

进入特权模式

查看nat表:show ip nat translations

清空nat表:clear ip nat translations

配置动态NAPT转换

定义内外网接口

进入路由器内网接口

定义内网接口:ip nat inside

进入路由器外网端口

定义外网端口:ip nat outside

注意:外网端口用来转换出去包的源IP,内网端口用来转换进来包的目标IP。

配置NAPT

进入全局配置模式

定义内部地址池:access-list 1 permit 内网IP地址 通配符掩码

  • 该ACL表主要是做匹配地址转换,来往的数据若符合上述规定则会做地址转换

做NAPT动态映射:ip nat inside source list 1 路由器公网接口 overload

  • 只要源IP满足ACL表号1,那么就允许使用路由器公网接口的IP地址做替换

总结:执行了以上的两个步骤,那么只要是ACL表允许的数据,都会允许做NAPT转换,进而实现了一个公网IP允许多个私网IP设备同时上网。

静态NAPT配置

定义内外网接口

进入路由器内网接口

定义内网接口:ip nat inside

进入路由器外网端口

定义外网端口:ip nat outside

配置静态NAPT

进入全局配置模式

将私网IP完整的映射到公网IP上

  • ip nat source static 私网IP地址 公网IP地址

将私网IP的端口映射到公网IP的端口上

  • ip nat inside source static 协议 私网IP 私网端口 路由器公网IP 路由器公网端口

注意:

  • 静态NAPT中的协议可选为tcp/udp
  • 静态NAPT配置后,访问路由器公网IP的端口,那么就会自动映射到私网IP的私网端口

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

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

相关文章

智能井盖传感器实时批发价格

城市之中高楼大厦林立,越来越多的人群涌入一线城市或二线城市。同时即便是县城之中接连不断的高楼大厦拔地而起,住宅小区的面积在不断拓宽。随着这一系列情况的出现,首先要完善的是每一个地区的城市道路设施建设。无论小区还是在城市路面之中…

ubuntu 安装 zsh、ohmyzsh并配置必要插件

下述记录是完成全部操作后回忆记录得来,或有不准确。我只记录安装中确实用到的指令,参考资料中有扩展内容,记录如下: ubuntu使用zsh终端并安装nerd font字体——nerd font字体不太好安装,使用fonts-powerline替代。 Ub…

「Verilog学习笔记」使用子模块实现三输入数的大小比较

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 题目要求编写子模块实现两个输入数的大小比较并输出较小值,可以使用if-else语句实现。同时要求在主模块中实现三个输入数值的大小比较,假设三个…

RDS for Mysql 到云数据库GaussDB

前言 该实验旨在指导用户使用DRS将RDS MySQL上的数据迁移到 GaussDB中。 本实验涉及数据复制服务DRS(Data Replication Service)、关系型数据库服务RDS(Relational Database Service)、GaussDB、数据管理服务DAS(Data…

LeetCode.6 N字形变换

一开始想的是真的创建一个数组 去按照题目所给的要求填入数据 最后输出不为空的数组项 但是不仅时间复杂度高 而且错误频繁出现 最终也没有提交成功 查阅题解后发现数组并不重要 假设我们忽略掉数组中的那些空白项 最终输出的结果就是numRows行的字符串的拼接 string conver…

MobaXterm配置SSHTunnel

本地与远程服务器之间存在防火墙,防火墙只允许SSH端口通过,为访问远程服务器,我们可以借助MobaXterm来与SSH服务器建立隧道,使得防火墙外的用户能够访问远程服务器 配置 打开SSHTunnel 新建SSH tunnel 点击开启就生效了&…

webgoat-Request Forgeries 请求伪造

(A8:2013) Request Forgeries Cross-Site Request Forgeries 跨站请求伪造,又称一键攻击或会话骑乘,简称CSRF (有时发音为 sea-surf)或 XSRF,是一种恶意利用网站,其中传输未经授权的命令 来自网站信任的用…

能源监测管理系统有哪些作用与效果?

随着全球能源的不断增加,能源的有限性与环境问题日益严重,用能管理企业需要一种高效的方法来管理能源与利用能源,因此能源监测管理系统成为了一种不可或缺的工具。 能源监测管理系统的重要性 1、实现节能减排的目标 通过系统,可…

apollo docker搭建

1 mysql搭建 先需要一个mysql,mysql我使用的是5.7,搭建过程忽略 2 数据导入 我们需要从github上下载apolloportaldb.sql, apolloconfigdb.sql 2个sql 随后cp apolloconfigdb.sql apolloconfigdbUat.sql cp apolloconfigdb.sql apolloconfigdbDev.sq…

实现dialog在页面随意拖拽

实现dialog在页面随意拖拽 1.先建一个文件如图所示: 文件名:dialog-directive.js 文件内容: import Vue from vue // v-dialogDrag: 弹窗拖拽Vue.directive(dialogDrag, {bind(el, binding, vnode, oldVnode) {// 获取拖拽内容的头部const dialogHeade…

图论——并查集

参考内容: 图论——并查集(详细版) 并查集(Disjoint-set)是一种精巧的树形数据结构,它主要用于处理一些不相交集合的合并及查询问题。一些常见用途,比如求联通子图、求最小生成树的 Kruskal 算法和求最近公共祖先&…

freeswich学习

写在前面 因为所在部分主要负责公司客服业务,需要了解freeswich相关内容,所以这里将学习内容记录下。 1:安装freesswich freeswich是一个实现了软交换协议的开源软件,可以对对接运营上的通话线路,实现拨打电话。 安…

WebGL主要接口功能

WebGL(Web Graphics Library)提供了一组用于在Web浏览器中呈现3D和2D图形的接口类型和功能。下面是一些主要的WebGL接口类型和它们的功能,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交…

HTML和CSS入门学习

目录 一.HTML 二.CSS 1.CSS作用:美化页面 2.CSS语法 【1】CSS语法规范 【2】如何插入样式表 3.CSS选择器 4.CSS设置样式属性--设置html各种标签的属性 【1】文本属性--设置整段文字的样式 【2】字体属性--设置单个字的样式 【3】链接属性--设置链接的样式…

docker部署mysql nginx redis

一.创建网络 # 创建网络 docker network create liming # 查看网络 docker network ls二.部署mysql 删除并重新创建mysql容器,并完成本地目录挂载: 挂载/software/mysql/data到容器内的/var/lib/mysql目录挂载/software/mysql/init到容器内的/docker-…

Ubuntu LTS 坚持 10 年更新不动摇

导读Linux 内核开发者 Jonathan Corbet 此前在欧洲开源峰会上宣布,LTS 内核的支持时间将从六年缩短至两年,原因在于缺乏使用和缺乏支持。稳定版内核维护者 Greg Kroah-Hartman 也表示 “没人用 LTS 内核”。 近日,Ubuntu 开发商 Canonical 发…

关于卷积神经网络中如何计算卷积核大小(kernels)

首先需要说明的一点是,虽然卷积层得名于卷积( convolution )运算,但我们通常在卷积层中使用更加直观的计算方式,叫做互相关( cross-correlation )运算。 也就是说,其实我们现在在这里…

conda环境下version libcublasLt.so.11 not defined问题解决

1 问题描述 运行模型训练&#xff0c;错误信息如下&#xff1a; Traceback (most recent call last):File "/opt/Bert-VITS2/./text/chinese_bert.py", line 3, in <module>import torchFile "/root/anaconda3/envs/vits/lib/python3.9/site-packages/t…

参与 Ai 诈骗高发活动

今年以来&#xff0c; AIGC在聊天、写作、绘画、编程等领域展现了巨大的潜力&#xff0c;却也由此催生出利用“AI换脸”、“AI换声”来实施诈骗的安全隐患。你认为AI诈骗应该如何防范&#xff0c;来说说你的看法吧&#xff01; 看到这个论题&#xff0c;菜鸟只能说&#xff0c…

取消elementUI中table的选中状态和勾选状态赋值

一、取消所有选中 1、表格上绑定ref 2、清空用户选中数据 this.$refs.loopRef.clearSelection()二、勾选状态赋值 获取数据&#xff0c;flag为true则是选中状态&#xff0c;并将前面勾选框设为选中状态 this.listData.forEach(item> {if(row.flag1){this.$refs.loopRef.to…