什么是网络地址转换 (NAT)
网络地址转换(NAT)是更改源和目标 IP 地址和端口的过程,地址转换减少了对 IPv4 公共地址的需求,并隐藏了专用网络地址范围,该过程通常由路由器或防火墙完成。
NAT是如何工作的
NAT 允许单个设备(如路由器)充当 Internet(或公共网络)和本地网络(或专用网络)之间的代理,这意味着只需要一个唯一的 IP 地址即可将整个计算机组表示到其网络之外的任何内容。
地址转换的三种类型
- 静态 NAT:将一个私有 IP 地址转换为一个公共 IP 地址,公共 IP 地址始终相同。
- 动态 NAT:专用 IP 地址映射到公共 IP 地址池。
- 端口地址转换(PAT):一个公共 IP 地址用于所有内部设备,但为每个专用 IP 地址分配一个不同的端口,也称为 NAT 过载。
在思科设备上配置静态 NAT
使用静态 NAT,路由器或防火墙将一个专用 IP 地址转换为单个公共 IP 地址。每个专用 IP 地址映射到单个公共 IP 地址,静态 NAT 不经常使用,因为它要求每个专用 IP 地址有一个公共 IP 地址。
要使用 Network Configuration Manager 在思科设备上配置静态NAT,管理员可以创建相应的Configlet命令并将其推送到多个设备中。

