
공용 IP 인터페이스와 개인 IP 인터페이스가 있는 VM 머신이 있습니다. 개인 인터페이스에는 192.168.50.78이 할당됩니다. 그런 다음 개인 IP 192.168.50.1을 사용하여 "라우터" 역할을 하는 전용 호스트가 있으므로 이것이 192.168.50.0/24 로컬 네트워크에 대한 게이트웨이입니다. 내가 가지고 있는 "라우터"는 OPNsense입니다.
즉, 내 VM 내에서 두 개의 원격 NFS 서버에 마운트하려고 합니다. NAT 뒤에 있는 내 VM에서 들어오는 불법 포트로 인해 마운트가 실패합니다.
[root@NFSHOST ~]# tail -f /var/log/messages | grep "rpc.mountd"
Feb 21 22:31:40 NFSHOS rpc.mountd[28721]: refused mount request from 197.189.XXX.ZZZ for /data/secondary (/data/secondary): illegal port 33744
Feb 21 22:35:22 NFSHOS rpc.mountd[28721]: refused mount request from 197.189.XXX.ZZZ for /data/secondary (/data/secondary): illegal port 40085
그리고 이는 포트 변환이 발생하기 때문입니다. 해결책은 insecure
내 /etc/export
파일에 추가하는 것인데, 테스트를 거쳐 실제로 작동하는지 확인할 수 있습니다.
그러나 제안된 대로 이는 insecure
권장되지 않습니다. OPNsense에 포트 전달 규칙을 추가하려고 시도했지만 어떤 이유로 불법 포트로 인해 여전히 실패합니다.
어쨌든 이 문제를 해결할 수 있습니까? PS: "브리지" 모드를 사용할 수 없습니다. 이를 적절하게 처리하려면 OPNsense에서 일종의 규칙을 설정해야 하는데 확실하지 않습니다.
답변1
이 특정 문제를 마침내 해결했습니다. 나는 여기서 다음과 같은 말을 들었다:OPN센스 링크
다음과 같은:
IIRC NFS 서버는 클라이언트에서 들어오는 소스 포트가 1024 미만인 것으로 예상하여 안전한 것으로 간주합니다. 방화벽이 TCP 및 UDP 패킷의 소스 포트를 수정하지 못하도록 NAT 아웃바운드 규칙에서 "정적 포트"를 확인하십시오.
결국 정적 포트가 활성화된 전체 로컬 LAN에 대해 OPNsense에 NAT 아웃바운드 규칙을 추가하고 문제를 해결했습니다. 이제 보안 포트 범위를 통해 NFS를 마운트할 수 있습니다.
답변2
나에게 문제는 서버가 이전 프로토콜 버전을 지원하지 않는다는 것입니다. 다음과 같이 클라이언트가 다른 버전을 사용하도록 강제할 수 있습니다.
mount -o vers=3 -t nfs 123:/
이는 물론 표준 Linux 클라이언트에 적용됩니다. 이와 같은 클라이언트에 영향을 미칠 수 없다면 서버 측에서 다른 프로토콜을 지원하는 방법에 대한 이 게시물을 확인하세요.