一、HSRP中应用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
在退出接口配置模式之后,输入ip nat stateful命令;确保它包括相同的SNATHSRP组名。Mapping ID 命令用于指定本地SNAT路由器是否分发本地被创建的nat条目到对端 SNAT router,这里是一个例子:
ip nat stateful id 1
redundancy SNATHSRP
mapping-id 10
现在可以输入你的标准NAT命令以建立你的转换池。这里是一个例子:
access-list 100 permit ip 192.168.1.0 0.0.0.255 any
ip nat pool snatpool1 155.1.45.1 155.1.45.254 prefix-length 24
ip nat inside source list 100 pool snatpool1 mapping-id 10 overload
最后,配置SNAT和HSRP池中的其它路由器以进行通信。之后,可以使用show ip nat translations,show ip nat statistics以及show ip snat这样的附加NAT命令。
在发生故障的时候结合使用SNAT和HSRP以保持NAT转换。备用路由器可以加入并接管活动的任务,用户不会发现出现了故障。
四、实验配置
 
【实验拓扑】

【实验要求】

1、按照上图配置好网络以及HSRP
2、设置HSRP的NAT
3、验证时通过R6 telnet R1,保证在R4的s0/0接口中断的情况下,telnet依然可以进行而无需重新连接

 
【实验配置】
R1:
interface Serial 0/0
encapsulation frame-relay
no frame-relay inverse-arp
ip address 155.1.0.1 255.255.255.0
frame-relay map ip 155.1.0.5 105 broadcast
frame-relay map ip 155.1.0.4 104 broadcast
ip ospf network broadcast
no shutdown
!
router ospf 1
router-id 150.1.1.1
network 155.1.0.1 0.0.0.0 area 0
R4:
interface E 0/1
ip address 155.1.100.4 255.255.255.0
standby 1 name GROUP1
standby 1 ip 155.1.100.254
standby 1 preempt
standby 1 priority 110
standby 1 track Serial 0/0 20
no shutdown
!
interface Serial 0/0
encapsulation frame-relay
no frame-relay inverse-arp
ip address 155.1.0.4 255.255.255.0
frame-relay map ip 155.1.0.5 401 broadcast
frame-relay map ip 155.1.0.1 401
ip ospf priority 0
ip ospf network broadcast
no shutdown
!
interface Loopback0
ip address 150.1.45.4 255.255.255.0
!
router ospf 1
router-id 150.1.4.4
redistribute connected subnets metric 400
network 155.1.0.4 0.0.0.0 area 0
R5:
interface E 0/0
ip address 155.1.100.5 255.255.255.0
standby 1 name GROUP1
standby 1 ip 155.1.100.254
standby 1 preempt
standby 1 priority 100
no shut
!
interface Serial 0/0
encapsulation frame-relay
no frame-relay inverse-arp
ip address 155.1.0.5 255.255.255.0
frame-relay map ip 155.1.0.1 501 broadcast
frame-relay map ip 155.1.0.4 501
ip ospf network broadcast
ip ospf priority 0
no shutdown
!
interface Loopback0
ip address 150.1.45.5 255.255.255.0
!
router ospf 1
router-id 150.1.5.5
network 155.1.0.5 0.0.0.0 area 0
redistribute connected subnets metric 500
R6:
interface G 0/0
ip address 155.1.100.6 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 155.1.100.254
NAT 配置
----------------------------------------------------------------------------------
R5:
interface Eth 0/0
ip nat inside
!
interface Serial 0/0
ip nat outside
!
access-list 100 permit ip 155.1.100.0 0.0.0.255 any
定义允许内部的地址
!
ip nat pool POOL 150.1.45.1 150.1.45.254 prefix 24
定义被转换的地址池
!

 
ip nat stateful id 1
redundancy GROUP1
mapping-id 10
定义状态NAT,指定standby name,并且允许本地SNAT路由器分发nat条目到对端NAT
!
ip nat inside source list 100 pool POOL mapping-id 10
做NAT配置,并设置mapping-id
R4:
interface Ethernet 0/1
ip nat inside
!
interface Serial 0/0
ip nat outside
!
access-list 100 permit ip 155.1.100.0 0.0.0.255 any
!
ip nat pool POOL 150.1.45.1 150.1.45.254 prefix 24
!
ip nat stateful id 1
redundancy GROUP1
mapping-id 10
!
ip nat inside source list 100 pool POOL mapping-id 10


 
【实验验证】
R4#show ip snat distributed
Stateful NAT Connected Peers
SNAT: Mode IP-REDUNDANCY :: ACTIVE

