• A
    tcp: resets are misrouted · 4c675258
    Alexey Kuznetsov 提交于
    After commit e2446eaa ("tcp_v4_send_reset: binding oif to iif in no
    sock case").. tcp resets are always lost, when routing is asymmetric.
    Yes, backing out that patch will result in misrouting of resets for
    dead connections which used interface binding when were alive, but we
    actually cannot do anything here.  What's died that's died and correct
    handling normal unbound connections is obviously a priority.
    
    Comment to comment:
    > This has few benefits:
    >   1. tcp_v6_send_reset already did that.
    
    It was done to route resets for IPv6 link local addresses. It was a
    mistake to do so for global addresses. The patch fixes this as well.
    
    Actually, the problem appears to be even more serious than guaranteed
    loss of resets.  As reported by Sergey Soloviev <sol@eqv.ru>, those
    misrouted resets create a lot of arp traffic and huge amount of
    unresolved arp entires putting down to knees NAT firewalls which use
    asymmetric routing.
    Signed-off-by: NAlexey Kuznetsov <kuznet@ms2.inr.ac.ru>
    4c675258
tcp_ipv4.c 75.8 KB