Мы разрабатываем встроенное устройство, которое работает в Linux и использует монтирование NFS для помощи в разработке. Мы работаем в двух частных сетевых пространствах (172.16.x.y
и 192.168.0.n
). В 192
сеть содержит 40Mb/s
многоадресный трафик, который нужен устройству, но чтобы не загромождать 172
сеть сетевой трафик генерируется Windows 2008 R2 Server. В коробке Windows Server 2008 есть 2 сетевых адаптера - одна для 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 -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
Следовательно, устройство может нормально видеть сервер Ubuntu, когда он находится на 192
сеть, но не может смонтировать NFS.
Мы также отключили брандмауэр Windows Server 2008.
Как заставить данные 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
^^^
Однако во втором сценарии:
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
^^^^^
В соответствии с Справочные страницы Man для файла экспорта:
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"