目录
- NAT概述
- 什么是NAT
- 为什么要有NAT
- 回顾:IP地址分类
- NAT分类
- NAT配置命令
- 静态NAT
- 动态NAT
- 端口复用NAT( PAT )
<一> NAT概述
1> 什么是NAT?
NAT:Network Address Translation 网络地址转换
将IP数据包头中的IP地址转换为另一个IP的过程,配置在路由器上。
2> 为什么要有NAT?
在实际中,内网通过边界路由器无法直接访问外网,需要在边界路由器上配置NAT规则,将内网访问外网的数据包中源IP转换为公网IP;
这种方式不仅可以减少IP地址的使用,还可以保护局域网内部主机的安全。
<二> IP地址分类
A:1.0.0.0 ~ 126.255.255.255
netmask:255.0.0.0
B:128.0.0.0 ~ 191.255.255.255
netmask:255.255.0.0
C:192.0.0.0 ~ 223.255.255.255
netmask:255.255.255.0
D:224.0.0.0 ~ 239.255.255.255(组播)
E:240.0.0.0 ~ 255.255.255.255(实验)
☞ 局域网IP:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
<三> NAT分类
- 静态转换 Static Nat
- 动态转换 Dynamic Nat
- 端口多路复用 Overload
<四> NAT配置命令
1> 静态NAT配置
- 指定边界路由器的inside接口和outside接口
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int s2/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#
- 定义静态NAT规则(全局配置模式下)
Router>en
Router#
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip nat inside source static 192.168.1.2 12.1.1.102
Router(config)#ip nat inside source static 192.168.1.3 12.1.1.103
Router(config)#end
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#
Router#show ip nat t
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 12.1.1.102 192.168.1.2 --- ---
--- 12.1.1.103 192.168.1.3 --- ---
Router#
2> 动态NAT(NAT POOL)
静态NAT将每一个内网IP与一个外网IP手动绑定,很麻烦且分配公网IP不是很方便;
于是出现了动态NAT,可以指定公网的一批网络主机映射到一批公网地址(有空闲公网IP时自动分配);
注意:指定的一批内网地址,需要使用ACL(access control list)配置
- 指定边界路由器的inside接口和outside接口
- 配置ACL
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#
- 配置公网IP池
Router(config)#
Router(config)#ip nat pool nat1 12.1.1.100 12.1.1.200 netmask 255.255.255.0
Router(config)#
- 配置动态NAT规则(结合上述ACL和Nat Pool)
Router(config)#
Router(config)#ip nat inside source list 1 pool nat1
Router(config)#
3> 端口复用NAT(PAT:Port Address Translation)
- 指定边界路由器的inside接口和outside接口
- 配置ACL
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)#
- 配置公网IP池(一个公网IP)
Router(config)#
Router(config)#ip nat pool nat1 12.1.1.100 12.1.1.100 netmask 255.255.255.0
Router(config)#
- 配置PAT(overload)
Router(config)#
Router(config)#ip nat inside source list 1 pool nat1 overload
Router(config)#