NFS 클라이언트를 사용하여 NFS 클러스터에 연결하고 있습니다. 서버를 사용할 수 없을 때 기본 동작은 동일한 소스 TCP 포트에서 TCP 연결을 재시도하는 것인데, 이는 tcpdump로 확인한 것입니다(많은 SYN 패킷, 다른 시퀀스 번호, 그러나 동일한 소스 포트). 기본적으로 NFS는 권한 있는 포트(<1024)를 사용합니다. 제 경우에는 포트 940입니다.
어떤 이유로 인해 Azure Load Balancer(다른 로드 밸런서)에 문제가 발생합니다.질문). 그러나 옵션을 사용하여 noresvport
(및 내보내기 사용 insecure
) 공유를 마운트하면 NFS 클라이언트는 포트 >1024를 사용하므로 이제 모든 재연결 시도는 다른 TCP 포트에서 이루어집니다.
NFS 클라이언트는 SLES12 SP4이며 Oracle Linux 7.7에서 동일한 동작을 갖습니다.
NFS 서버는 SLES12 SP4를 기반으로 하는 HAE 클러스터입니다.
이 동작이 어딘가에 문서화되어 있습니까? 기본적으로 매번 동일한 포트가 사용되지만 사용할 때는 그렇지 않은 이유는 무엇입니까 noresvport
?
답변1
중간에 L4(f5, 방화벽, 보안 어플라이언스) 장치가 있고 연결이 끊어지지 않았으며 SYN이 동일한 소스 포트에서 왔을 때 연결 테이블에 여전히 존재하는 상황이 있었습니다. 클라이언트는 소스 포트를 무작위로 지정하지 않으며 연결 테이블 항목을 활성 상태로 유지합니다.
일반적으로 NFS 서버가 충돌하고 RST가 호스트로 전송되지 않을 때 발생합니다. 우리 사람들은 모든 것에 대해 루트eq로 하드 링크를 사용하고 왜 계속 문제가 발생하는지 궁금해합니다.