首页 > 其他分享 >华为路由器配置NAT,PAT

华为路由器配置NAT,PAT

时间:2023-10-19 15:15:47浏览次数:31  
标签:GW PAT nat 主机 报文 地址 NAT 路由器

NAT概述

NAT(Network Address Translation)又称为网络地址转换,用于实现私有网络和公有网络之间的互访。

私有网络地址和公有网络地址
私有网络地址(以下简称私网地址)是指内部网络或主机的IP地址,公有网络地址(以下简称公网地址)是指在互联网上全球唯一的IP地址。IANA(Internet Assigned Number Authority)规定将下列的IP地址保留用作私网地址,不在Internet上被分配,可在一个单位或公司内部使用。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

NAT基本原理

内部网络的地址是10.0.0.0网段,而对外的公有网络IP地址是203.196.3.23。内部的主机10.1.1.48访问外部HTTP服务器202.18.245.251,主机10.1.1.48发出一个数据报文,随机选择一个源端口6084,目的端口为80。在经过NAT设备后,该报文的源地址和端口可能改为203.196.3.23:32814,目的地址与端口不改变。在NAT设备中维护着一张地址和端口对应表,也称为转换表项,或转换槽位,当外部网络的WWW服务器返回数据包时,NAT设备检查转换表项,将数据报文中目的IP地址及端口转化为10.1.1.48:6084。实现了内部主机10.1.1.48访问外部服务器。

 

路由器支持NAT类型

静态NAT、PAT、内部服务器、NAT ALG功能、NAT过滤、NAT映射、Easy IP、两次NAT及NAT多实例。

静态NAT

静态NAT实现私网地址和公网地址的一对一转换。有多少个私网地址就需要配置多少个公网地址。静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。
内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址;外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为相应的私网地址

PAT

PAT又称为NAPT(Network Address Port Translation),它实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址。PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。

PAT需要维护一张私网地址和端口的映射表。当不同的私网地址向外发送报文时,PAT将报文的源IP地址替换为相同公网地址,但源端口号被替换为不同的端口号;当外部网络向内部网络发送响应报文时,PAT根据报文的目的端口号,将报文的目的IP地址替换为不同的私网地址,如下图

 

内部服务器

通过配置内部服务器,可将相应的外部地址、端口等映射到内部的服务器上,提供了外部网络主机访问内部服务器的功能例如可以使用202.110.10.10作为Web服务器的外部地址,使用202.110.10.11作为FTP服务器的外部地址,甚至还可以使用202.110.10.12:8080这样的地址作为Web的外部地址。还可为外部用户提供多台同样的服务器,如提供多台Web服务器

NAT过滤

NAT过滤是指NAT设备对外网发到内网的流量进行过滤,即当私网主机向某公网主机发起访问后,公网主机发向私网主机的流量经过NAT设备时会进行过滤。

Easy IP

当进行地址转换时,直接使用接口的公有IP地址作为转换后的源地址。同样它也利用访问控制列表控制哪些内部地址可以进行地址转换

地址转换应用层网关

地址转换会导致许多对NAT敏感的应用协议无法正常工作,必须针对该协议进行特殊的处理。所谓对NAT敏感的协议是指该协议的某些报文的有效载荷中携带IP地址和(或)端口号,如果不进行特殊处理,将会影响后继的协议交互。
地址转换应用层网关NAT ALG(NAT Application Level Gateway)是解决特殊协议穿越NAT的一种常用方式,该方法按照地址转换规则,对载荷中的IP地址和端口号进行替换,从而实现对该协议的透明中继。NAT ALG支持DNS、FTP协议、RTSP(Real-Time Streaming Protocol )和SIP(Session Initiation Protocol )如下图:

 

两次NAT

常规地址转换技术只转换报文的源地址或目的地址,而两次NAT(Twice NAT)技术可以将报文的源地址和目的地址同时转换,该技术应用于内部网络主机地址与公网上主机地址重叠的情况。如图所示:内部网络主机PC1和公网上主机PC3的地址重叠。这种情况下,内部网络主机PC2访问主机PC3的报文不会到达目的主机,而会被错误的转发到主机PC1上。两次NAT技术通过在NAT设备上配置重叠地址池到临时地址的映射关系(在实现常规NAT的基础上),将重叠地址转换为唯一的临时地址,来保证报文的正确转发。

