网络地址转换NAT
一,什么是NAT?
Network Address Translaction (NAT)
主要作用就是将私有地址转换为公有地址,进行外网的访问。
解决了IPv4地址不够用的问题,还能有效的避免了来自外部网络的攻击,隐藏和保护内部计算机。
二,NAT的分类
1,静态NAT
原理
- 每个私网地址都有一个与之对应并且固定的公网地址,即公有地址和私有地址之间是一对一映射的关系。
- 支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。
同时外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT转换成对应的私有地址。
NAT映射表:
私有地址 公有地址 192.168.1.1 122.1.2.1 192.168.1.2 122.1.2.2 192.168.1.3 122.1.2.3
// 静态NAT配置
int g0/0/1
ip a 122.1.2.1 24
nat static global 122.1.2.1 inside 192.168.1.1
nat static global 122.1.2.2 inside 192.168.1.2
nat static global 122.1.2.3 inside 192.168.1.3
2,动态NAT
原理
- 动态NAT提出了地址池的概念,所有的公有地址组成了地址池。
- 当内部主机访问外部网络时,临时分配一个地址池中未使用的地址,并将其标记成为“In Use”。
当该主机不再访问外部网络时,则回收分配给其的地址,并将其重新标记为“Not Use”。 - 其实本质上还是一对一的映射关系,并不能起到节省IPv4 地址的作用。
NAT地址池
122.1.2.1 Not Use
122.1.2.2 In Use
122.1.2.3 Not Use
//动态NAT配置
nat address-group 1 122.1.2.1 to 122.1.2.3
acl 2000
rule 5 permit source 192.168.1.0 0.0.0.255
quit
int g0/0/0
nat outbound 2000 address-group 1 no-pat
3,NAPT(Network Address and Port Translation)
- 动态NAT选择地址池中的地址转换时,并不会转换端口号,即 no-pat(No-Port Address Translation,非端口地址转换),公有地址和私有地址还是一对一映射关系,无法提升公有地址的利用率。
- NAPT 从地址池中选择地址进行地址转换时,不仅转换IP地址,同时也会对端口进行转换。从而实现公有地址和私有地址的1:n映射,可以有效的提高公有地址的利用率。
NAT地址池
122.1.2.1
122.1.2.2
122.1.2.3
NAT映射表
私有地址 :端口 公有地址:端口 192.168.1.1:10321 122.1.2.1:1025 192.168.1.2:10972 122.1.2.1:1026
// NAPT 的配置
nat address-group 1 122.1.2.1 to 122.1.2.3
acl 2000
rule 5 permit source 192.168.1.0 0.0.0.255
quit
int g0/0/0
nat outbound 2000 address-group 1
4,Easy IP: 端口NAT
- Easy IP 的实现与NAPT相同,同时转换IP地址,传输层端口,区别在于EasyIP没有地址池概念,直接使用路由器的出接口IP地址作为NAT转换的公有地址。
- Easy IP 使用于不具备固定公网地址池的场景,如果是通过DHCP,PPOE拨号获取IP地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
NAT映射表
私有地址:端口 公有地址:端口 192.168.1.1:10321 122.1.2.1:1025 192.168.1.1:10233 122.1.2.1:1024
acl 2000
rule 5 permit source 192.168.1.0 0.0.0.255
quit
int g0/0/1
nat outbound 2000
5,Nat Server
(1)Nat Server 的使用场景
- Nat Server:指定 [公有地址:端口] 与 [私有地址:端口] 的一对一映射关系,将内网服务器映射到公网,当私网中的服务器要对公网提供服务时使用。
- 外网主机主动访问 [公有地址:端口] 实现对内网服务器的访问。
- 本质上就是将内网服务器映射到公网中,让外面的主机去访问。
(2)Nat Server 的配置
int g0/0/0
ip a 122.1.2.1 24
nat server protocol tcp global 202.10.10.1 wwww inside 192.168.1.10:8080