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

第8章网络协议-NAT

1、NAT概述

NAT产生的技术背景

  • 随着互联网用户的增多,IPv4的公有地址资源显得越发短缺。
  • 时IPv4公有地址资源存在地址分配不均的问题,这导致部分地区的IPv4可用公有地址严重不足
  • 一方面NAT缓解了IPV4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性

1751466184021

私有IP地址

  • 公有地址:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。【要钱买的】
  • 私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。【内网里面使用】
  • A、B、C类地址中各预留了一些地址专门作为私有IP地址(RFC1918):
    • A类:10.0.0.0~10.255.255.255
    • B类:172.16.0.0~172.31.255.255
    • C类:192.168.0.0~192.168.255.255

1751466233406

NAT技术原理

  • NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。绝大多数交换机不支持NAT功能
  • NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于”从外到内的”流量,则对数据包的目的地址进行转换。
  • 通过私有地址的使用结合NAT技术,可以有效节约公网IPV4地址。

1751466760960

2、静态NAT

静态NAT原理

  • 静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
  • 支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。【并不能解决IPv4地址数量有限的问题,需要申请多个IP地址】

1751466921106

1751467461936

静态NAT配置介绍

方式一:接口视图下配置静态NAT

[Huawei-GigabitEthernet0/0/0] nat static global (global-address) inside (host-address)
global参数用于配置外部公有地址,inside参数用于配置内部私有地址。

方式二:系统视图下配置静态NAT

[Huawei] nat static global (global-address) inside (host-address)
配置命令相同,视图为系统视图,之后在具体的接口下开启静态NAT。

[Huawei-GigabitEthernet0/0/0] nat static enable
在接口下使能nat static功能。

1751467689823

3、动态NAT

动态NAT原理

  • 动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
  • 当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。

1751467883476

1751467994596

1751468038498

动态NAT配置介绍

  1. 创建地址池
    [Huawei] nat address-group group-index start-address end-address
    配置公有地址范围,其中group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址。
  2. 配置地址转换的ACL规则
    [Huawei] acl number
    [Huawei-acl-basic-number] rule permit source source-address source-wildcard
    配置基础ACL,匹配需要进行动态转换的源地址范围。
  3. 接口视图下配置带地址池的NAT Outbound
    [Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index[ no-pat ]
    接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换。

1751468324140

4、NAPT、Easy-IP

NAPT原理

  • 动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-PortAddress Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
  • NAPT(NetworkAddressandPortTranslation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。

1751468583280

1751468634119

1751468646777

NAPT配置示例

1751468735838

Easy IP

  • EasyIP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于EasyIP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
  • EasyIP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。

1751468909326

EasyIP配置示例

1751468965812

5、NAT Server

NATServer使用场景

  • NATServer:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
  • 外网主机主动访问[公有地址:端口]实现对内网服务器的访问。

1751469092827

NAT Server转换示例

1751469164397

NAT Server配置示例

1751469189146

思考题:

1、何种NAT转换可以让外部网络主动访问内网服务器?

NAT server;
静态NAT

2、NAPT相比较于No-PAT有哪些优点?

节省IP地址

章节总结

  • 在私有网络内使用私有地址,并在网络出口使用NAT技术,可以有效减少网络所需的IPv4公有地址数目,NAT技术有效地缓解了IPV4公有地址短缺的问题。
  • 动态NAT、NAPT、EasyIP为私网主机访问公网提供源地址转换。
  • NATServer实现了内网主机对公网提供服务。
  • 静态NAT提供了一对一映射,支持双向互访。

练习题

企业网络在运行了一段时间后,网络管理员发现了一个现象:互联网用户通过公网地址可以正常访问Server,内网用户也可以通过内网地址正常访问Server,但内网用户无法通过公网地址访问Server,经过排查,安全策略配置都正确。请分析造成该现象的原因并提供解决方案。

1751470943137

1、内部用户访问服务器的公网IP封装

SIP=10.11.11.11(张三) DIP=200.200.200.1(李四)

2、数据会到防火墙,NAT Server

SIP=10.11.11.11 DIP=10.10.10.10(NAT Server)

SIP=200.200.200.10(NAT转换策略) DIP=10.10.10.10(NAT Server)

3、服务器回包

SIP=10.10.10.10(王五) DIP=10.11.11.11(张三)

原因:防火墙没有配置内网到内网区域的的源NAT策略。
解决方案:配置内网到内网区域的源NAT策略。
【解析】缺少域内nat,当内网终端访问服务器映射的公网iP地址后,防火墙会将目的地址转换为服务器的私网地址,并转发给内部服务器,当服务器在回包时发现对端都在内网,直接转发给终端,当PC收到此响应报文时发现并不是自己所访问的服务器(公网地址)的响应报文,会将报文丢弃,从而导致不通。解决思路是:把PC访问服务器的源IP先转换成公网IP,再发起访问。
http://www.lryc.cn/news/579289.html

相关文章:

  • 多种方法实现golang中实现对http的响应内容生成图片
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ButtonRippleEffect(按钮涟漪效果)
  • springboot切面编程
  • Softhub软件下载站实战开发(十):实现图片视频上传下载接口
  • 全角半角空格在网页中占位符和编码emsp;ensp;
  • CentOS 6操作系统安装
  • 毫米波雷达 – 深度学习
  • ubuntu 22.04 LTS 安装preempt-rt
  • C++2d我的世界V1.4
  • 模型预测专题:强鲁棒性DPCC
  • YOLOv11剪枝与量化(二)通道剪枝技术原理
  • Dify 工作流全栈解析:从零构建你的 AI 应用流程引擎
  • 【Java面试】Redis的poll函数epoll函数区别?
  • springboot 显示打印加载bean耗时工具类
  • 【大模型学习 | MINIGPT-4原理】
  • MYSQL基础内容
  • dial tcp 10.1.68.88:3306: connect: cannot assign requested address
  • Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
  • 深度剖析NumPy核心函数reshape()
  • 使用Scapy构造OSPF交互报文欺骗网络设备与主机建立Full关系
  • Python 高光谱分析工具(PyHAT)
  • 【Linux】不小心又创建了一个root权限账户,怎么将它删除?!
  • 数据结构与算法:贪心(二)
  • Docker Compose 基础——AI教你学Docker
  • 鸿蒙UI框架深度解析:对比Android/iOS的布局适配与组件设计
  • 优雅草蜻蜓T语音会议系统私有化部署方案与RTC技术深度解析-优雅草卓伊凡|clam
  • 【字节跳动】数据挖掘面试题0002:从转发数据中求原视频用户以及转发的最长深度和二叉排序树指定值
  • gin框架 中间件 是在判断路由存在前执行还是存在后执行的研究
  • 人工智能-基础篇-14-知识库和知识图谱介绍(知识库是基石、知识图谱是增强语义理解的知识库、结构化数据和非结构化数据区分)
  • ubentu服务器版本安装Dify