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

news2025/4/13 8:30:16

今天来回顾下之前所学的知识,将它们串联起来进行巩固。一开始了解了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 Vlanif10
 ip address 192.168.10.254 255.255.255.0
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
#
interface Vlanif30
 ip address 10.0.0.2 255.255.255.252
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 30
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port 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/0
 ip address 122.12.1.1 255.255.255.252 
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip 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/0
 ip address 122.12.1.2 255.255.255.252 
#
interface GigabitEthernet0/0/1
 ip address 23.12.1.2 255.255.255.252 

百度:

# 配置地址和默认路由
interface GigabitEthernet0/0/1
 ip 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.coloradmin.cn/o/1391905.html

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

相关文章

【代码随想录05】242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

目录 242.有效的字母异位词题目描述做题思路参考代码 349. 两个数组的交集题目描述做题思路参考代码 202. 快乐数题目描述做题思路参考代码 1.两数之和题目描述参考代码 242.有效的字母异位词 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字…

RabbitMQ交换机(1)

1.交换机Exchange RabbitMQ消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反,生产者只能将消息发送到交换机(exchange),交换机工作的内容非常简单&am…

海外云手机:跨境养号的新趋势

近年来,市场综合数据显示,利用海外云手机进行跨境养号已经成为跨境电商发展的新潮流。特别是在社交电商营销和短视频引流领域,海外云手机不仅能够提高流量的质量,还能让商家实现业务翻倍增长。接下来,本文将简要阐述海…

亚马逊、速卖通、Shopee、阿里国际卖家:如何通过自养号实现店铺测评

跨境电商运营是对跨境电商项目运营过程进行的系统化管理,涵盖了策划、组织、实施和控制等多个方面。为了确保运营成功,需要关注以下关键因素:首先,要进行精准的选品,选择具有市场潜力和竞争优势的产品,以满…

Vue-23、Vue收集表单数据

1、效果 2、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>收集表单数据</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js…

观察者模式介绍

目录 一、观察者模式介绍 1.1 观察者模式定义 1.2 观察者模式原理 1.2.1 观察者模式类图 1.2.2 模式角色说明 1.2.3 示例代码 二、观察者模式的应用 2.1 需求说明 2.2 需求实现 2.2.1 未使用设计模式 2.2.1.1 具体实现 2.2.2 适用观察者模式 2.2.2.1 优化调整说明 …

保送阿里云的云原生学习路线

近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。 Linux基础知识&#xff1a;云原生技术通常在Linux环境中运行&#xff0c;因此建议首先掌握Linux的基础知识&#xff0c;包括命令行操作、文件系统、权限管理等。 容器化技术&#x…

【不用找素材】ECS 游戏Demo制作教程(2) 1.16

一、知识点补充 1.工程内部 上一篇最后一步运行时&#xff0c;突然发现 变成52:1了&#xff0c;难道每次baking都是随机的&#xff1f; 破案了&#xff0c;52是index索引&#xff0c;1是version版本号 如果您在场景视图中看不到实体&#xff0c;但仍然可以在游戏视图中看到…

速通——决策树(泰坦尼克号乘客生存预测案例)

一、决策树 1、概述 树中每个内部节点表示一个特征上的判断&#xff0c;每个分支代表一个判断结果的输出&#xff0c;每个叶子节点代表一种分类结果 2、建立过程 1. 特征选择&#xff1a;选取有较强分类能力的特征。 2. 决策树生成&#xff1a;根据选择的特征生成决策树。 3.…

AI扩展手写数字识别应用(二)

理解代码 输入处理 在新应用的代码部分&#xff0c;和我们在手写数字识别课程介绍的代码比起来&#xff0c;差别最大的地方就在于如何处理输入。在上个案例中&#xff0c;我们只需要简单地将正方形区域中的图像格式调整一下&#xff0c;即可用作MNIST模型的输入。而在本文的案…

Angular系列教程之自定义指令

文章目录 前言指令的基本概念在模板中使用指令总结 前言 在Angular中&#xff0c;指令是一种非常强大的工具&#xff0c;用于扩展HTML元素的功能和行为。它们允许我们创建可重用的组件&#xff0c;并在应用程序中的多个地方使用它们。本文将介绍Angular指令的基础知识&#xf…

1 python计算机基础

计算机基础和环境搭建 1 计算机基础和环境搭建1.计算机基础1.1 基本概念1.2 编程语言1.3 编译器/解释器 2.学习编程的本质3.Python的介绍3.1 语言的分类3.2 Python3.3 Python的解释器种类&#xff08;了解&#xff09;3.4 CPython解释器的版本 4.环境搭建4.1 安装Python解释器4…

【Filament】材质系统

1 前言 本文主要介绍 Filament 的材质系统&#xff0c;官方介绍详见 → Filament Materials Guide。材质系统中会涉及到一些空间和变换的知识点&#xff0c;可以参考&#xff1a;【Unity3D】空间和变换、【Unity3D】Shader常量、变量、结构体、函数、【OpenGL ES】MVP矩阵变换、…

Flume 之自定义Sink

1、简介 前文我们介绍了 Flume 如何自定义 Source&#xff0c; 并进行案例演示&#xff0c;本文将接着前文&#xff0c;自定义Sink&#xff0c;在这篇文章中&#xff0c;将使用自定义 Source 和 自定义的 Sink 实现数据传输&#xff0c;让大家快速掌握Flume这门技术。 2、自定…

设计一个抽奖系统

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

排序算法9----计数排序(C)

计数排序是一种非比较排序&#xff0c;不比较大小 。 1、思想 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 2、步骤 1、统计数据&#xff1a;统计每个数据出现了多少次。&#xff08;建立一个count数组&#xff0c;范围从[MIN,MAX],MAX代表arr中…

韩愈和白居易,相交不相融的两位大伽

韩愈和白居易&#xff0c;一个百代文宗一个引领诗风&#xff0c;却关系平淡原因何在&#xff1f; 一位就是韩愈&#xff08;768年&#xff0d;824年&#xff09;&#xff0c;一位是白居易&#xff08;772年&#xff0d;846年&#xff09;&#xff0c;都是唐代各有建树的文学领…

2024年华数杯国际赛赛题浅析

21号完赛&#xff0c;28号出成绩的华数杯国际赛&#xff0c;作为美赛最合适的练手赛正式开赛。为了让大家更好地比赛&#xff0c;首先为大家带来本次竞赛两道题目的浅要解析。主要分析两道题目适合的群体&#xff0c;未来大家求解过程中可能遇到的问题。方便大家快速完成选题。…

【Proteus仿真】【Arduino单片机】汽车车窗除霜系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用LCD1602显示模块、光线传感器、DS18B20温度传感器、PCF8691 ADC模块、继电器加热模块等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD…

微软Power Platform使用Power Automate Desktop flow桌面流爬取京东商品信息

微软Power Platform使用Power Automate Desktop flow桌面流爬取京东商品信息 目录 微软Power Platform使用Power Automate Desktop flow桌面流爬取京东商品信息1、创建一个桌面流应用Desktop flow2、启动新的浏览器&#xff0c;跳转到我们需要的URL中3、在文本框中填充文字并点…