NAT 网络地址转换
NAT作用
通过地址转换实现私有网络与公有网络之间的互相访问
NAT不仅能解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的入侵,隐藏并保护网络内部的计算机。
优点:节省公有合法IP地址、处理地址重叠、增强灵活性、安全性
缺点:延迟增大、配置和维护的复杂性、不支持某些应用(比如VPN)
NAT工作过程
内网向外网发送报文时,NAT将报文的源IP地址由私网地址转换为对应的公网地址
外网向内网发送响应报文时,NAT将报文的目的地址由公网地址转换为相应的私网地址
NAT类型
静态NAT
私网IP和公网IP是一对一关系,并且需要一对一绑定
动态NAT
私网IP和公网IP是一对一关系,需要定义公网IP地址池,私网转换时会轮询地址池里的每个IP地址
实验
静态NAT
sys
int g0/0/0
ip address 192.168.1.254 24
int g0/0/1
ip address 12.0.0.254 24
有两种设置方式
nat static global 12.0.0.100 inside 192.168.1.1 # 外网映射地址 inside 内网主机
int g0/0/1
nat static enable
#全局模式下设置静态NAT
# 外网映射地址 inside 内网主机
int g0/0/1 #直接在接口上声明nat static # 外网映射地址 inside 内网主机
nat static global 12.0.0.100 inside 192.168.1.1
display nat static查看
pc1 ping server。抓包,可见此时外网已经转为12.0.0.100 → 12.0.0.12
动态NAT
1、配置外部网口和内部网口的IP地址
2、定义合法IP地址池
3、定义访问控制列表
4、在外网口上设置动态IP地址转换
sys
int g0/0/0
ip address 192.168.1.254 24
int g0/0/1
ip address 12.0.0.254 24
nat address-group 1 12.0.0.110 12.0.0.160
#新建一个名为1的nat地址池,开始地址-结束地址
#动态NAT必须配置ACL,此处全部放行
acl 2000
rule permit source 192.168.1.0 0.0.0.255
rule permit source 12.0.0.0 0.0.0.255
int g0/0/1
#外网口
nat outbound 2000 address-group 1 no-pat
#将ACL 2000匹配的数据转换为改接口的IP地址作为源地址
#(no pat 不做端口转换,只做IP地址转换,默认为pat)
dis nat outbound
#查看NAT Outbound的信息
查看NAT Outbound的信息
dis nat outbound
pc1 ping server。抓包,可见此时外网地址在12.0.0.110 → 12.0.0.160地址池之间轮询
PAT 端口多路复用
PAT作用
1.改变数据包的ip地址和端口号;
2.能够大量节约公网IP地址。
实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址。PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。
PAT分类
静态PAT(NAPT Easy_IP)
NAPT : 多个私网IP地址对应固定自定义外网IP地址(比如200.1.1.10),配置方法与动态NAT类似。私网IP和公网IP是多对一关系,公网IP地址池里只定义一个公网IP,私网IP只对应一个自定义的公网IP
Easy_IP :多个私网IP地址对应路由器外网接口的公网IP地址(比如12.0.0.1)。私网IP和公网IP是多对一关系,直接使用路由器外网接口的IP,私网IP只对应路由器外网接口的公网IP
动态PAT(Nat_server )
Nat_server
实验
静态PAT—NAPT
1、配置外部网口和内部网口的IP地址
2、定义合法IP地址池
3、定义访问控制列表
4、在外网口上设置IP地址转换
sys
int g0/0/0
ip address 192.168.1.254 24
int g0/0/1
ip address 12.0.0.254 24
nat address-group 1 12.0.0.110 12.0.0.160
acl 2000
rule permit source 192.168.1.0 0.0.0.255
###允许源地址为192.168.1.0/24网段的数据通过
int g0/0/1
nat outbound 2000 address-group 1
与动态NAT相似
只比动态NAT少一个no-pat参数(NAPT做端口转换)
pc1与pc2同时ping server。抓包,可见每一主机都单独对应着地址池中的一个地址
静态PAT—Easy_IP
1、配置外部网口和内部网口的IP地址
#由于直接使用外网口IP地址所以不用再定义IP地址池
2、定义访问控制列表
3、在外网口上设置IP地址转换
sys
int g0/0/0
ip address 192.168.1.254 24
int g0/0/1
ip address 12.0.0.254 24
acl 3000
rule permit ip source 192.168.1.0 0.0.0.255
###允许源地址为192.168.1.0/24网段的数据通过
int g0/0/1
nat outbound 3000
###当acl 3000匹配的源IP数据到达此接口时,转换为该接口的IP地址做为源地址
与动态NAT,NAPT相似
只比动态NAT少一个no-pat参数(NAPT做端口转换)
比NAPT少定义地址池(因为单一地址直接使用外网地址)
display nat session all
##查看NAT的流表信息
pc1与pc2同时ping server。抓包,可见转换后共用公网地址,(见上方NAT流表)
动态PAT—Nat_server
端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问
sys
int g0/0/0
ip address 192.168.1.254 24
int g0/0/1
ip address 12.0.0.254 24
int g0/0/1
nat server protocol tcp global 12.0.0.254 www inside 192.168.1.3 www
###在连接公网的接口上将私网服务器地址和公网地址做一对NAT映射绑定
nat server protocol tcp global current-interface 8080 inside 192.168.1.3 www
###在连接公网的接口上将私网服务器地址和外网接口做一对NAT映射绑定
nat server protocol tcp global current-interface 2121 inside 192.168.1.3 ftp
###端口为21可以直接使用关键字“ftp”代替
外网client访问内网服务器,只需要访问路由器地址+端口。
12.0.0.254:8080 → 公网IP 发送到路由器 → NAT转换 →192.168.1.3:80 → 路由器查看路由表确定转发接口 → 查看ARP缓存表 → 单播通信