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

私有网络地址和公有网络地址:

公有网络地址(以下简称公网地址)是指在互联网上全球唯一的IP地址。2019年11月26日,是人类互联网时代值得纪念的一天,全球近43亿个IPv4地址已正式耗尽。 私有网络地址(以下简称私网地址)是指内部网络或主机的IP地址,IANA(互联网数字分配机构)规定将下列的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的工作原理:

1、NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信 2、NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网地址的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发

NAT功能:

NAT不仅能解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的invade,隐藏并保护网络内部的计算机。 1、宽带共享,这是NAT主机的最大功能 2、安全防护:NAT之内的PC联机到Internet上面时,他所显示的IP是NAT主机的公网IP,所以Client端的PC就具有一定程度的安全了,外界在进行Portscan(端口扫描)的时候,就侦测不到源Client端的PC。

优点:节省公有合法IP地址、处理地址重叠、增强灵活性、安全性。 缺点:延迟增大、配置和维护的复杂性、不支持某些应用

静态NAT:

静态NAT实现私网地址和公网地址的一对一转换。有多少私网地址就需要多少配置多少个公网地址。静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。 内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址;外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为响应的私网地址。 有两种配置方法: 第一种:全局模式下设置静态NAT: [R1]nat static global 8.8.8.8 inside 192.168.10.10 [R1]int g0/0/1 [R1-GigabitEthernet0/0/1]nat static enable ///在网口上启动NAT static enable 功能 [R1]nat static global 8.8.8.8 inside 192.168.10.10

第二种:直接在接口上声明nat static: int g0/0/1 nat static global 8.8.8.8 inside 192.168.10.10

dis nat static ///查看NAT静态配置信息


静态NAT的配置:(全局模式示例)


静态NAT实验拓扑.jpg

R1的配置:
<Huawei>sys
[Huawei]sys R1
[R1]un in en
[R1]user-interface console 0	
[R1-ui-console0]idle-timeout 0 0
[R1-ui-console0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 192.168.1.1 255.255.255.0 
#
return
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]un sh
[R1-GigabitEthernet0/0/1]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 12.0.0.1 255.255.255.0 
#
return
[R1-GigabitEthernet0/0/1]q	
[R1]nat static global 20.0.0.1 inside 192.168.1.10
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat static enable 
[R1-GigabitEthernet0/0/1]q	
[R1]dis nat static 
  Static Nat Information:
  Global Nat Static 
    Global IP/Port     : 20.0.0.1/---- 
    Inside IP/Port     : 192.168.1.10/----
    Protocol : ----     
    VPN instance-name  : ----                            
    Acl number         : ----
    Netmask  : 255.255.255.255 
    Description : ----
  Total :    1
[R1]

静态NAT抓包内口.jpg


外口.png


动态NAT:

多个私网IP地址对应多个公网IP地址,基于地址池一对一映射 1、配置外部网口和内部网口的IP地址 2、定义合法IP地址池 [R1]nat address-group 1 212.0.0.100 212.0.0.200 //创建一个名为1的Nat地址池 3、定义访问控制列表 [R1]acl 2000 //创建ACL,允许源地址为192.168.20.0/24网段和11.0.0.0/24的数据通过 [R1-acl-basic-2000]rule permit source 192.168.20.0 0.0.0.255 [R1-acl-basic-2000]rule permit source 11.0.0.0 0.0.0.255 4、在外网口上设置动态IP地址转换 int g0/0/1 //外网口 nat outbound 2000 address-group 1 no-pat ///将ACL 2000 匹配的数据转换为该接口的IP地址为源地址(no pat 不做端口转换,只做IP地址转换,默认为pat) DIS nat outbound / / 查看NAT Outbound的信息

PAT端口多路复用

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

PAT有以下作用:

1、改变数据包的IP地址和端口号: 2、能够大量节约公网IP地址。

PAT的类型有:

1、动态PAT,包括NAPT和EASY IP 2、静态PAT,包括NAT Server

NAPT:

多个私网IP地址对应固定外网IP地址(比如200.1.1.10),配置方法与动态NAT类似 1、配置外部网口和内部网口的IP地址 2、定义合法IP地址池 nat address-group 1 200.1.1.10 200.1.1.10 //使用一个固定IP 3、定义访问控制列表 acl 2000 rule permit source 192.168.30.0 0.0.0.255 4、在外网口上设置IP地址转换 int g0/0/1 nat outbound 2000 address-group 1

EASYIP:

多个私网IP地址对应路由器外网接口的公网IP地址(比如12.0.0.1) 1、配置外部网口和内部网口的IP地址 2、定义合法IP地址池 由于直接实现外网口IP地址所以不用再定义IP地址池 3、定义访问控制列表 acl 3000 //允许源地址为192.168.30.0/24网段的数据通过 rule permit ip source 192.168.30.0 0.0.0.255 4、在外网口上设置IP地址转换 int g0/0/1 nat outbound 3000 //当acl 3000匹配的源IP数据到达此接口时,转换为该接口的IP地址做为源地址 display nat session all //查看NAT的流表信息

NAT Server:

端口映射,将私网地址端口映射到公网地址,实现内网服务器提供外网用户访问 int G0/0/0/1 nat server protocol tcp global 9.9.9.9 www inside192.168.10.100 www //在连接公网的接口上将私网服务器地址和公网地址做一对NAT映射绑定 nat server protocol tcp global current-interface 8080 inside 10.1.1.1 www //在连接公网的接口上将私网服务器地址和公网地址做一对NAT映射绑定 nat server protocol tcp global current-interface 2121 inside 10.1.1.2 ftp //端口为21可以直接使用关键字“ftp”代替


动态NAT实验: 静态NAT实验拓扑.jpg


动态NAT抓包.jpg

<Huawei>sys
[Huawei]sys R1
[R1]un in en	
[R1]user-interface console 0
[R1-ui-console0]idle-timeout 0 0
[R1-ui-console0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 192.168.1.1 255.255.255.0 
#
return
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]un sh
[R1-GigabitEthernet0/0/1]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 12.0.0.1 255.255.255.0 
#
return
[R1-GigabitEthernet0/0/1]q
[R1]nat address-group 1 20.0.0.100 20.0.0.200
[R1]acl 2000	
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]dis th
[V200R003C00]
#
acl number 2000  
 rule 5 permit source 192.168.1.0 0.0.0.255 
#
return
[R1-acl-basic-2000]q
[R1]int g0/0/1	
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat 
[R1-GigabitEthernet0/0/1]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 12.0.0.1 255.255.255.0 
 nat outbound 2000 address-group 1 no-pat
#
return
[R1-GigabitEthernet0/0/1]q
[R1]