【华为】NAT的分类和实验配置
【华为】NAT的分类和实验配置
- NAT产生的技术背景
- IP地址分类
- NAT技术原理
- NAT分类
- 静态NAT
- 动态NAT
- NAPT
- Easy IP(PAT)
- NAT Server
- 配置
- 拓扑
- 静态NAT
- 测试
- 抓包
- 动态NAT
- 测试
- 抓包
- NAPT
- 测试
- 抓包
- PAT
- 测试
- 抓包
- NAT Server
- 检测
- 抓包
- PC1
- PC2
- 服务器

NAT产生的技术背景
随着互联网用户的增多,IPv4的公有地址资源显得越发短缺。
同时IPV4公有地址资源存在地址分配不均的问题,这导致部分地区的IPv4可用公有地址严重不足。
一方面NAT缓解IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。
IP地址分类
公有地址: 公有地址是互联网上全局唯一且可访问的地址,就是可以直接上网,由Internet NIC(Internet Network Information Center,因特网信息中心)负责分配和管理。
私有地址: 私有地址则是一类特殊的IPv4地址,主要用于内部网络(如企业局域网、家庭网络等)之间的通信。这些地址在公共互联网上不被识别和使用,因此不能直接从互联网上进行访问。
A、B、C类地址中格预留一些地址专门作为私有地址:
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
NAT技术原理
NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。
NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。
NAT分类
静态NAT
静态NAT通过建立一对一的地址映射关系来实现内外网之间的通信。
内部主机的私有IP地址被手动配置映射到一个公有IP地址。当内部主机发送数据包时,NAT设备会检查数据包的源IP地址,并在静态NAT转换表中查找与源IP地址匹配的映射规则。
将内接口192.168.10.1 转换成 全局接口IP(公有IP地址) 202.101.1.100

动态NAT
动态NAT使用地址池中的公有IP地址来动态地为内部网络的主机分配地址。
当内部主机需要访问外部网络时,NAT设备会从地址池中选取一个未使用的公有IP地址,并将其与内部主机的私有IP地址建立映射关系。
现网中几乎没有用,当作了解即可

NAPT
NAPT(Network Address Port Translation,网络地址端口转换)
NAPT是NAT的一种扩展形式,它允许多个内部主机共享一个公有IP地址,NAPT不仅转换IP地址,还转换TCP或UDP端口号。
当内部主机向外部网络发送数据包时,NAPT设备会将源IP地址和源端口号替换为公有IP地址和一个不冲突的端口号,并在转换表中记录这个映射关系。

Easy IP(PAT)
实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于EasyIP没有地址池的概念,直接用出接口IP地址作为NAT转换的公有地址。
Easy IP适用于不具备固定公网IP地址的场景: 如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
NAT Server
NAT Server是一种在NAT设备上实现的特定服务,它允许内部网络中的特定服务器通过公有IP地址暴露给外部网络。
指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网
当私有网络中的服务器需要对公网提供服务时使用。
外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
外部网络的客户端可以通过这些公有IP地址访问内部服务器,而NAT设备会负责将外部请求转发给内部服务器,并将内部服务器的响应返回给外部客户端。
(就是能够从公网访问到我内部服务器)
配置
拓扑

静态NAT
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1[AR1]undo info-center enable
Info: Information center is disabled.
##配置IP地址
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] ip address 202.101.1.2 255.255.255.0
[AR1-GigabitEthernet0/0/0]quit ## 1、全局下开启,需要在接口下调用
[AR1]nat static global 202.101.1.100 inside 192.168.10.1[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] nat static enable'## 2、直接在接口下调用
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0]nat static global 202.101.1.100 inside 192.168.10.1'
测试

抓包
转换成功

动态NAT
配置步骤
① 先创建一个地址池
② 配置地址转换的ACL规则(感兴趣流量)
③ 接口视图下部署带地址池的NAT outbound(no-pat)
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1[AR1]undo info-center enable
Info: Information center is disabled.
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] ip address 202.101.1.2 255.255.255.0
[AR1-GigabitEthernet0/0/0]quit ## 创建NAT地址池 1
[AR1]nat address-group 1 202.101.1.10 202.101.1.12## 创建ACL规则,匹配哪些流量可以进行地址转换
[AR1]acl 2000
[AR1-acl-basic-2000]rule 10 permit source 192.168.10.0 0.0.0.255
[AR1-acl-basic-2000]quit ## 进入接口视图下部署带地址池的NAT outbound,并关联ACL 2000
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1 no-pat
[AR1-GigabitEthernet0/0/0]quit
## no-pat参数指定不进行端口转换[AR1]ip route-static 0.0.0.0 0.0.0.0 202.101.1.1
测试
通信虽然成功了,但因为我们NAT地址池中只有三个公有地址,会导致ping包不够用,这个就是动态NAT的缺陷
我们在现网当中,常用的是NAPT和Easy IP,所以这个动态NAT当作一个了解就好

