Bug 14580
Summary: | Problem with nfs provided by two redundant (active/backup) servers | ||
---|---|---|---|
Product: | Networking | Reporter: | Krzysztof Oledzki (ole) |
Component: | Other | Assignee: | Arnaldo Carvalho de Melo (acme) |
Status: | CLOSED OBSOLETE | ||
Severity: | blocking | CC: | alan, bfields, kolo, trondmy |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.31.6 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Krzysztof Oledzki
2009-11-10 15:37:49 UTC
NFS MUST reuse the same port because on most servers, the replay cache is keyed to the port number. In other words, when we replay an RPC call, the server will only recognise it as a replay if it originates from the same port. See http://www.connectathon.org/talks96/werme1.html OK, than(In reply to comment #1) > NFS MUST reuse the same port because on most servers, the replay cache is > keyed > to the port number. In other words, when we replay an RPC call, the server > will > only recognise it as a replay if it originates from the same port. > See http://www.connectathon.org/talks96/werme1.html OK, I see. Thank you for pointing it out. So, only the second part of the bugreport is valid: TCP should handle such situation, shouldn't it? I'm not sure what the TCP stack itself could do. As long as you're switching active and backup nodes, can't you take down the (now unused) interface on the old active node? Would that be sufficient to destroy any stale TCP state? (In reply to comment #3) > I'm not sure what the TCP stack itself could do. IMO it should detect that the other side is out of sync and reset such connection but instead it enters a loop. I know that SRC IP/DST IP/SRC PORT/DST PORT mach but tcp seq does not. > As long as you're switching active and backup nodes, can't you take down the > (now unused) interface on the old active node? Would that be sufficient to > destroy any stale TCP state? I'm removing the IP address from the node, but it is not enough to destroy TCP states. Maybe I'm missing some important sysctls, am I? Taking down the interface is not an option, of course. We are not using nfs; only varnish http reverse proxy: http://varnish.projects.linpro.no/ |