0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你彻底了解NAT技术

Linux爱好者 来源:网络技术平台 作者:Fox 2021-05-10 17:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

初识 NATIP 地址分为公网地址和私有地址。公网地址有 IANA 统一分配,用于连接互联网;私有地址可以自由分配,用于私有网络内部通信

bace560e-b0bf-11eb-bf61-12bb97331649.png

私网和公网

随着互联网用户的快速增长,2019 年 11 月 25 日全球的公网 IPv4 地址已耗尽。在 IPv4 地址耗尽前,使用 NAT( Network Address Translation )技术解决 IPv4 地址不够用的问题,并持续至今。

NAT 技术的是将私有地址转换成公网地址,使私有网络中的主机可以通过少量公网地址访问互联网。

但 NAT只是一种过渡技术,从根本上解决问题,是采用支持更大地址空间的下一代 IP 技术,即 IPv6 协议,它提供了几乎用不完的地址空间。

bb076c5a-b0bf-11eb-bf61-12bb97331649.png

NAT技术

NAT 技术IP 地址中预留了 3 个私有地址网段,在私有网络内,可以任意使用。

bb3c98da-b0bf-11eb-bf61-12bb97331649.png

私有地址范围

其余的 IP 地址可以在互联网上使用,由 IANA 统一管理,称为公网地址。

bb47e7d0-b0bf-11eb-bf61-12bb97331649.png

公网地址范围

NAT 解决了 IPv4 地址不够用的问题,另外 NAT 屏蔽了私网用户真实地址,提高了私网用户的安全性。

典型的 NAT 组网模型,网络通常是被划分为私网和公网两部分,各自使用独立的地址空间。私网使用私有地址 10.0.0.0/24 ,而公网使用公网地址。为了让主机 A 和 B 访问互联网上的服务器 Server ,需要在网络边界部署一台 NAT 设备用于执行地址转换。NAT 设备通常是路由器或防火墙。

bb5460be-b0bf-11eb-bf61-12bb97331649.png

典型NAT组网

基本 NAT

基本 NAT 是最简单的一种地址转换方式,它只对数据包的 IP 层参数进行转换,它可分为静态 NAT 和动态 NAT 。

静态 NAT 是公网 IP 地址和私有 IP 地址有一对一的关系,一个公网 IP 地址对应一个私有 IP 地址,建立和维护一张静态地址映射表。

动态 NAT 是公网 IP 地址和私有 IP 地址有一对多的关系,同一个公网 IP 地址分配给不同的私网用户使用,使用时间必须错开。它包含一个公有 IP 地址池和一张动态地址映射表。

举个动态 NAT 栗子

私网主机 A( 10.0.0.1 )需要访问公网的服务器 Server( 61.144.249.229 ),在路由器 RT 上配置 NAT ,地址池为 219.134.180.11 ~ 219.134.180.20 ,地址转换过程如下:

bb9e327a-b0bf-11eb-bf61-12bb97331649.png

基本NAT

A 向 Server 发送报文,网关是 10.0.0.254 ,源地址是 10.0.0.1 ,目的地址是 61.144.249.229 。

bbcb115a-b0bf-11eb-bf61-12bb97331649.png

A发包

RT 收到 IP 报文后,查找路由表,将 IP 报文转发至出接口,由于出接口上配置了 NAT ,因此 RT 需要将源地址 10.0.0.1 转换为公网地址。

bbd6858a-b0bf-11eb-bf61-12bb97331649.png

RT收包

RT 从地址池中查找第一个可用的公网地址 219.134.180.11 ,用这个地址替换数据包的源地址,转换后的数据包源地址为 219.134.180.11 ,目的地址不变。同时 RT 在自己的 NAT 表中添加一个表项,记录私有地址 10.0.0.1 到 公网地址 219.134.180.11 的映射。RT 再将报文转发给目的地址 61.144.249.229 。

bc251fc4-b0bf-11eb-bf61-12bb97331649.png

NAT转换

Server 收到报文后做相应处理。

Server 发送回应报文,报文的源地址是 61.144.249.229 ,目的地址是 219.134.180.11 。

bc3179e0-b0bf-11eb-bf61-12bb97331649.png

Server发回应包

RT 收到报文,发现报文的目的地址 219.134.180.11 在 NAT 地址池内,于是检查 NAT 表,找到对应表项后,使用私有地址 10.0.0.1 替换公网地址 219.134.180.11,转换后的报文源地址不变,目的地址为 10.0.0.1 。RT 在将报文转发给 A 。

bc3eb9f2-b0bf-11eb-bf61-12bb97331649.png

NAT转换

A 收到报文,地址转换过程结束。

