NAT 实验:多私网环境下 NAPT、Easy IP 配置及 FTP 服务公网映射

news2025/3/25 22:29:38
NAT基本概念
  • 定义:网络地址转换(Network Address Translation,NAT)是一种将私有(保留)地址转化为合法公网 IP 地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。
  • 作用
    解决 IP 地址短缺问题 :由于 IPv4 地址资源有限,使用私有 IP 地址的内部网络通过 NAT 可以共享少量的公网 IP 地址访问互联网。
    增强网络安全性:NAT 隐藏了内部网络的真实 IP 地址,外部网络无法直接访问内部网络的主机,从而在一定程度上保护了内部网络的安全。
NAT 工作原理
  • 地址转换过程:
    – 当内部网络的主机向外部网络发送数据包时,NAT 设备会将数据包的源 IP 地址从私有 IP 地址转换为公有 IP 地址,并记录这个转换关系(通常记录在 NAT 转换表中)。
    – 当外部网络的主机响应数据包返回时,NAT 设备根据转换表将目的 IP 地址从公有 IP 地址转换回私有 IP 地址,然后将数据包转发给内部网络的主机。
  • NAT 转换表
    NAT 转换表是 NAT 设备维护的一个记录,用于存储内部私有 IP 地址与外部公有 IP 地址之间的映射关系。它包含了源 IP 地址、目的 IP 地址、源端口号、目的端口号以及转换后的地址和端口信息。
NAT 类型
  • 静态 NAT(Static NAT)
    原理:将一个私有 IP 地址固定地映射到一个公有 IP 地址。这种映射是一对一的,并且是永久的。
    应用场景:常用于需要向外部网络提供服务的内部服务器,如 Web 服务器、邮件服务器等,使得外部网络可以通过固定的公网 IP 地址访问内部服务器。
  • 动态 NAT(Dynamic NAT)
    原理:将多个私有 IP 地址映射到一组公有 IP 地址池中的一个可用地址。当内部主机需要访问外部网络时,NAT 设备从地址池中动态分配一个可用的公网 IP 地址进行转换。
    应用场景:适用于内部网络主机数量较多,但同时访问外部网络的主机数量相对较少的情况,可以有效利用公网 IP 地址资源。
  • 网络地址端口转换(NAPT,Network Address Port Translation)
    原理:也称为端口多路复用,它将多个私有 IP 地址映射到一个公有 IP 地址,通过不同的端口号来区分不同的内部主机。这样多个内部主机可以同时使用同一个公网 IP 地址访问外部网络。
    应用场景:是最常用的 NAT 类型,广泛应用于家庭和企业网络中,通过一个公网 IP 地址满足大量内部主机访问互联网的需求。
  • Easy IP
    原理:是一种特殊的 NAPT 方式,它直接使用接口的公网 IP 地址进行地址转换,无需配置专门的地址池。当接口的 IP 地址发生变化时,NAT 转换会自动使用新的 IP 地址。
    应用场景:适用于使用动态获取公网 IP 地址的场景,如 ADSL 拨号上网。
NAT 服务器(NAT Server)

原理:将内部服务器的特定服务端口映射到公网 IP 地址的相应端口,使得外部网络可以通过公网 IP 地址访问内部服务器的特定服务。
应用场景:常用于将内部的 FTP 服务器、Web 服务器等服务发布到公网,让外部用户可以访问这些服务。

NAT 的优缺点
  • 优点
    节省 IP 地址资源:通过 NAT 可以使用私有 IP 地址构建内部网络,大大节省了公网 IP 地址的使用。
    增强网络安全性:隐藏内部网络的真实 IP 地址,减少了外部网络对内部网络的直接攻击。
  • 缺点
    增加网络延迟:NAT 设备需要对数据包进行地址转换,这会增加一定的处理时间,导致网络延迟。
    影响某些应用程序的正常运行:一些基于 IP 地址进行通信的应用程序,如 IPsec VPN、某些 P2P 应用等,可能会受到 NAT 的影响而无法正常工作。
NAT 配置注意事项
  • ACL 的使用:在配置 NAT 时,通常需要使用访问控制列表(ACL)来指定哪些内部 IP 地址可以进行地址转换。ACL 的配置要准确,否则可能会导致部分内部主机无法访问外部网络。
  • 端口映射的正确性:在配置 NAT Server 时,要确保端口映射的正确性,包括协议类型(TCP 或 UDP)、公网端口和内部端口的对应关系等。
  • 地址池的管理:对于动态 NAT 和 NAPT,要合理管理地址池,确保地址池中有足够的可用地址,避免出现地址耗尽的情况。
