NAT的知识点和实现

1.NAT的作用

(1)、把内网私网IP转换公网IP;

(2)、隐藏内网,起到保护内网作用;

(3)、适当的缓解的IPv4地址空间枯竭;

(4)、解决公网设备回包的路由问题;

2.NAT的基本原理:

(1)、内网数据包出去会将私网IP转换成特定的公网IP,实现访问;
(2)、公网回包之后在根据NAT映射表进行转换,找到真正的内网IP;
3.静态NAT的缺点:根本没有缓解IPv4地址空间不足的问题;

4.动态NAT的优点:在某种程度上提高公网IP地址使用率;
                 缺点:依然需要多个公网IP地址组成公网IP地址池;
5,.easy ip:直接使用连接互联网的公网IP地址,实现NAT转换;
        优点:1、节省公网IP地址;2、配置简单:nat outbound 2000
都是实现内网去访问公网的过程;内网有服务器,互联网用户需要访问,则需要配置NAT Server;
NAT Server是实现公网主动访问内网的过程;

6.静态NAT的配置

1.方式一:接口视图下配置静态NAT

Huawei-GigabitEthernet0/0/0] nat static  global { global-address} inside {host-address }

global参数用于配置外部公有地址,inside参数用于配置内部私有地址。

2.方式二:系统视图下配置静态NAT

[Huawei] nat static  global { global-address} inside {host-address }

配置命令相同,视图为系统视图,之后在具体的接口下开启静态NAT

Huawei-GigabitEthernet0/0/0] nat static enable

在接口下使能nat static功能。

7.动态NAT的配置

(1)创建地址池

[Huawei] nat address-group group-index start-address end-address

配置公有地址范围,其中group-index为地址池编号,start-addressend-address分别为地址池起始地址、结束地址。

(2)配置地址转换的ACL规则

[Huawei] acl number

[Huawei-acl-basic-number ] rule permit source  source-address source-wildcard

(3)接口视图下配置带地址池的NAT Outbound

