一、NAT
1、概念
NAT:网络地址转换
- 实现将内网私有IP地址转换为公网IP地址
- 解决公网IP地址数目不足的问题
- 可保护内网IP地址的私密性,起到一定的安全性
- 还可实现企业内多个私有IP网段重叠问题
2、NAT分类
静态NAT:唯一的私有IP------映射------唯一的公网IP(映射关系确定,永久保存)
动态NAT:多个私有IP------映射------多个公网IP(映射关系不确定,向外访问时建立映射关系)
端口复用:局域网中多个或全部私有IP------映射------1个公网IP(映射关系不确定,向外访问时建立 映射关系)
私有IP地址:
A类:10.0.0.0--10.255.255.255
B类:172.16.0.0--172.31.255.255
C类:492.168.0.0--192.168.255.255
169.254.0.0--169.254.255.255(主机从DHCP服务器获取IP地址失败、或IP地址发生冲突后自动生成)
3、NAT配置命令
静态NAT:
R3(config)#ip nat inside source static 内部私有IP地址 公网地址
动态NAT:
1)建立允许内网IP网段进行NAT转换的ACL:
R3(config)#access-list 标准ACL编号 permit 内网IP网段 通配符掩码
2)建立公网IP地址池:
R3(config)#ip nat pool 地址池名称 起始公网地址 结束公网地址 netmask 子网掩码
3)建立动态NAT:
R3(config)#ip nat inside source list ACL编号 pool 公网地址池名称
端口复用:
1)建立允许内网IP网段进行NAT转换的ACL:
R3(config)#access-list 标准ACL编号 permit 内网IP网段 通配符掩码
2)建立端口复用NAT:
R3(config)#ip nat inside source list ACL编号 interface 外网接口 overload
内部、外部端口定义:
R3(config)#interface 内网接口
R3(config-if)#ip nat inside
R3(config)#interface 外网接口
R3(config-if)#ip nat outside
二、案例
拓扑图
三、案例配置
1、R1路由器的基本网络配置
configure terminal
interface f0/0
ip address 192.168.10.254 255.255.255.0
no shutdown
interface f1/0
ip address 202.100.10.1 255.255.255.0
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 202.100.10.2
exit
write
2、R2路由器的基本网络配置
configure terminal
interface f0/0
ip address 202.100.10.2 255.255.255.0
no shutdown
interface f1/0
ip address 202.100.20.1 255.255.255.0
no shutdown
exit
exit
write
3、R3路由器的基本网络配置
configure terminal
interface f0/0
ip address 192.168.20.254 255.255.255.0
no shutdown
interface f1/0
ip address 202.100.20.2 255.255.255.0
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 202.100.20.1
4、PC1(R4)的基本配置
configure terminal
hostname PC1
interface f0/0
ip address 192.168.10.1 255.255.255.0
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 192.168.10.254
5、PC2(R5)的基本配置
configure terminal
hostname PC2
interface f0/0
ip address 192.168.20.1 255.255.255.0
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 192.168.20.254
6、连通性测试:(R1、R3未做NAT配置前)
R1#ping 202.100.20.2(通)
R1#ping 192.168.20.1(不通,R2无私网IP网段的路由)
R3#ping 202.100.10.1(通)
R3#ping 192.168.10.1(不通,R2无私网IP网段的路由)
PC1#ping 202.100.10.1(通,自己网关的外网接口)
PC1#ping 202.100.10.2(不通,R2路由器无回去的私有网段路由)
PC1#ping 202.100.20.1(不通,理由同上)
PC1#ping 202.100.20.2(不通,理由同上)
PC1#ping 192.168.20.1(不通,理由同上)
PC2#ping 202.100.20.2(通,自己网关的外网接口)
PC2#ping 202.100.20.1(不通,R2路由器无回去的私有网段路由)
PC2#ping 202.100.10.2(不通,理由同上)
PC2#ping 202.100.10.1(不通,理由同上)
PC2#ping 192.168.10.1(不通,理由同上)
7、静态NAT配置(R1、R3路由器上分别完成)
1>配置
R1(config)#ip nat inside source static 192.168.10.1 202.100.10.10
R1(config)#interface f1/0
R1(config-if)#ip nat outside
R1(config-if)#interface f0/0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#exit
R1#show ip nat translation(可看到2条NAT记录)
R3(config)#ip nat inside source static 192.168.20.1 202.100.20.10
R3(config)#interface f1/0
R3(config-if)#ip nat outside
R3(config-if)#interface f0/0
R3(config-if)#ip nat inside
R3(config-if)#exit
R3(config)#exit
R3#show ip nat translation(可看到2条NAT记录,此NAT表中的静态记录永久存在)
2>连通性测试
PC1#ping 202.100.10.2 (通,实现静态NAT后)
PC1#ping 202.100.20.1(通,实现静态NAT后)
PC1#ping 202.100.20.2(通,实现静态NAT后)
PC1#ping 202.100.20.10(通,实现静态NAT后,访问202.100.20.10就是在访问192.168.20.1),原本202.100.20.10地址并不存在,只是做了静态映射后,该地址就存在了,只是它映射的是192.168.20.1
PC2#ping 202.100.20.1 (通,理由同上)
PC2#ping 202.100.10.2(通,理由同上)
PC2#ping 202.100.10.1(通,理由同上)
PC2#ping 202.100.10.10(通,实现静态NAT后,访问202.100.10.10就是在访问192.168.10.1),原本202.100.10.10地址并不存在,只是做了静态映射后,该地址就存在了,只是它映射的是192.168.10.1
8、动态NAT配置
1>配置
R3(config)#access-list 2 permit 192.168.20.0 0.0.0.255
R3(config)#no ip nat inside source static 192.168.20.1 202.100.20.10(删除静态映射)
R3(config)#ip nat pool caiwubu 202.100.20.20 202.100.20.25 netmask 255.255.255.0
R3(config)#ip nat inside source list 2 pool caiwubu
R3(config)#exit
R3#show ip nat translation(看不到动态映射的NAT记录,因为:内网未向外访问,动态映射不能建立)
内部、外部端口前面已经定义
2>连通性测试
R1#ping 202.100.20.20(不通,R3路由器的动态NAT映射未建立,外网不能主动访问内网主机)
PC2#ping 202.100.10.1
R3#show ip nat translation(动态映射建立,可看到ICMP包的转换记录,源地址192.168.20.1,转换为公网IP:202.100.20.20)
9、端口复用
1>配置
ACL前面已经建立
R3(config)#no ip nat pool caiwubu 202.100.20.20 202.100.20.25 netmask 255.255.255.0
R3(config)#ip nat inside source list 2 interface f0/0 overload
R3(config)#exit
R3#show ip nat translation(看不到端口复用的NAT记录,因为:内网未向外访问,动态映射不能建立)
内部、外部端口前面已经定义
2>连通性测试
PC2#ping 202.100.10.1
R3#show ip nat translation
(动态映射建立,可看到ICMP包的转换记录,源地址192.168.20.1,转换为外网接口IP:202.100.20.2)
10、端口复用+静态映射
开启PC2的Telnet功能
PC2(config)#line vty 0 4
PC2(config-line)#pass 123
PC2(config-line)#login
PC2(config-line)#exit
PC2(config)#enable password abc
PC2(config)#exit
PC2#write
静态映射前telnet连接测试
PC1#telnet 202.100.20.2(失败,未建立23号端口的静态映射)
在R3上配置端口复用+静态映射(ACL前面已经建立)
R3(config)#ip nat inside source static tcp 192.168.20.1 23 interface f1/0 23
R3(config)#exit
R3#show ip nat translation(可以看到一条23号端口的永久映射记录已经建立)
Telnet连接测试---成功
PC1#telnet 202.100.20.2
输入Telnet登录密码:123
PC2>enable
输入特权模式密码:abc
PC2#enable