NAT设置可以分为静态地址转换、动态地址转换、复用动态地址转换。
1、 静态地址转换适用的环境
静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。
静态地址转换基本配置步骤:
(1)、在内部本地地址与内部合法地址之间建立静态地址转换。在全局设置状态下输入:
Ip nat inside source static 内部本地地址 内部合法地址
(2)、指定连接网络的内部端口 在端口设置状态下输入:
ip nat inside
(3)、指定连接外部网络的外部端口 在端口设置状态下输入:
ip nat outside
注:可以根据实际需要定义多个内部端口及多个外部端口。
实例1:
本实例实现静态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.2,10.1.1.3,10.1.1.4的内部本地地址采用静态地址转换。其内部合法地址分别对应为192.1.1.2,192.1.1.3,192.1.1.4。
ip nat inside source static 10.1.1.2 192.1.1.2
ip nat inside source static 10.1.1.3 192.1.1.3
ip nat inside source static 10.1.1.4 192.1.1.4
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
interface Serial0
ip address 192.1.1.1 255.255.255.0
ip nat outside
no ip mroute-cache
==============================
配置完成后可以用以下语句进行查看:
show ip nat statistcs
show ip nat translations
2、动态地址转换适用的环境:
动态地址转换也是将本地地址与内部合法地址一对一的转换,但是动态地址转换是从内部合法地址池中动态地选择一个末使用的地址对内部本地地址进行转换。
动态地址转换基本配置步骤:
(1)、在全局设置模式下,定义内部合法地址池
ip nat pool 地址池名称 起始IP地址 终止IP地址 子网掩码
其中地址池名称可以任意设定。
(2)、在全局设置模式下,定义一个标准的Access-list规则以允许哪些内部地址可以进行动态地址转换。
access-list 标号 permit 源地址 通配符
其中标号为1-99之间的整数。
(3)、在全局设置模式下,将由access-list指定的内部本地地址与指定的内部合法地址池进行地址转换。
ip nat inside source list 访问列表标号 pool内部合法地址池名字
(4)、指定与内部网络相连的内部端口在端口设置状态下:
ip nat inside
(5)、指定与外部网络相连的外部端口
ip nat outside
实例2:
本实例中硬件配置同上,运用了动态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.0网段采用动态地址转换。对应内部合法地址为192.1.1.2~192.1.1.10
ip nat pool aaa 192.1.1.2 192.1.1.10 netmask 255.255.255.0
ip nat inside source list 1 pool aaa
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
interface Serial0
ip address 192.1.1.1 255.255.255.0
ip nat outside
access-list 1 permit 10.1.1.0 0.0.0.255
==============================
3、复用动态地址转换适用的环境:
复用动态地址转换首先是一种动态地址转换,但是它可以允许多个内部本地地址共用一个内部合法地址。只申请到少量IP地址但却经常同时有多于合法地址个数的用户上外部网络的情况,这种转换极为有用。
注意:当多个用户同时使用一个IP地址,外部网络通过路由器内部利用上层的如TCP或UDP端口号等唯一标识某台计算机。
复用动态地址转换配置步骤:
在全局设置模式下,定义内部合地址池
ip nat pool 地址池名字 起始IP地址 终止IP地址 子网掩码
其中地址池名字可以任意设定。
在全局设置模式下,定义一个标准的access-list规则以允许哪些内部本地地址可以进行动态地址转换。
access-list 标号 permit 源地址 通配符
其中标号为1-99之间的整数。
在全局设置模式下,设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。
ip nat inside source list 访问列表标号 pool 内部合法地址池名字 overload
在端口设置状态下,指定与内部网络相连的内部端口
ip nat inside
在端口设置状态下,指定与外部网络相连的外部端口
ip nat outside
实例:应用了复用动态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。10.1.1.0网段采用复用动态地址转换。假设企业只申请了一个合法的IP地址192.1.1.1。
配置事例
1、 共享一公网IP
如图所示,某公司内部网络通过一个公网IP访问INTERNET
具体配置:
Router1(config-if-bri1/0)# ip address negotiated
Router1(config-if-bri1/0)# ip nat outside
Router1(config-if-bri1/0)# encapsulation ppp
Router1(config-if-bri1/0)# ppp pap sent-username 169 password 169
Router1(config-if-bri1/0)# ppp multilink
Router1(config-if-bri1/0)# dialer load-threshold 60
Router1(config-if-bri1/0)# dialer in-band
Router1(config-if-bri1/0)# dialer-group 1
Router1(config-if-bri1/0)# dialer string 169
Router1(config-if-bri1/0)# exit
!
Router1(config)# dialer-list 1 protocol ip permit
Router1(config)# access-list 1 permit any
Router1(config)# ip route 0.0.0.0/0 interface bri2/0
Router1(config)# ip nat on
Router1(config)# ip nat inside source list 1 interface bri 2/0 overload
!
Router1(config)# interface eth 0/0
Router1(config-if-eth0/0)# ip address 192.168.0.1/24
Router1(config-if-eth0/0)# ip nat inside
2、负载均衡
如图所示路由器上有两个接口:以太网接口E0/0与内部网相连,使用私有地址192.168.0.1;以太网接口E0/1与因特网相连,地址为61.20.12.4;使用三台PC服务器来提供WEB服务,它们使用私有地址。
具体配置:
Router(config)# ip nat pool websvrs
Router(config)# type rotary
Router(config-ipnat-pool)# address 192.168.0.2 192.168.0.4
Router(config)# access-list 1 permit 61.20.12.4/32
Router(config)# ip nat inside destination list 1 pool websvrs
Router(config)# interface eth0/0
Router(config-if-eth0/0)# ip nat inside
Router(config)# interface eth0/1
Router(config-if-eth0/1)# ip nat outside
Router(config)# ip nat on
注:所有由外网发往61.20.12.4的请求都会被轮流转发给地址池中的三台服务器处理。
三、NAT的监控与维护
如图所示路由器上有两个接口:以太网接口E0/0与内部网相连,使用私有地址192.168.0.1;以太网接口E0/1与因特网相连,
地址为61.20.12.4;使用三台PC服务器来提供WEB服务,它们使用私有地址。
可以用show ip nat statistics命令显示关于NAT的统计信息,输出如下:
Total active translations: 75 当前的NAT转换的总数
Outside interfaces: 当前设置的外部接口
dialer0
Inside interfaces: 当前设置的内部接口
eth0/0
可以用show ip nat translations命令显示当前的NAT转换表,输出如下:
Pro Inside global Inside local Outside local Outside global
6 61.149.32.147:1514 192.168.0.33:1514 202.107.35.22:5555 202.107.35.22:5555
6 61.149.32.147:1222 192.168.0.39:1222 202.96.137.34:80 202.96.137.34:80
6 61.149.32.147:1090 192.168.0.36:1090 64.4.12.51:1863 64.4.12.51:1863
6 61.149.32.147:2097 192.168.0.55:2097 216.136.171.200:80 216.136.171.200:80
6 61.149.32.147:1225 192.168.0.39:1225 x 3d.aa.97.ec:43b x 3d.aa.97.ec:43b
6 61.149.32.147:2098 192.168.0.55:2098 216.136.171.200:80 216.136.171.200:80
6 61.149.32.147:1907 192.168.0.42:1907 64.4.12.84:1863 64. 4.12.84:1863
Total translation: 19 当前的NAT转换表项数
第一列显示连接的协议号;
第二列显示连接的内部全局地址;
第三列显示连接的内部本地地址;
第四列显示连接的外部本地地址;
第五列显示连接的外部全局地址;
若连接的协议包含端口,则会在地址中显示端口,若地址太长,则使用地址的十六进制表示,并在该地址前添加一个x;
可用debug ip nat命令查看地址转换的详细信息,输出如下:
NAT*: 0x1f2c34 inside initiated connection --- proto 1 (192.168.0.234.) -> (202.112.58.200) pool (61.34.2.42 – 61.34.2.42)
表示将对内部主机发出的一个icmp进行地址转换处理,可供使用的内部全局地址是61.34.2.42;
NAT*: 0x1f2c34 do snat --- proto 1 (192.168.0.234) >> (61.34.2.42)
表示改变了报文的源地址,从内部本地地址192.168.0.234转换成内部全局地址61.34.2.42;
NAT*: 0x1f2c34 closed
表示连接已关闭。