: State READY
: Local Address 155.1.100.4
: Local NAT id 1
: Peer Address 155.1.100.5
: Peer NAT id 1
: Mapping List 100
R5#show ip snat distributed
Stateful NAT Connected Peers
SNAT: Mode IP-REDUNDANCY :: STANDBY

: State READY
: Local Address 155.1.100.5
: Local NAT id 1
: Peer Address 155.1.100.4
: Peer NAT id 1
: Mapping List 100
R6#telnet 155.1.0.1
Trying 155.1.0.1 ... Open
R1>


 
通过R4与R5能够看到相同的条目
R4#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 150.1.45.1:24986 155.1.100.6:24986 155.1.0.1:23 155.1.0.1:23
--- 150.1.45.1 155.1.100.6 --- ---


 
R5#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 150.1.45.1:24986 155.1.100.6:24986 155.1.0.1:23 155.1.0.1:23
--- 150.1.45.1 155.1.100.6 --- -


 
R4#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R4(config)#interface serial 0/0
R4(config-if)#shutdown
R5#show standby
Ethernet0/0 - Group 1
State is Active
R5变成了active
2 state changes, last state change 00:00:26
Virtual IP address is 155.1.100.254
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.024 secs
Preemption enabled
Active router is local
Standby router is 155.1.100.4, priority 90 (expires in 8.020 sec)
Priority 100 (default 100)
IP redundancy name is "GROUP1" (cfgd)
R5#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 150.1.45.1:33932 155.1.100.6:33932 155.1.0.1:23 155.1.0.1:23
--- 150.1.45.1 155.1.100.6 --- ---
R5#
R6#telnet 155.1.0.1
Trying 155.1.0.1 ... Open
User Access Verification

 
Password:
R1>
R1>
R1>
R1>

连接的telnet一直没有断开
【下面测试普通NAT带来的效果】
NAT 配置
----------------------------------------------------------------------------------
R5:
interface Eth 0/0
ip nat inside
!
interface Serial 0/0
ip nat outside
!
access-list 100 permit ip 155.1.100.0 0.0.0.255 any
定义允许内部的地址
!
ip nat pool POOL 150.1.45.1 150.1.45.254 prefix 24
定义被转换的地址池
!

 
ip nat stateful id 1
redundancy GROUP1
mapping-id 10
定义状态NAT,指定standby name,并且允许本地SNAT路由器分发nat条目到对端NAT
!
ip nat inside source list 100 pool POOL mapping-id 10
R4:
interface Ethernet 0/1
ip nat inside
!
interface Serial 0/0
ip nat outside
!
access-list 100 permit ip 155.1.100.0 0.0.0.255 any
!
ip nat pool POOL 150.1.45.1 150.1.45.254 prefix 24
!
ip nat stateful id 1
redundancy GROUP1
mapping-id 10
!
ip nat inside source list 100 pool POOL mapping-id 10


 
验证:

 
R6#telnet 155.1.0.1
先tenet到R1上
Trying 155.1.0.1 ... Open
User Access Verification
Password:
R1>
R1>
R1>
R1>
R1>exit

 
[Connection to 155.1.0.1 closed by foreign host]


 
然后再R4上手动shutdown s0/0接口
看上面的高亮显示,连接被重置,此时nat也将失效

转载于:https://blog.51cto.com/haolun/993034