在NAT设备上配置两次NAT:
第一步:配置常规NAT(多对多地址转换)。配置NAT地址池200.0.0.1~200.0.0.100,并应用到广域网接口。
第二步:配置一组重叠地址到临时地址的映射。10.0.0.0<-->3.0.0.0。
此映射表示,重叠地址池与临时地址池一一对应,转换规则为:
临时地址 = 临时地址池首地址 +(重叠地址 – 重叠地址池首地址)
重叠地址 = 重叠地址池首地址 +(临时地址 – 临时地址池首地址)
当内部主机PC2直接用域名访问公网上的主机PC3时,报文的处理流程如下:
PC2发送解析域名为www.web.com的Web服务器的DNS请求,经公网DNS服务器解析后,NAT设备收到DNS服务器的响应报文。NAT设备检查DNS响应报文载荷中的解析回来的地址10.0.0.1,经检查该地址为重叠地址(与重叠地址池匹配),将地址10.0.0.1转换为对应的临时地址3.0.0.1。之后再对DNS响应报文进行目的地址转换(常规NAT处理),发送给PC2。
PC2用www.web.com对应的临时地址3.0.0.1发起访问,当报文到达NAT设备时,先转换报文的源地址(常规NAT处理),再将报文的目的地址即临时地址,转换为对应的重叠地址10.0.0.1。将报文送到广域网出接口,并经广域网逐跳转发至主机PC3。
当PC3给PC2返回的报文到NAT设备时,先检查报文的源地址10.0.0.1,该地址为重叠地址(与重叠地址池匹配),则将源地址转换为对应的临时地址3.0.0.1。之后再对返回报文的目的地址进行常规NAT转换,并发送给PC2。

VPN关联的源NAT

华为路由器的NAT不仅可以使内部网络的用户访问外部网络,还允许分属于不同VPN的用户通过同一个出口访问外部网络,能够解决内部网络中IP地址重叠的VPN同时访问外网主机的问题。

VPN关联的NAT Server

华为路由器的NAT支持VPN关联的NAT server,提供给外部网络访问VPN内主机的机会,能够支持内网多个VPN地址重叠的场景。

实验拓扑如下:

 NAT Outbound配置实例:

system-view
[GW]nat address-group 0 202.100.1.100 202.100.1.200
[GW]acl number 2000
[GW-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[GW-GigabitEthernet0/0/0]int g0/0/1
[GW-GigabitEthernet0/0/1] nat outbound 2000 address-group 0 no-pat
注:no-pat表示一对一转换,只转换地址,不转换端口,直接回车表示IP和端口都做转换。

 测试:

telnet 202.100.1.1
Press CTRL_] to quit telnet mode
Trying 202.100.1.1 …
Connected to 202.100.1.1 …
Login authentication
Password:

display users
User-Intf Delay Type Network Address AuthenStatus AuthorcmdFlag
+ 0 CON 0 00:00:00 pass Username : Unspecified

129 VTY 0 00:00:02 TEL 202.100.1.101 pass Username : Unspecified

display nat outbound
NAT Outbound Information:

Interface Acl Address-group/IP/Interface Type

GigabitEthernet0/0/1 2000 0 no-pat

Total : 1

display nat session all ====查看转换表项
NAT Session Table Information:
Protocol : TCP(6)
SrcAddr Port Vpn : 192.168.1.1 59335
DestAddr Port Vpn : 202.100.1.1 5888
NAT-Info
New SrcAddr : 202.100.1.101
New SrcPort : —-
New DestAddr : —-
New DestPort : —-

[GW]reset nat session all ===清除转换表项
Warning:The current all NAT sessions will be deleted.
Are you sure to continue?[Y/N]y

 Easy IP配置实例:

[GW]int g0/0/1
[GW-GigabitEthernet0/0/1]nat outbound 2000

 测试:

telnet 202.100.1.1
Press CTRL_] to quit telnet mode
Trying 202.100.1.1 …
Connected to 202.100.1.1 …

Login authentication
Password:

display users
User-Intf Delay Type Network Address AuthenStatus AuthorcmdFlag
+ 0 CON 0 00:00:00 pass Username : Unspecified

129 VTY 0 00:00:11 TEL 202.100.1.10 pass Username : Unspecified

display nat session all
NAT Session Table Information:
Protocol : TCP(6)
SrcAddr Port Vpn : 192.168.1.1 54467
DestAddr Port Vpn : 202.100.1.1 5888
NAT-Info
New SrcAddr : 202.100.1.10
New SrcPort : 10240
New DestAddr : —-
New DestPort : —-
Total : 1

 静态NAT配置实例

