计算机网络-NAT网络地址转换

今天来回顾下之前所学的知识,将它们串联起来进行巩固。一开始了解了IP编址进行IP设置和划分网段;学习了二层以太网交换,了解了二层通信基础;学习了路由基础知识,大致了解到了路由是什么?静态路由和动态路由;然后学习了VLAN的知识,进行虚拟局域网的划分和VLAN间通过路由器子接口、物理接口、VLANIF接口进行三层通信的知识;简单了解了二层交换机中为了冗余和备份交换机线路的STP生成树协议。

典型网络结构
典型网络结构

现在我们可以做到什么了呢?我们应该能够通过VLAN划分网段,配置网关以及通过简单的静态或默认路由进行网络互联,需要能够做到配置IP,配置网关,配置静态路由。但是在实际工作中一般是电信光猫--出口三层设备(路由器/防火墙)--核心网关--终端接入交换机,但是之前有学习过IP编址知道IP地址划分常用有A、B、C类地址,然后在每一类地址划分了私有地址,这些地址在公网设备也就是出口设备上不会进行路由转发,那怎么解决呢,使用NAT(Network Address Translation,网络地址转换)来实现地址转换。

一、NAT概述

由全球IP地址分配机构,IANA (Internet Assigned Numbers Authority)管理的IPv4地址,于2011年完全用尽。但是需要连接互联网必须要IP地址,但是公网地址已经没有了,因此出现了将私网地址转换成公网地址进行网络访问的解决方法。

A、B、C类地址中各预留了一些地址专门作为私有IP地址:

  • A类:10.0.0.0 ~ 10.255.255.255
  • B类:172.16.0.0 ~ 172.31.255.255
  • C类:192.168.0.0 ~ 192.168.255.255
私网地址
私网地址

简单讲就是一个企业出口申请从运营商申请一个IP地址部署在出口三层网络设备上,内部使用私网地址网段,进行网络访问时会将内网访问的数据包IP地址转换成那个唯一的IP地址。

二、NAT技术原理

NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。

NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。

NAT技术原理
NAT技术原理

这里还要简单了解一下另外一个概念:端口。之前在网络参考模型知道网络是分层结构,网络层是IP协议,传输层有TCP和UDP,使用端口进行区分不同的上层数据。实际访问网络也是通过IP+端口+MAC进行区分目的地的。TCP和UDP的端口号范围都是0-65535,这意味着每个协议有65536个端口。端口号小于256的定义为常用端口,服务器一般通过常用端口号识别。大多数TCP/IP实现给临时端口号分配1024~5000之间的端口号,大于5000的端口是给其他服务预留的。常见的端口有FTP的21号端口,HTTP服务的80端口,SMTP的25端口和HTTPS的443端口。

NAT作用:

1、把内网私网IP转换为公网IP

2、隐藏内网、起到包含内网作用

3、适当缓解IPV4地址枯竭

4、解决公网设备回包路由问题

三、NAT分类

随着网络需要的不同可以有不同的实现方式。

3.1 静态NAT

每个私有地址都有一个与之对应固定的公有地址,私有地址和公有地址之间的关系是一对一映射。支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。

静态NAT
静态NAT
转发过程
转发过程

适用于有多个公网地址,内网主机较少,能够实现一对一转换的情形。

配置示例:

# 1、接口视图下配置静态NAT
[Huawei-GigabitEthernet0/0/0] nat static  global { global-address} inside {host-address } # 2、也可以在系统视图下配置静态NAT
[Huawei] nat static  global { global-address} inside {host-address } # 还要在接口开启
[Huawei-GigabitEthernet0/0/0] nat static enable

3.2 动态NAT

动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。

当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。

动态NAT转换1
动态NAT转换1
动态NAT转换2
动态NAT转换2

配置示例:

