
Ich habe eine VM-Maschine mit einer öffentlichen und einer privaten IP-Schnittstelle. Der privaten Schnittstelle ist 192.168.50.78 zugewiesen. Dann habe ich einen dedizierten Host, der als mein „Router“ mit der privaten IP 192.168.50.1 fungiert und daher mein Gateway für mein lokales Netzwerk 192.168.50.0/24 ist. Der „Router“, den ich habe, ist OPNsense.
Davon abgesehen versuche ich, innerhalb meiner VM meine beiden Remote-NFS-Server zu mounten. Das Mounten schlägt fehl, da von meiner VM, die sich hinter NAT befindet, ein ungültiger Port ausgeht:
[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
Und das liegt daran, dass eine Portübersetzung stattfindet. Eine Lösung besteht darin, insecure
meiner /etc/export
Datei etwas hinzuzufügen, was ich getestet habe und bestätigen kann, dass es tatsächlich funktioniert.
Wie der Hinweis jedoch schon sagt, insecure
wird dies dringend abgeraten. Ich habe versucht, eine Portweiterleitungsregel für OPNsense hinzuzufügen, aber aus irgendeinem Grund schlägt dies bei ungültigen Ports weiterhin fehl.
Gibt es eine Möglichkeit, dieses Problem zu lösen? PS: Ich kann den „Bridge“-Modus auch nicht verwenden. Ich muss in OPNsense eine Art Regel festlegen, um dies entsprechend zu handhaben, und ich bin mir nicht ganz sicher.
Antwort1
Ich konnte dieses spezielle Problem endlich lösen. Hier wurde mir gesagt:OPNsense-Link
Die folgende:
Laut IIRC erwarten NFS-Server, dass die Quellports von Clients unter 1024 liegen, um als sicher zu gelten. Stellen Sie sicher, dass Sie den „Statischen Port“ in Ihrer NAT-Ausgangsregel aktivieren, um zu verhindern, dass die Firewall den Quellport für TCP- und UDP-Pakete ändert.
Ich habe schließlich eine NAT-Ausgangsregel für OPNsense für das gesamte lokale LAN mit aktiviertem statischen Port hinzugefügt und damit war das Problem gelöst. Ich kann jetzt NFS über sichere Portbereiche mounten.
Antwort2
Bei mir bestand das Problem darin, dass der Server ältere Protokollversionen nicht unterstützte. Sie können einen Client zwingen, eine andere Version zu verwenden, und zwar wie folgt:
mount -o vers=3 -t nfs 123:/
Dies gilt natürlich für Standard-Linux-Clients. Wenn Sie einen Client auf diese Weise nicht beeinflussen können, lesen Sie diesen Beitrag, um zu erfahren, wie Sie auf der Serverseite andere Protokolle unterstützen können: