背景及问题
私有云上的虚拟机挂载 NFS 存储,发现 NFS 上放行虚拟机的 IP 后挂载仍然报错 mount.nfs: access denied by server while mounting X.X.X.X:/mnt
。
原因
原因是虚拟机在访问 NFS 存储时流量是从 EIP 出去的,所以在存储侧看到的 IP 实际上是虚拟机的 EIP,并不是虚拟机上显示的 IP,因为 EIP 没有放行,所以存储一直报错 mount.nfs: access denied by server while mounting X.X.X.X:/mnt
,这个可以通过 /var/log/messages
看到,客户端在挂载时,服务端的 /var/log/messages
会出现一条报错 rpc.mountd[3470]: refused mount request from X.X.X.X for /mnt (/mnt): unmatched host
,能够看到这个里边的 IP 并不是虚拟机内部的 IP,而是虚拟机的 EIP。