# 创建地址池,配置公有地址范围,其中group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址
[Huawei] nat address-group group-index start-address end-address# 创建ACL,只有匹配上ACL才进行NAT转换
[Huawei] acl number
[Huawei-acl-basic-number ] rule permit source  source-address source-wildcard# 接口视图下配置带地址池的NAT Outbound,no-pat参数指定不进行端口转换
[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [ no-pat ]# 查看转换信息
dis nat session all

ACL下次进行学习,大概意思就是只有指定主机才会进行转换。

动态NAT就是将多个可用的公网地址设置成一个地址池,内网主机需要访问外网时,选择一个闲置状态的IP地址并生成NAT表项,当地址不使用时再释放。

动态NAT还是基于地址一对一进行转发,要等待连接释放才能进行下一个地址转发,效率较低,比如内网主机100个,公网IP4个,那就效率很低了,虽然实际转发速度很快。

3.3 NAPT

动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。

NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。

实际网络访问只需要一个端口或者几个端口即可进行网络访问,因此只需要进行端口的转换即可,一个TCP和UDP端口范围为0-65535,进行端口的转发可以实现效率的提升。

NAPT
NAPT
转发过程1
转发过程1
转发过程2
转发过程2

配置示例:

# 在动态NAT的配置上不添加--no-pat即可
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1

简单以访问百度网页为例讲一下端口通信:

  • 主机从1024-65535之间范围起一个端口,如55508
  • 目的地为百度www.baidu.com,目的端口http:80,https:443
  • 出口地址:111.21.8.5,192.168.1.1:55508-->111.21.8.5:62105 --> www.baidu.com:443
  • 出口设备记录转换表项,百度返回数据进行对应的转换

3.4 Easy IP

Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。

Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。

这个实际才是工作中常见方式,通过电信的光猫自动获取到一个地址,进行源IP和源端口的转换,没有自己的公网地址。

Easy IP
Easy IP

配置示例:

# 示例,将当前接口地址作为公网地址进行源ip和端口的映射
[R1-GigabitEthernet0/0/1]nat outbound 2000

3.5 NAT Server

上面的动态地址转换与端口转换是自动转换端口,不能指定端口的对应关系,这时候如果内网有服务器需要发布到公网对外就需要使用NAT Server。

NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。

外网主机主动访问[公有地址:端口]实现对内网服务器的访问。

NAT Server
NAT Server
转换过程
转换过程

简单来说就是指定内网服务器地址和端口映射到公网地址的指定端口,供外部访问公网地址对应端口实现服务发布。

配置示例:

# 进入对应接口
[R1]interface GigabitEthernet0/0/1 # 配置地址
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24# 指定映射TCP/UDP协议,指定内网地址和公网地址和端口
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 202.10.10.1 80 inside 192.168.1.1 8080

一般适用于有固定公网地址,用于对外发布服务提供公网访问,一个公网地址可以映射多个端口。

四、典型网络配置实验

拓扑图如下: NAT实验

配置示例:

核心交换机


# 核心交换机配置VLAN与网关地址,下联交换机配置trunk,上联路由器配置ACCESS VLAN 30
interface Vlanif10ip address 192.168.10.254 255.255.255.0
#
interface Vlanif20ip address 192.168.20.254 255.255.255.0
#
interface Vlanif30ip address 10.0.0.2 255.255.255.252
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1port link-type accessport default vlan 30
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/3port link-type trunkport trunk allow-pass vlan 10 20# 配置默认路由指向路由器
ip route-static 0.0.0.0 0.0.0.0 10.0.0.1

出口路由器:

# 配置接口地址和NAT
interface GigabitEthernet0/0/0ip address 122.12.1.1 255.255.255.252 nat outbound 2000
#
interface GigabitEthernet0/0/1ip address 10.0.0.1 255.255.255.252 # 配置路由,向外的默认路由和会内网的静态路由
ip route-static 0.0.0.0 0.0.0.0 122.12.1.2
ip route-static 192.168.10.0 255.255.255.0 10.0.0.2
ip route-static 192.168.20.0 255.255.255.0 10.0.0.2# ACL
acl number 2000  rule 5 permit 

Internet:

# 中间路由器不需要额外配置
interface GigabitEthernet0/0/0ip address 122.12.1.2 255.255.255.252 
#
interface GigabitEthernet0/0/1ip address 23.12.1.2 255.255.255.252 

百度:

# 配置地址和默认路由
interface GigabitEthernet0/0/1ip address 23.12.1.1 255.255.255.252 #
ip route-static 0.0.0.0 0.0.0.0 23.12.1.2

总结:实际情况下一个企业只有一个或者几个公网地址,为了内网主机的私网地址能够访问互联网需要在出口设备进行NAT地址转换,实际情况中采用NAPT和Easy IP进行地址和端口同时转换,然后如果有内部服务器需要对外提供访问可以通过NAT Server进行端口一对一映射。

本文由 mdnice 多平台发布

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

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

相关文章

【MIdjourney】几种独特的艺术风格

1.合成器波(Synthwave) Synthwave是一种音乐风格,起源于20世纪80年代电子音乐和电影的复古元素。这种音乐风格通常包括合成器音乐、电子鼓声和强烈的电子声效,以模拟80年代电影和视频游戏的声音。Synthwave的特点包括浓厚的合成器声音、强烈的节奏和对复…

工商业屋顶光伏项目如何操作?

鹧鸪云 随着可再生能源的日益重要,工商业屋顶光伏项目已成为许多企业实现绿色能源转型的重要途径。本文将详细介绍工商业屋顶光伏项目的操作流程,帮助企业更好地实施这一项目。 一、项目前期准备 需求分析:明确企业的能源需求,评…

JNI笔记

JNI笔记 背景Demo代码JNI.javaMainActivity.javaAndroid.mkApplication.mkcom_stone_javacallc_JNI.hjavacallc.cbuild.gradle 背景 Demo代码 代码结构 JNI.java package com.stone.javacallc;/*** Created by stoneWang* Created on 2024/1/16* java调用C*/ public class …

mysql从库重新搭建的流程

背景 生产环境上的主从集群,因为一些异常原因,导致主从同步失败。现记录下通过重做mysql从库的方式来解决,重做过程不影响主库。 步骤 1、在主库上的操作步骤 备份主库所有数据,并将dump.sql文件拷贝到从库/tmp目录 mysqldump …

【车载HMI开发工具--EB GUIDE介绍】

EB GUIDE 是作为当今的汽车内一些最佳行业用户界面的技术。利用 EB GUIDE,您可以创建最佳的信息娱乐系统和仪表板的人机交互界面。EB GUIDE 不仅仅是一个工具,它还能支持汽车软件开发过程,从而创造出世界一流的汽车 HMI。 优点 在开发过程中…

C# 图解教程 第5版 —— 第23章 异常

文章目录 23.1 什么是异常23.2 try 语句23.3 异常类23.4 catch 子句23.5 异常过滤器23.6 catch 子句段23.7 finally 块23.8 为异常寻找处理程序23.9 进一步搜索23.9.1 一般法则23.9.2 搜索调用栈的示例(*) 23.10 抛出异常23.11 不带异常对象的抛出23.12 …

LTD营销枢纽(乐通达)成为杭州市中小企业数字化转型遴选服务商

为推进国家中小企业数字化转型城市试点建设,赋能中小企业信息化、智能化、新型工业化能力水平提升,杭州市经信局公开招募了具备高质量服务能力的中小企业数字化转型服务商。经过公开征集、专家评审等多个环节,LTD营销枢纽凭借其在数字化转型领…

东北编程语言???

在GitHub闲逛,偶然发现了东北编程语言: 东北编程语言是由Zhanyong Wan创造的,它使用东北方言词汇作为基本关键字。这种编程语言的特点是简单易懂,适合小学文化程度的人学习,并且易于阅读、编写和记忆。它的语法与其他编…

Jetbrains ai assistant激活后仍无法使用,怎么回事?

用正式的ai assistant激活码激活后仍然无法使用 首先获取了ai assistant激活码,激活后如下 地址:https://web.52shizhan.cn 上图是已经激活成功了,但是在右侧这里打开ai assistant不可用 点击开始使用ai assistant 出错 以上是用了ai as…

java日志框架总结

一、日志框架简单分类介绍 java常用的日志框架、可以分为两组: 1、JCL、JUL、Log4j; 2、SLF4J、Log4j2、Logback; 其中第一组是比较早期的日志实现框架,JCL并不是具体的日志实现框架,JCL其实是定义了一…

运动模型非线性测量非线性扩展卡尔曼跟踪融合滤波算法(Matlab仿真)

卡尔曼滤波的原理和理论在CSDN已有很多文章,这里不再赘述,仅分享个人的理解和Matlab仿真代码。 之前的博文运动模型非线性扩展卡尔曼跟踪融合滤波算法(Matlab仿真)-CSDN博客使用扩展卡尔曼滤波算法将非线性的运动模型线性化&#…

我的年终总结2023

As a DBA 从2023年初开始,我就给自己定下了23年的主要任务——学习PostgreSQL数据库。虽然没有定下细致的计划,但总体的目标是把PG的一些基础知识学完。后来发现我想简单了,学习PG的成本比我想象的多的多,导致23年这个目标没有完…

葡萄酒术语“干”是什么意思呢?

一个初学品酒的人常常会感到力不从心,有如此多的术语,如甜、干、单宁、酒体等等,很容易让人迷失。嗯,就像情人眼里出西施一样,“好酒”因人而异。虽然品尝各种不同的葡萄酒是了解你喜欢什么的最好方法,但我…

3D渲染农场的优势体现在哪里?点进来,CG Magic小编告诉您!

目前,渲染的涉及也是越来越广的,无论是通过本地渲染还是云渲染,都是为了3D渲染效率更高。 渲染农场工作原理就是提升制作效率与降低成本的利器。无论大型制作公司还是小型工作室,甚至是个人用户,都会借助于3d渲染农场…

LLM:Scaling Laws for Neural Language Models (上)

论文:https://arxiv.org/pdf/2001.08361.pdf 发表:2020 摘要1:损失与模型大小、数据集大小以及训练所用计算量成比例,其中一些趋势跨越了七个量级以上。 2:网络宽度或深度等其他架构细节在很大范围内影响较小。3&…

探索Python数据结构与算法:解锁编程的无限可能

文章目录 一、引言1.1 数据结构与算法对于编程的重要性1.2 Python作为实现数据结构与算法的强大工具 二、列表和元组2.1 列表:创建列表、索引、切片和常用操作2.2 元组:不可变序列的特性和使用场景 三、字符串操作和正则表达式3.1 字符串的常见操作和方法…

windows编译TensorFlowServing

概述 整个编译打包过程的总体思路,是参照在linux下的编译流程,配置环境,执行编译命令,根据编译器/链接器反馈的错误,修改相应的源码或者相关库文件的存放路径,编译出windows平台下静态库和二进制执行文件。…

BuildRoot配置RTL8822CE WIFIBT模块(WIFI部分)

TinkerBoard2主板自带的无线模块为RTL8822CE,PCIe接口 之前在风火轮下载的Linux源码编译出来的BuildRoot根文件系统没有相关的驱动文件 [rootrk3399:/]# find . -name *.ko [rootrk3399:/]# lsmod Module Size Used by Not tainted [rootrk33…

Dicom Tag: Image Position,Image Orientation和Patient Position

文章目录 Image Position,Image Orientation和Patient PositionImage Position (0020,0032):Image Orientation (0020,0037):Patient Position(0018,5100): Image Position,Image Orientation和Patient Position 在DICOM图像中,I…

栈(顺序存储、链式存储)

栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表 栈的操作特性是后进先出LIFO(Last In First Out) 顺序存储 链式存储