bc714b88-b0bf-11eb-bf61-12bb97331649.png

A收包

如果 B 也要访问 Server ,则 RT 会从地址池中分配另一个可用公网地址 219.134.180.12 ,并在 NAT 表中添加一个相应的表项,记录 B 的私有地址 10.0.0.2 到公网地址 219.134.180.12 的映射关系。

bc8d16d8-b0bf-11eb-bf61-12bb97331649.png

B的NAT转换

NAPT

在基础 NAT 中,私有地址和公网地址存在一对一地址转换的对应关系,即一个公网地址同时只能分配给一个私有地址。它只解决了公网和私网的通信问题,并没有解决公网地址不足的问题。

bcbefc8e-b0bf-11eb-bf61-12bb97331649.png

NAT表

NAPT( Network Address Port Translation )对数据包的 IP 地址、协议类型、传输层端口号同时进行转换,可以明显提高公网 IP 地址的利用率。

bcc7b1b2-b0bf-11eb-bf61-12bb97331649.png

NAPT的NAT表

举个栗子

私网主机 A( 10.0.0.1 )需要访问公网的服务器 Server 的 WWW 服务( 61.144.249.229 ),在路由器 RT 上配置 NAPT ,地址池为 219.134.180.11 ~ 219.134.180.20 ,地址转换过程如下:

A 向 Server 发送报文,网关是 RT( 10.0.0.254 ),源地址和端口是 10.0.0.1:1024 ,目的地址和端口是 61.144.249.229:80 。

bcd2dfb0-b0bf-11eb-bf61-12bb97331649.png

A发包

RT 收到 IP 报文后,查找路由表,将 IP 报文转发至出接口,由于出接口上配置了 NAPT ,因此 RT 需要将源地址 10.0.0.1:1024 转换为公网地址和端口。

RT 从地址池中查找第一个可用的公网地址 219.134.180.11 ,用这个地址替换数据包的源地址,并查找这个公网地址的一个可用端口,例如 2001 ,用这个端口替换源端口。转换后的数据包源地址为 219.134.180.11:2001 ,目的地址和端口不变。同时 RT 在自己的 NAT 表中添加一个表项,记录私有地址 10.0.0.1:1024 到 公网地址 219.134.180.11:2001 的映射。RT 再将报文转发给目的地址 61.144.249.229 。

bce6bf4e-b0bf-11eb-bf61-12bb97331649.png

NAPT转换

Server 收到报文后做相应处理。

Server 发送回应报文,报文的源地址是 61.144.249.229:80 ,目的地址是 219.134.180.11:2001 。

bcfd78a6-b0bf-11eb-bf61-12bb97331649.png

Server发回应包

RT 收到报文,发现报文的目的地址在 NAT 地址池内,于是检查 NAT 表,找到对应表项后,使用私有地址和端口 10.0.0.1:1024 替换公网地址 219.134.180.11:2001,转换后的报文源地址和端口不变,目的地址和端口为 10.0.0.1:1024 。RT 再将报文转发给 A 。

bd168166-b0bf-11eb-bf61-12bb97331649.png

NAPT转换

A 收到报文,地址转换过程结束。

如果 B 也要访问 Server ,则 RT 会从地址池中分配同一个公网地址 219.134.180.11 ,但分配另一个端口 3001 ,并在 NAT 表中添加一个相应的表项,记录 B 的私有地址 10.0.0.2:1024 到公网地址 219.134.180.12:3001 的映射关系。

bd23c8d0-b0bf-11eb-bf61-12bb97331649.png

B的NAPT转换

Easy IP

在标准的 NAPT 配置中需要创建公网地址池,也就是必须先知道公网 IP 地址的范围。而在拨号接入的上网方式中,公网 IP 地址是有运营商动态分配的,无法事先确定,标准的 NAPT 无法做地址转换。要解决这个问题,就要使用 Easy IP 。

Easy IP 又称为基于接口的地址转换。在地址转换时,Easy IP 的工作原理与 NAPT 相同,对数据包的 IP 地址、协议类型、传输层端口号同时进行转换。但 Easy IP 直接使用公网接口的 IP 地址作为转换后的源地址。Easy IP 适用于拨号接入互联网,动态获取公网 IP 地址的场合。

bd304b00-b0bf-11eb-bf61-12bb97331649.png

Easy IP

Easy IP 无需配置地址池,只需要配置一个 ACL(访问控制列表),用来指定需要进行 NAT 转换的私有 IP 地址范围。

NAT Server

