Cisco路由交换--NAT详解一

NAT出现背景

话不多说大家应该很清楚NAT出现是因为IPv4在设计之初没有考虑到网络发展的如此迅猛以至于32位的地址容量迅速面临枯竭,为了寻求解决方案。一方面IPv6技术问世,另外一方面NAT技术出现。但是NAT的出现使得IPv4地址面临枯竭的状态得到了非常有效的缓解,让IPv4依然是当今网络环境的主流技术。而IPv6至今也因为易用性和IPv4地址枯竭问题的遏制等等很多原因导致没有好的实施。(IPv6依然是未来)

NAT类型

静态NAT

静态NAT就是把本地局域网IP地址和外部公网IP地址一对一的映射,该映射关系不存在时效性,不能动态变更

动态NAT

动态NAT就是把本地局域网IP地址和外部公网地址池中的某个地址进行一对一的映射,与静态NAT最大的不同点在于,该映射关系存在时效性,会随着应用和时间不断更改映射关系

静态PAT

静态PAT与静态NAT非常相似,也是一对一映射关系,映射关系不存在时效性,但是最大的不同在于端口参数的介于,只是把本地局域网IP和端口与公网IP地址和端口进行了一对一的映射,这样一个公网地址可以映射出65535+65535(TCP+UDP)个局域网设备

动态PAT

动态PAT和动态NAT与静态PAT和静态NAT的关系类似,在动态PAT中局域网IP与端口会和公网地址与端口产生一对一的映射关系,但是映射关系存在时效性,IP和端口的接口也让多个局域网地址可以共同使用一个公网地址进行常规网络活动

IOS中NAT的配置

实验拓扑

imageimage

基础配置:
Client-1:
Client-1(config)#inter f0/0
Client-1(config-if)#ip add 192.168.2.2 255.255.255.0
Client-1(config-if)#no shut
Client-1(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1
Client-1(config)#username  test privilege 15 password test
Client-1(config)#line vty 0 15
Client-1(config-line)#login local
Client-2:
Client-2(config)#inter f0/0
Client-2(config-if)#ip add 192.168.2.3 255.255.255.0
Client-2(config-if)#no shut
Client-2(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1
Client-2(config)#username  test privilege 15 password test
Client-2(config)#line vty 0 15
Client-2(config-line)#login local
GW-WAN:
GW-WAN(config)#inter f0/0
GW-WAN(config-if)#ip add 192.168.2.1 255.255.255.0
GW-WAN(config-if)#ip nat inside
GW-WAN(config-if)#no shut
GW-WAN(config-if)#inter f0/1
GW-WAN(config-if)#ip add 200.1.1.2 255.255.255.0
GW-WAN(config-if)#ip nat outside
GW-WAN(config-if)#no shut
GW-WAN(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.1
Internet:
Internet(config)#inter f0/0
Internet(config-if)#ip add 200.1.1.1 255.255.255.0
Internet(config-if)#no shut
Internet(config-if)#inter f0/1
Internet(config-if)#ip add 100.1.1.1 255.255.255.0
Internet(config-if)#no shut
Server:
Server(config)#inter f0/0
Server(config-if)#ip add 100.1.1.100 255.255.255.0
Server(config-if)#no shut
Server(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1
Server(config)#username test priv 15 password test
Server(config)#line vty 0 15
Server(config-line)#login local
静态NAT
#配置
GW-WAN(config)#ip nat inside source static 192.168.2.2 200.1.1.3
GW-WAN(config)#ip nat inside source static 192.168.2.3 200.1.1.4
#测试
Server:
Server#telnet 200.1.1.3
Trying 200.1.1.3 ... Open
User Access Verification
Username: test
Password:
Client-1#exit
[Connection to 200.1.1.3 closed by foreign host]
Server#telnet 200.1.1.4
Trying 200.1.1.4 ... Open
User Access Verification
Username: test
Password:
Client-2#exit
[Connection to 200.1.1.4 closed by foreign host]
动态NAT
#配置
GW-WAN(config)#ip access-list extended client
GW-WAN(config-ext-nacl)#permit ip host 192.168.2.2 any
GW-WAN(config-ext-nacl)#permit ip host 192.168.2.3 any
GW-WAN(config)#ip nat pool Nat 200.1.1.5 200.1.1.6 netmask 255.255.255.252
GW-WAN(config)#ip nat inside source list client pool Nat
#测试
Client-1:
Client-1#ping 100.1.1.100 repeat 100
Client-2:
Client-2#ping 100.1.1.100 repeat 100
GW-WAN:
GW-WAN#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 200.1.1.5          192.168.2.2        ---                ---
--- 200.1.1.6          192.168.2.3        ---                ---
Server:
Server#debug ip icmp
*Mar  1 00:58:37.799: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.5
*Mar  1 00:58:37.799: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.6
静态PAT
#配置
GW-WAN(config)#ip nat inside source  static tcp 192.168.2.2 23 200.1.1.3 1025
GW-WAN(config)#ip nat inside source  static tcp 192.168.2.3 23 200.1.1.3 1026
GW-WAN(config)#inter f0/0
GW-WAN(config-if)#ip nat inside
GW-WAN(config-if)#inter f0/1
GW-WAN(config-if)#ip nat outside
#测试
Server:
Server#telnet 200.1.1.3 1025
Trying 200.1.1.3, 1025 ... Open
User Access Verification
Username: test
Password:
Client-1#exit
[Connection to 200.1.1.3 closed by foreign host]
Server#telnet 200.1.1.3 1026
Trying 200.1.1.3, 1026 ... Open
User Access Verification
Username: test
Password:
Client-2#exit
动态PAT
配置:
GW-WAN(config)#ip access-list extended client
GW-WAN(config-ext-nacl)#permit ip host 192.168.2.2 any
GW-WAN(config-ext-nacl)#permit ip host 192.168.2.3 any
GW-WAN(config)#ip nat inside source list client interface f0/1 overload
#测试
Client-1:
Client-1#ping 100.1.1.100 repeat 100
Client-2:
Client-2#ping 100.1.1.100 repeat 100
GW-WAN:
GW-WAN# show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 200.1.1.2:2       192.168.2.2:2      100.1.1.100:2      100.1.1.100:2
icmp 200.1.1.2:0       192.168.2.3:2      100.1.1.100:2      100.1.1.100:0
Server:
Server#debug ip icmp
*Mar  1 00:56:48.427: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.2
*Mar  1 00:56:48.471: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.2

相信大家都注意到了在配置NAT的时候命令会有inside、outside、destination、source、enable参数,下篇将会详细介绍这些参数的含义


猜你喜欢

转载自blog.51cto.com/7270589/2128595