当有两个运行HSRP的路由器时,如果活动的路由器出现故障,备用路由器会接管。但是如果使用了NAT的时候发生这种情况,它会切断所有通过活动路由器的连接。
在《如何使用HSRP确保路由器冗余》的文章中我们讨论过如何利用热备份路由协议(HSRP)实现Cisco路由器冗余。这次,让我们更进一步了解 其它HSRP选择。如果对使用包括HSRP的网络地址转换(NAT)感兴趣,就应该熟悉Cisco IOS状态网络地址转换(SNAT)的特性,当使用NAT时它 有助于在网络中提供更高的可用性和更好的冗余。
快速回顾一下,当有两个运行HSRP的路由器时,如果活动的路由器出现故障,备用路由器会接管。然而,如果使用NAT的时候出现这种情况,它 会切断通过使用动态NAT的活动路由器的所有连接,而且用户将需要重新建立这些连接。该如何使用HSRP和SNAT以保持这些NAT转换呢?
什么是SNAT?
对于SNAT到底代表什么会产生一些混淆,Google搜索将返回各种不同的定义。根据微软的说法,SNAT代表Secure NAT(安全NAT)而且在ISA Server上可用。除此之外,SNAT可以代表Source NAT(源NAT)。然而,按照Cisco的说法,SNAT代表Stateful NAT(状态NAT)。
SNAT包括两个或更多作为一个组执行NAT功能的路由器。这些NAT路由器在它们的NAT转换数据库中相互交换信息。可以使用show ip nat translations命令查看这些信息,该命令的输出列出了协议,内部全局IP,内部本地IP,外部本地IP以及外部全局IP。
无论何时一个新的NAT连接通过某个NAT路由器时,路由器将该信息中继给SNAT组中的其它路由器。但是这些路由器并非只是交换NAT IP流的IP 地址;它们还交换这些流的TCP状态。备用路由器已经创建了NAT转换表并且等待活动路由器出现故障。
换句话说,这个NAT流信息交换的目的是保证,如果活动NAT路由器出现故障,某个备用NAT能够接管。尽管可以配置SNAT为主/备份模式,但是 它在用HSRP配置的时候工作得很好。
Cisco分阶段发布的SNAT,第一个阶段,在Cisco in IOS 12.2(13)T的发布中,它只对在应用层中不包含IP地址的协议有效。但是对于Cisco IOS 12.3(7)T,SNAT支持在应用层中嵌入IP信息的应用,例如FTP。除此之外,Cisco在IOS 12.4(4)T中为SNAT发布了一些可伸缩的增强。
如何配置SNAT?
要配置带HSRP的SNAT,首先在HSRP接口使用常规的HSRP standby命令。还需要以组名SNATHSRP配置一个HSRP路由器以使用SNAT HSRP API。
你的standby命令应该类似于:
standby name SNATHSRP
standby ip 10.10.10.1 secondary
还需要保证在SNAT组中路由器之间完全交换NAT状态。这里是一个例子:
standby delay reload 60
standby 1 preempt delay minimum 60 reload 60 sync 60
在退出接口配置模式之后,输入ip nat stateful命令;确保它包括相同的SNATHSRP组名。这里是一个例子:
ip nat stateful id 1
redundancy SNATHSRP
mapping-id 10
现在可以输入你的标准NAT命令以建立你的转换池。这里是一个例子:
ip nat pool snatpool1 10.10.10.1 10.10.10.9 prefix-length 24
ip nat inside source route-map rm-snat1 pool snatpool1 mapping-id 10 overload
下一步,根据你正在配置NAT的网络,建立访问控制列表和路由图。这里是一个例子:
access-list 101 permit ip 10.10.10.0 0.0.0.255 1.1.1.0 0.0.0.255
route-map rm-snat1 permit 10
match ip address 101
最后,配置SNAT和HSRP池中的其它路由器以进行通信。之后,可以使用show ip nat translations,show ip nat statistics以及show ip snat这样的附加NAT命令。
在发生故障的时候结合使用SNAT和HSRP以保持NAT转换。备用路由器可以加入并接管活动的任务,用户不会发现出现了故障。