从基本 NAT 和 NAPT 的工作原理可知,NAT 表项由私网主机主动向公网主机发起访问而生成,公网主机无法主动向私网主机发起连接。因此 NAT 隐藏了内部网络结构,具有屏蔽主机的作用。但是在实际应用中,内网网络可能需要对外提供服务,例如 Web 服务,常规的 NAT 就无法满足需求了。

为了满足公网用户访问私网内部服务器的需求,需要使用 NAT Server 功能,将私网地址和端口静态映射成公网地址和端口,供公网用户访问。

bd3aec04-b0bf-11eb-bf61-12bb97331649.png

NAT Server

举个栗子

A 的私网地址为 10.0.0.1 ,端口 8080 提供 Web 服务,在对公网提供 Web 服务时,要求端口号为 80 。在 NAT 设备上启动 NAT Server 功能,将私网 IP 地址和端口 10.0.0.1:8080 映射成公网 IP 地址和端口 219.134.180.11:80 ,这样公网主机 C 就可以通过 219.134.180.11:80 访问 A 的 Web 服务。

NAT ALG

基本 NAT 和 NAPT 只能识别并修改 IP 报文中的 IP 地址和端口号信息,无法修改报文内携带的信息,因此对于一些 IP 报文内携带网络信息的协议,例如 FTP 、DNS 、SIP 、H.323 等,是无法正确转换的。

ALG 能够识别应用层协议内的网络信息,在转换 IP 地址和端口号时,也会对应用层数据中的网络信息进行正确的转换。

举个栗子:ALG 处理 FTP 的 Active 模式

FTP 是一种基于 TCP 的协议,用于在客户端和服务器间传输文件。FTP 协议工作时建立 2 个通道:Control 通道和 Data 通道。Control 用于传输 FTP 控制信息,Data 通道用于传输文件数据。

私网 A( 10.0.0.1 )访问公网 Server( 61.144.249.229 )的 FTP 服务,在 RT 上配置 NAPT,地址池为 219.134.180.11 ~ 219.134.180.20 ,地址转换过程如下:

bd46f4ea-b0bf-11eb-bf61-12bb97331649.png

NAT ALG

A 发送到 Server 的 FTP Control 通道建立请求,报文源地址和端口为 10.0.0.1:1024 ,目的地址和端口为 61.144.249.229:21 ,携带数据是 “ IP = 10.0.0.1 port=5001 ”,即告诉 Server 自己使用 TCP 端口 5001 传输 Data。

bd522748-b0bf-11eb-bf61-12bb97331649.png

A发包

RT 收到报文,建立 10.0.0.1:1024 到 219.134.180.11:2001 的映射关系,转换源 IP 地址和 TCP 端口。根据目的端口 21 ,RT 识别出这是一个 FTP 报文,因此还要检查应用层数据,发现原始数据为 “ IP = 10.0.0.1 port=5001 ”,于是为 Data 通道 10.0.0.1:5001 建立第二个映射关系:10.0.0.1:5001 到 219.134.180.11:2002 ,转换后的报文源地址和端口为 219.134.180.11:2001 ,目的地址和端口不变,携带数据为 “ IP = 219.134.180.11 port=2002 ”。

bd93d0ee-b0bf-11eb-bf61-12bb97331649.png

NAT ALG转换

Server 收到报文,向 A 回应 command okay 报文,FTP Control 通道建立成功。同时 Server 根据应用层数据确定 A 的 Data 通道网络参数为 219.134.180.11:2002 。

A 需要从 FTP 服务器下载文件,于是发起文件请求报文。Server 收到请求后,发起 Data 通道建立请求,IP 报文的源地址和端口为 61.144.249.229:20 ,目的地址和端口为 219.134.180.11:2002,并携带 FTP 数据。

bda33cb4-b0bf-11eb-bf61-12bb97331649.png

Data通道

NAT 实战基本 NAT 实验

实验拓扑图

bdebcc22-b0bf-11eb-bf61-12bb97331649.png

拓扑图

实验要求

ENSP 模拟

PC 通过公网地址访问互联网

实验步骤

根据接口 IP 地址表,配置各个设备的接口地址。

bdf74908-b0bf-11eb-bf61-12bb97331649.png

IP地址表

be02343a-b0bf-11eb-bf61-12bb97331649.png

PC配置

be0d3eb6-b0bf-11eb-bf61-12bb97331649.png

RT配置

bf57e50a-b0bf-11eb-bf61-12bb97331649.png

ISP配置

在 RT 上配置 NAT 配置。

bfb49d18-b0bf-11eb-bf61-12bb97331649.png

NAT配置

配置基本 NAT 只需要一条命令:把私有 IP 地址转换成公网 IP 地址,在接口视图下配置 nat static global global-address inside host-address 命令。默认路由是网关路由器上的常见配置。使用 display nat static 命令查看 RT 上的静态 NAT 配置。

