'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.

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?

  • Supporto degli ospiti qcow2 kvm
  • virtualizzazione trasparente
  • Qual è la chiave host di Windows 7 Virtual PC e where puoi cambiarla?
  • Hardware decente (<$ 1.500) per Hyper-V dev / test machine
  • strumenti per gestire la virtualizzazione kvm
  • Linux-KVM consulenza di networking?
  • Quando si utilizza la clonazione di una macchina virtuale VMware, come posso evitare i conflitti di indirizzo MAC e UUID?
  • Esistono buone pratiche per distribuire / distribuire le immagini KVM Linux?
  • 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.