网络技术基础(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从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
1月前
|
负载均衡 安全 网络安全
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
86 3
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
运维 负载均衡 安全
|
2月前
|
网络协议 安全 网络安全
Cisco-网络端口地址转换NAPT配置
Cisco-网络端口地址转换NAPT配置
|
2月前
|
安全 网络安全 数据安全/隐私保护
Cisco-网络地址转换动态NAT
Cisco-网络地址转换动态NAT
|
5天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
42 17
|
16天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
17天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
39 10
|
18天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
45 10
下一篇
DataWorks