静态NAT: 本地地址与全局地址(公网)之间一对一映射,即一台主机对应一个公网IP。 #ip nat inside source static 192.168.1.10 188.188.90.18 #interface FastEthernet0/0 ip address 192.168.1.1 255.255.255.0 ip nat inside #interface FastEthernet0/1 ip address 188.188.90.18 255.255.255.240 ip nat outside
动态NAT: 需要一个地址池为内部用户提供公有IP地址,动态NAT不能使用端口号,因此对于同时试图访问外网的每位用户,都必须有一个公网IP地址。 #ip nat pool wan 87.19.190.3 87.19.190.254 netmask 255.255.255.0 #access-list 1 permit 192.168.1.0 0.0.0.255 #ip nat inside source list 1 pool wan #interface FastEthernet0/0 ip address 87.19.190.2 255.255.255.0 ip nat outside
#interface FastEthernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside
NAT重载(PAT): 端口地址转换,使用了传输层端口号来标识本地主机,理论上最多可让大约 65000台主机共用一个公有IP地址,且路由器能够确定应该将返回的数据流转发给哪台主机。 #ip nat inside source list 1 interface FastEthernet0/1 overload 或者(#ip nat pool wan 188.188.90.18 188.188.90.18 netmask 255.255.255.0 注意这个子网掩码仅决定的是广域网IP的范围与本地IP范围无关,因这只有一个广域网IP,所以可以用255.255.255.255也行。在华为、h3c中只有一个外网IP时,不能配置地址池的,否则在outbound时会出现地址冲突,所以一个外网IP时,只配置ACL并应用在outbound接口上即可) #ip nat inside source list 1 pool wan overload) #access-list 1 permit 192.168.1.0 0.0.0.255(为什么会选用标准ACL做内部本地地址?是因为标准ACL是基于源IP地址的过滤,所以能筛选出要NAT的本地IP。) #interface FastEthernet0/0 ip address 192.168.1.1 255.255.255.0 ip nat inside
#interface FastEthernet0/1 ip address 188.188.90.18 255.255.255.240 ip nat outside
端口映射技术: 其实是静态NAT与PAT的结合,即局域网中主机的某一端口通过静态方式映射到公网IP地址端口上。映射技术只能单一的实现所映射端口的特定功能,但一台主机可映射多个不同端口到同一公网IP端口上。如23代表telnet,80代表http,21代表ftp等知名端口。 #ip nat inside source static tcp 192.168.1.10 21 188.188.90.18 21 #ip nat inside source static tcp 192.168.1.10 23 188.188.90.18 23 # ip nat inside source static tcp 192.168.1.10 23 188.188.90.18 5099(扩展使用方法:可以将23端口映射全局(公网)地址的非知名端口上,但这样子映射后,访问者要telnet 188.188.90.18的5099端口,这样才能映射访问到192.168.1.10的23上。如果访问都使用默认telnet188.188.90.18的23端口是不行的)
注意: 1、在PAT局域网中使用端口映射时,必须先建立好PAT,并测试能正常通信,最后才配置端口映射。否则局域网中没有映射的主机将无法通信。 2、端口映射可跨内网路由器配置,即在公网出口的路由器上做NAT及端口映射。一个由多个路由器组成的内网,这个内网中的任何IP都是唯一的(即分组中的源IP地址和目标IP地址在内网是不变的),而端口映射是在第三层及以上才发生的,所以在内网中任何路由器上做NAT和端口映射都可以,但前提是这个路由器是出公网端的路由器。
内网跨路由器端口映射配置方法如下:
Router0 # ip nat inside source list 1 interface FastEthernet0/1 overload ip nat inside source static tcp 192.168.1.100 23 100.231.212.5 23 ip nat inside source static tcp 192.168.1.200 21 100.231.212.5 21 ip nat inside source static tcp 192.168.1.200 80 100.231.212.5 80 access-list 1 permit 10.1.1.0 0.0.0.15 access-list 1 permit 192.168.1.0 0.0.0.255 ip route 0.0.0.0 0.0.0.0 FastEthernet0/1
华为做单臂路由+NAT上网时的注意(其他品牌目前没有发现这种情况): 华为AR2200路由器 #
acl number 2000
rule 5 permit
acl number 2010
rule 5 permit source 192.168.0.0 0.0.255.255
# interface GigabitEthernet0/0/1
ip address 12.226.3.52 255.255.255.0
nat server protocol tcp global current-interface 10000 inside 10.45.42.10 3389
nat server protocol tcp global current-interface 8088 inside 10.45.42.10 8088
nat server protocol udp global current-interface 8900 inside 10.45.42.10 8900
nat server protocol tcp global current-interface 10001 inside 10.45.42.11 3389
nat server protocol tcp global current-interface 9015 inside 10.45.42.20 9015
nat server protocol tcp global current-interface 9016 inside 10.45.42.20 9016
nat server protocol udp global current-interface 9015 inside 10.45.42.20 9015
nat server protocol udp global current-interface 9016 inside 10.45.42.20 9016
nat outbound 2000
#
interface GigabitEthernet0/0/2
#
interface GigabitEthernet0/0/2.10
dot1q termination vid 10
ip address 192.168.10.244 255.255.255.0
arp broadcast enable(必须配置,才能NAT)
#
interface GigabitEthernet0/0/2.11
dot1q termination vid 11
ip address 192.168.1.244 255.255.255.0
arp broadcast enable
#
interface GigabitEthernet0/0/2.20
dot1q termination vid 20
ip address 10.45.42.59 255.255.255.192
arp broadcast enable
nat outbound 2010
#
interface NULL0
#
ip route-static 0.0.0.0 0.0.0.0 12.226.3.100
当配置完ACL以及NAT后,如果子接口不加 arp broadcast enable,那么还是不能上外网的,所以华为时必须注意的这种特殊情况。