mirror of
https://github.com/moby/moby.git
synced 2026-08-04 15:11:00 +00:00
libnet/iptables: DeleteConntrack: use structured logs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
@@ -37,7 +37,10 @@ func DeleteConntrackEntries(nlh nlwrap.Handle, ipv4List []net.IP, ipv6List []net
|
||||
for _, ipAddress := range ipv4List {
|
||||
flowPurged, err := purgeConntrackState(nlh, syscall.AF_INET, ipAddress)
|
||||
if err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s: %v", ipAddress, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"ipAddress": ipAddress.String(),
|
||||
}).Warn("Failed to delete conntrack state for IPv4-address")
|
||||
continue
|
||||
}
|
||||
totalIPv4FlowPurged += flowPurged
|
||||
@@ -47,14 +50,20 @@ func DeleteConntrackEntries(nlh nlwrap.Handle, ipv4List []net.IP, ipv6List []net
|
||||
for _, ipAddress := range ipv6List {
|
||||
flowPurged, err := purgeConntrackState(nlh, syscall.AF_INET6, ipAddress)
|
||||
if err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s: %v", ipAddress, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"ipAddress": ipAddress.String(),
|
||||
}).Warn("Failed to delete conntrack state for IPv6-address")
|
||||
continue
|
||||
}
|
||||
totalIPv6FlowPurged += flowPurged
|
||||
}
|
||||
|
||||
if totalIPv4FlowPurged > 0 || totalIPv6FlowPurged > 0 {
|
||||
log.G(context.TODO()).Debugf("DeleteConntrackEntries purged ipv4:%d, ipv6:%d", totalIPv4FlowPurged, totalIPv6FlowPurged)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"ipv4": totalIPv4FlowPurged,
|
||||
"ipv6": totalIPv6FlowPurged,
|
||||
}).Debug("DeleteConntrackEntries completed deleting conntrack state")
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -71,34 +80,63 @@ func DeleteConntrackEntriesByPort(nlh nlwrap.Handle, proto types.Protocol, ports
|
||||
var totalIPv6FlowPurged uint
|
||||
for _, port := range ports {
|
||||
filter := &netlink.ConntrackFilter{}
|
||||
if err := filter.AddProtocol(uint8(proto)); err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err)
|
||||
if err := filter.AddProtocol(uint8(port.Proto)); err != nil {
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"hostIP": port.HostIP.String(),
|
||||
"proto": port.Proto.String(),
|
||||
"port": port.Port,
|
||||
}).Warn("Failed to delete conntrack state for port")
|
||||
continue
|
||||
}
|
||||
if err := filter.AddPort(netlink.ConntrackOrigDstPort, port.Port); err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"hostIP": port.HostIP.String(),
|
||||
"proto": port.Proto.String(),
|
||||
"port": port.Port,
|
||||
}).Warn("Failed to delete conntrack state for port")
|
||||
continue
|
||||
}
|
||||
if err := filter.AddIP(netlink.ConntrackOrigDstIP, port.HostIP); err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"hostIP": port.HostIP.String(),
|
||||
"proto": port.Proto.String(),
|
||||
"port": port.Port,
|
||||
}).Warn("Failed to delete conntrack state for port")
|
||||
continue
|
||||
}
|
||||
|
||||
v4FlowPurged, err := nlh.ConntrackDeleteFilters(netlink.ConntrackTable, syscall.AF_INET, filter)
|
||||
if err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for IPv4 %s port %d: %v", proto.String(), port.Port, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"hostIP": port.HostIP.String(),
|
||||
"proto": port.Proto.String(),
|
||||
"port": port.Port,
|
||||
}).Warn("Failed to delete conntrack state for IPv4 port")
|
||||
}
|
||||
totalIPv4FlowPurged += v4FlowPurged
|
||||
|
||||
v6FlowPurged, err := nlh.ConntrackDeleteFilters(netlink.ConntrackTable, syscall.AF_INET6, filter)
|
||||
if err != nil {
|
||||
log.G(context.TODO()).Warnf("Failed to delete conntrack state for IPv6 %s port %d: %v", proto.String(), port.Port, err)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"error": err,
|
||||
"hostIP": port.HostIP.String(),
|
||||
"proto": port.Proto.String(),
|
||||
"port": port.Port,
|
||||
}).Warn("Failed to delete conntrack state for IPv6 port")
|
||||
}
|
||||
totalIPv6FlowPurged += v6FlowPurged
|
||||
}
|
||||
|
||||
if totalIPv4FlowPurged > 0 || totalIPv6FlowPurged > 0 {
|
||||
log.G(context.TODO()).Debugf("DeleteConntrackEntriesByPort for %s ports purged ipv4:%d, ipv6:%d", proto.String(), totalIPv4FlowPurged, totalIPv6FlowPurged)
|
||||
log.G(context.TODO()).WithFields(log.Fields{
|
||||
"ipv4": totalIPv4FlowPurged,
|
||||
"ipv6": totalIPv6FlowPurged,
|
||||
"proto": proto.String(),
|
||||
}).Debug("DeleteConntrackEntriesByPort completed deleting conntrack state")
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user