网络地址转换-NAT

news2024/12/23 13:02:28

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、相关知识

网络地址转换(Network Address Translation,NAT)的基本作用是实现内网 IP 地址与外网 IP 地址的转换。NAT 不仅能解决 IP 地址不足的问题,而且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机

1、NAT的关键点

  • 地址重用:NAT允许多个设备共享一个或少量的公网IP地址。这在IPv4地址日益紧张的情况下非常有用。
  • 地址隐藏:通过NAT,内部网络的设备可以隐藏其真实的IP地址,从而提高网络安全性。外部网络只能看到NAT设备的公网IP地址,而无法直接访问内部网络的设备。
  • 流量管理:NAT可以用于管理网络流量,例如通过限制某些类型的流量或实现负载均衡
  • 协议兼容性:NAT可以处理不同协议的地址转换,包括TCP、UDP和其他基于IP的协议。
  • 简化网络设计:NAT简化了网络设计,因为它允许网络管理员在不更改内部网络结构的情况下扩展网络。

2、NAT的工作原理:

  • 当内部网络的设备发送数据到外部网络时,NAT设备会将源IP地址替换为NAT设备的公网IP地址

  • 当外部网络的设备发送数据到内部网络时,NAT设备会将目的IP地址替换为内部网络设备的私有IP地址

