[pve-devel] [PATCH qemu-server] copy conntrack information on migration

Alexandre Derumier aderumier at odiso.com
Mon Oct 19 12:56:15 CEST 2020


>>There are no filters implemented yet, and there does not seem to be a
>>way to filter by interface. So if we want to limit the conntracks to
>>certain VMs, we could use zones and add a filter for them.
>>We would have to map them somehow though as the zone parameter is only
>>16 bits and VMIDs might be bigger.

oh yes, I remember that.
Also, zone by vm add a lot of rules in prerouting if you have a lot of
vms, so I don't known the impact on performance.

Maybe with nftables, as we have the conntrack at bridge level, it's
possible to have more informations like mac to find the vm. (not sure
about this).
also with nftables, if possible to use a vmap on interface, for fast
lookup of vm rules/or add the zone in  prerouting.

Le lun. 19 oct. 2020 à 11:24, Mira Limbeck <m.limbeck at proxmox.com> a écrit :
>
> I haven't done any performance tests yet. But currently we query all
> conntracks (same as conntrack -L), print them one by one as JSON to STDOUT.
> When importing we do it line-by-line, which means one conntrack at a
> time. But if necessary we could batch them, as mentioned in the
> bugtracker, by using the mnl batch interface.
>
> There are no filters implemented yet, and there does not seem to be a
> way to filter by interface. So if we want to limit the conntracks to
> certain VMs, we could use zones and add a filter for them.
> We would have to map them somehow though as the zone parameter is only
> 16 bits and VMIDs might be bigger.
>
>
> On 10/17/20 5:42 PM, Alexandre Derumier wrote:
> > Hi,
> > thanks for this patch !
> >
> > It could be interesting to see if it's working fine with
> > sysctl -w net/netfilter/nf_conntrack_tcp_loose=0
> >
> > This is to avoid  ack flood ddos  (where random ack packets can add a
> > lot of conntrack entries)
> > https://2014.rmll.info/slides/356/day_1-1400-Jesper_Brouer-DDoS_protection_using_Netfilter_iptables.pdf
> >
> > Currently we can't enable it because  when we migrate vms, the already
> > opened connected can't readd conntrack without a new syn.
> >
> >
> > Also, is it fast when a lof of entries ? (like 100000 entries for example)
> >
> >
> > Le ven. 16 oct. 2020 à 15:24, Mira Limbeck <m.limbeck at proxmox.com> a écrit :
> >> Requires the pve-conntrack-tool. On migration the conntrack information
> >> from the source node is dumped and sent to the target node where it is
> >> then inserted.
> >> This helps with open connections during migration when the firewall is active.
> >>
> >> Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
> >> ---
> >>   PVE/QemuMigrate.pm | 3 +++
> >>   1 file changed, 3 insertions(+)
> >>
> >> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> >> index 11fec4b..a4e24f7 100644
> >> --- a/PVE/QemuMigrate.pm
> >> +++ b/PVE/QemuMigrate.pm
> >> @@ -1065,6 +1065,9 @@ sub phase2 {
> >>              die "unable to parse migration status '$stat->{status}' - aborting\n";
> >>          }
> >>       }
> >> +
> >> +    $self->log('info', 'copy conntrack information');
> >> +    PVE::Tools::run_command([['/usr/bin/pve-conntrack-tool', 'dump'], [@{$self->{rem_ssh}}, '/usr/bin/pve-conntrack-tool', 'insert']]);
> >>   }
> >>
> >>   sub phase2_cleanup {
> >> --
> >> 2.20.1
> >>
> >>
> >>
> >> _______________________________________________
> >> pve-devel mailing list
> >> pve-devel at lists.proxmox.com
> >> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> >>
> > _______________________________________________
> > pve-devel mailing list
> > pve-devel at lists.proxmox.com
> > https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list