• NeilBrown's avatar
    SUNRPC: disable the use of IPv6 temporary addresses. · d88e4d82
    NeilBrown authored
    If the net.ipv6.conf.*.use_temp_addr sysctl is set to '2',
    then TCP connections over IPv6 will prefer a 'private' source
    address.
    These eventually expire and become invalid, typically after a week,
    but the time is configurable.
    
    When the local address becomes invalid the client will not be able to
    receive replies from the server.  Eventually the connection will timeout
    or break and a new connection will be established, but this can take
    half an hour (typically TCP connection break time).
    
    RFC 4941, which describes private IPv6 addresses, acknowledges that some
    applications might not work well with them and that the application may
    explicitly a request non-temporary (i.e. "public") address.
    
    I believe this is correct for SUNRPC clients.  Without this change, a
    client will occasionally experience a long delay if private addresses
    have been enabled.
    
    The privacy offered by private addresses is of little value for an NFS
    server which requires client authentication.
    
    For NFSv3 this will often not be a problem because idle connections are
    closed after 5 minutes.  For NFSv4 connections never go idle due to the
    period RENEW (or equivalent) request.
    Signed-off-by: default avatarNeilBrown <neilb@suse.com>
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
    d88e4d82
xprtsock.c 84.2 KB