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