在 PC 上验证联网功能。

c011387a-b0bf-11eb-bf61-12bb97331649.png

PC验证结果

抓包查看 NAT 转换效果。分别抓包 RT 的内网口 G0/0/0 和外网口 G0/0/1 的报文,看出发送的 Echo Request 报文和接收的 Echo Reply 报文都有进行 NAT 转换。

c31b4b6e-b0bf-11eb-bf61-12bb97331649.png

RT内网口抓包

c34e2fd4-b0bf-11eb-bf61-12bb97331649.png

RT外网口抓包

NAPT 实验

实验拓扑图

c35b04fc-b0bf-11eb-bf61-12bb97331649.png

拓扑图

实验要求

RT 使用 NAPT 功能

ISP 分配 4 个可用的公网地址:202.0.0.3 ~ 202.0.0.6

VLAN 10 的用户使用两个公网地址

VLAN 20 的用户使用另外两个公网地址

实验步骤

根据接口 IP 地址表,配置各个设备的接口地址。配置命令可参考上一个实验步骤 1 。

c363ee96-b0bf-11eb-bf61-12bb97331649.png

IP地址表

在 RT 上配置 NAPT 配置。

c36f818e-b0bf-11eb-bf61-12bb97331649.png

NAPT配置

在 NAPT 的配置中,使用基本 ACL 来指定私有 IP 地址范围。ACL 2010 指定 VLAN 10 的 IP 地址空间,ACL 2020 指定 VLAN 20 的 IP 地址空间。使用 nat address-group group-index start-address end-address 命令指定公网 IP 地址范围,分别指定了两个 NAT 地址组,编号分别选择了 1 和 2 。在外网接口上,使用 nat outbound acl-number address-group group-index ,绑定 NAT 转换关系。

使用 display nat address-group 命令查看 RT 上的 NAT 地址组配置。命令 display nat outbound 查看出方向 NAT 的转换关系。

分别在 PC10 和 PC 20 上验证上网功能。

c3a47894-b0bf-11eb-bf61-12bb97331649.png

PC10验证结果

c3b9fe4e-b0bf-11eb-bf61-12bb97331649.png

PC20验证结果

抓包查看 NAT 转换效果。分别抓包 RT 的内网口 G0/0/1 和外网口 G0/0/0 的报文,查看 VLAN 10 的用户出发送的 Echo Request 报文和接收的 Echo Reply 报文都有进行 NAT 转换。

c3c933be-b0bf-11eb-bf61-12bb97331649.png

RT内网口VLAN10抓包

c3fc708a-b0bf-11eb-bf61-12bb97331649.png

RT外网口抓包

其它常用 NAT 命令

NAT Server 是在接口视图下配置,命令格式为:nat server protocol { tcp | udp } global global-address global-port inside host-address host-port 。

检查 NAT Server 配置信息命令:display nat server 。

检查 NAT 会话命令:display nat session all 。

启动 NAT ALG 功能命令:nat alg all enable 。

查看 NAT ALG 功能命令:display nat alg 。

原文标题:42张图详解 NAT : 换个马甲就能上网

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    8130

    浏览量

    93088
  • NAT
    NAT
    +关注

    关注

    0

    文章

    166

    浏览量

    17092