3、NAT的类型:

  • 静态NAT手动配置每个IP地址的映射关系。
  • 动态NAT自动为内部网络的设备分配公网IP地址,但映射关系是临时的。
  • 端口地址转换(PAT:也称为NAT Overload,允许多个内部设备通过一个公网IP地址的不同端口与外部网络通信。

4、相关CLI命令:

(1)为路由器配置静态NAT

在接口视图下建立公网 IP 地址与内网 IP 地址之间的一对一映射,有多少对映射就设置多少条命令

 [R1-GigabitEthernet0/0/1]nat static global 210.1.1.1 inside 192.168.1.1

(2)为路由器配置动态NAT

先为 NAT 创建地址池;一个地址池是连续 IP 地址的集合。地址池的起始地址必须小于或等于结束地址,并且地址数量不能超过 255 个

 [R1]nat address-group 1 210.138.10.101 210.138.10.200

然后,为 NAT 配置访问控制列表 ACL,控制允许进行地址转换的内部网络

 # 例如,创建 ACL 2000,允许内网 192.168.1.0/24 进行地址转换
 [R1]acl 2000            #基本 ACL,2000~2999 
 [R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

最后,在接口视图下配置出网地址转换(NAT Outbound),建立 ACL 与公网地址池之间的关联

 # 例如,在该路由器的 GE 0/0/1 接口使用 ACL 2000 和地址池 1 进行出网地址转换,并且不使用 NAPT(在华为设备中将 NAPT 称为端口地址转换 PAT)方式
 [R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat

no-pat 表示不使用 NAPT,内网地址和公网地址只能进行一对一转换,而不是多对一 转换

(3)NAPT 配置

内网共享路由器公网接口 IP 地址的配置方法:该方法无须配置地址 池,只需要创建 ACL 并指定需要 NAPT 的内部网络

 [R1]acl 2000        #基本 ACL,2000~2999 
 [R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255 
 [R1-acl-basic-2000]quit 
 [R1]int g0/0/1 
 [R1-GigabitEthernet0/0/1]nat outbound 2000

二、NAT

1、建立网络拓扑

2、配置与分析

 PC1:
 192.168.1.1 24 192.168.1.254
 ​
 AR4:AR220
 sys
 un in e
 int g0/0/0
 ip add 192.168.1.254 24
 int g0/0/1
 ip add 64.1.1.1 24
 q
 acl name a bas      # 创建名为a的基础访问控制列表(ACL)
 rule permit source 192.168.0.0 0.0.255.255  # 为ACL添加一条规则:允许192.168.0.0到192.168.255.255之间的流量通过   
 q
 dis acl all         # 显示所有访问控制列表
 nat address-group 1 64.1.1.2 64.1.1.6       # 创建一个网络地址转换(NAT)地址组,名称为1
 int g0/0/1
 nat outbound 2999 address-group 1       # 配置出站NAT规则,将流量映射到地址组1中的IP地址
 ​
 AR2:
 sys
 un in e
 int g0/0/0
 ip add 64.1.1.100

三、动态NAT-内网访问外网

1、建立网络拓扑

2、配置与分析

实现内网中的PC1、PC2H和PC3访问到外网连接的PC5;

 PC1、PC2、PC3使用DHCP自动分配IP
 PC5:8.8.8.1 24 8.8.8.254
 AR1:
 sys
 un in e
 dhcp enable             # 启用DHCP功能
 int g0/0/0
 ip add 192.168.1.254 24
 dhcp select interface   # 选择此节点为DHCP接口
 int g0/0/1
 ip add 12.1.1.1 24
 ip route-static 0.0.0.0 0 12.1.1.2
 ​
 AR2
 sys
 un in e
 int g0/0/0
 ip add 12.1.1.2 24
 int g0/0/1
 ip add 23.1.1.1 24
 q
 ip route-static 192.168.1.0 24 12.1.1.1
 ip route-static 0.0.0.0 0 23.1.1.2        
 nat address-group 1 23.1.1.4 23.1.1.6    # 创建地址组
 acl 2000                                 # 创建ACL
 rule 1 permit source 192.168.1.0 0.0.0.255  允许从192.168.1.0/24这个子网中发出的所有流量通过 
 int g0/0/1
 nat outbound 2000 address-group 1   # 为接口添加ACL规则
 ​
 AR3:
 sys
 un in e
 int g0/0/0
 ip add 23.1.1.2 24
 int g0/0/1
 ip add 8.8.8.254 2

四、动态NAT-外网访问内网

1、建立网络拓扑

2、配置与分析

实现外网PC2访问119.1.1.123IP从而直接访问到内网PC1(172.16.0.1)

 AR3:
 sys
 un in e
 int g0/0/0
 ip add 172.16.0.254 24
 int g0/0/1
 ip add 119.1.1.1 24
 q
 ip route-static 200.200.200.0 24 119.1.1.2
 int g0/0/1
 nat server global 119.1.1.123 inside 172.16.0.1
 ​
 AR2:
 sys
 un in e
 int g0/0/0
 ip add 119.1.1.2 24
 int g0/0/1
 ip add 200.200.200.254 24

五、总结

  • 静态NAT,其内网 IP 地址与外网 IP 地址之间是一对一固定转换,即内部可以访问外部,外部也可以访问内部。
  • 动态NAT,其内网 IP 地址与外网 IP 地址之间的转换关系是随机的,只能内部访问外部,外部不能访问内部(除非增加其他机制)。当内网地址转换需求大于外网地址数量时,需要等待地址释放,这会影响访问性能。
  • NAPT实现内部网络的多个进程(可能分布在不同主机或同一主机上)可共享同一个外网 IP 地址,实现对外部网络的访问,从而可以最大限度地节

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

求职学习day11背八股

本质上我和早睡早上起来玩一早上的游戏没有区别,甚至学习状态更差。得想个办法 12 点睡觉。 第三次 hr 面,为德科和华为的工作效率感到无语。 下周一两场面试。真是要死,这五天时间基本没学什么。八股、项目、手撕。。没一个有能力的感觉。…

代码随想录算法训练营第22天-leetcode-回溯算法part01:

#回溯算法理论基础 能解决的问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列&…

[023-2].第2节:SpringBoot中接收参数相关注解

我的后端学习大纲 SpringBoot学习大纲 1.1.基本介绍: SpringBoot接收客户端提交的数据、参数会使用的一些注解: 1.PathVarible2. RequestHeader3.RequestParam4.CookieValue5.RequestBody6.RequestAttribute 1.2.接收参数相关注解与应用实例:…

VirtualBox7.0.18报: IPv6 prefix is not unicast.

VirtualBox7.0.18 报: IPv6 prefix is not unicast. VirtualBox7.0.18 在设置 “NAT网络(Nat Network)” 的IPv6时, 报 IPv6 prefix x::x is not unicast. IPv6 prefix x::x is not unicast. 意思是 x::x 不是IPv6的单播地址 解决办法是: 改为 fcxx 或 fdxx 开头, 如 fc00 ,…

QT Creator下载安装详细教程(保姆级教程)

qt下载安装 1.下载网址 通过清华大学开源软件镜像站进行下载:链接: https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/online_installers/ 这里我选的是4.4版本的,也可以选择4.7版本,问题不大。 根据电脑系统选择下载linux…

一天一个Harmony Next APP

历史的车轮已经来到太平洋东海岸。 此时如果还不会撸Harmony APP,注定要被碾压。 鸿蒙开发正在如火如荼的开展,抽空看一看吧。 一看就会,一做就废。 这里是一个看废的demo。 主要通过arkts实现鸿蒙关系数据库的封装,实现数据…

搭建自己的金融数据源和量化分析平台(一):系统架构设计

0x00 前言 由于某得的数据实在是太贵,某花顺免费版又不提供专业的数据分析工具,Tushare也开始收费,因此决定基于python和MySQL搭建一个自己的金融数据库。期望做到仅依靠交易所、巨潮资讯网等官方的公开数据实现,尽量不依靠某花顺…

Java中线程池的基本使用

参考这个课程,讲的非常详细 27.线程池使用步骤总结_哔哩哔哩_bilibili 应用场景 商品秒杀 文件上传 订票系统 自定义线程池(让我们了解底层逻辑的) 构造方法 饱和机制 就是我们的队列饱和后我们该怎么处理 是拒绝这个任务还是啥…

API 技术开发分享:连接电商平台数据获取的桥梁

在当今数字化的时代,API(Application Programming Interface,应用程序编程接口)技术成为了实现不同系统之间通信和数据交换的关键。它就像是一座无形的桥梁,使得各种应用能够相互协作,共享资源,…

网页突然被恶意跳转或无法打开?DNS污染怎么解决?

前言 在网上冲浪时,我们时常会遭遇DNS污染这一区域性攻击,几乎无人能幸免。受影响时:尝试访问正规网站可能会被错误导向赌博、色情或其他恶意站点。 1.我们为什么需要DNS 当我们想要访问一个网站时,就像拨打朋友的电话号码一样…

第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024,9月13-15)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。 本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、…

docker笔记6-数据卷

docker笔记6-数据卷 一、初识dockerfile1.1 编写镜像1.2 构建镜像1.3 运行镜像 二、案例2.1 多个容器共享数据2.2 多个mysql数据共享 一、初识dockerfile 之前的内容中,我们都是通过pull的方式拉取别人写好的镜像,那么通过编写dockerfile,我…

Linux系统编程:传输层(补充)

1. 用UDP实现可靠传输 在前面介绍了UDP是一种不可靠的面向数据包的传输协议。那么如何实现UDP的可靠传输呢? 其实就是在应用层自己实现像TCP一样的可靠性机制:引入序列号、引入确认应答、超时重传、流量控制、拥塞控制等机制。 2. listen系统接口 在…

四向穿梭车价格战进入下半场,杀入单台10万区间~

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 近年来,仓储自动化设备市场蓬勃发展,其中四向穿梭车作为新兴明星产品,正在引领一场仓储革命。 数据显示,2023年中国托盘四向穿梭车销量…

初学Mybatis之 Lombok 篇

idea 安装 Lombok 插件&#xff1a; File->Settings->Plugins->搜索 lombok 下载 在项目中导入 lombok 的 jar 包&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.…

麦田物语第十五天

系列文章目录 麦田物语第十五天 文章目录 系列文章目录一、构建游戏的时间系统二、时间系统 UI 制作总结 一、构建游戏的时间系统 在该游戏中我们要构建年月日天时分秒等时间的概念&#xff0c;从而实现季节的更替&#xff0c;昼夜的更替等&#xff08;不同的季节可以播种不同…

机器学习课程学习周报五

机器学习课程学习周报五 文章目录 机器学习课程学习周报五摘要Abstract一、机器学习部分1.1 向量序列作为模型输入1.1.1 文字的向量表达1.1.2 语音的向量表达 1.2 自注意力机制原理1.2.1 自注意力机制理论1.2.2 矩阵运算自注意力机制 1.3 多头自注意力1.4 位置编码1.5 截断自注…

Nginx中WebSocket配置说明

查看 laravel 的 swool扩展文档时遇到不懂的&#xff0c;问了文心一言 https://gitee.com/resourcesplus/laravel-s/#%E5%90%AF%E7%94%A8websocket%E6%9C%8D%E5%8A%A1%E5%99%A8 nginx语法中 upstream 和 proxy_pass 用法

Linux--Socket编程UDP

前文&#xff1a;Socket套接字编程 UDP协议特点 无连接&#xff1a;UDP在发送数据之前不需要建立连接&#xff0c;减少了开销和发送数据之前的时延。尽最大努力交付&#xff1a;UDP不保证可靠交付&#xff0c;主机不需要维持复杂的连接状态表。面向报文&#xff1a;UDP对应用层…

PTPD 在 QNX 系统上的授时精度验证与误差排查

文章目录 0. 引言1.关键函数实现2. 验证策略与结果3. 授时误差的排查与解决3. 授时误差的排查与解决4. 结论 0. 引言 PTPD是一种时间同步的开源实现&#xff0c;在不同操作系统上的表现可能存在显著差异。 本文通过在QNX系统上运行PTPD&#xff0c;针对其授时精度进行详细验证…