华为NAT技术详解

NAT介绍:

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

NAT功能:

NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的×××,隐藏并保护网络内部的计算机。

1.宽带分享:这是 NAT 主机的最大功能。

2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。



NAT处理流程

一、基于源IP地址

a、一对一 NO-PAT

NAT中生产server-map表项的两中情况之一:配置NAT no-pat时防火墙会为已配置的多通道协议产生的有实际流量的数据建立serve-map表。

b、多对一 NAPT

ASPF功能的主要目的是通过对应用层协议的报文分析,为其放开相应的包过滤规则,而NAT ALG的主要目的,是为其放开相应的NAT规则。

由于NAT ALG和ASPF通常都是结合使用的,所有使用一条命令就能将两者同时开启,在域间配置一条命令即可detece protocol。

二、基于目的IP地址

a、nat server

NAT中生产server-map表项的两中情况之二:配置 NAT SERVER时防火墙会自动生产server-map表项,用于存放global地址与inside地址的映射关系。

b、高级目的nat

需求:CLIENT1(10.1.1.1)访问202.1.3.3,防火墙处理后将目的地址变更为202.1.3.2(CLIENT3)

#

acl number 3000

rule 25 permit ip source 10.1.1.1 0 destination 202.1.3.3 0

#

firewall zone trust

set priority 85

destination-nat 3000 address 202.1.3.2

add interface GigabitEthernet0/0/0

add interface GigabitEthernet0/0/1

#

policy interzone trust untrust outbound

policy 0

action permit

policy source 10.1.1.1 0

policy destination 202.1.3.2 0

#

------------------------------------------------------------

[SRG]display firewall session table verbose

icmp ×××:public --> public

Zone: trust--> untrust TTL: 00:00:20 Left: 00:00:00

Interface: GigabitEthernet0/0/3 NextHop: 202.1.1.1 MAC: 54-89-98-94-67-33

<--packets:0 bytes:0 -->packets:1 bytes:60

10.1.1.1:42131-->202.1.3.3:2048[202.1.3.2:2048]

------------------------------------------------------------

[SRG]display firewall server-map

c、SLB服务器负载均衡

三、双向NAT


a、NAT server+NAT inboud(域间)

需求:CLIENT3(202.1.3.2)通过FTP访问202.1.1.88的88端口,实际访问的是server1(10.1.3.1)的21端口,server1未配置网关

#

firewall interzone dmz untrust

detect ftp

#

nat address-group 88 10.1.3.88 10.1.3.88

nat server 0 protocol tcp global 202.1.1.88 88 inside 10.1.3.1 ftp

#

policy interzone dmz untrust inbound

policy 0

action permit

policy source 202.1.3.2 0

policy destination 10.1.3.1 0

#

nat-policy interzone dmz untrust inbound

policy 0

action source-nat

policy source 202.1.3.2 0

policy destination 10.1.3.1 0

address-group 88

#

------------------------------------------------------------

[SRG]display firewall session table verbose

ftp ×××:public --> public

Zone: untrust--> dmz TTL: 00:10:00 Left: 00:09:58

Interface: GigabitEthernet0/0/2 NextHop: 10.1.3.1 MAC: 54-89-98-d1-4b-f6

<--packets:17 bytes:1276 -->packets:19 bytes:925

202.1.3.2:2067[10.1.3.88:2048]+->202.1.1.88:88[10.1.3.1:21]

ftp-data ×××:public --> public

Zone: dmz--> untrust TTL: 00:04:00 Left: 00:04:00

Interface: GigabitEthernet0/0/3 NextHop: 202.1.1.1 MAC: 54-89-98-94-67-33

<--packets:33 bytes:1324 -->packets:53 bytes:72608

10.1.3.1:20[202.1.1.88:20]-->10.1.3.88:15362[202.1.3.2:2070]

----------------------------------------------------------------

[SRG]display firewall server-map

Nat Server, any -> 202.1.1.88:88[10.1.3.1:21], Zone: ---

Protocol: tcp(Appro: unknown), Left-Time: --:--:--, Addr-Pool: ---

×××: public -> public

Nat Server Reverse, 10.1.3.1[202.1.1.88] -> any, Zone: ---

Protocol: any(Appro: ---), Left-Time: --:--:--, Addr-Pool: ---

×××: public -> public

ASPF, 10.1.3.1[202.1.1.88] -> 10.1.3.88:15361[202.1.3.2:2069], Zone: ---

Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:12, Addr-Pool: ---

×××: public -> public

ASPF, 10.1.3.1[202.1.1.88] -> 10.1.3.88:15362[202.1.3.2:2070], Zone: ---

Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:51, Addr-Pool: ---

×××: public -> public

b、NAT server+域内NAT(域内)

需求:CLIENT4(10.1.3.10)通过FTP访问202.1.1.88的88端口,实际访问的是server1(10.1.3.1)的21端口。

