首页 > 其他分享 >什么是网络地址转换 (NAT)

什么是网络地址转换 (NAT)

时间:2023-08-15 16:33:19浏览次数:29  
标签:转换 NAT IP 配置 地址 网络地址 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)_NAT

在思科设备上配置静态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,IP,配置,地址,网络地址,nat,路由器
From: https://blog.51cto.com/u_15668869/7090333

相关文章

  • 类型转换
    字符串转字符数组char[]ch=str.toCharArray();字符数组转字符串Strings=newString(ch)//char[]str={'h','e','l','l','o','','1','2','3'};//Stringstring1=newSt......
  • VTK 实例26:将BMP类型的RGB图像转换为灰度图像
    1#include"vtkAutoInit.h"2VTK_MODULE_INIT(vtkRenderingOpenGL2);3VTK_MODULE_INIT(vtkInteractionStyle);45#include<vtkSmartPointer.h>6#include<vtkImageData.h>7#include<vtkRenderWindow.h>8#include<vtk......
  • UTF-8和GBK等中文字符编码格式介绍及相互转换
    我们有很多时候需要使用中文编码格式,比如gbk、gb2312等,但是因为主要针对中文编码设置,因此并不完全通用,这样一来就有了在各编码间相互转换的需求,比如和UTF8的转换。可是在我使用的过程中,却发现编码转换并没有想象中的简单,或者说可能会出错,即使你使用的系统API。我在使用中,产生一些......
  • 【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像
    关于CloudStudioCloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能在线编程。CloudStudio作为在线IDE,包含代码高亮、自动补全、Git集成、终端等IDE的基础功能,同时支持实......
  • 将整数转换为两个无零整数的和
    「无零整数」是十进制表示中不含任何0的正整数。给你一个整数n,请你返回一个由两个整数组成的列表[A,B],满足:A和B都是无零整数A+B=n题目数据保证至少有一个有效的解决方案。如果存在多个有效解决方案,你可以返回其中任意一个。示例1:输入:n=2输出:[1,1]解释:A......
  • JSON对象和字符串之间的相互转换
    比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:1vara={"name":"tom","sex":"男","age":"24"};23varb='{"name":"Mike","sex":"女","age":"29......
  • CLIP: Learning Transferable Visual Models From Natural Language Supervision
    CLIP:LearningTransferableVisualModelsFromNaturalLanguageSupervision论文链接:https://arxiv.org/pdf/2103.00020.pdf代码链接:https://github.com/openai/CLIPblog链接:https://openai.com/research/clipCLIP的英文全称是ContrastiveLanguage-ImagePre-trainin......
  • vmware虚拟机中 ubuntu 20.04通过nat设置静态ip
    在控制台界面将网络适配器设置为nat模式即可。01.用查看原来的ip地址:ipaddr或者ipa相信很多人都会使用ifconfig来查看ip地址,但是,你会发现在这个版本的ubuntu中,命令都更新了!ubuntu@ubuntu-virtual-machine~%ipaddr[0]1:lo:<LOOPBACK......
  • Go 语言类型转换
    packagemainimport"fmt"funcmain(){varsumint=17varcountint=5varmeanfloat32mean=float32(sum)/float32(count)fmt.Printf("mean的值为:%f\n",mean)}go不支持隐式转换类型错:packagemainimport"fmt"funcmain(......
  • 如何将Python代码转换为Goland
    本文将介绍如何将Python代码转换为Goland,包括转换工具、转换步骤和注意事项。1.转换工具目前市面上有很多Python到Go的转换工具,例如:Transcrypt:一个命令行工具,可以将Python代码转换为Go代码。PyGo:一个Python库,可以在Python代码中嵌入Go代码,从而实现Python到Go的转换。GoPy:一个Pytho......