通过 Windows Server 2008 传递 Linux NFS 流量

通过 Windows Server 2008 传递 Linux NFS 流量

我们正在开发一款在 Linux 上运行并使用 NFS 安装来辅助开发的嵌入式设备。我们在两个私有网络空间(172.16.x.y192.168.0.n)中工作。192网络包含40Mb/s设备所需的多播流量,但为了不淹没网络,172网络流量由 Windows 2008 R2 服务器生成。Windows Server 2008 机箱有 2 个 NIC - 一个用于192(由其上的 DHCP 服务器生成),一个用于172网络(Windows 机箱上的默认网关指向网关172

在我们的开发环境中,我们有以下连接:

Device 172.16.50.100 (static)]----[Gateway (172.16.15.200)]----[Ubuntu Linux Server 172.16.10.100]

该设备能够在172.16.10.100服务器上安装并执行代码。

但是,当我们将设备移动到 Windows Server 网络时:

Device 192.168.0.2(dhcp)]---[Server 2008 (192.16.0.1)(dhcp server) NIC2(172.16.50.200)]---[Ubuntu Linux Server 172.16.10.100]

现在设备无法挂载 NFS 目录:

\$ mount -t nfs 172.16.10.100:<path> hd
mount: 172.16.10.100:<path> failed, reason given by server: Permission denied
mount: mounting 172.16.10.100:<path> on hd failed: Bad file descriptor

我们可以 ping 服务器:

\$ ping -c 1 172.16.10.100
PING 172.16.10.100 (172.16.10.100): 56 data bytes
64 bytes from 172.16.10.100: seq=0 ttl=64 time=1.231 ms

--- 172.16.10.100 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.231/1.231/1.231 ms

因此,设备在192网络上时可以正常看到 Ubuntu 服务器,但无法挂载 NFS。

我们也禁用了 Windows Server 2008 防火墙。

我们如何让 NFS 数据通过服务器?

谢谢。

答案1

@tigran - 谢谢你的帮助。你提出了一些非常重要的观点。

这里的问题实际上是端口号。

在第一种情况下:

Device 172.16.50.100 (static)]----[Gateway (172.16.15.200)]----[Ubuntu Linux Server 172.16.10.100]

该设备请求:

authenticated mount request from 172.16.50.100:709
                                               ^^^

然而,在第二种情况下:

Device 192.168.0.2(dhcp)]---[Server 2008 (192.16.0.1)(dhcp server) NIC2(172.16.50.200)]---[Ubuntu Linux Server 172.16.10.100]

Windows Server 正在更改端口号:

refused mount request from 172.16.50.217 for <path> (/home): illegal port 62441
                                                                          ^^^^^

根据导出文件的帮助页面

secure
This option requires that requests originate on an Internet port less 
than IPPORT_RESERVED (1024). This option is on by default. To turn it
off, specify insecure.
     ^^^^^^^^^^^^^^^^

鉴于这是一个封闭的私人网络,我们更新了/etc/exports文件以包含以下内容:

/home *(rw,no_root_squash,async,no_subtree_check,insecure)
                                                 ^^^^^^^^

作为参考,调试行来自于将文件/var/log/syslog更改/etc/default/nfs-kernel-server为包含以下内容之后:

RPCMOUNTDOPTS="--manage-gids --debug all"

相关内容