GW]int g0/0/1
[GW-GigabitEthernet0/0/1]nat static global 202.100.1.100 inside 172.16.1.1 

 注:配置静态NAT时,其中的global-address和host-address必须保证和设备现有地址没有重复,包括设备接口地址,用户地址池地址等,以避免冲突。

测试:

 

display nat static
Static Nat Information:
Interface : GigabitEthernet0/0/1
Global IP/Port : 202.100.1.100/—-
Inside IP/Port : 172.16.1.1/—-
Protocol : —-
VPN instance-name : —-
Acl number : —-
Netmask : 255.255.255.255
Description : —-
Total : 1

 内部服务器配置实例

[GW]int g0/0/1
[GW-GigabitEthernet0/0/1]nat static protocol tcp global 202.100.1.100 2121 inside 172.16.1.1 21
[GW-GigabitEthernet0/0/1]nat static protocol tcp global 202.100.1.100 80 inside 172.16.1.1 80 

 测试:

 

 NAT ALG配置实例:

[GW]nat alg ?
all All protocol
dns Dns protocol
ftp Ftp protocol
rtsp Rtsp protocol
sip Sip protocol

 NAT 过滤配置实例:

NAT过滤是指NAT设备对外网发到内网的流量进行过滤,即当私网主机向某公网主机发起访问后,公网主机发向私网主机的流量经过NAT设备时会进行过滤。

NAT过滤包括三种类型:

a.与外部地址和端口无关的NAT过滤行为。
b.与外部地址相关端口无关的NAT过滤行为。
c.与外部地址和端口都相关的NAT过滤行为。

[GW]nat filter-mode ?
endpoint-and-port-dependent Endpoint and port dependent
endpoint-dependent Endpoint dependent
endpoint-independent Endpoint independent
缺省采用endpoint-and-port-dependent方式,表示查询NAT反向映射表时,以“源IP+源端口+目的IP+目的端口+协议号”作索引进行匹配。

 NAT映射配置实例:

配置NAT映射可以满足使用STUN、TURN、ICE等NAT穿越技术的终端软件能够穿越NAT。

NAT映射包含如下三种类型:

a.外部地址和端口无关的映射:对相同的内部IP和端口重用相同的地址端口映射。
b.外部地址相关端口无关的映射:对相同的内部IP地址和端口访问相同的外部IP地址时重用相同的端口映射。
c.外部地址和端口相关的映射:对相同的内部IP地址和端口号访问相同的外部IP地址和端口号重用相同的端口映射(如果此映射条目还处在活动状态)。

[GW]nat mapping-mode endpoint-independent ?
tcp Transmission Control Protocol
udp User Datagram Protocol
Please press ENTER to execute command

 配置Twice NAT实例:

 如图:内部网络主机PC1和公网上主机Host A的地址重叠。这种情况下,内部网络主机PC2访问主机Host A的报文不会到达目的主机,而有可能会被错误的转发到主机PC1上。两次NAT技术通过在NAT设备上配置重叠地址池到临时地址池的映射关系(在实现常规NAT的基础上),将重叠地址转换为唯一的临时地址,来保证报文的正确转发。

1.配置DNS-Mapping
[Huawei] nat alg dns enable
[Huawei] nat dns-map www.Server.com 192.168.20.2 80 tcp

2.配置重叠地址池到临时地址池的映射关系
[Huawei] nat overlap-address 0 192.168.20.2 202.169.100.2 pool-length 254

3.配置临时地址池到出接口GigabitEthernet3/0/0的静态路由
[Huawei] ip route-static 202.169.100.2 32 gigabitethernet 3/0/0 202.169.10.2

4.配置NAT Outbound
[Huawei]acl 3180
[Huawei-acl-adv-3180] rule permit ip source 192.168.20.0 0.0.0.255

[Huawei]nat address-group 1 160.160.0.2 160.160.0.254
[Huawei-GigabitEthernet3/0/0] nat outbound 3180 address-group 1 

 

[Huawei] display nat overlap-address all
Nat Overlap Address Pool To Temp Address Pool Map Information:

Id Overlap-Address Temp-Address Pool-Length Inside-VPN-Instance-Name

0 192.168.20.2 202.169.100.2 254

Total : 1 

 配置NAT日志输出

配置NAT日志输出功能可以实时跟踪、记录NAT流表的信息,增强网络的安全性,方便用户定位通过NAT访问网络的用户。NAT日志是设备在做NAT时生成的信息记录。该信息包括报文的源IP地址、源端口、目的IP地址、目的端口、转换后的源IP地址、转换后的源端口以及NAT的时间信息和用户执行的操作等。网络管理员可以通过查看NAT日志实时跟踪或定位用户通过NAT访问网络的情况,增强了网络的安全性。如下图:

