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处理流程

图片1.png

一、基于源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)


图片2.png

#

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也会使安全协议变的复杂。

以上内容由51CTO学院华为助教王腾提供~~~