原文标题:42张图详解 NAT : 换个马甲就能上网

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NAT网关与网段隔离器有什么联系

    景三个维度展开分析: 、功能定位:互补性技术设计 NAT网关 核心功能是 网络地址转换(NAT) ,通过将私有IP地址转换为公有IP地址,实现私有网络与公共网络的通信。其典型应用包括
    的头像 发表于 10-21 14:03 244次阅读

    如何使用ipv4_nat模块实现SNAT转发?

    用的是rt-thread的3.1.0版本,c-sky 803S平台,有两个网口,NAT前两个网口的配置分别如下 char * argument_list0[] = {\"ifconfig
    发表于 09-29 06:08

    带你了解海凌科毫米波雷达

    什么是毫米波雷达?毫米波雷达有什么特点?毫米波雷达有什么作用?海凌科有哪些系列毫米波雷达?带你了解!毫米波的定义毫米波是指频率在30GHz至300GHz之间、波长为1~10毫米的电
    的头像 发表于 08-11 12:04 1090次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>海凌科毫米波雷达

    带你了解什么是机器视觉网卡

    机器视觉网卡通常指的是在机器视觉系统中用于连接工业相机到计算机的以太网卡。它的核心作用是实现高速、稳定、低延迟的图像数据传输。以下是关于机器视觉网卡的关键信息:1.核心功能:高速图像传输:处理来自千兆以太网或万兆以太网相机产生的大量图像数据流。万兆网卡能提供更高的带宽,满足高分辨率、高帧率相机的需求。支持GigEVision协议:这是机器视觉领域最重要的工业
    的头像 发表于 07-09 16:18 416次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>什么是机器视觉网卡

    带你了解电源测试系统的功能!

    在当今电子与电力技术飞速发展的时代,各类电子设备、电力系统以及新能源相关产品的研发、生产和维护过程中,电源测试系统扮演着至关重要的角色。本文将带你了解源仪电子的电源测试系统的功能。
    的头像 发表于 07-02 09:10 623次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>电源测试系统的功能!

    带你了解工业计算机尺寸

    项艰巨的任务。本博客将指导您了解关键的工业计算机尺寸、使用案例。关键工业计算机外形要素及其使用案例、工业微型PC尺寸范围:宽度:100毫米-180毫米深度:10
    的头像 发表于 04-24 13:35 790次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>工业计算机尺寸

    带你了解芯片开封技术

    芯片开封的定义芯片开封,即Decap,是种对完整封装的集成电路(IC)芯片进行局部处理的工艺。其目的是去除芯片的封装外壳,暴露出芯片内部结构,同时确保芯片功能不受损。芯片开封是芯片故障分析实验
    的头像 发表于 04-07 16:01 1005次阅读
    <b class='flag-5'>带你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>芯片开封<b class='flag-5'>技术</b>

    带你全面了解陶瓷电路板厚膜工艺

    陶瓷电路板厚膜工艺是种先进的印刷电路板制造技术,广泛应用于电子、通信、航空航天等领域。本文将详细介绍陶瓷电路板厚膜工艺的原理、流程、优势以及应用,带您全面了解一技术……
    的头像 发表于 03-17 16:30 1034次阅读

    Arm带你了解2025年及未来在不同技术市场的关键技术方向

    Arm 对未来技术的发展方向及可能出现的趋势有着广泛而深刻的洞察。在上周的文章中,我们预测了 AI 和芯片设计方面的未来趋势,本期将带你深入了解 2025 年及未来在不同技术市场的关键
    的头像 发表于 01-24 16:14 1861次阅读

    带你了解什么是灯具检测测试

    在灯具制造业中,技术检验是确保产品符合安全和质量标准的基石。本文将深入探讨灯具产品在技术检验中需遵循的各项测试要求和行业标准,以保障其在市场上的可靠性和竞争力。两种规格的高压测试1.UL/cUL普通
    的头像 发表于 01-15 15:34 2053次阅读
    <b class='flag-5'>带你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>什么是灯具检测测试

    带你了解arm主板

    当您听到“ARM主板”词时,您可能会想知道它与大多数个人计算机中使用的典型x86主板有何不同。事实是,ARM主板在从智能手机和平板电脑到服务器和嵌入式系统等各种应用中越来越受欢迎。但是什么让它们
    的头像 发表于 01-02 10:51 965次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>arm主板

    带你了解什么是引线键合(WireBonding)技术

    微电子封装中的引线键合技术引线键合技术在微电子封装领域扮演着至关重要的角色,它通过金属线将半导体芯片与外部电路相连,实现电气互连和信息传递。在理想条件下,金属引线与基板之间的连接可以达到原子级别的键
    的头像 发表于 12-24 11:32 2658次阅读
    <b class='flag-5'>带你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>什么是引线键合(WireBonding)<b class='flag-5'>技术</b>?

    带你了解FIB技术

    FIB技术定义聚焦离子束(FocusedIonBeam,FIB)技术种先进的微纳加工技术,它利用高度聚焦的离子束对材料进行精确的加工、分析和成像。FIB
    的头像 发表于 12-20 12:55 3950次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>了解</b>FIB<b class='flag-5'>技术</b>

    了解三菱电机高压SiC芯片技术

    三菱电机开发了高耐压SiC MOSFET,并将其产品化,率先将其应用于驱动铁路车辆的变流器中,是家在市场上拥有良好业绩记录的SiC器件制造商。本篇带你了解三菱电机高压SiC芯片技术
    的头像 发表于 12-18 17:35 1814次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>三菱电机高压SiC芯片<b class='flag-5'>技术</b>

    NAT技术为什么会对IP地址查询造成干扰

    利用价值。但是有技术会对IP地址查询造成干扰,今天就来聊NAT技术。 ·NAT
    的头像 发表于 12-18 10:36 834次阅读
    <b class='flag-5'>NAT</b><b class='flag-5'>技术</b>为什么会对IP地址查询造成干扰