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

  • stessa substring, diverse VLAN in macchina virtuale
  • Come posso verificare da un prompt dei comandi, se un host di linux è reale o virtuale
  • Imansible installare Win2k8 su errore KVM - Classic 0x80070013
  • Come proteggere un apparecchio da copia non autorizzata?
  • Qual è la chiave host di Windows 7 Virtual PC e where puoi cambiarla?
  • Conte il numero di CPU consentite in un contenitore Docker
  • Linux-KVM consulenza di networking?
  • un VM veloce su molti host lenti?
  • 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.