当前位置: 首页 > news >正文

【华为】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&#xff08;PAT&#xff09;NAT Server 配置拓扑静态NAT测试抓包 动态NAT测试抓包 NAPT测试抓包 PAT测试抓包 NAT Server检测抓包 PC1PC2服务器 NAT产生的技术背景 随着…...

拉普拉斯丨独家冠名2024年度ATPV技术分论坛,助力产业科技持续创新

为了进一步促进行业技术交流&#xff0c;推进光伏行业发展及标准建设的进程&#xff0c;针对高效电池&#xff0c;领跑组件&#xff0c;新产品认证及应用等技术专题及国内外光伏标准的最新进程&#xff0c;由中国绿色供应链联盟光伏专委会&#xff08;ECOPV&#xff09;指导的2…...

LangChain入门教程 - 使用代理Agent

对于大模型&#xff0c;比如某些场景&#xff0c;需要数学计算&#xff0c;或者需要从某些网站获取参考资料&#xff0c;就必须使用专门的代理来完成任务。这里我们使用langchain提供的数学工具来实现一个最简单的例子&#xff0c;下一篇我们会讲如何自己实现代理。 首先创建一…...

windows驱动开发-内核编程技术汇总(五)

使用安全字符串函数 和应用层不一样的是&#xff0c;windows内核完全使用Unicode字符串&#xff0c;许多支持AsciiC的windowsAPI&#xff0c;是在应用层完成项Unicode的切换的。许多系统安全问题是由缓冲区处理不善和生成的缓冲区溢出引起的。 糟糕的缓冲区处理通常与字符串操…...

Java中的optional类是啥和例子

Optional 是 Java 8 引入的一个容器对象&#xff0c;用于表示值存在或不存在。这是一个可以为 null 的容器对象&#xff0c;但使用 Optional 比直接使用 null 更安全&#xff0c;因为 Optional 类提供了许多有用的方法&#xff0c;以便更优雅地处理可能存在或不存在的值。 使用…...

AI大模型探索之路-训练篇16:大语言模型预训练-微调技术之LoRA

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…...

mysql事务锁排查

-- mysql show full PROCESSLIST; -- 查看哪些表在锁。 show open tables where IN_use>0; -- 正在执行的事务&#xff1a; SELECT * FROM information_schema.INNODB_TRX;-- 8.0之前 查看正在锁的事务 select * from information_schema.innodb_locks;-- 查看等待锁的事务 …...

ChatGPT变懒原因:正在给自己放寒假!已被网友测出

ChatGPT近期偷懒严重&#xff0c;有了一种听起来很离谱的解释&#xff1a; 模仿人类&#xff0c;自己给自己放寒假了&#xff5e; 有测试为证&#xff0c;网友Rob Lynch用GPT-4 turbo API设置了两个系统提示&#xff1a; 一个告诉它现在是5月&#xff0c;另一个告诉它现在是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小程序的在线学习平台从实际情况出发&#xff0c;结合当前年轻人的学习环境喜好来开发。基于Spring BootVue小程序的在线学习平台在语言上使用Java语言进行开发&#xff0c;在数据库存储方面使用的MySQL数据库&#xff0c;开发工具是IDEA。…...

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-13-按键实验

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...

ubuntu与redhat的不同之处

华子目录 什么是ubuntu概述 ubuntu版本简介桌面版服务器版 安装部署部署后的设置设置root密码关闭防火墙启用允许root进行ssh登录更改apt源安装所需软件 安装nginx安装apache网络配置Netplan概述配置详解配置文件DHCP静态IP设置设置 软件安装方法apt安装软件作用常用命令配置ap…...

三岁孩童被家养大型犬咬伤 额部撕脱伤达10公分

近期&#xff0c;一名被家养大型犬咬伤了面部的3岁小朋友&#xff0c;在被家人紧急送来西安国际医学中心医院&#xff0c;通过24小时急诊门诊简单救治后&#xff0c;转至整形外科&#xff0c;由主治医师李世龙为他实施了清创及缝合手术。 “患者额部撕脱伤面积约为10公分&…...