[GW]firewall log session enable ===启用防火墙日志功能。
[GW]firewall log session nat enable ===启用NAT类型的流日志功能。
[GW]info-center enable ===开启信息中心。
[GW]info-center loghost 192.168.1.100 ===配置log主机,最多可以配置8个。

 

标签:GW,PAT,nat,主机,报文,地址,NAT,路由器
From: https://www.cnblogs.com/sawyerhan/p/17774714.html

相关文章

  • Git-error: invalid path
    gitcheckoutisp原因是Win和Linux文件格式不一致,要么切换到Linux环境下操作,要么gitconfigcore.protectNTFSfalse查了下官方手册,官方原话:Ifsettotrue,donotallowcheckoutofpathsthatwouldcauseproblemswiththeNTFSfilesystem大概意思是说NTFS有个路径保......
  • PAT_A 1038 Recover the Smallest Number
    Givenacollectionofnumbersegments,youaresupposedtorecoverthesmallestnumberfromthem.Forexample,given{32,321,3214,0229,87},wecanrecovermanynumberssuchlike32-321-3214-0229-87or0229-32-87-321-3214withrespecttodifferentor......
  • [ABC207F] Tree Patrolling 题解
    [ABC207F]TreePatrolling弱智DP题,设\(f(i,j,0/1/2)\)表示在点\(i\),子树中有\(j\)个点被覆盖,且\(i\)点自身状态是未被覆盖/被自身覆盖/被某个儿子覆盖,然后树上背包更新就行了。代码:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintmo......
  • GraalVM进行spring boot的native编译报错 “returned non-zero result”解决方法
    使用GraalVM对springboot工程进行native编译:系统:CentosJDK:GraalVMJDK21报错:Ifyouareunabletoresolvethisproblem,pleasefileanissuewiththeerrorreportat:https://graalvm.org/support[INFO]---------------------------------------------------------......
  • JsonPath使用(Java)
    JsonPath使用(Java)Java有一些类似于jq的语法库和工具。其中一个叫做JsonPath,它允许使用类似于jq的语法来查询和操作JSON数据。可以使用JsonPath来提取特定的JSON字段、过滤数据、执行计算等操作。另外,还有一些其他的Java库和框架也提供了类似的功能,比如FastJson,Gson和Jackson。这......
  • SpringCloudGateway网关整合swagger3+Knife4j3,basePath丢失请求404问题
    很多人都是照着别人的文章粘代码,我也是粘的,但是这样粘也会有问题,我搞这个Knife4j3的时候遇到两个问题,这里记录一下:第一个是basePath丢失,第二个解决basePath丢失完又引发了会引起application/json数据类型参数示例的问题。在集成SpringCloudGateway网关的时候,会出现没有basePat......
  • 【有趣的小细节】在Java中native方法hashcode()默认是如何生成哈希码的?
    之前看其他文章说,hashcode是根据对象的内存地址生成的。但为了满足自己的好奇心,同时验证这个结论是否是真实的,我半个月前深究了一下。今天突然想起来这回事了,把结论记录一下。结论目前hashcode的方式有以下六种算法:HashCodeMode==0:由操作系统生成的一个随机数。HashCodeMode==1:基......
  • PAT_A1067 Sort with Swap(0, i)
    Givenanypermutationofthenumbers{0,1,2,..., N−1},itiseasytosorttheminincreasingorder.Butwhatif Swap(0,*) istheONLYoperationthatisallowedtouse?Forexample,tosort{4,0,2,1,3}wemayapplytheswapoperationsinthefollowi......
  • 【git】git pull更新项目报错git error:invalid path
    1、报错内容error:invalidpath'xxxxxxx'原因是某分支下的文件名格式不支持,最终导致在gitclone的时候找不到这个文件路径导致的! 2、解决方法gitconfigcore.protectNTFSfalse作用是关掉NTFS下的路径保护机制,防止文件系统出错,这样就不存在找不到文件路径了......
  • 从路由器真机提取固件包(二)
    前言自写完从路由器真机提取固件包(一)介绍如何通过UART提取固件之后,一直没时间来写如何通过编程器提取固件。正好最近在看一款设备的时候,发现无法从官网下载到他的固件包,也无法通过串口拿到他的shell,只能通过编程器提取他的固件。于是想起这篇算是鸽了很久的文章,现在来补写一下......