'conntrack' suivi des sessions TCP privées entre VM

Nous avons une paire de machines virtuelles en tant que routeurs virtuels et BGP / TCP entre les deux routeurs virtuels (sur QEMU / KVM). Les VM possèdent chacune une interface de prise qui est connectée à un pont Linux qui n'a que les deux robinets en tant que membres.

Tout fonctionne bien, sauf que nous voyons que conntrack semble signaler les sessions TCP entre ces deux machines virtuelles. Au début, nous pensions que les sessions TCP avaient des fuites et qu'il s'agissait d'un trou de security, mais Netstat ne rapporte rien. Il semble donc que nous n'assurions pas un TCB pour cela sur le operating system hôte (ce qui est correct); phew. Le trafic hôte invité devrait être transparent pour le operating system hôte qu'il semble être; la plupart.

La raison pour laquelle ce comportement de conntrack est un problème est que si les deux VM sont réinitialisées en même time, il n'y a plus personne en cours d'exécution pour envoyer un trafic sur les sessions TCP invité pour provoquer une réinitialisation TCP; Nous obtenons donc une «fuite» de conntrack sur le operating system hôte. Au fil du time, cela s'amplifie et éventuellement le operating system hôte manque de ressources. Nous avons beaucoup de sessions BGP dans ce test. Il semble que c'est un moyen pour un operating system invité à un DoS sur un système hôte hôte …

Est-ce un comportement valable pour conntrack? Il s'agit de la VM privée à la communication VM sur un pont L2. Pourquoi Linux devrait-il snooping et save de telles sessions TCP? Est-ce un bug ou une fonctionnalité?

La plupart des approches semblent impliquer iptables pour arrêter cela; nous ne voulons pas vraiment requestr au client de le faire. D'autres suggestions?

One Solution collect form web for “'conntrack' suivi des sessions TCP privées entre VM”

Oui, ce comportement est attendu , même si je ne sais pas que c'est le problème que vous prévoyez. Les connections TCP et UDP sur la table conntrack expirent avec le time elles-mêmes. Vous pouvez voir les valeurs de temporisation dans /proc/sys/net/netfilter/*timeout* et ajuster ces valeurs via soit /proc ou sysctl. Notez que cela peut être différent sur les kernelx plus anciens, peut /proc/sys/net/ipv4/netfilter/ être /proc/sys/net/ipv4/netfilter/ .

Si cela ne va pas couper et vous n'êtes pas satisfait de la solution iptables -t raw -j NOTRACK, vous pouvez désactiver le traitement iptables des connections pontées en configurant

 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 

ou en définissant les mêmes parameters dans /etc/sysctl.conf . Ceux-ci désactiveront le passage du trafic ponté vers iptables, ce qui devrait avoir pour effet de contourner conntrack.

Alternativement, vous pouvez désactiver ip_conntrack en totalité, si vous ne l'utilisez pas en noir en listant le module ou en le désactivant dans votre kernel.

  • Réseaux virtuels, réseau routé
  • Accès à apache dans Ubuntu 10 hôte virtuel de l'hôte ubuntu 10
  • Macines virtuels dans RHEL6
  • ESXi 4.1 CentOS 6.X eth0 indisponible
  • Avec CentOS 6 et LXC, "ifconfig" est incapable de voir l'interface réseau (mais busybox "ifconfig" fonctionne bien)
  • La virtualisation d'un serveur signifie-t-elle une autre couche OS pour réparer et mettre à jour, plus de travail et plus de risques?
  • Accès multi-users via une connection VPN unique
  • KVM virtualisé CentOS peut envoyer / recevoir TCP mais pas UDP
  • Comment la sauvegarde s'occupe-t-elle des instantanés existants dans une sauvegarde basée sur l'instantané
  • Conception de réseau vm virtualisation en petit bureau
  • Hyper-V partage un dossier entre l'hôte et l'instance
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.