@click=“handleClick()“不会传递默认事件参数

当你使用click"handleClick()"这种形式绑定事件处理器时&#xff0c;Vue会将它视为一个函数调用&#xff0c;而不是一个事件监听器。在这种情况下&#xff0c;Vue不会自动传递原生事件对象作为默认参数。 如果你想让Vue自动传递原生事件对象作为默认参数&#xff0c…...

KVM安装Ubuntu24.04简要坑点以及优点

本机环境是ubuntu22.04的环境&#xff0c;然后是8核16线程 ssd是500的 目前对于虚拟机的选择&#xff0c;感觉kvm确实会更加流畅&#xff0c;最重要的一点是简洁&#xff0c;然后实际安装效果也比较的好&#xff0c;如果对于速度方面希望快一点&#xff0c;并且流畅一点的话这…...

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助手

亚马逊网络服务&#xff08;AWS&#xff09;近日宣布推出了一项名为“Amazon Q”的新服务&#xff0c;旨在帮助企业利用生成性人工智能&#xff08;AI&#xff09;技术&#xff0c;优化工作流程和提升业务效率。这一创新平台的推出&#xff0c;标志着企业工作方式的又一次重大变…...

C++:多继承虚继承

在C中&#xff0c;虚继承&#xff08;Virtual Inheritance&#xff09;是一种特殊的继承方式&#xff0c;用于解决菱形继承&#xff08;Diamond Inheritance&#xff09;问题。菱形继承指的是一个类同时继承自两个或更多个具有共同基类的类&#xff0c;从而导致了多个实例同一个…...

Linux进程间通信

每个进程的用户空间都是独立的&#xff0c;不能相互访问。 所有进程的内核空间(32位系统3G-4G)都是共享的 应用场景 作为缓冲区&#xff0c;处理速度不同的进程之间的数据传输资源共享&#xff1a;多个进程之间共享同样的资源&#xff0c;一个进程对共享数据的修改&#xff0c…...

【二叉树算法题记录】222. 完全二叉树的节点个数

题目描述 给你一棵 完全二叉树 的根节点root &#xff0c;求出该树的节点个数。 完全二叉树的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位…...

每日新闻掌握【2024年5月6日 星期一】

2024年5月06日 星期一 农历三月廿八 大公司/大事件 多个品牌黄金优惠后价格重回600元/克以下 “五一”假期期间&#xff0c;记者走访调研黄金消费市场发现&#xff0c;受国际金价回落及“五一”假期促销等多重因素影响&#xff0c;终端黄金价格出现了较为明显的回落。包括周大…...

谈谈Tcpserver开启多线程并发处理遇到的问题!

最近在学习最基础的socket网络编程&#xff0c;在Tcpserver开启多线程并发处理时遇到了一些问题&#xff01; 说明 在linux以及Windows的共享文件夹进行编写的&#xff0c;所以代码中有的部分使用 #ifdef WIN64 ... #else ... #endif 进入正题&#xff01;&#xff01;&…...

618好物节不知道买什么?快收下这份好物推荐指南!

随着618好物节的临近&#xff0c;你是否在为选择什么产品而犹豫不决&#xff1f;不用担忧&#xff0c;我精心准备了一份购物指南&#xff0c;旨在帮助你发现那些性价比高、口碑爆棚的商品。无论是科技新品还是生活小物件&#xff0c;这份指南都能帮你快速定位到那些值得投资的好…...

Django高级表单处理与验证实战

title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言&#xff1a; 在Web应用开发中&#xff0c;表单是用户与应用之间进行交互的重要…...

类和对象-Python-第一部分