实验拓扑

在这里插入图片描述

实验需求
  1. 按照图示配置 IP 地址
  2. 私网 A 通过 R1 接入到互联网,私网 B 通过 R3 接入到互联网
  3. 私网 A 内部存在 Vlan10 和 Vlan20,通过 R1 上单臂路由访问外部网络
  4. 私网 A 通过 NAPT 使 Vlan10 和 Vlan20 都能够使用 R1 的公网地址访问互联网
  5. 私网 B 通过在 R3 上配置 EASY IP 访问互联网
  6. 私网 A 配置 NAT SERVER 把 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问
实验步骤
  1. 设备命名和 IP 地址配置部分省略

  2. R1 和 R3 上配置默认路由指向公网,配置步骤略

  3. 私网 A 内部单臂路由配置部分略

  4. 私网 A 通过 NAPT 使 Vlan10 和 Vlan20 都能够使用 R1 的公网地址访问互联网

    分析:根据需求得知,ACL 需要配置允许 192.168.1.0/24 和 192.168.2.0/24 网段;私网 A 只有 1 个公网地址可用,意味着创建的 NAT 地址池起始和结束地址就都是 100.1.1.1

    步骤 1:R1 上创建基本 ACL,允许 192.168.1.0/24 和 192.168.2.0/24 网段

    [R1]acl b
    [R1]acl basic 2000
    [R1-acl-ipv4-basic-2000]ru
    [R1-acl-ipv4-basic-2000]rule pe
    [R1-acl-ipv4-basic-2000]rule permit so
    [R1-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
    [R1-acl-ipv4-basic-2000]rule permit source 192.168.2.0 0.0.0.255
    

    步骤 2:R1 上创建 NAT 地址池,设置公网地址

    [R1]interface g0/1
    [R1-GigabitEthernet0/1]
    [R1-GigabitEthernet0/1]
    [R1-GigabitEthernet0/1]
    [R1-GigabitEthernet0/1]
    [R1-GigabitEthernet0/1]nat
    [R1-GigabitEthernet0/1]nat ou
    [R1-GigabitEthernet0/1]nat outbound 2000 g
    [R1-GigabitEthernet0/1]nat outbound 2000 add
    [R1-GigabitEthernet0/1]nat outbound 2000 address-group 1
    

    步骤 3:在 R1 的公网接口上配置 NAPT

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

    步骤 4:在 PCA 上 Ping R3 的公网地址,测试是否可以访问互联网
    在这里插入图片描述

  5. 私网 B 通过在 R3 上配置 EASY IP 访问互联网

    分析:根据需求得知,ACL 需要配置允许 192.168.1.0/24 网段;使用 EASY IP,就无需配置 NAT 地址池,直接在公网接口上配置即可,EASY IP 会自动识别公网接口的 IP 地址

    步骤 1:R3 上创建基本 ACL,允许 192.168.1.0/24 网段

    [R3]acl basic 2000
    [R3-acl-ipv4-basic-2000]rule permit source 192.168.1.0 0.0.0.255
    

    步骤 2:在 R3 的公网接口上配置 EASY IP

    [R3]interface g0/0
    [R3-GigabitEthernet0/0]nat outbound 2000
    

    步骤 4:在 PCB 上 Ping R1 的公网地址,测试是否可以访问互联网
    在这里插入图片描述

  6. 私网 A 配置 NAT SERVER 把 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问

    分析:根据需求得知,需要发布 FTPA 的 FTP 服务,也就是把 R1 的公网地址的 20 和 21 端口映射到 FTPA 的私网地址  配置 FTP 服务步骤略
      
    步骤 1:在 R1 的公网接口上配置 NAT SERVER,映射端口 20 和 21

    [R1-GigabitEthernet0/1]nat server protocol tcp global current-interface 20 21 inside 192.168.1.10 20 21
    

    步骤 2:在 PCB 上测试是否能够通过 R1 的公网地址访问 FTPA 的 FTP 服务
    在这里插入图片描述

总结:

本次实验展示了不同类型的NAT的配置和应用

  • NAPT(网络地址端口转换): 私网 A 中有 Vlan10(192.168.1.0/24)和 Vlan20(192.168.2.0/24)两个网段,只有一个公网地址 100.1.1.1 可用。通过配置 NAPT,R1 上创建基本 ACL 允许这两个网段的流量,然后创建 NAT 地址池(起始和结束地址都是 100.1.1.1),并在公网接口上配置 NAPT,使得 Vlan10 和 Vlan20 的主机可以使用 R1 的公网地址访问互联网。NAPT 利用端口号来区分不同的内部主机,多个内部主机可以同时使用同一个公网 IP 地址进行通信。
  • Easy IP: 私网 B 通过 R3 接入互联网,使用 Easy IP 技术。首先在 R3 上创建基本 ACL 允许 192.168.1.0/24 网段的流量,然后在公网接口上配置 Easy IP。Easy IP 是一种特殊的 NAPT 方式,它直接使用接口的公网 IP 地址进行地址转换,无需配置专门的地址池。
  • NAT Server: 私网 A 要将 FTPA 的 FTP 服务发布到公网,使 PCB 可以访问。在 R1 的公网接口上配置 NAT Server,将公网地址的 20 和 21 端口映射到 FTPA 的私网地址(192.168.1.10)的 20 和 21 端口。这样,外部网络的主机就可以通过 R1 的公网地址访问 FTPA 的 FTP 服务。

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

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

相关文章

YOLO数据集分割训练集、测试集和验证集

记录一下自己的分割代码。 注意: 这是在windows环境,请Linux的同学们注意。标签为txt,图像为jpg,其他的我没试过喔。 训练集、验证集、测试集(7:2:1) import os import shutil import random from tqdm…

Debug-037-table列表勾选回显方案

效果展示: 图1 图2 最近实现一个支持勾选的el-table可以回显之前勾选项的功能。实现了一个“编辑”的功能: 在图1中的列表中有三行数据,当点击“更换设备”按钮时,打开抽屉显示el-table组件如图2所示,可以直接回显勾选…

人脸表情识别系统分享(基于深度学习+OpenCV+PyQt5)

最近终于把毕业大论文忙完了,众所周知硕士大论文需要有三个工作点,表情识别领域的第三个工作点一般是做一个表情识别系统出来,如下图所示。 这里分享一下这个表情识别系统: 采用 深度学习OpenCVPyQt5 构建,主要功能包…

AtCoder - arc086_d Shift and Decrement分析与实现

分析与思路 可以把操作流程表示成下图 以进行四次除法操作为例&#xff1a; 这里有一个关键点&#xff1a;对于每个p_i (0< i <x-1) &#xff0c;x是除法操作的次数&#xff0c;如果p_i>2&#xff0c;可以将2个p_i的减法操作去掉&#xff0c;在p_(i1)中增加一个减法…

tcping 命令的使用,ping IP 和端口

1. ‌Windows系统安装‌ ‌下载tcping工具‌&#xff1a;根据系统位数&#xff08;32位或64位&#xff09;下载对应的tcping.exe文件。‌安装步骤‌&#xff1a; 将下载的tcping.exe文件复制到C:\Windows\System32目录下。如果下载的是64位版本&#xff0c;需将文件名改为tcpi…

天地图InfoWindow插入React自定义组件

截至2025年03月21日天地图的Marker不支持添加Label; 同时Label和Icon是不支持自定义HTMLElement只支持String&#xff1b;目前只有InfoWindow支持自定义HTMLElement; 效果图 React核心api import ReactDOM from react-dom/client const content document.createElement(div);…

003-掌控命令行-CLI11-C++开源库108杰

首选的现代C风格命令行参数解析器! &#xff08;本课程包含两段教学视频。&#xff09; 以文件对象监控程序为实例&#xff0c;五分钟实现从命令行读入多个监控目标路径&#xff1b;区分两大时机&#xff0c;学习 CLI11 构建与解析参数两大场景下的异常处理&#xff1b;区分三…

鸿蒙HarmonyOS NEXT应用崩溃分析及修复

鸿蒙HarmonyOS NEXT应用崩溃分析及修复 如何保证应用的健壮性&#xff0c;其中一个指标就是看崩溃率&#xff0c;如何降低崩溃率&#xff0c;就需要知道存在哪些崩溃&#xff0c;然后对症下药&#xff0c;解决崩溃。那么鸿蒙应用中存在哪些崩溃类型呢&#xff1f;又改如何解决…

机器学习——分类、回归、聚类、LASSO回归、Ridge回归(自用)

纠正自己的误区&#xff1a;机器学习是一个大范围&#xff0c;并不是一个小的方向&#xff0c;比如&#xff1a;线性回归预测、卷积神经网络和强化学都是机器学习算法在不同场景的应用。 机器学习最为关键的是要有数据&#xff0c;也就是数据集 名词解释&#xff1a;数据集中的…

【canvas】一键自动布局:如何让流程图节点自动找到最佳位置

一键自动布局&#xff1a;如何让流程图节点自动找到最佳位置 引言 在流程图、拓扑图和系统架构图设计中&#xff0c;节点布局往往是最令人头疼的问题。如果手动调整每个节点位置&#xff0c;不仅耗时费力&#xff0c;还难以保证美观性和一致性。本文将深入解析如何实现自动布…

[每周一更]-(第137期):Go + Gin 实战:Docker Compose + Apache 反向代理全流程

文章目录 **1. Go 代码示例&#xff08;main.go&#xff09;****2. Dockerfile 多段构建**3.构建 Docker 镜像**4. docker-compose.yml 直接拉取镜像****5. 运行容器****6. 测试 API**7、配置域名访问**DNS解析&#xff1a;将域名转换为IP地址****DNS寻址示例** 8.错误记录 访问…

SpringCache小记

Spring Cache 小记 官方文档&#xff1a;https://springdoc.cn/spring-cache-tutorial/ 基础知识 常用注解 EnableCaching&#xff1a;开启缓存功能&#xff0c;一般放在启动类上。 Cacheable&#xff1a;表示该方法支持缓存。当调用被注解的方法时&#xff0c;如果对应的键已…

Web-Machine-N7靶机通关攻略

获取靶机ip arp-scan -l 端口扫描 nmap xxxx 访问80端口发现没用 扫描目录 gobuster dir -u http:/192.168.117.160 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium,txt -x php,html,txt ,zip 打开exploit.html 点击F12&#xff0c;修改localhost为靶机ip&#…

第十五次CCF-CSP认证(含C++源码)

第十五次CCF-CSP认证 小明上学满分思路 数据中心满分思路 小明放学满分题解 小明上学 题目链接 满分思路 其实题目看着长&#xff0c;但是做起来是非常好写的&#xff0c;其实主要原因在于&#xff0c;他的红绿灯的变化规律是一定的&#xff0c;而且小明路上的每次红绿灯情况…

Java-servlet(七)详细讲解Servlet注解

Java-servlet&#xff08;七&#xff09;详细讲解Servlet注解 前言一、注解的基本概念二、Override 注解2.1 作用与优势2.2 示例代码 三、Target 注解3.1 定义与用途3.2 示例代码 四、WebServlet 注解4.1 作用4.2 示例代码 五、反射与注解5.1 反射的概念5.2 注解与反射的结合使…

SQLark 实战 | 如何通过对象名和 DDL 快速搜索数据库对象

在数据库运维管理、应用开发和问题定位时&#xff0c;常常需要搜索相关的数据库对象。本文将为你介绍如何使用 SQLark 的搜索功能&#xff0c;实现对数据库对象的快速查找与定位。 &#x1f449; 前往 SQLark 官网&#xff1a;www.sqlark.com 下载全功能免费版。 通过对象名称搜…

C/S模型-TCP

下图是基于TCP协议的客户端/服务器程序的一般流程&#xff1a; TCP协议通讯流程 服务器调用socket()、bind()、listen()完成初始化后&#xff0c;调用accept()阻塞等待&#xff0c;处于监听端口的状态&#xff0c;客户端调用socket()初始化后&#xff0c;调用connect()发出SY…

51c自动驾驶~合集24

我自己的原文哦~ https://blog.51cto.com/whaosoft/11926510 #DriveArena 上海AI Lab又放大招&#xff1a;首个高保真闭环生成仿真平台 仓库链接&#xff1a;https://github.com/PJLab-ADG/DriveArena 项目链接&#xff1a;https://pjlab-adg.github.io/DriveArena/ D…

19.哈希表的实现

1.哈希的概念 哈希(hash)⼜称散列&#xff0c;是⼀种组织数据的⽅式。从译名来看&#xff0c;有散乱排列的意思。本质就是通过哈希函数把关键字Key跟存储位置建⽴⼀个映射关系&#xff0c;查找时通过这个哈希函数计算出Key存储的位置&#xff0c;进⾏快速查找。 1.2.直接定址法…

【PCB工艺】晶体管的发展历史

晶体管被认为是20世纪最伟大的发明之一&#xff0c;因为没有晶体管就不会有现代电脑、手机或平板​​&#xff0c;你也无法阅读到这里的内容&#xff0c;因为不存在网络。 ——本文纯粹出于对过往奋斗在这个领域中科学家的缅怀。科学家有太多宝贵的思想和经验值得我们认真总结和…