TCP와 잘 작동하는 NFS 서버(server1)가 있지만 클라이언트가 UDP를 사용하여 이를 마운트하면 마운트 지점이 작동하면 파일이 없는 폴더만 나열됩니다. 해당 폴더에 파일이 있으면 "ls" 명령이 영원히 열린 상태로 유지됩니다.
tcpdump는 다음 로그를 표시합니다.
NFS 4078 [RPC 중복 #28] V3 READDIRPLUS 응답(호출 27)
그리고 폴더의 첫 번째 파일 목록이 표시되지만 클라이언트는 "ls" 명령에 응답하지 않습니다.
방화벽이 비활성화되었습니다SElinux가 비활성화되었습니다
동일한 NFS 구성(/etc/exports 포함)을 가진 다른 서버(server2)가 있고 모두 TCP/UDP에서 잘 작동합니다. nmap/rpcinfo/nfsstat/rpcdebug/etc는 모두 동일한(또는 유사한) 출력을 표시합니다.
둘 다 CentOS 7이지만 한 가지 차이점은 server1이 kvm(libvirt/qemu) 서버이기도 한다는 것입니다.
문제가 무엇인지 또는 어디를 봐야 하는지 아는 사람이 있습니까?
답변1
제 경우에는 해당 서버의 인터페이스에서 점보 프레임이 활성화되었습니다. 비활성화한 후에는 UDP 패킷이 조각화되고 모든 것이 잘 작동합니다.
UDP 패킷에만 영향을 미치는 이유와 영향을 받는 모든 서버 및 스위치/라우터에서 점보 프레임을 활성화해도 작동하지 않는 이유는 여전히 이해가 되지 않습니다.