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

什么是网络地址转换 (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 步骤一&#xff1a; 安装 npm install vuedraggable步骤二&#xff1a;引入 import Sortable from sortablejs;步骤三&#xff1a; el-table 添加row-key属性&#xff0c;外层包一层 sortableDiv <div class"sortableDiv"> 拖…...

Python学习笔记_基础篇(三)_数据类型之列表

一.基本数据类型 整数&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一个tab键) 布尔值&#xff1a; bool 列表&#xff1a;list &#xff08;元素的集合&#xff09; 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&a…...

目标检测YOLO实战应用案例100讲-交通目标检测中传感器数据采集容错控制方法

目录 前言 交通传感器数据采集相关理论基础 2.1交通目标检测系统数据采集简介...

ElasticSearch 8.9.0 开发模式安装

ElasticSearch 8.9.0 开发模式安装 MacOS&#xff08;Apple芯片&#xff09;&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz Linux&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasti…...

docker部署redis

这里写目录标题 1.安装Redis2.新建挂载文件夹3.配置redis4.创建redis容器&#xff0c;挂载启动命令连接测试 Docker停止、删除、重启、启动容器 1.安装Redis 通过docker search redis和docker pull redis下载redis镜像 2.新建挂载文件夹 新建data和conf两个文件夹&#xff0…...

ZooKeeper的应用场景(分布式锁、分布式队列)

7 分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要通过一些互斥手段来防止彼此之间的干扰&#xff0c;以保证一致性&#xff0c;…...

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配置文件中自定义标签和默认标签的解析过程&#xff0c;此时的BeanFactory中已经包含了xml文件中的标签属性。但BeanFactory中还有一些本身重要的属性没有填充&#xff0c;所以接着方法继续往下看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 动态显示图片

前言 最近在和其他软件联合做一个本地图片选择传输功能&#xff0c;为此希望图片能够有序的呈现在客户端&#xff0c;简单的实现了一下功能&#xff0c;通过Mvvm模式进行呈现&#xff0c;过程简单通俗&#xff0c;话不多说直接上图。 处理过程 前台代码 你只需要粘贴到你的前台…...

游戏如何防御DDOS流量攻击呢,用游戏盾真的有用么?

针对在线游戏行业来说&#xff0c;DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种极具破坏性的威胁。DDoS攻击可能导致游戏服务器不可用&#xff0c;严重影响游戏体验和运营。为了解决这一问题&#xff0c;游戏盾作为一种专门为游戏行业设计的安全解决方案&#xff0c;…...

vue项目引入antDesignUI组件

快速安装ant-design-vue并配置&#xff0c;vue2.0 antDesign1.7.8 第一步&#xff1a;安装ant-deisgn-vue 1.7.8 npm install ant-design-vue1.7.8 --save第二步&#xff1a;配置package.json文件&#xff0c;将依赖写入后&#xff0c;npm install 安装依赖 "dependenc…...

非结构化数据库-MinIO基本集成

是什么 MinIO 是一个高性能的分布式对象存储服务&#xff0c;适合存储非结构化数据&#xff0c;如图片&#xff0c;音频&#xff0c;视频&#xff0c;日志等。对象文件最大可以达到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…...

转行AIGC,杭州培训助你3个月入职大厂

转行AIGC&#xff0c;杭州培训助你3个月入职大厂 最近&#xff0c;很多小伙伴私信我&#xff0c;说想转行做AIGC相关工作&#xff0c;但苦于没有方向&#xff0c;不知道从哪里入手。今天就给大家分享一个真实案例&#xff0c;看看他是如何在短短3个月内成功转型&#xff0c;并…...

收藏!小白程序员必看:Agent和工作流是最佳拍档,教你如何协同它们(附案例)

文章探讨了AI智能体&#xff08;Agent&#xff09;和工作流工具的关系&#xff0c;指出它们并非竞争对手&#xff0c;而是最佳拍档。Agent擅长自主决策和动态规划&#xff0c;适用于探索性和不确定性任务&#xff1b;工作流则负责流程编排和确定性执行&#xff0c;适用于重复性…...

Ceph存储集群搭建:如何选择RAID卡模式(HBA vs IT vs non-RAID)

Ceph存储集群搭建&#xff1a;RAID卡模式选择与性能优化实战指南 在构建企业级Ceph存储集群时&#xff0c;硬件配置的每一个细节都可能成为性能瓶颈或稳定性隐患。其中&#xff0c;RAID控制器的工作模式选择——HBA、IT与non-RAID之间的差异&#xff0c;往往被许多初次部署Ceph…...

收藏!阿里后端转大模型应用层,2年Agent/RAG经验,斩获字节30%涨幅offer|小白程序员必看学习路径

作为一名从传统后端开发起步的程序员&#xff0c;我毕业后顺利入职阿里&#xff0c;做了一年后端开发工作后&#xff0c;敏锐捕捉到大模型应用层的爆发趋势&#xff0c;果断转型深耕。经过两年的Agent、RAG相关开发实践&#xff0c;最终成功拿到字节跳动Agent开发岗位offer&…...

用快马平台快速原型你的技能学习器:AI一键生成交互式教程项目

最近在尝试做一个交互式Python技能学习生成器&#xff0c;发现用InsCode(快马)平台可以特别高效地完成原型验证。这个工具的核心思路是让用户输入想学习的技能&#xff0c;系统就能自动生成完整的学习项目&#xff0c;包含理论、示例和练习。下面分享下具体实现过程&#xff1a…...

让老旧Mac焕发新生:OpenCore Legacy Patcher完整指南

让老旧Mac焕发新生&#xff1a;OpenCore Legacy Patcher完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您的Mac是否被苹果官方"抛弃"&…...

Spring AI vs Python生态:Java开发者如何选择AI工具链?

Spring AI vs Python生态&#xff1a;Java开发者如何构建高效AI工具链&#xff1f; 当Java开发者第一次踏入AI应用开发领域时&#xff0c;往往会面临一个灵魂拷问&#xff1a;是拥抱Python生态的LangChain/LlamaIndex&#xff0c;还是坚持Java技术栈选择Spring AI&#xff1f;这…...

QT 基于qcustomplot实现热力图(四):动态数据流与交互优化实战

1. 动态数据流的核心实现策略 在实时监控系统中&#xff0c;热力图的数据往往需要持续更新。我遇到过不少开发者直接粗暴地全量刷新整个数据集&#xff0c;结果界面卡顿得像老式幻灯片。这里分享三种经过实战检验的动态更新方案&#xff0c;每种都有其适用场景。 增量更新法最适…...

OpenCode应用案例:搭建企业内部代码审查助手,提升开发效率

OpenCode应用案例&#xff1a;搭建企业内部代码审查助手&#xff0c;提升开发效率 1. 项目背景与痛点分析 在软件开发团队中&#xff0c;代码审查是保证代码质量的关键环节。然而传统人工审查方式面临诸多挑战&#xff1a; 时间成本高&#xff1a;资深工程师需要花费大量时间…...

MariaDB Docker容器权限配置问题分析与解决方案

MariaDB Docker容器权限配置问题分析与解决方案 1. 问题背景 在使用MariaDB Docker容器时&#xff0c;用户遇到了远程访问权限配置失效的问题。具体表现为&#xff1a; 手动创建的远程用户&#xff08;如root%、****%、********%&#xff09;在容器重启后无法远程连接权限表中显…...