
Tengo una máquina VM que tiene una interfaz IP pública y una interfaz IP privada. La interfaz privada tiene asignada 192.168.50.78. Luego tengo un host dedicado que actúa como mi "enrutador" usando la IP privada 192.168.50.1 y esta es, por lo tanto, mi puerta de enlace para mi red local 192.168.50.0/24. El "enrutador" que tengo es OPNsense.
Dicho esto, estoy intentando montar mi máquina virtual en mis dos servidores NFS remotos. El montaje falla debido a un puerto ilegal proveniente de mi VM, que está detrás de NAT:
[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
Y esto se debe a que se produce la traducción de puertos. Una solución es agregarlo insecure
a mi /etc/export
archivo, que he probado y puedo confirmar que realmente funciona.
Sin embargo, como sugiere, insecure
no es muy recomendable. Intenté agregar una regla de reenvío de puertos en OPNsense y, por alguna razón, sigue fallando con puertos ilegales.
¿Hay alguna forma de resolver este problema? PD: Tampoco puedo usar el modo "puente". Necesito establecer algún tipo de regla en OPNsense para manejar esto en consecuencia y no estoy exactamente seguro.
Respuesta1
Logré finalmente resolver este problema específico. Me dijeron aquí:Enlace OPNsense
La siguiente:
Los servidores IIRC NFS esperan que los puertos de origen provenientes de los clientes sean inferiores a 1024 para considerarse seguros. Asegúrese de marcar el "puerto estático" en su regla de salida NAT para evitar que el firewall modifique el puerto de origen en los paquetes TCP y UDP.
Terminé agregando una regla de salida NAT en OPNsense para toda la LAN local con el puerto estático habilitado y resolvió el problema. Ahora puedo montar NFS mediante rangos de puertos seguros.
Respuesta2
Para mí, el problema fue que el servidor no admitía una versión anterior del protocolo. Puedes obligar a un cliente a usar otra versión como esta:
mount -o vers=3 -t nfs 123:/
Esto se aplica al cliente Linux estándar, por supuesto. Si no puede influir en un cliente como este, consulte esta publicación sobre cómo tener soporte para otros protocolos en el lado del servidor: