网络技术基础(13)——NAT网络地址转换

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 【3月更文挑战第2天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天),这篇借鉴了之前师兄的笔记,边听边记笔记实在是太慢了。

今天来回顾下之前所学的知识,将它们串联起来进行巩固。一开始了解了IP编址进行IP设置和划分网段;学习了二层以太网交换,了解了二层通信基础;学习了路由基础知识,大致了解到了路由是什么?静态路由和动态路由;然后学习了VLAN的知识,进行虚拟局域网的划分和VLAN间通过路由器子接口、物理接口、VLANIF接口进行三层通信的知识;简单了解了二层交换机中为了冗余和备份交换机线路的STP生成树协议。

image.png

现在我们可以做到什么了呢?我们应该能够通过VLAN划分网段,配置网关以及通过简单的静态或默认路由进行网络互联,需要能够做到配置IP,配置网关,配置静态路由。但是在实际工作中一般是电信光猫--出口三层设备(路由器/防火墙)--核心网关--终端接入交换机,但是之前有学习过IP编址知道IP地址划分常用有A、B、C类地址,然后在每一类地址划分了私有地址,这些地址在公网设备也就是出口设备上不会进行路由转发,那怎么解决呢,使用NAT(Network Address Translation,网络地址转换)来实现地址转换。

NAT概述

由全球IP地址分配机构,IANA (Internet Assigned Numbers Authority)管理的IPv4地址,于2011年完全用尽。但是需要连接互联网必须要IP地址,但是公网地址已经没有了,因此出现了将私网地址转换成公网地址进行网络访问的解决方法。

A、B、C类地址中各预留了一些地址专门作为私有IP地址:

  • 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

image.png

简单讲就是一个企业出口申请从运营商申请一个IP地址部署在出口三层网络设备上,内部使用私网地址网段,进行网络访问时会将内网访问的数据包IP地址转换成那个唯一的IP地址。

NAT技术原理

NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。

NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。

image.png

这里还要简单了解一下另外一个概念:端口。之前在网络参考模型知道网络是分层结构,网络层是IP协议,传输层有TCP和UDP,使用端口进行区分不同的上层数据。实际访问网络也是通过IP+端口+MAC进行区分目的地的。TCP和UDP的端口号范围都是0-65535,这意味着每个协议有65536个端口。端口号小于256的定义为常用端口,服务器一般通过常用端口号识别。大多数TCP/IP实现给临时端口号分配1024~5000之间的端口号,大于5000的端口是给其他服务预留的。常见的端口有FTP的21号端口,HTTP服务的80端口,SMTP的25端口和HTTPS的443端口。

NAT作用:

1、把内网私网IP转换为公网IP

2、隐藏内网、起到包含内网作用

3、适当缓解IPV4地址枯竭

4、解决公网设备回包路由问题

NAT分类

随着网络需要的不同可以有不同的实现方式。

静态NAT

每个私有地址都有一个与之对应固定的公有地址,私有地址和公有地址之间的关系是一对一映射。支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。

image.png
image.png

适用于有多个公网地址,内网主机较少,能够实现一对一转换的情形。

配置示例:

# 1、接口视图下配置静态NAT
[Huawei-GigabitEthernet0/0/0] nat static  global {
   
    global-address} inside {
   
   host-address } 

# 2、也可以在系统视图下配置静态NAT
[Huawei] nat static  global {
   
    global-address} inside {
   
   host-address } 

# 还要在接口开启
[Huawei-GigabitEthernet0/0/0] nat static enable

动态NAT

动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。

当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。

image.png
image.png

配置示例:

# 创建地址池,配置公有地址范围,其中group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址
[Huawei] nat address-group group-index start-address end-address

# 创建ACL,只有匹配上ACL才进行NAT转换
[Huawei] acl number
[Huawei-acl-basic-number ] rule permit source  source-address source-wildcard

# 接口视图下配置带地址池的NAT Outbound,no-pat参数指定不进行端口转换
[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [ no-pat ]

# 查看转换信息
dis nat session all

ACL下次进行学习,大概意思就是只有指定主机才会进行转换。

动态NAT就是将多个可用的公网地址设置成一个地址池,内网主机需要访问外网时,选择一个闲置状态的IP地址并生成NAT表项,当地址不使用时再释放。

动态NAT还是基于地址一对一进行转发,要等待连接释放才能进行下一个地址转发,效率较低,比如内网主机100个,公网IP4个,那就效率很低了,虽然实际转发速度很快。

NAPT

动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。

NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。

实际网络访问只需要一个端口或者几个端口即可进行网络访问,因此只需要进行端口的转换即可,一个TCP和UDP端口范围为0-65535,进行端口的转发可以实现效率的提升。

image.png
image.png
image.png

配置示例:

# 在动态NAT的配置上不添加--no-pat即可
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1

简单以访问百度网页为例讲一下端口通信:

  • 主机从1024-65535之间范围起一个端口,如55508

  • 目的地为百度www.baidu.com,目的端口http:80,https:443

  • 出口地址:111.21.8.5,192.168.1.1:55508-->111.21.8.5:62105 --> www.baidu.com:443

  • 出口设备记录转换表项,百度返回数据进行对应的转换

Easy IP

Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。

Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。

这个实际才是工作中常见方式,通过电信的光猫自动获取到一个地址,进行源IP和源端口的转换,没有自己的公网地址。

image.png

配置示例:

# 示例,将当前接口地址作为公网地址进行源ip和端口的映射
[R1-GigabitEthernet0/0/1]nat outbound 2000

NAT Server

上面的动态地址转换与端口转换是自动转换端口,不能指定端口的对应关系,这时候如果内网有服务器需要发布到公网对外就需要使用NAT Server。

NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。

外网主机主动访问[公有地址:端口]实现对内网服务器的访问。

image.png
image.png

简单来说就是指定内网服务器地址和端口映射到公网地址的指定端口,供外部访问公网地址对应端口实现服务发布。

配置示例:

# 进入对应接口
[R1]interface GigabitEthernet0/0/1 

# 配置地址
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24

# 指定映射TCP/UDP协议,指定内网地址和公网地址和端口
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 202.10.10.1 80 inside 192.168.1.1 8080

一般适用于有固定公网地址,用于对外发布服务提供公网访问,一个公网地址可以映射多个端口。

典型网络配置实验

拓扑图如下:

image.png

配置示例:

核心交换机


# 核心交换机配置VLAN与网关地址,下联交换机配置trunk,上联路由器配置ACCESS VLAN 30
interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
#
interface Vlanif30
 ip address 10.0.0.2 255.255.255.252
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 30
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 10 20

# 配置默认路由指向路由器
ip route-static 0.0.0.0 0.0.0.0 10.0.0.1

出口路由器:

# 配置接口地址和NAT
interface GigabitEthernet0/0/0
 ip address 122.12.1.1 255.255.255.252 
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip address 10.0.0.1 255.255.255.252 


# 配置路由,向外的默认路由和会内网的静态路由
ip route-static 0.0.0.0 0.0.0.0 122.12.1.2
ip route-static 192.168.10.0 255.255.255.0 10.0.0.2
ip route-static 192.168.20.0 255.255.255.0 10.0.0.2

# ACL
acl number 2000  
 rule 5 permit

Internet:

# 中间路由器不需要额外配置
interface GigabitEthernet0/0/0
 ip address 122.12.1.2 255.255.255.252 
#
interface GigabitEthernet0/0/1
 ip address 23.12.1.2 255.255.255.252

百度:

# 配置地址和默认路由
interface GigabitEthernet0/0/1
 ip address 23.12.1.1 255.255.255.252 

#
ip route-static 0.0.0.0 0.0.0.0 23.12.1.2

实际情况下一个企业只有一个或者几个公网地址,为了内网主机的私网地址能够访问互联网需要在出口设备进行NAT地址转换,实际情况中采用NAPT和Easy IP进行地址和端口同时转换,然后如果有内部服务器需要对外提供访问可以通过NAT Server进行端口一对一映射。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
基于阿里云,构建一个企业web应用上云经典架构,让IT从业者体验企业级架构的实战训练。
相关文章
|
9天前
|
安全 数据安全/隐私保护 网络架构
ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
|
9天前
ENSP Nat地址转换(配置命令 )
ENSP Nat地址转换(配置命令 )
|
9天前
|
监控 安全 测试技术
【亮剑】在网络技术日益发展的今天,端口映射已成为家庭和企业网络环境中不可或缺的一项技术。
【4月更文挑战第30天】本文介绍了端口映射(Port Forwarding)的概念,它是NAT技术的一种,用于让外部设备访问内部网络服务。端口映射广泛应用于远程桌面、网络游戏、视频监控和个人服务器托管等场景。操作步骤包括登录路由器管理界面、设置映射规则、保存并启用规则,以及测试映射效果。虽然端口映射能扩大网络应用,但也可能带来安全风险,因此需谨慎管理和设置安全措施。
|
9天前
|
网络协议 网络安全 网络虚拟化
【专栏】了解网络技术这十个术语有助于掌握网络技术原理,适应不断发展的网络技术并创造更多价值
【4月更文挑战第28天】本文介绍了10个关键的网络技术术语,包括IP地址、子网掩码、DNS、防火墙、VPN、路由器、交换机、HTTP、TCP/IP和云计算,帮助读者理解网络基础和安全,以应对数字化时代挑战。了解这些术语有助于掌握网络技术原理,适应不断发展的网络技术并创造更多价值。
|
9天前
|
运维 安全 网络架构
【专栏】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性
【4月更文挑战第28天】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性。本文阐述了五大NAT类型:全锥形NAT(安全低,利于P2P)、限制锥形NAT(增加安全性)、端口限制锥形NAT(更安全,可能影响协议)、对称NAT(高安全,可能导致兼容性问题)和动态NAT(公网IP有限时适用)。选择NAT类型需考虑安全性、通信模式、IP地址数量和设备兼容性,以确保网络高效、安全运行。
|
9天前
|
网络架构
【专栏】网络技术:网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响
【4月更文挑战第28天】本文探讨了网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响。两者关系可比喻为道路车道数与车辆速度。了解这些有助于优化网络体验,如选择合适带宽、升级硬件、使用有线连接、管理带宽占用和连接时机。理解二者差异能帮助我们更好地评估网络服务并提升上网效率。
|
9天前
NewH3C—网络地址转换(NAT)
NewH3C—网络地址转换(NAT)
|
9天前
|
边缘计算 人工智能 监控
《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)
《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)
36 2
|
9天前
|
传感器 安全 物联网
《计算机网络简易速速上手小册》第9章:物联网(IoT)与网络技术(2024 最新版)
《计算机网络简易速速上手小册》第9章:物联网(IoT)与网络技术(2024 最新版)
41 2
|
9天前
|
网络协议 开发工具 Docker
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
19 1