备份服务器位于一个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,策略映射和服务策略,我们可以确定.