备份服务器位于一个VLAN上,目标服务器位于另一个VLAN上,Cisco ASA防火墙提供它们之间的唯一链接.这是设计使然,因为备份服务器将支持多个客户端,并且每个客户端必须位于其自己的VLAN上以防止它们相互访问.我已将建议的端口添加到防火墙,以至少允许代理与媒体服务器通信.
备份启动得足够好(实际上同一服务器上的小型Oracle数据库完成没有问题),但是一个200GB的数据库,显然需要几个小时才能完成,无法完成.
我认为问题与http://www.symantec.com/business/support/index?page=content&id=TECH59632有关,它表示在备份开始时在端口5633上建立了CORBA会话,并在每个RMAN操作之前使用,但是在传输数据时,CORBA会话的套接字不接收任何数据包.由于防火墙上的连接超时为60分钟,因此CORBA会话被丢弃,当RMAN代理尝试执行其下一个操作时,整个过程会发生爆炸.赛门铁克表示此问题已在早期版本的Backup Exec中修复,但未详细说明任何其他设置以强制执行此问题.
将防火墙上的连接超时设置为足以覆盖备份窗口的内容(例如12小时)似乎是错误的做法,因为它是一个属性范围的更改,这也会影响连接的生命周期(例如)Web请求到另一个客户端的Web服务器.
将Linux服务器移动到与备份服务器相同的LAN是不可能的.
我不是Linux大师,但我大致了解我的方式.到目前为止,我已经尝试开始使用libkeepalive(http://libkeepalive.sourceforge.net/)强制beremote进程’套接字创建使用KEEPALIVE TCP标志,但快速netstat -top表明它没有采取.要么我错误地使用了libkeepalive,要么它对beremote二进制文件不起作用
我想我正在寻找一个适合我所处环境的选项.我想我正在寻找以下一个或多个:
>一种配置BE代理以保持连接活动的方法?
>将keepalive标志注入现有TCP连接的方法(例如通过cronjob)?
>告诉思科设备增加特定源/目标(可能是策略映射)的连接超时的方法?
欢迎任何/所有(其他)想法……
J.
RE:@Weaver的评论
根据要求,类映射,策略映射和服务映射条目……
class-map CLS_INSPECTION_TRAFFIC match default-inspection-traffic class-map CLS_ALL_TRAFFIC match any class-map CLS_BACKUPEXEC_CORBA description Oracle/DB2 CORBA port for BackupExec traffic match port tcp eq 5633 ! ! policy-map type inspect dns PMAP_DNS_INSPECT_SETTINGS parameters message-length maximum client auto message-length maximum 1280 policy-map PMAP_GLOBAL_SERVICE class CLS_INSPECTION_TRAFFIC inspect dns PMAP_DNS_INSPECT_SETTINGS inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect ipsec-pass-thru inspect icmp inspect snmp class CLS_BACKUPEXEC_CORBA set connection timeout idle 1:00:00 dcd class CLS_ALL_TRAFFIC set connection decrement-ttl !
解决方法
全局超时conn是TCP虚电路(会话)空闲计时器,默认为60分钟.全局超时udp用于UDP漏洞,默认为2分钟.全局超时xlate用于清除在conn超时后徘徊的翻译. The conn (TCP) timeout takes precedence over the xlate timeout.下一段进一步解释了conn和xlate定时器之间的关系.
如果conn通过TCP拆卸成功拆除,conn和xlate将继续使用它(如果动态xlate,静态NAT和静态PAT xlate从未被删除).如果conn超时,则考虑xlate计时器.如果xlate首先超时(你将它设置为真正的低),它将不会取消连接,直到conn超时.
ASA有几种方法可以处理不同的超时. Conn是一个可以根据类映射覆盖全局设置的地方 – 如果可能的话,这应该优先于增加全局设置.
The other interesting feature the ASA possesses is dead connection detection — DCD. DCD允许您将[全局] conn超时保持在60分钟(默认值),当达到60分钟时 – ASA中间人欺骗将每个端点的数据ACK作为另一个端点.空数据用于防止序列号递增.如果双方都响应连接,则空闲计时器重置为0并再次开始.如果在给定时间段内在任意一次尝试(可配置)之后没有响应,则conn被移除并且xlate定时器如上所述获得相关性.
我建议配置一个类映射并将其添加到启用DCD的策略中.您可以使用ACL或端口(其他也可用).使用该端口快速,简单,如果您确定TCP / 5633是问题所在,它将运行良好.
我已经使用了下面的global_policy,但可以随意调整.
class-map BE-CORBA_class description Backup Exec CORBA Traffic Class match port tcp eq 5633 policy-map global_policy class BE-CORBA_class -->::Choose one below::<-- set connection timeout idle 1:00:00 dcd --> for 8.2(2) and up set connection timeout tcp 1:00:00 dcd --> for prior to 8.2(2) service-policy global_policy global
@评论
According to the reference guide – “每个要素类型的数据包只能匹配策略映射中的一个类映射.”
关键词是粗体.跨越接口的数据包可以匹配策略映射中的多个类,但前提是这些类使用不同的“功能”.如果您只是在上述链接中向上滚动,您将看到列出的各种功能.整页都是MPF花絮的金矿.
正如您所提到的,您匹配任何类映射,然后在策略映射中引用为类 – 如果您在该策略映射类中执行任何其他TCP和UDP连接限制和超时更改,则后续类匹配流量的映射 – 如果在策略映射中设置 – 将不会对该数据包执行TCP和UDP连接限制以及超时更改.
如果您发布所有ACL,策略映射和服务策略,我们可以确定.