抓包
在抓到的数据包中会更明显

NAPT
配置步骤
① 先创建一个地址池
② 配置地址转换的ACL规则(感兴趣流量)
③ 接口视图下部署带地址池的NAT outbound
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1[AR1]undo info-center enable
Info: Information center is disabled.
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] ip address 202.101.1.2 255.255.255.0
[AR1-GigabitEthernet0/0/0]quit ## 创建NAT地址池 1
[AR1]nat address-group 1 202.101.1.10 202.101.1.12## 创建ACL规则,匹配哪些流量可以进行地址转换
[AR1]acl 2000
[AR1-acl-basic-2000]rule 10 permit source 192.168.10.0 0.0.0.255
[AR1-acl-basic-2000]quit ## 进入接口视图下部署带地址池的NAT outbound,并关联ACL 2000
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1 ## 默认是端口转换
[AR1-GigabitEthernet0/0/0]quit[AR1]ip route-static 0.0.0.0 0.0.0.0 202.101.1.1
测试
这个就已经是5个报文全通了,和上面的动态NAT有区别了
NAPT是用一个公有IP地址的端口来进行转换,而伪端口又有很多个,所以完全够用

抓包

PAT
配置步骤
① 配置地址转换的ACL规则(感兴趣流量)
② 接口视图下部署NAT outbound
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1[AR1]undo info-center enable
Info: Information center is disabled.
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0] ip address 202.101.1.2 255.255.255.0
[AR1-GigabitEthernet0/0/0]quit ## 创建ACL规则,匹配哪些流量可以进行地址转换
[AR1]acl 2000
[AR1-acl-basic-2000]rule 10 permit source 192.168.10.0 0.0.0.255
[AR1-acl-basic-2000]quit ## 进入出接口部署 NAT outbound,并关联ACL 2000
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000
[AR1-GigabitEthernet0/0/0]quit[AR1]ip route-static 0.0.0.0 0.0.0.0 202.101.1.1
测试

抓包
直接将出接口IP地址202.101.1.2 拿来做端口转换

NAT Server
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1[AR1]undo info-center enable
Info: Information center is disabled.
## 将192.168.10.100 端服务器地址端口8080 映射给 公网地址202.101.1.200 的 80 端口上
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0] ip address 202.101.1.2 255.255.255.0
[AR1-GigabitEthernet0/0/0]nat server protocol tcp global 202.101.1.200 www insid
e 192.168.10.100 8080
检测

抓包
能看到我的202.101.1.1 去ping 202.101.1.200 80 端口,就说明这个配置没有问题,只是模拟器的服务器不支持Telnet登入,所以才会导致失败,命令是没有问题的

PC1

PC2

服务器