NAT应用于HSRP环境相关推荐

  1. SSD固态盘应用于Ceph集群的四种典型使用场景

    在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化.云化的关键指标之一.传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利 ...

  2. PHP超级配置模块--PHP4,PHP5,module,cgi任你玩转--应用于Apache

    来源: http://www.newasp.net/tech/php/1079.html 在Apache之中调用PHP是个经久不衰的话题,目前的PHP存在PHP4和PHP5的版本,而且在Apache之 ...

  3. libcareplus应用于Qemu-6.1.0

    libcareplus应用于Qemu-6.1.0 荣涛 2021年9月26日 1. 环境与步骤 1.1. 软件版本 Qemu:6.1.0 libvirt:7.0.0 virt-manager:2.2. ...

  4. 编译用于高放射性环境的应用程序

    本文翻译自:Compiling an application for use in highly radioactive environments We are compiling an embedd ...

  5. 如何将高效设计应用于 DAO?

    去中心化是需要提高效率的. DAO 的操作者们已经感受到了协调.沟通和执行失败的痛苦.这就是我们想象的未来吗?我们真的在建设新的数字领域的道路上吗?许多经验丰富的操作者甚至都会指出 DAO 构造本质上 ...

  6. 应用于RFID医疗试剂防伪管理系统解决方案

    1.项目背景 Iris Diagnostics(纽约证券交易所Beckman Coulter分部:BEC)是加州一家医疗诊断制造商,公司希望将一个基于rfid防伪管理系统集成到其iQ200自动尿液分析 ...

  7. 如何将Simulink应用于ISO 26262项目

    如何将Simulink应用于ISO 26262项目 作者 Tom Erkkinen, MathWorks 转载自:MathWorks 研究传统汽车和自动驾驶汽车嵌入式安全系统领域的汽车工程师正在寻找有 ...

  8. Tensorflow—CNN应用于MNIST数据集分类

    代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_datamnist = input_ ...

  9. 如何将CSS应用于iframe?

    我有一个简单的页面,其中包含一些iframe部分(以显示RSS链接). 如何将相同的CSS格式从首页应用到iframe中显示的页面? #1楼 上面有一些更改的作品: var cssLink = doc ...

最新文章

  1. 一直都想总结一下自己遇到过的web安全方面的问题--2015-03-31
  2. ubuntu获取root权限_群辉 SSH 获取 root 权限
  3. 《剑指offer》包含min函数的栈
  4. (十四)消息中间件MQ详解及四大MQ比较
  5. rough and crude
  6. linux不支持32,Visual Studio Code 1.36发布,不再支持Linux 32位
  7. 【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)
  8. 漫画:IT公司年终总结会开崩了...
  9. Python2.7-sqlite3
  10. ubuntu 应用程序菜单_Ubuntu智能手机,塔式无人机飞行控制应用程序等
  11. 4种Spring Boot 实现通用 Auth 认证方式
  12. python改变数组元素排序
  13. AI 开发者如何摆脱只有“人工”没有“智能?
  14. 【SQL注入16】SQL漏洞利用之读写文件
  15. 小花语音机器人(零)-单片机控制驱动板PCB
  16. 树莓派4b自带wifi_树莓派raspberry4B入坑指南 part-11 在命令行中设置wifi
  17. Python基础_闭包和迭代器
  18. 计算机检索系统常用的运算符,计算机信息检索过程中常用的检索表达式 计算机信息检索系统.doc...
  19. 电脑如何查看wifi密码?
  20. ( 算法树之几何 )【 皮克定理 】

热门文章

  1. Sql Server数据库备份和恢复:原理篇
  2. Checkpoint--实现步骤
  3. 近期会将视频在线课堂移植ios,欢迎大家关注
  4. Silverlight 参考: Path的Data生成归总
  5. 解决PowerDesigner中Name与Code同步的问题
  6. Consider defining a bean of type ‘com.xg.stupro.service.StudentService‘ in your configuration.
  7. Python实现过段时间计算机自动锁屏小程序
  8. Spring异常重试机制 - Spring Retry
  9. vue避免重新渲染_详解强制Vue组件重新渲染的方法
  10. JavaScript是如何工作的:Web推送通知的机制