'conntrack' che segue le sessioni TCP private tra VM

Abbiamo un paio di VM in esecuzione come router virtuali e peering BGP / TCP tra i due router virtuali (in esecuzione su QEMU / KVM). Le VM dispongono ciascuna di un'interface tap, collegata a un ponte Linux che ha solo due rubinetti come membri.

Tutto funziona molto, tranne che vediamo che conntrack sembra segnalare le sessioni TCP tra questi due VM. Inizialmente abbiamo pensato che le sessioni TCP stessero perdendo e che questo era un buco di sicurezza, ma netstat non riferisce nulla. Quindi sembra che non stiamo assegnando un TCB per questo sul sistema operativo host (che è corretto); uff. Il traffico OS ospite deve essere trasparente al sistema operativo host che sembra sia; soprattutto.

  • Esegui il command ssh senza password?
  • Dovrebbe / etc / hosts contenere una voce come '127.0.0.1 localhost myhost.example.org myhost'?
  • Come posso individuare perché il DB rpm sui miei server continua a danneggiare?
  • Il filter riflette il traffico delle porte utilizzando iptables
  • Embedded Linux - meccanismo per la distribuzione degli aggiornamenti del firmware?
  • Come ha fatto questa email a bypassare le mie impostazioni SPF?
  • Il motivo per cui questo comportmento conntrack è un problema è che se entrambi i VM vengono ripristinati allo stesso tempo, non esiste nessuno in esecuzione per submit alcun traffico sulle sessioni TCP di guest per causare un ripristino TCP; in modo da get una "perdita" conntrack sul sistema operativo host. Nel tempo questo si accumula ed eventualmente il sistema ospite esegue risorse. Abbiamo un sacco di sessioni BGP in questo test. Sembra che questo sia un modo per un OS di ospite ad un DoS su un sistema operativo host …

    Questo comportmento valido per conntrack? Questa è la comunicazione privata da VM a VM su un ponte L2. Perché Linux dovrebbe essere snooping e registrando tali sessioni TCP? È un bug o una funzionalità?

    Molti approcci sembrano coinvolgere iptables per fermare questo; non vogliamo davvero chiedere al cliente di farlo. Altri suggerimenti?

    One Solution collect form web for “'conntrack' che segue le sessioni TCP private tra VM”

    Sì, questo comportmento è previsto , anche se non so che sia il problema che ti aspetti. Entrambe le connessioni TCP e UDP nella tabella conntrack scadono nel tempo da soli. È ansible visualizzare i valori di timeout in /proc/sys/net/netfilter/*timeout* e regolare questi valori tramite /proc o sysctl. Nota, questo può essere diverso sui kernel vecchi, forse /proc/sys/net/ipv4/netfilter/ .

    Se questo non sta per tagliarlo e non sei soddisfatto della soluzione iptables -t raw -j NOTRACK, puoi distriggersre l'elaborazione iptables di connessioni ponte impostando

     sysctl -w net.bridge.bridge-nf-call-arptables=0 sysctl -w net.bridge.bridge-nf-call-ip6tables=0 sysctl -w net.bridge.bridge-nf-call-iptables=0 sysctl -w net.bridge.bridge-nf-filter-vlan-tagged=0 

    o impostando gli stessi parametri in /etc/sysctl.conf . Entrambi questi disattiverà il passaggio del traffico di ponti fino a iptables che dovrebbe avere l'effetto di bypassare il conntrack.

    In alternativa, è ansible distriggersre ip_conntrack nel complesso, se non lo si utilizza per elenchi neri del module o per distriggersrla nel kernel.

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