[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [ no-pat ]

接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换。

8.NAPT原理

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

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

9.实例:动态NAT的配置

#R1上的配置

[R1]nat address-group 1 122.1.2.1 122.1.2.3

[R1]acl 2000

[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255

[R1-acl-basic-2000]quit

[R1]interface GigabitEthernet0/0/1

[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat

在pc1上ping服务器

抓包:这里可以看见pc在访问服务器的时候通过nat进行了地址转换

10.NAPT的配置

[R1]nat address-group 1 122.1.2.1 122.1.2.1

[R1]acl 2000

[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255

[R1-acl-basic-2000]quit

[R1]interface GigabitEthernet0/0/1

[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1

11.Easy IP

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

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

配置:

[R1]acl 2000

[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255

[R1-acl-basic-2000]quit

[R1]interface GigabitEthernet0/0/1

[R1-GigabitEthernet0/0/1]nat outbound 2000

12.NAT Server

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

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

配置:

[R1]interface GigabitEthernet0/0/1

[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24

[R1-GigabitEthernet0/0/1]nat server protocol tcp global 202.10.10.1 www inside 192.168.1.10 8080

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

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

相关文章

自己搭建的大疆无人机RTMP流媒体服务延迟太大

流程:无人机摄像头->图传->遥控器->流媒体服务器->取流播放,延迟有10秒来的,大家有没有什么好的方案。

【6】mysql查询性能优化-关联子查询

【README】 0. 先说结论:一般用inner join来改写in和exist,用left join来改写not in,not exist;(本文会比较内连接,包含in子句的子查询,exist的性能 ) 1. 本文总结自高性能mysql 6…

【前端开发基础知识快速入门】

前端开发基础知识&快速入门 一、VSCode 使用1.1 安装常用插件1.2 创建项目1.3 创建网页1.4 运行效果二、ES62.1 简介2.2 什么是 ECMAScript2.3 ES6 新特性2.3.1 let 声明变量2.3.2 const 声明常量(只读变量)2.3.3 解构表达式2.3.4 字符串扩展2.3.5 函数优化2.3.6 对象优化…

使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

从编译开始就开始出现错误,解决步骤: 1.降低graddle版本,7.2-bin --->>> 降低为 6.1.1-all #distributionUrlhttps\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionUrlhttps\://services.gradle.org/di…

【04】JAVASE-循环语句【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

解决双击PDF文件出现打印的问题【Adobe DC】

问题描述 电脑安装Adobe Acrobat DC之后,双击PDF文件就会出现打印,而无法直接打开。 右键PDF文件就会发现,第一栏出现的不是用Adobe打开,而是打印。 重装软件多次仍然无法解决。 原因 右键菜单被改写了。双击其实是执行右键菜…

条件编译 #和##运算符

目录 1. #运算符2. ##运算符3. 条件编译4. 题目分享总结 正文开始 前言: 本章为C语言语法完结撒花, 下文将进行C语言中#和##操作符以及条件编译的讲解, 来进一步让我们了解C语言. 作者主页: 酷酷学!!! 1. #运算符 #运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带…

解锁ApplicationContext vs BeanFactory: 谁更具选择性?

目录 一、聚焦源码回顾 (一)源码分析和理解 (二)简短的回顾对比建议 二、ApplicationContext vs BeanFactory特性对比 (一)主要特性总结 (二)直接建议 三、案例简单说明 &am…

[华为OD] 给航天器一侧加装长方形或正方形的太阳能板 100

给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支 柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度 不同,太阳能板的安装面…

神经网络中多层卷积的作用

在神经网络中采用多层卷积的目的是为了逐步提取和组合图像的抽象特征,从而更有效地学习数据的表示并执行复杂的任务。不同层的卷积具有不同的作用,从较低层次的特征(例如边缘、纹理)到较高层次的抽象特征(例如物体部件…

如何在Windows 11中安装或删除可选功能?这里提供详细步骤

序言 Windows 11提供了各种各样的功能,其中许多功能,如Linux的Windows子系统(WSL)和语言包,它默认情况下不会安装。你也可以删除默认情况下安装的功能,以下是如何以图形方式或从命令行执行此操作。 关于Windows 11中的可选功能,你需要了解的内容 还有其他添加和删除功…

ubuntu20 中设置桌面背景任务

1. 下载conky 使用 Conky 在 Ubuntu 中显示信息,例如你的阅读计划,可以分几个步骤来完成。Conky 是一款灵活的轻量级系统监视器,能够在桌面上显示各种信息。以下是基本的设置步骤: 安装 Conky 首先,你需要在 Ubuntu…

TR6 - Transformer实战 单词预测

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 理论知识关于数据集 Wikitext-2 模型结构代码实现0. 环境1. 加载数据集2. 模型搭建3. 创建模型4. 单轮训练和评估的流程5. 训练 模型效果总结与心得体会 …

文本溢出体验进阶:CSS 技巧实现单行/多行隐藏展示以及实际场景应用,确保内容可读性和布局整洁性

CSS文本溢出隐藏是一种常见的场景,它广泛应用于各种网页设计中,旨在确保内容的可读性和布局的整洁性,特别是在空间有限或需要适应不同屏幕尺寸的情况下。 一、文本溢出隐藏并显示省略号 1、单行文本溢出隐藏并显示省略号 对于单行文本&…

数据可视化———Tableau

基本认识: 维度:定性—字符串文本,日期和日期时间等等 度量:定量—连续值,一般属于数值 数据类型: 数值 日期/日期时间 字符串 布尔值 地理值 运算符 算数运算符:加减乘除,%取余,…

抖音 小程序 获取手机号 报错 getPhoneNumber:fail auth deny

这是因为 当前小程序没有获取 手机号的 权限 此能力仅支持小程序通过试运营期后可用,默认获取权限,无需申请; https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acqu…

多商家AI智能名片商城系统(开源版)——构建高效数字化商业新生态

一、项目概述 1、项目背景 1)起源 随着数字化时代的快速发展,传统名片和商城系统已经难以满足企业日益增长的需求。商家需要更高效、更智能的方式来展示自己的产品和服务,与消费者进行互动和交易。同时,开源技术的普及也为开发…

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解:https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态:已解决 1.思路 单词明显就是物品,字符串s明显就是背包,那么问题就变成了物品能不能把背…

Jmeter之Beanshell详解

一、 Beanshell概念 Beanshell: BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性…

【项目实战】基于高并发服务器的搜索引擎

【项目实战】基于高并发服务器的搜索引擎 目录 【项目实战】基于高并发服务器的搜索引擎搜索引擎部分代码index.htmlindex.hpplog.hppparser.cc(用于对网页的html文件切分且存储索引关系)searcher.hpputil.hpphttp_server.cc(用于启动服务器和…