配置如下:

#

nat address-group 3 202.1.1.3 202.1.1.3

nat server 0 protocol tcp global 202.1.1.88 88 inside 10.1.3.1 ftp

#

nat-policy zone dmz

policy 0

action source-nat

policy source 10.1.3.10 0

policy destination 10.1.3.1 0

address-group 3

#

-----------------------------------------------------

[FW1]display firewall server-map

Nat Server, any -> 202.1.1.88:88[10.1.3.1:21], Zone: ---

Protocol: tcp(Appro: unknown), Left-Time: --:--:--, Addr-Pool: ---

×××: public -> public

Nat Server Reverse, 10.1.3.1[202.1.1.88] -> any, Zone: ---

Protocol: any(Appro: ---), Left-Time: --:--:--, Addr-Pool: ---

×××: public -> public

---------------------------------------------------------

[FW1]display firewall session table verbose

ftp ×××:public --> public

Zone: dmz--> dmz TTL: 00:10:00 Left: 00:09:58

Interface: GigabitEthernet0/0/2 NextHop: 10.1.3.1 MAC: 54-89-98-d1-4b-f6

<--packets:91 bytes:7567 -->packets:110 bytes:5497

10.1.3.10:2051[202.1.1.3:2048]-->202.1.1.88:88[10.1.3.1:21]

NAT有什么弊端?

在一个具有NAT功能的路由器下的主机并没有建立真正的端对端连接,并且不能参与一些因特网协议。一些需要初始化从外部网络建立的TCP连接,和使用无状态协议(比如UDP)的服务将被中断。除非NAT路由器作一些具体的努力,否则送来的数据包将不能到达正确的目的地址。(一些协议有时可以在应用层网关的辅助下,在参与NAT的主机之间容纳一个NAT的实例,比如FTP。)NAT也会使安全协议变的复杂。

原文地址:http://blog.51cto.com/13698083/2135118

时间: 2024-11-14 12:58:05

华为NAT技术详解的相关文章

杀毒与免杀技术详解之三:特征码免杀实战

1.前言 在前篇<杀毒与免杀技术详解之二:特征码定位-工具及原理 >中,笔者主要介绍了MyCCL这个特征码定位工具的使用方式,并对它的原理进行了一步步的分析解释,最后讲了学习这一工具的意义和作用.今天,在这实战篇中,我们将应用前面学到的知识,以几个市面上的特征码杀毒引擎为例,进行实战的免杀.同时也非常欢迎诸位朋友指点,互相学习.进步! 2.实战环境 实验主机: Vmware 11虚拟机 操作系统: XP sp3 实验用具: MyCCL 2.1.C32Asm.一份病毒样本(encode.exe)

实现高性能纠删码引擎 | 纠删码技术详解(下)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言: 在上篇<如何选择纠删码编码引擎>中,我们简单了解了 Reed-Solomon Codes(RS 码)的编/解码过程,以及编码引擎的评判标准.但并没有就具体实现进行展开,本篇作为<纠删码技术详解>的下篇,我们将主要探讨工程实现的问题. 这里先简单提炼一下实现高性能纠删码引擎的要点:首先,根据编码理论将矩阵以及有限域的运算工程化,接下来主

Linux磁盘阵列技术详解(二)--raid 1创建

我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还是以一块硬盘的不同分区为例,实际工作中应该是不同的硬盘才对. 具体分区步骤不再赘述! 分区后结果如下图所示: ② 创建raid 1 mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3 或者 mdadm -C -v /de

CDN技术详解及实现原理

CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同好. 第一章    引言    “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽.这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量.如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户.(还有“中间一公里” 和

Protocol Buffer技术详解(语言规范)

Protocol Buffer技术详解(语言规范) 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流.需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一些不是非常常用的功能并未予以说明,有兴趣的开发者

红帽Linux故障定位技术详解与实例(2)

红帽Linux故障定位技术详解与实例(2) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 3.内核故障情形及处理 (1)内核panic panic是内

红帽Linux故障定位技术详解与实例(1)

红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 红帽Linux故障定位技术详解与实例是本文要介绍的内容,主要

红帽Linux故障定位技术详解与实例(3)

红帽Linux故障定位技术详解与实例(3) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 5.用kdump工具内核故障定位实例 A) 部署Kdump 部署 kdump 收集故障信息的步骤如下: (1)设置好相关的内核启动参数 在 /boot/grub

红帽Linux故障定位技术详解与实例(4)

红帽Linux故障定位技术详解与实例(4) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种操作命令或测试程序的方式对故障环境进行观察,分析,测试,以定位出故障发生的原因. AD:2014WOT全球软件技术峰会北京站 课程视频发布 6.使用kprobe来观察内核函数的执行实例 kprobe是SystemTap对内核函数进行probing的功能在内核中的实现,由于内核中提供了正式的API来使