这就是我们的目标:我们想通过处于外部的网络(也就是Internet)与内部的网络(也就是私有网络)之间的路由器配置一个静态的IP转换。
在一个拥有基本的Web接口的Linksys路由器上,这并不难做。然而,在一个使用命令行界面(即CLI)的路由器上,如果你并不知道正确的命令或者在什么地方运用它们,你就会面临着困难。
在开始之前,收集你需要的数据是一个不错的主意。下面是我们这个例子中所需要的信息:
路由器内部接口E0/0: IP 10.1.1.1
路由器外部接口S0/0: IP 63.63.63.1
Web/邮件服务器私有IP地址:10.1.1.2
Web/邮件服务器公有IP地址:63.63.63.2
要获取你网络内部和到达你的Web/邮件服务器的数据通信,你可以采用两个重要的措施:
1.NAT配置
2.防火墙配置
在本文中,笔者将提供基本的NAT配置。然而,一定要确保不管你为你的防火墙采用了什么配置,一定要允许这些数据通信通过。
不管你正运用基本的访问控制列表(ACL)或者是正使用思科的IOS防火墙属性集(详细信息见:Cisco IOS firewall feature set),一定要确信你理解了思科IOS的操作顺序,这样才能为适当的IP地址(不管是公有的还是私有的)配置你的防火墙。换句话说,哪一个先发生呢?是NAT转换,还是防火墙过滤?例如,在使用ACL时,一个输入的ACL检查要先于NAT转换。因此,你需要在头脑中牢牢记住拥有公有IP地址的ACL。
既然我们已经清楚了这些背景信息,下面就开始我们的静态NAT配置之旅吧。对我们例子来说,我们要从如下的这个基本配置开始:
interface Serial0/0
ip address 63.63.63.1 255.255.255.0
ip nat outside
interface Ethernet0/0
ip address 10.1.1.1 255.255.255.0
ip nat inside
我们需要NAT转换将Web/电子邮件服务器的外部IP地址从63.63.63.2 转换为 10.1.1.2 (从 10.1.1.2 转换为 63.63.63.2)。下面就是在外部和内部NAT配置之间缺少的环节中的操作:
router (config)# ip nat inside source static tcp 10.1.1.2 25 63.63.63.2 25
router (config)# ip nat inside source static tcp 10.1.1.2 443 63.63.63.2 443
router (config)# ip nat inside source static tcp 10.1.1.2 80 63.63.63.2 80
router (config)# ip nat inside source static tcp 10.1.1.2 110 63.63.63.2 110
我们使用了上述的端口数字,因为它们适合我们想要执行操作的描述。但是需要记住,你的端口数字可能会有所不同。笔者关闭了用于SMTP(发送邮件)的25号端口、用于HTTPS(安全Web)的443号端口,用于HTTP(Web通信)的80号端口,还关闭了用于POP3(从邮件服务器接收邮件)的110号端口。
这个配置需要假定你有一组IP地址。如果你没有,你可以使用路由器(此例中就是Serial 0/0)上的外部IP地址,你可以进行如下配置:
router (config)# ip nat inside source static tcp 10.1.1.2 25 interface serial 0/0 25
如果你有一个从ISP那里得到的动态的DHCP IP地址,你甚至也可以使用这个命令。
我们还需要在公网Internet DNS服务器中注册这个邮件和Web服务器的IP地址。因此,当用户在其Web浏览器中键入www.mywebserver.com时,浏览器就会将其转化为63.63.63.2,路由器将会把它转换为10.1.1.2。Web服务器会接收这个请求,并通过路由器给予回应,路由器会再将其转换回公网IP地址。
除了配置静态的NAT,你可能想到在这同时使用动态的NAT。有鉴于此,你内部的PC可以使用动态的NAT为访问互联网(即NAT过载或PAT)。不过,这样就有点儿更加复杂。如果大家感兴趣,可以参考思科的Configuring Static and Dynamic NAT Simultaneously文档。
参考文章《Configure static NAT for inbound connections》