Linux上で動作し、NFSマウントを使用して開発を支援する組み込みデバイスを開発しています。私たちは2つのプライベートネットワークスペース(172.16.x.y
と192.168.0.n
)で作業しています。 192
ネットワークにはデバイスに必要な40Mb/s
マルチキャストトラフィックが含まれていますが、172
ネットワークを圧倒しないために、ネットワークトラフィックはWindows 2008 R2Serverによって生成されます。 Windows Server 2008ボックスには2つのNICがあります。1つは192
(DHCPサーバーから生成)用、もう1つは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
サーバーにコードをマウントして実行できます。
ただし、デバイスをWindowsServerネットワークに移動すると次のようになります。
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 Server2008ファイアウォールも無効にしました。
NFSデータをサーバーに通すにはどうすればよいですか?
ありがとう。
@ 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
^^^
ただし、2番目のシナリオでは:
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]
WindowsServerはポート番号を変更していました。
refused mount request from 172.16.50.217 for <path> (/home): illegal port 62441
^^^^^
エクスポートファイルのMan Help Pages によると:
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"