NAT的基本介绍
NAT(Network Address Translation)是网络地址转换,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术,因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。
1.1 公有网络地址
公有网络地址(以下简称公网地址)是指在互联网上全球唯一的IP地址。2019年11月26日,是人类互联网时代值得纪念的一天,全球尽43亿个IPv4地址已经正式耗尽。
1.2 私有网络地址
私有网络地址(以下简称私网地址)是指内部网络或主机的IP 地址,IANA(互联网数字分配机构)规定将下列的IP地址保留 用作私网地址,不在互联网上被分配,可在一个单位或公司内部使用。RFC1918中规定私有地址如下:
A类私有地址:10.0.0.0—10.255.255.255
B类私有地址:172.16.0.0—172.31.255.255
C类私有地址:192.16.0.0—192.16.255.255
1.3 NAT的工作原理
NAT用来将内网地址和端口转换成公网地址和端口,建立一个会话,与公网主机进行通信。
NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个个映射关系,从而实现数据的转发。
总结:
数据包从内网到外网时会被 NAT 转换源IP地址,由私网地址转换成公网地址;
数据包从外网到内网时,会被 NAT 转换目的IP地址,由公网地址转换成私网地址。
1.4 NAT的术语与转换表
NAT包含4类地址:内部局部地址,外部局部地址和内部全局地址,外部全局地址;如下图:
内部局部地址(Inside Local):内网中设备所使用的IP地址。
内部全局地址(Inside Global):对于外部网络来说,局域网内部主机所表现的 IP 地址。
外部局部地址(Outside Local):外部网络主机的真实地址。
外部全局地址(Outside Global):对于内部网络来说,外部网络主机所表现的 IP 地址。外网设备所使用的真正的地址。
1.5 NAT功能
功能:NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的入侵,隐藏并保护网络内部的计算机。
(1)宽带分享:这是NAT主机最大的功能;
(2)安全防护:NAT之内的pc联机到以太网上面时,它所显示的IP是NAT主机的公网IP,所以client端的pc就具有一定程度的安全,外界在进行porlscan(端口扫描)的时候,就侦测不到源client端的pc。
优点:节省公有合法的IP地址,处理地址重叠,增强灵活性,安全性;
缺点:延迟增大,配置和维护的复杂性,不支持某些应用(比如VPN)。
NAT 大的分类
NAT有三种类型:
静态NAT(Static NAT)
动态地址NAT(Pooled NAT)
网络地址端口转换NAPT(Port-Level NAT)
2.1 静态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
在接口上启动 static enable 功能;
第二种:直接在接口上声明 nat static
[R1]int g0/0/1 ###外网接口
[R1-GigabitEthernet0/0/1] nat static global 8.8.8.8 inside 192.168.10.10
[R1]dis nat static ####查看NAT静态配置信息
2.2 动态NAT
动态NAT:多个私网IP地址对应多个公网IP地址,基于地址池一对一映射。动态NAT将内部网络的私有 IP 地址转换为公用 IP 地址时,IP 地址是不确定,随机的。
所有被授权访问 Internet 的私有 IP 地址可随机转换为任何指定合法的 IP 地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态 NAT 转换。
动态 NAT 是在路由器上配置一个外网 IP 地址池,当内部有计算机需要和外部通信时,就从地址池里动态的取出一个外网 IP,并将他们的对应关系绑定到 NAT 表中,通信结束后,这个外网 IP 才被释放,可供其他内部 IP 地址转换使用,这个 DHCP 租约 IP 有相似之处。当 ISP 提供的合法 IP 地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
动态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.1.0/24网段的数据通过
[R1-acl-basic-2000]rule permit source 192.168.1.1 0.0.0.255
(4)在外网口上设置动态IP地址转换
[R1-acl-basic-2000]int g0/0/1 ####外网口
[R1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat
###将acl2000匹配的数据转换为该接口的IP 地址作为源地址。(no pat不做端口转换,只做IP地址转换,默认为pat)
[R1]dis nat outbound ####查看 NAT outbound的信息
2.3 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地址池
[R1]nat address-group 1 200.1.1.10 200.1.1.10 ##使用同一个固定IP
(3)定义访问控制列表
[R1] acl 2000 ###允许源地址为192.168.30.0/24网段的数据通过
[R1-acl-adv-2000]rule permit source 192.168.30.0 0.0.0.255
(4)在外网口上设置IP地址转换
[R1-acl-basic-2000]int g0/0/1 ##外网口
[R1-G0/0/1]nat outbound 2000 address-group 1
Easy IP:多个私网IP地址对应路由器外网接口公网IP地址(比如12.0.0.1)。
(1)配置外部网口和内部网口的IP地址
(2)定义合法IP地址池
(3)定义访问控制列表
[R1] acl 3000 ###允许源地址为192.168.30.0/24的网段数据通过
[R1-acl-adv-3000]rule permit ip source 192.168.30.0 0.0.0.255
(4)在外网口上设置IP地址转换
[R1]int g0/0/1 ##外网口
[R1-g0/0/1]nat outbound 3000
当acl3000匹配的源IP数据到达此接口时,转换为该接口的IP地址,做源地址。
[R1]display nat session all ##查看NAT的流表信息
NAT server:端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问。
[R1]int g0/0/1
[R1-G0/0/1] nat server protocol global 9.9.9.9 inside 192.168.10.100 www
在连接公网的接口上将私网服务器地址和公网地址做一对NAT映射绑定。
[R1-Gigabi tEthernet0/0/1] nat server protocol tcp global current-interface 8080 inside 10.1.1.1 www
端口号21可以直接使用关键字'FTP‘代替。