配置静态NAT
- 使用源静态PRIVATE_IP PUBLIC_IP命令中的 IP nat 配置专用/公共 IP 地址映射。
- 使用 ip nat inside 命令配置路由器的内部接口。
- 使用 ip nat 外部命令配置路由器的外部接口。
| 配置名称 | 配置静态 NAT - Cisco |
|---|---|
| 描述 | 此配置用于在思科设备中配置静态NAT。 |
| 执行模式 | 脚本执行模式 |
| 配置文件 | configure terminal ip nat inside source static $PRIVATE_IP $PUBLIC_IP interface $INSIDE_INTF ip nat inside exit interface $OUTSIDE_INTF ip nat outside exit exit show ip nat translations write memory |
在思科设备中配置动态 NAT
使用动态 NAT,管理员可以在 Cisco 路由器上指定两组地址:
- 将要翻译的内部地址。
- 全局地址池。
与静态 NAT 不同,在静态 NAT 中,管理员必须手动定义专用地址和公共地址之间的静态映射,而使用动态 NAT 时,本地地址到全局地址的映射是动态发生的。这意味着路由器会从当前未分配的全局地址池中动态选取一个地址。它可以是全局地址池中的任何地址。只要交换流量,动态条目就会保留在 NAT 转换表中。
配置动态 NAT
- 使用 ip nat inside 命令配置路由器的内部接口。
- 使用 ip nat 外部命令配置路由器的外部接口。
- 配置具有要转换的内部源地址列表的 ACL。
- 使用 IP nat 池名称FIRST_IP_ADDRESS LAST_IP_ADDRESS网络掩码SUBNET_MASK命令配置全局 IP 地址池。
- 使用源列表内的 IP NAT 启用动态 NAT,ACL_NUMBER池 NAME 全局配置命令。
| 配置名称 | 配置动态 NAT - Cisco |
|---|---|
| 描述 | 此配置用于在思科设备上配置动态 NAT。 |
| 执行模式 | 脚本执行模式 |
| 配置文件 | configure terminal interface $INSIDE_INTF ip nat inside exit interface $OUTSIDE_INTF ip nat outside exit access-list $ACL_ID permit $SOURCE_ADDRESS $SUBNET_MASK ip nat pool $POOL_NAME $POOL_START_ADDRESS $POOL_END_ADDRESS netmask $NETMASK ip nat inside source list $ACL_ID pool $POOL_NAME exit show ip nat translations write memory |
在思科设备上配置端口地址转换 (PAT)
使用端口地址转换 (PAT),单个公共 IP 地址用于所有内部专用 IP 地址,但为每个专用 IP 地址分配不同的端口。这种类型的 NAT 也称为 NAT 过载,是当今网络中使用的 NAT 的典型形式。大多数消费级路由器甚至都支持它。
PAT 允许仅使用少量公共 IP 地址支持许多主机。它通过创建动态 NAT 映射来工作,其中选择了全局(公共)IP 地址和唯一端口号。路由器为私有 IP 地址和端口的每个唯一组合保留一个 NAT 表条目,并转换为全局地址和唯一的端口号。
使用 Network Configuration Manager 应用程序创建相应的 Configlet 命令,这将帮助管理员同时在多个设备上执行相同的操作。
配置端口地址转换 (PAT)
- 使用 ip nat inside 命令配置路由器的内部接口。
- 使用 ip nat 外部命令配置路由器的外部接口。
- 配置一个访问列表,其中包含应转换的内部源地址的列表。
- 使用 IP nat 在源列表中启用 PAT ACL_NUMBER接口类型重载全局配置命令。
| 配置名称 | 配置 PAT - 端口地址转换 - Cisco |
|---|---|
| 描述 | 此配置用于在思科设备上配置端口地址转换 PAT |
| 执行模式 | 脚本执行模式 |
| 配置文件 | configure terminal interface $INSIDE_INTF ip nat inside exit interface $OUTSIDE_INTF ip nat outside exit access-list $ACL_ID permit $SOURCE_ADDRESS $SUBNET_MASK ip nat pool $POOL_NAME $POOL_ADDRESS $POOL_ADDRESS netmask $NETMASK ip nat inside source list $ACL_ID pool $POOL_NAME overload exit show ip nat translations write memory |
相关文章:
什么是网络地址转换 (NAT)
网络地址转换(NAT)是更改源和目标 IP 地址和端口的过程,地址转换减少了对 IPv4 公共地址的需求,并隐藏了专用网络地址范围,该过程通常由路由器或防火墙完成。 NAT是如何工作的 NAT 允许单个设备(如路由器…...
系统架构设计师---事务管理、并发控制、数据库的备份与恢复
目录 事务管理 定义 事务的四个特性(ACID) 相关SQL语句 并发控制...
如何更好的维护自己的电脑?
我的笔记本电脑 我使用的华硕天选3是一款游戏本,搭载了英特尔酷睿i7-12700H处理器,16GB内存,512GB固态硬盘和NVIDIA GeForce RTX 3050显卡。屏幕尺寸为15.6英寸,分辨率为2560x1440。对于日常使用和工作学习娱乐都能满足要求。 日常…...
element+vue 表格行拖拽功能
解决方案 使用 sortable.js 步骤一: 安装 npm install vuedraggable步骤二:引入 import Sortable from sortablejs;步骤三: el-table 添加row-key属性,外层包一层 sortableDiv <div class"sortableDiv"> 拖…...
Python学习笔记_基础篇(三)_数据类型之列表
一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict 注&a…...
目标检测YOLO实战应用案例100讲-交通目标检测中传感器数据采集容错控制方法
目录 前言 交通传感器数据采集相关理论基础 2.1交通目标检测系统数据采集简介...
ElasticSearch 8.9.0 开发模式安装
ElasticSearch 8.9.0 开发模式安装 MacOS(Apple芯片):https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz Linux:https://artifacts.elastic.co/downloads/elasticsearch/elasti…...
docker部署redis
这里写目录标题 1.安装Redis2.新建挂载文件夹3.配置redis4.创建redis容器,挂载启动命令连接测试 Docker停止、删除、重启、启动容器 1.安装Redis 通过docker search redis和docker pull redis下载redis镜像 2.新建挂载文件夹 新建data和conf两个文件夹࿰…...
ZooKeeper的应用场景(分布式锁、分布式队列)
7 分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,…...
seata 的部署和集成
文章目录 seata的部署和集成一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务 二、微服务集成seata1.引入依赖2.修改配置文件 TODO三、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos…...
C++入门基础(万字详解!!!)
文章目录 前言1.C关键字2.命名空间3.C的输入输出4.缺省参数4.1 全缺省4.2 半缺省 5.函数重载6. 引用6.1 引用的特性6.2 引用的使用场景6.3 引用和指针 7.内联函数7.1 特性 8.auto关键字8.1 注意事项 9. 基于范围的for循环9.1 使用条件 10.指针控制nullptr10.1 注意事项 11.总结…...
神经网络基础-神经网络补充概念-53-将batch norm拟合进神经网络
代码实现 import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, BatchNormalization, Activation from tensorflow.keras.optimizers import SGD# 生成随机数据 np.random.seed(0) X np.…...
Sping源码(六)— prepareBeanFactory()
前言 前几篇已经介绍lBeanFactory的创建已经xml配置文件中自定义标签和默认标签的解析过程,此时的BeanFactory中已经包含了xml文件中的标签属性。但BeanFactory中还有一些本身重要的属性没有填充,所以接着方法继续往下看BeanFactory中的属性是如何填充的…...
LeetCode(力扣)257. 二叉树的所有路径Python
LeetCode257. 二叉树的所有路径 题目链接代码 题目链接 https://leetcode.cn/problems/binary-tree-paths/ 代码 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.…...
nodejs实现http与https服务;同时处理proxy代理的解决方案
// nodejs服务提供的http协议示例 const http require(http); const server http.createServer((req, res) > {res.writeHead(200, { Content-Type: text/html;charsetutf8 });res.end(Date.now() > http访问成功8080) }); server.listen(8080, () > {console.lo…...
C# WPF ListBox 动态显示图片
前言 最近在和其他软件联合做一个本地图片选择传输功能,为此希望图片能够有序的呈现在客户端,简单的实现了一下功能,通过Mvvm模式进行呈现,过程简单通俗,话不多说直接上图。 处理过程 前台代码 你只需要粘贴到你的前台…...
游戏如何防御DDOS流量攻击呢,用游戏盾真的有用么?
针对在线游戏行业来说,DDoS(分布式拒绝服务)攻击是一种极具破坏性的威胁。DDoS攻击可能导致游戏服务器不可用,严重影响游戏体验和运营。为了解决这一问题,游戏盾作为一种专门为游戏行业设计的安全解决方案,…...
vue项目引入antDesignUI组件
快速安装ant-design-vue并配置,vue2.0 antDesign1.7.8 第一步:安装ant-deisgn-vue 1.7.8 npm install ant-design-vue1.7.8 --save第二步:配置package.json文件,将依赖写入后,npm install 安装依赖 "dependenc…...
非结构化数据库-MinIO基本集成
是什么 MinIO 是一个高性能的分布式对象存储服务,适合存储非结构化数据,如图片,音频,视频,日志等。对象文件最大可以达到5TB。 安装启动 mkdir -p /usr/local/minio cd /usr/local/minio# 下载安装包 wget https:/…...
Etcd备份及恢复
一、Etcd数据备份 1、备份命令 [rootlocalhost ~]# export ETCDCTL_API3 [rootlocalhost ~]# /data/etcd-3.4.9/bin/etcdctl --endpoints10.2.20.108:2379 snapshot save etcd-date "%Y-%m-%d_%H-%M-%S".snapshot 2、备份完成后会在当前目录生成备份文件 [rootlo…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