初识对象 使用对象组织数据 class Student:nameNonegenderNonenationalityNonenative_placeNoneageNonestu_1Student()stu_1.name"林军杰" stu_1.gender"男" stu_1.nationality"中国" stu_1.native_place"山东" stu_1.age31print(stu…...

Pytorch实现图片异常检测

图片异常检测 异常检测指的是在正常的图片中找到异常的数据&#xff0c;由于无法通过规则进行识别判断&#xff0c;这样的应用场景通常都是需要人工进行识别&#xff0c;比如残次品的识别&#xff0c;图片异常识别模型的目标是可以代替或者辅助人工进行识别异常图片。 AnoGAN…...

【NOI-题解】1586. 扫地机器人1430 - 迷宫出口1434. 数池塘(四方向)1435. 数池塘(八方向)

文章目录 一、前言二、问题问题&#xff1a;1586 - 扫地机器人问题&#xff1a;1430 - 迷宫出口问题&#xff1a;1434. 数池塘&#xff08;四方向&#xff09;问题&#xff1a;1435. 数池塘&#xff08;八方向&#xff09; 三、感谢 一、前言 本章节主要对深搜基础题目进行讲解…...

探究MySQL行格式:解析DYNAMIC与COMPACT的异同

在MySQL中&#xff0c;行格式对于数据存储和检索起着至关重要的作用。MySQL提供了多种行格式&#xff0c;其中DYNAMIC和COMPACT是两种常见的行格式。 本文将深入探讨MySQL行格式DYNAMIC和COMPACT的区别&#xff0c;帮助读者更好地理解它们的特点和适用场景。 1. MySQL行格式简…...

MATLAB绘制蒸汽压力和温度曲线

蒸汽压力与温度之间的具体关系公式一般采用安托因方程&#xff08;Antoine Equation&#xff09;&#xff0c;用于描述纯物质的蒸汽压与温度之间的关系。安托因方程的一般形式如下&#xff1a; [\log_{10} P A - \frac{B}{C T}] 其中&#xff0c; (P) 是蒸汽压&#xff08…...

repo跟git的关系

关于repo 大都讲的太复杂了,大多是从定义角度跟命令角度去讲解,其实从现实项目使用角度而言repo很好理解. 我们都知道git是用来管理项目的,多人开发过程中git功能很好用.现在我们知道一个项目会用一个git仓库去管理,项目的开发过程中会使用git创建分支之类的来更好的维护项目代…...

wordpress转程序/资源搜索器

MySQL HA方案之MySQL半复制MHAKeepalivedAtlasLVS 简介 目前Mysql高可用的方案有好多&#xff0c;比如MMM&#xff0c;heartbeatdrbd&#xff0c;Cluster等&#xff0c;还有percona的Galera Cluster等。这些高可用软件各有优劣。在进行高可用方案选择时&#xff0c;主要是看业务…...

有哪些比较好的外贸网站/微博推广

aop面向切面编程 可以应用于分布在多个方法中的应用 可以作日志、可以做事务、可以做审计 可以用动态代理实现 在项目中怎么应用的&#xff1f;项目中主要应用于声明式事务...

阳江做网站seo/网络推广的公司更可靠

参考&#xff1a;https://tech.meituan.com/2018/11/15/java-lock.html https://www.cnblogs.com/jyroy/p/11365935.html **可重入锁又名递归锁&#xff0c;是指在同一个线程在外层方法获取锁的时候&#xff0c;再进入该线程的内层方法会自动获取锁&#xff08;前提锁对象得是…...

wordpress主题带会员中心/热门seo推广排名稳定

注意ELK三个组件的版本需保持一致&#xff1a; 1 ES安装 1.1 下载ES镜像 docker pull elasticsearch:7.4.2 1.2 路径配置 在宿主机创建ES配置文件夹 1. 作用&#xff1a;用于同ES容器中的配置路径进行映射&#xff0c;后续在宿主机中进行配置文件操作&#xff0c;可同步到…...

网站开发的认知/外贸营销网站建站

构造器 子类是不继承父类的构造器(构造方法或者构造函数)的&#xff0c;它只是调用(隐式或显式)。 如果父类的构造器带有参数&#xff0c;则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。 如果父类构造器没有参数&#xff0c;则在子类的…...

兰州官网排名推广/网站优化公司认准乐云seo

代码&#xff1a; 头文件 MyPrintf.cpp 函数的声明 //MyPrintf.h #pragma once //使用putchar实现printf的功能 #include<stdio.h> #include<stdarg.h> //函数声明 void Int_Print(int out); //打印整数 void Float_Print(float out); //打印浮点数 void X_P…...