I backup richiedono così tanto tempo che il firewall chiude la connessione

Un po 'di un mashup di sisthemes qui, così sopporti con me. In sostanza, sto avendo qualche problema con l'agente Backup Exec per Oracle, cercando di eseguire il backup di un server Linux remoto. L'agente BE sembra utilizzare RMAN per eseguire il backup dei database

Il server di backup si trova su una VLAN e il server di destinazione in un altro, con un firewall Cisco ASA che fornisce l'unico collegamento tra di essi. Questo è di progettazione, in quanto il server di backup support numerosi client e each client deve essere in una propria VLAN per impedirne l'accesso reciproco. Ho aggiunto le porte consigliate al firewall per consentire alless all'agente di parlare con il server multimediale.

  • Come get statistiche Postfix di seconda istanza?
  • Aggiunta di comportmento coda in cui entra aggiunge linee vuote a less
  • limite linux background flush (pagine sporche)
  • Cacti - Come si può get un elenco di sisthemes che soddisfano determinati criteri?
  • Cosa sta succedendo con il mio server? Elevato carico, un sacco di tempo di CPU inattivo, utilizzo di bassi dischi
  • Differenze tra / dev / sda e / dev / sda1
  • Il backup inizia abbastanza bene (infatti un database Oracle più piccolo sullo stesso server viene completato senza un problema), ma un database da 200 GB, che richiede chiaramente alcune ore per completare, non è in grado di completare.

    Credo che il problema sia correlato a http://www.symantec.com/business/support/index?page=content&id=TECH59632 , che afferma che una session CORBA è stata stabilita sulla port 5633 all'inizio del backup e utilizzata prima each operazione RMAN, ma mentre i dati vengono trasferiti, la socket della session CORBA non riceve pacchetti. Poiché il timeout di connessione sul firewall è di 60 minuti, la session CORBA viene eliminata e, quando l'agente RMAN cerca di eseguire la sua prossima azione, l'integer process bomba. Symantec dice che questo problema era stato risolto in una versione precedente di Backup Exec, ma non specificava alcuna impostazione aggiuntiva per applicarla.

    Impostare il timeout di connessione sul firewall su qualcosa di abbastanza alto per coprire la window di backup (ad esempio, 12 ore) sembra la cosa sbagliata da fare, in quanto è un cambiamento a livello di properties;, che influenzerebbe anche la durata della connessione (ad esempio ) le richieste di web al server web di un altro cliente.

    Spostare il server Linux nella stessa LAN come il server di backup è fuori questione.

    Non sono un guru di Linux, ma conosco approssimativamente la mia strada. Finora, ho provato ad usare libkeepalive ( http://libkeepalive.sourceforge.net/ ) per forzare la creazione di socket del process beremote con una KEEPALIVE TCP flag, ma un netstat -top veloce indica che non sta prendendo . O sto usando libkeepalive in modo errato, oppure non funziona per il binario beremote

    Immagino che sto cercando un'opzione che sia adatta all'ambiente in cui mi trovo. Cio 'che cerco uno o più dei seguenti:

    • un modo per configurare l'agente BE per mantenere viva la connessione?
    • un modo per iniettare la bandiera keepalive alla connessione TCP esistente (ad esempio tramite un cronjob)?
    • un modo per informare il dispositivo Cisco di aumentare il timeout di connessione per una specifica fonte / destinazione (forse una mappa dei criteri)?

    Qualsiasi / tutte (altre) idee benvenute …

    J.


    RE: Commento di @Weaver

    Come richiesto, class-map voci della service-map class-map , della policy-map service-map

     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 ! 

  • BackupExec 12 + RALUS - backup molto lenti
  • Utilizzo corretto del disco su disco per il backup a nastro mediante de-duplicazione e LTO5
  • Errore di lancio di Backup Exec 2010 per ripristinare la cassetta postale di Exchange
  • backupexec 12.5 non segue i symlinks sull'agente linux
  • Dovrebbe essere preoccupato da un messaggio di avviso RAID frequente (senso inaspettato - command abortito)?
  • Ottenere un errore "Accesso negato" quando si cerca di creare un process di backup per Backup Exec 10D
  • 3 Solutions collect form web for “I backup richiedono così tanto tempo che il firewall chiude la connessione”

    Background su ASA Timeout / Timer:

    Il conn di timeout globale è il timer standby del circuito virtuale TCP (session) e si imposta automaticamente a 60 minuti. Il timeout udp globale è per i fori UDP e si imposta automaticamente a 2 minuti. Il timeout globale del xlate è quello di cancellare le traduzioni che rimangono in giro dopo che una conn è terminata. Il timeout conn (TCP) ha la precedenza sul timeout xlate. Il successivo paragrafo spiega inoltre la relazione tra timer conn e xlate.

    Se un conn è stato eliminato con successo con la distriggerszione TCP, il conn e xlate vanno con esso (se il dinamico xlate, statico NAT e static PAT xlate non vengono mai rimossi). Se un conn si spegne, il timer di xlate viene preso in considerazione. Se il xlate si spegne per la prima volta (si è impostato basso), non toglierà la connessione fino a che il conn non si estingue.

    L'ASA ha diversi methods per affrontare i vari timeout. Conn è uno in cui l'impostazione globale può essere ignorata in base alla class-map – questo dovrebbe essere preferito per aumentare l'impostazione globale se ansible.

    L'altra caratteristica interessante che l'ASA possiede è il rilevamento della connessione morta – DCD. DCD ti permette di mantenere il timeout conn [global] a 60 minuti (l'impostazione predefinita) e quando si raggiunge 60 minuti – i spoofi ASA man-in-the-middle datano null i dati ACK ad each endpoint come l'altro endpoint. I dati Null funzionano per impedire il numero di sequenze da incrementare. Se entrambi i lati rispondono, il temporizzatore inattivo della connessione viene reimpostato su 0 e ricomincia. Se entrambi i lati non rispondono dopo un determinato numero di tentativi (configurabili) in un determinato periodo, il conn viene rimosso e il timer di xlate ottiene la rilevanza come descritto in precedenza.

    Consiglierei di configurare una mappa di class e aggiungerla alla tua politica che abilita il DCD. È ansible utilizzare un ACL o una port (altri sono disponibili anche). L'utilizzo della port è veloce, semplice e funziona bene se sei sicuro che il TCP / 5633 è where si trova il problema ..

    Ho usato il global_policy qui sotto, ma ritengo libero di adattarmi se necessario.

     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 

    @Commento

    Secondo la guida di riferimento – "Un pacchetto può corrispondere a una sola mappa della class nella mappa delle politiche per ciascun tipo di funzionalità ".

    La frase chiave è in grassetto. Un pacchetto che attraversa un'interface può corrispondere a più classi all'interno di una politica mappe, ma solo se quelle classi utilizzano diverse "funzioni". Se si scorge solo un po 'di tempo nel collegamento di cui sopra si vedranno le varie funzioni elencate. Tutta questa pagina è una miniera d'oro per i tifosi di MPF.

    Come hai detto che hai una match any class-mappa definita e poi indicata come una class all'interno della mappa dei criteri – se stai eseguendo altri limiti di connessione TCP e UDP e timeout in quella class di criteri, quindi la class successiva – le tabs che corrispondono al traffico – se impostate nella mappa dei criteri – non eseguiranno i limiti di connessione TCP e UDP e le modifiche di timeout su quel pacchetto.

    Se pubblichi tutti gli ACL, class-map , class-map dei policy-map e le service-policy dei servizi possiamo determinare per certi.

    Per quanto io non sia un appassionato di applicazioni che prendono i loro giocattoli e tornino a casa (e non sono in grado di eseguire il backup) quando una singola session TCP viene uccisa, in questo caso direi solo il timeout di session TCP di ASA.

    Mettendo un duro limite alla lunghezza della session è veramente solo un prodotto della necessità di ASA di tenere traccia di tutte le connessioni per mantenere lo stato (e di solito NAT) – se stai correndo contro il limite di connessione del tuo dispositivo, allora potrebbe essere un problema, ma altrimenti, solo lancia fino a 6 ore o qualcosa.

    A less che entrambi i nodes alle estremità di una session TCP non scuriscano, l'ASA testimonia un'estremità o l'altra che termina la connessione quando termina naturalmente e quindi la rottura della connessione (o innesca il timeout più breve di metà chiuso) quindi è improbabile che finiscano con un sacco di collegamenti morti che bloccano le cose. I dispositivi endpoint hanno interesse a strappare le connessioni inutili anche – i server web sono un buon esempio, in quanto di solito hanno tempi di connessione molto più brevi rispetto all'ASA.

    Si potrebbe considerare l'utilizzo di un proxy TCP generico sulla macchina Linux remota che risponde e inoltra le connessioni da Backup Exec alla port CORBA locale. (Potresti facilmente organizzare il server Backup Exec per connettersi a questo proxy tramite le regole NAT sul tuo firewall.) Quale proxy TCP avrebbe bisogno di impostare l'opzione SO_KEEPALIVE sullo zoccolo di ascolto che crea. Il mio proxy di scelta è rinetd , ma uno sguardo rapido sull'origine mostra che non stanno impostando l'opzione SO_KEEPALIVE nella loro socket di ascolto (quindi dovresti modificarlo per get il comportmento desiderato). Forse un altro proxy generico TCP che imposta SO_KEEPALIVE per impostazione predefinita (o come opzione), ma non sono a conoscenza di uno dalla parte superiore della mia testa.

    Un'altra opzione potrebbe essere quella di far apparire un tunnel SSH alla macchina remota come parte di uno script di pre-lavoro con il client SSH impostato per utilizzare i pacchetti null SO_KEEPALIVE o SSH per mantenere viva la connessione.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.