May 17th, 2008

smile

(no subject)

Очень нужна помощь! Ситуация такая:
в офисе №2 есть локалка. все компы на XP Professional Sp3.
в офисе №1 сервак на windows server 2003. Поднята vpn-маршрутизация.
из второго офиса устанавливаем vpn-соединение на айпишник сервака в первом офисе. устанавливается.
как настроить сервак/клиент так, чтобы в офисе №1 в сетевом окружении можно было бы видеть компы и устройства сетевого окружения из офиса №2???????
A-A-A

О проблемах с nfs (см. мой пост пару дней назад)

Диагностировал проблему я совершенно неправильно. Мне очень “повезло” с очерёдностью вызовов (а их суммарно штук 50 было) mount -t nfs и mount_nfs. Не в способе вызова было дело, просто совпадало так.

А было дело в том, что имя хоста A (Сервера) ресоливтся в два IP. По очереди. Один из той же сети, что клиент, а другой — из соседней. nfsd умный и всегда отвечает с “правильного” (самого подходящего) IP. А у клиента паранойя (точнее — connect(2)), так что посылая запрос на 192.168.X.1 он не принимал ответа от 192.168.Y.1.

А разницу адресов в дампе трафика я банально просмотрел :(

Лечится это сразу двумя действиями:

  1. mount_nfs -c host:/path /path и, соответственно, mount -t nfs -o -c host:/path /path
  2. sysctl vfs.nfs.nfs_ip_paranoia=0
man mount_nfs утверждает, что sysctl'я достаточно, но это не так — первый RPC-вызов посылает сам mount_nfs, а он на эту переменную ядра не смотрит и потому требует -c.

Сейчас я заполняю PR, что бы mount_nfs брал опцию -c из ядра, если там нет паранойи. Как и описано в man'е.

Спасибо участникам RusNet#freebsd, которые ткнули меня носом в эту опцию.