3).端口复用动态地址转换(PAT)
内部网络使用的IP地址段为10.100.100.1~10.100.100.254,路由器局域网端口(即默认网关)的IP地址为10.100.100.1,子网掩码为255.255.255.0。网络分配的合法IP地址范围为202.99.160.0~202.99.160.3,路由器广域网中的IP地址为202.99.160.1,子网掩码为255.255.255.252,可用于转换的IP地址为202.99.160.2。要求将内部网址10.100.100.1~10.100.100.254 转换为合法IP地址202.99.160.2。
第一步,设置外部端口。
interface serial 0
ip address 202.99.160.1 255.255.255.252
in nat outside
第二步,设置内部端口。
interface ethernet 0
ip address 10.100.100.1 255.255.255.0
ip nat inside
第三步,定义合法IP地址池。
in nat pool onlyone 202.99.160.2 202.99.160.2 netmask 255.255.255.252
// 指明地址缓冲池的名称为onlyone,IP地址范围为202.99.160.2,子网掩码为255.255.255.252。由于本例只有一个IP地址可用,所以,起始IP地址与终止IP地址均为202.99.160.2。如果有多个IP地址,则应当分别键入起止的IP直址。
第四步,定义内部访问列。
access-list 1 permit 10.100.100.0 0.0.0.255
允许访问Internetr的网段为10.100.100.0~10.100.100.255,子网掩码为255.255.255.0。需要注意的是,在这里子网掩码的顺序跟平常所写的顺序相反,即0.255.255.255。
第五步,设置复用动态地址转换。
在全局设置模式下,设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。命令语法如下:
ip nat inside source list访问列表号pool内部合法地址池名字overload
示例:
ip nat inside source list1 pool onlyone overload //以端口复用方式,将访问列表1中的私有IP地址转换为onlyone IP地址池中定义的合法IP地址。
注意:overload是复用动态地址转换的关键词
至此,端口复用动态地址转换完成。
网络地址转换(NAT)-实例
示例一:全部采用端口复用地址转换
当ISP分配的IP地址数量很少,网络又没有其他特殊需求,即无需为Internet提供网络服务时,可采用端口利用地址转换方式,使网络内的计算机采用同一IP地址访问Internet,在节约IP地址资源的同时,又可有效保护网络内部的计算机。
网络环境为:
局域网采用10Mb/s光纤,以城域网方式接入Internet,如图4-2-2所示。路由器选用拥有2个10/100 Mb/s自适应端口的Cisco 2611。内部网络使用的IP地址段为192.168.100.1~192.101.254,局域网端口Ethernet 0的IP地址为192.168.100.1,子网掩码为255.255.0.0。网络分配的合法IP地址范围为202.99.160.128~202.99.160.131,连接ISP的端口Ethernet 1的IP地址为202.99.160.129,子网掩码为255.255.255.252。可用于转换的IP地址为202.99.160.130。要求网络内部的所有计算机均可访问Internet。
案例分析:
既然只有一个可用的合法IP地址,同时处于局域网的服务器又只为局域网提供服务,而不允许Internet中的主机对其访问,因此完全可以采用端口复用地址转换方式实现NAT,使得网络内的所有计算机均可独立访问Internet。
配置清单:
interface fastethernet0/0
ip address 192.168.100.1 255.255.0.0 //定义本地端口IP地址
duplex auto
speed auto
ip nat inside // 定义为本地端口
!
interface fastethernet0/1
ip address 202.99.160.129 255.255.255.252
duplex auto
speed auto
ip nat outside
!
ip nat pool onlyone 202.99.160.130 202.99.160.130 netmadk 255.255.255.252 //定义合法IP地址池,名称为onlyone
access-list 1 permit 192.168.100.0 0.0.0.255 //定义本地访问列表
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list1 pool onlyone overload //采用端口复用动态地址转换
示例二:动态地址+端口复用地址转换
许多FTP网站考虑到服务器性能和Internet连接带宽的占用问题,都限制同一IP地址的多个进程访问。如果采用端口复地址转换方式,则网络内的所以计算机都采用同一IP地址访问Internet,那么,将因此而被禁止对该网站的访问。所以,当提供的合法IP地址数量稍多时,可同时采用端口复用和动态地址转换方式,从而既可保证所有用户都能够获得访问Internet的权力,同时,又不致、某些计算机因使用同一IP地址而被限制权限。需要注意的是,由于所有计算机都采用动态地址转换方式,因此Internet中的所有计算机将无法实现对网络内部服务器的访问。
网络环境:
局域网以2Mb/s DNA专线接入Internet,路由器选用安装了广域网模块的Cisco 2611,如图4-2-2所示。内部网络使用的IP地址段为172.16.100.1~172.16.102.254,局域网端口Ethernet 0的IP地址为172.16.100.1,子网掩码为255.255.0.0。网络分配的合法IP地址范围为202.99.160.128~202.99.160.129,子网掩码为255.255.255.192,可用于转换的IP地址范围为202.99.160.130~202.99.160.190。要求网络部分的部分计算机可以不受任何限制地访问Internet,服务器无需提供Internet访问服务。
案例分析:
既然要求网络中的部分计算机可以不受任何限制地访问Internet,同时,服务器无需提供Internet访问服务,那么,只需采用动态地址转换+端口复用地址转换方式即可实现。部分有特殊需求的计算机采用动态地址转换的NAT方式,其他计算机则采用端口复用地址转换的NAT方式。因此,部分有特殊需求的计算机可采用内部网址172.16.100.1~172.16.100.254,并动态转换为合法地址202.99.160.130~202.99.160.189,其他计算机采用内部网址172.16.101.1~172.16.102.254,全部转换为202.99.160.190。
配置清单:
interface fastethernet0/1
ip address 10.100.100.1 255.255.255.0 //定义局域网端口IP地址
duplex auto
speed auto
ip nat inside //定义为局域端口
!
interface serial 0/0
ip address 202.99.160.129 255.255.255.192 //定义广域网端口IP地址
!
duplex auto
speed auto
ip nat outside //定义为广域端口
!
ip nat pool public 202.99.160.130 202.130.160.190 netmask 255.255.255.192 //定义合法IP地址池,名称为public
ip nat pool super 202.99.160.130 202.130.160.189 netmask 255.255.255.192 //定义合法IP地址池,名称为super
ip nat inside source list1 pool super //定义列表达1采用动态地址转换
ip nat inside source list2 pool public overload? //定义列表2采用端口复用地址转换
access-list1 permit 172.16.100.0 0.0.0.255 //定义本地访问列表1
access-list2 permit 172.16.102.0 0.0.0.255 //定义本地访问列表2
access-list2 permit 172.16.102.0 0.0.0.255
示例三:静态地址转换+端口复用地址转换
其实在很多时候,网络中的服务器既为网络内部的客户提供网络服务,又同时为Internet中的用户提供访问服务。因此,如果采用端口复用地址转换或动态地址转换,将由于无法确定服务器的IP地址,而导致Internet用户无法实现对网络内部服务器的访问。此时,就应当采用静态地址转换+端口复用地址转换的NAT方式。也就是说,对服务器采用静态地址转换,以确保服务器拥有固定的合法IP地址。而对普通的客户计算机则采用端口复用地址转换,使所有用户都享有访问Internet的权力。
网络环境为:
局域网采用10Mb/s光纤,以城域网方式接入Internet,如图4-2-2所示。路由器选用拥有2个10/100 Mb/s自适应端口的Cisco 2611。内部网络使用的IP地址段为10.18.100.1~10.18.104.254,局域网端口Ethernet 0的IP地址为10.18.100.1,子网掩码为255.255.0.0。网络分配的合法IP地址范围为211.82.220.80~211.82.220.87,连接ISP的端口Ethernet 1的IP地址为211.82.220.81,子网掩码为255.255.255.248。要求网络内部的所有计算机均可访问Internet,并且在Internet中提供Web、E-mail、FTP和Media等4种服务。
案例分析:
既然网络内的服务器要求能够被Internet访问到,那么,这部分主机必须拥有合法的IP地址,也就是说,服务器必须采用静态地址转换。其他计算机由于没有任何限制,所以,可采用端口复用地址转换的NAT方式。因此,服务器可采用内网址10.18.100.1~10.18.100.254,并分别映射为一个合法的IP地址。其他计算机则采用内部网址10.18.101.1~172.16.104.254,并全部转换为一个合法的IP地址。
配置清单:
interface fastethernet0/0
ip address 10.18.100.1 255.255.0.0 //定义局域网口IP地址
duplex auto
speed auto
ip nat inside //定义局域网口
!
interface fastethernet0/1
ip address 211.82.220.81 255.255.255.248 //定义广域网口IP地址
duplex auto
speed auto
ip nat outside //定义广域网口
!
ip nat pool every 211.82.220.86 211.82.220.86 netmask 255.255.255.248 //定义合法IP地址池
access-list 1 permit 10.18.101.0 0.0.0.255 //定义本地访问列表1
access-list 1 premit 10.18.102.0 0.0.0.255
access-list 1 premit 10.18.103.0 0.0.0.255
access-list 1 premit 10.18.104.0 0.0.0.255
ip nat inside source list1 pool every overload //定义列表达1采用端口复用地址转换
ip nat inside source static 10.18.100.10 211.82.220.82 //定义静态地址转换
ip nat inside source static 10.18.100.11 211.82.220.83
ip nat inside source static 10.18.100.12 211.82.220.84
ip nat inside source static 10.18.100.13 211.82.220.85
示例四:TCP/UDP端口NAT映射
如果ISP提供的合法IP地址的数量较多,我们自然可以采用静态地址转换+端口复用动态地址转换的方式得以完美实现。但如果ISP只提供4个IP地址,其中2个作为网络号和广播地址而不可使用,1个IP地址要用于路由器定义为默认网关, 那么将只剩下1个IP地址可用。当然我们也可以利用这个仅存的一个IP地址采用端口复用地址转换技术,从而实现整个局域网的Internet接入。但是由于服务器也采用动态端口,因此,Internet中的计算机将无法访问到网络内部的服务器。有没有好的解决问题的方案呢?这就是TCP/UDP端口NAT映射。
我们知道,不同应用程序使用的TCP/UDP的端口是不同的,比如,Web服务使用50,FTP服务使用21,SMTP服务使用25,POP3服务使用110,等等。因此,可以将不同的TCP端口绑定至不同的内部IP地址,从而只使用一个合法的IP地址,即可在允许内部所有服务器被Internet访问的同时,实现内部所有主机对Internet访问。
网络环境:
局域网采用10Mb/s光纤,以城域网方式接入Internet,如图4-2-5所示。路由器选用拥有2个10/100 Mb/s自适应端口的Cisco 2611。内部网络使用的IP地址段为192.168.1.1~192.168.1.254,局域网端口Ethernet 0的IP地址为192.168.1.1,子网掩码为255.255.255.0。网络分配的合法IP地址范围为,211.82.220.128~211.82.220.131,连接ISP的端口Ethernet 1的IP地址为211.82.220.129,子网掩码为255.225.255.252,可用于转换的IP地址为211.82.220.130。要求网络内部的所有计算机均可访问Internet。
案例分析:
既然只有一个可用的合法IP地址,当然只能采用端口复用方式实现NAT,不过,由于同时又要求网络内部的服务器可以被Internet访问到,因此,必须使用PAT创建TCP/UDP端口的NAT映射。需要注意的是,也可以直接使用广域端口创建TCP/UDP端口的NAT映射,也就是说,即使只有一个IP地址,也可以完美实现端口复用。由于合法IP地址位于路由器端口上,所以,不再需要定义NAT池,只简单地使用inside source list语句即可。
需要注意的是,由于每种应用服务都有自己默认的端口,所以,这种NAT方式下,网络内部每种应用服务中只能各自有一台服务器成为Internet中的主机,例如,只能有一台Web服务器,一台E-mail服务,一台FTP服务器。尽管可以采用改变默认端口的方式创建多台应用服务器,但这种服务器在访问时比较困难,要求用户必须先了解某种服务采用的新TCP端口。
配置清单:
interface fastethernet0/0
ip address 192.168.1.1 255.255.255.0//指定局域网口的IP地址
duplex auto
speed auto
ip nat inside //指定局域网接口
!
interface fastethernet0/1
ip address 211.82.220.129 255.255.255.248 //指定广域网口的IP地址
access-list 1 permit 192.168.1.0 0.0.0.255
!
ip nat inside source list1 interface fastethernet0/1 overload //启用端口复用地址转换,并直接采用fastethernet0/1的IP地址。
ip nat inside source static tcp 192.168.1.11 80 202.99.160.129.80
ip nat inside source static tcp 192.168.1.12 21 202.99.160.129.21
ip nat inside source static tcp 192.168.1.13 25 202.99.160.129.25
ip nat inside source static tcp 192.168.1.13 110 202.99.160.129 110
示例五:利用地址转换实现负载均衡
随着访问量的上升,当一台服务器难以胜任时,就必须采用负载均衡技术,将大量的访问合理地分配至多台服务器上。当然,实现负载均衡的手段有许多种,比如可以采用服务器群集负载均衡、交换机负载均衡、DNS解析负载均衡等等。
其实除此以外,也可以通过地址转换方式实现服务器的负载均衡。事实上,这些负载均衡的实现大多是采用轮询方式实现的,使每台服务器都拥有平等的被访问机会。
网络环境:
局域网以2Mb/s DDN专线拉入Internet,路由器选用安装了广域网模块的Cisco 2611,如图4-2-6所示。内部网络使用的IP地址段为10.1.1.1~10.1.3.254,局域网端口Ethernet 0的IP地址为10.1.1.1,子网掩码为255.255.252.0。网络分配的合法IP地址范围为202.110.198.80~202.110.198.87,连接ISP的端口Ethernet 1的IP地址为202.110.198.81,子网掩码为255.255.255.248。要求网络内部的所有计算机均可访问Internet,并且在3台Web服务器和2台FTP服务器实现负载均衡。
案例分析:
既然要求网络内所有计算机都可以接入Internet,而合法IP地址又只有5个可用,当然可采用端口复用地址转换方式。本来对服务器通过采用静态地址转换,赋予其合法IP地址即可。但是,由于服务器的访问量太大(或者是服务器的性能太差),不得不使用多台服务器作负载均衡,因此,必须将一个合法IP地址转换成多相内部IP地址,以轮询方式减轻每台服务器的访问压力。
配置文件:
interface fastethernet0/1
ip adderss 10.1.1.1 255.255.252.0 //定义局域网端口IP地址
duplex auto
speed auto
ip nat inside //定义为局域端口
!
interface serial 0/0
ip address 202.110.198.81 255.255.255.248 //定义广域网端口IP地址
duplex auto
speed auto
ip nat outside //定义为广域端口
!
access-list 1 permit 202.110.198.82 //定义轮询地址列表1
access-list 2 permit 202.110.198.83 //定义轮询地址列表2
access-list 3 permit 10.1.1.0 0.0.3.255 //定义本地访问列表3
!
ip nat pool websev 10.1.1.2 10.1.1.4 255.255.255.248 type rotary //定义Web服务器的IP地址池,Rotary关键字表示准备使用轮询策略从NAT池中取出相应的IP地址用于转换进来的IP报文,访问202.110.198.82的请求将依次发送给web服务器:10.1.1.2、10.1.1.3和10.1.1.4
ip nat pool ftpsev 10.1.1.8 10.1.1.9 255.255.255.248 type rotary //定义ftp服务器的IP地址池。
ip nat pool normal 202.110.198.84 202.110.198.84 netmask 255.255.255.248 //定义合法IP地址池,名称为normal
ip nat inside destination list 1 pool websev //inside destination list 语句定义与列表1相匹配的IP地址的报文将使用轮询策略
ip nat inside destination list 2 pool ftpsev