相关文章:
【华为】NAT的分类和实验配置
【华为】NAT的分类和实验配置 NAT产生的技术背景IP地址分类NAT技术原理NAT分类静态NAT动态NATNAPTEasy IP(PAT)NAT Server 配置拓扑静态NAT测试抓包 动态NAT测试抓包 NAPT测试抓包 PAT测试抓包 NAT Server检测抓包 PC1PC2服务器 NAT产生的技术背景 随着…...
拉普拉斯丨独家冠名2024年度ATPV技术分论坛,助力产业科技持续创新
为了进一步促进行业技术交流,推进光伏行业发展及标准建设的进程,针对高效电池,领跑组件,新产品认证及应用等技术专题及国内外光伏标准的最新进程,由中国绿色供应链联盟光伏专委会(ECOPV)指导的2…...
LangChain入门教程 - 使用代理Agent
对于大模型,比如某些场景,需要数学计算,或者需要从某些网站获取参考资料,就必须使用专门的代理来完成任务。这里我们使用langchain提供的数学工具来实现一个最简单的例子,下一篇我们会讲如何自己实现代理。 首先创建一…...
windows驱动开发-内核编程技术汇总(五)
使用安全字符串函数 和应用层不一样的是,windows内核完全使用Unicode字符串,许多支持AsciiC的windowsAPI,是在应用层完成项Unicode的切换的。许多系统安全问题是由缓冲区处理不善和生成的缓冲区溢出引起的。 糟糕的缓冲区处理通常与字符串操…...
Java中的optional类是啥和例子
Optional 是 Java 8 引入的一个容器对象,用于表示值存在或不存在。这是一个可以为 null 的容器对象,但使用 Optional 比直接使用 null 更安全,因为 Optional 类提供了许多有用的方法,以便更优雅地处理可能存在或不存在的值。 使用…...
AI大模型探索之路-训练篇16:大语言模型预训练-微调技术之LoRA
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...
mysql事务锁排查
-- mysql show full PROCESSLIST; -- 查看哪些表在锁。 show open tables where IN_use>0; -- 正在执行的事务: SELECT * FROM information_schema.INNODB_TRX;-- 8.0之前 查看正在锁的事务 select * from information_schema.innodb_locks;-- 查看等待锁的事务 …...
ChatGPT变懒原因:正在给自己放寒假!已被网友测出
ChatGPT近期偷懒严重,有了一种听起来很离谱的解释: 模仿人类,自己给自己放寒假了~ 有测试为证,网友Rob Lynch用GPT-4 turbo API设置了两个系统提示: 一个告诉它现在是5月,另一个告诉它现在是1…...
C#标签设计打印软件开发
1、新建自定义C#控件项目Custom using System; using System.Collections.Generic; using System.Text;namespace CustomControls {public class CommonSettings{/// <summary>/// 把像素换算成毫米/// </summary>/// <param name="Pixel">多少像素…...
Springboot+vue+小程序+基于微信小程序的在线学习平台
一、项目介绍 基于Spring BootVue小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring BootVue小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。…...
正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-13-按键实验
前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...
ubuntu与redhat的不同之处
华子目录 什么是ubuntu概述 ubuntu版本简介桌面版服务器版 安装部署部署后的设置设置root密码关闭防火墙启用允许root进行ssh登录更改apt源安装所需软件 安装nginx安装apache网络配置Netplan概述配置详解配置文件DHCP静态IP设置设置 软件安装方法apt安装软件作用常用命令配置ap…...
三岁孩童被家养大型犬咬伤 额部撕脱伤达10公分
近期,一名被家养大型犬咬伤了面部的3岁小朋友,在被家人紧急送来西安国际医学中心医院,通过24小时急诊门诊简单救治后,转至整形外科,由主治医师李世龙为他实施了清创及缝合手术。 “患者额部撕脱伤面积约为10公分&…...
@click=“handleClick()“不会传递默认事件参数
当你使用click"handleClick()"这种形式绑定事件处理器时,Vue会将它视为一个函数调用,而不是一个事件监听器。在这种情况下,Vue不会自动传递原生事件对象作为默认参数。 如果你想让Vue自动传递原生事件对象作为默认参数,…...
KVM安装Ubuntu24.04简要坑点以及优点
本机环境是ubuntu22.04的环境,然后是8核16线程 ssd是500的 目前对于虚拟机的选择,感觉kvm确实会更加流畅,最重要的一点是简洁,然后实际安装效果也比较的好,如果对于速度方面希望快一点,并且流畅一点的话这…...
QT_day1
#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//修改窗口标题this->setWindowTitle("4.6.0");//修改窗口图标this->setWindowIcon(QIcon("C:\\Users\\zj\\Desktop\\yuanshen\\icon"));//修改窗口大小this…...
AWS宣布推出Amazon Q :针对商业数据和软件开发的生成性AI助手
亚马逊网络服务(AWS)近日宣布推出了一项名为“Amazon Q”的新服务,旨在帮助企业利用生成性人工智能(AI)技术,优化工作流程和提升业务效率。这一创新平台的推出,标志着企业工作方式的又一次重大变…...
C++:多继承虚继承
在C中,虚继承(Virtual Inheritance)是一种特殊的继承方式,用于解决菱形继承(Diamond Inheritance)问题。菱形继承指的是一个类同时继承自两个或更多个具有共同基类的类,从而导致了多个实例同一个…...
Linux进程间通信
每个进程的用户空间都是独立的,不能相互访问。 所有进程的内核空间(32位系统3G-4G)都是共享的 应用场景 作为缓冲区,处理速度不同的进程之间的数据传输资源共享:多个进程之间共享同样的资源,一个进程对共享数据的修改,…...
【二叉树算法题记录】222. 完全二叉树的节点个数
题目描述 给你一棵 完全二叉树 的根节点root ,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
