clientaddr е една от онези опции за монтиране, които се копират в команден ред дълго след като причината за тях е изчезнала. Тя казва на сървър NFSv4.0 къде да извика клиента обратно. Не избира сървъра, не обвързва всяка заявка с адрес на източника и не насочва трафика в тунел. На лаптоп с няколко адреса решението дали изобщо се прилага изисква три въпроса.

Три условия решават дали опцията има значение

Първото е договорената второстепенна версия, защото 4.1 и 4.2 обработват обратните извиквания различно. Второто е дали сървърът може да достигне адреса, който бихте обявили; маршрутизираният тунел обикновено го позволява, а транслационният път обикновено не. Третото е дали грешката, която преследвате, изобщо е грешка при обратно извикване.

ConditionIf yesIf no
Version is 4.0The option can matterSkip it; inspect the session instead
Server can reach the addressAdvertise itFix reachability first
Failure is a callbackDiagnose callback pathLook at mount and export

Отговарянето им в грешен ред е начинът, по който хората добавят адрес за обратно извикване към монтиране 4.2 и стигат до извода, че опцията е повредена.

Първо прочетете второстепенната версия

nfsstat -m

За съществуващо монтиране това отпечатва информацията за монтирането и флаговете, включително ефективната версия като vers=4.0, vers=4.1 или vers=4.2. Бележка, която казва само “NFSv4”, пропуска единствената подробност, която решава дали тази опция е от значение. Четете числото, а не думата.

Ако низът за версията идва от настройка по подразбиране на сървъра, а не от командния ви ред, попитайте коя второстепенна версия е договорена. Сървърът може да откаже по-висока второстепенна версия и да се върне назад и точно този откат е случаят, в който обратното извикване изведнъж придобива значение. Редът за монтиране, който сте написали, може да не описва монтирането, което имате.

За 4.0 обявете адрес, който сървърът може да достигне

Сървър NFSv4.0 може да се нуждае от отделна връзка обратно към клиента, например когато отменя делегиране. При няколко интерфейса или необичайна таблица за маршрутизиране автоматичното откриване на адрес за обратно извикване може да избере такъв, който сървърът не може да използва.

mount -t nfs -o vers=4.0,clientaddr=10.8.0.6 10.8.0.1:/export /mnt/share

Адресът преди двоеточието е сървърът и остава дестинацията. Адресът за обратно извикване принадлежи на клиента и трябва да е достъпен от страната на сървъра в тунела. Адресът на обратната връзка връща сървъра към самия него. Частен клиентски адрес без обратен маршрут е също толкова неизползваем, макар на клиента да изглежда правилен.

Използвайте това като илюстрация, не като причина да понижите работещо монтиране. Заменете адресите и пътя за експорт и запазете удостоверяването и другите опции, които сървърът изисква. Изпускането им, за да пасне един пример, е друга промяна с друг резултат и на сървър, който налага тип на сигурност, тя се проваля преди всяко обратно извикване.

4.1 и 4.2 не използват опцията

Linux NFSv4.1 и 4.2 пренасят обратните извиквания по връзки, установени от клиента, и 4.1 нарича това средство backchannel. Те не зависят от това сървърът да отвори нова връзка към обявен адрес, затова clientaddr не поправя път за обратно извикване при 4.1 или 4.2.

Това не означава, че 4.1 и 4.2 нямат проблеми с обратните извиквания. Означава, че диагностиката е различна: прегледайте установената сесия и състоянието на нейния backchannel, вместо да търсите входящ порт за обратно извикване, който никога не е трябвало да съществува. Липсващото входящо правило е очакваното състояние, а не дефект за поправяне.

Отделете грешка при монтиране от грешка при обратно извикване

Първо установете дали клиентът достига услугата NFS и дали сървърът приема експорта и заявката за удостоверяване. Изтичане на времето преди тази размяна не казва нищо за адрес за обратно извикване. Промяната на едното, докато монтирането още се проваля, не приближава разследването и скрива първоначалната грешка зад нова опция за монтиране.

Само когато доказателствата покажат неуспешно обратно извикване при 4.0, обявеният адрес има значение, заедно с обратния път на сървъра, слушателя от страна на клиента и всяко филтриране между тях. Промяната на числото в опцията за монтиране не може да създаде тези пътища; тя може само да посочи такъв, който вече съществува. Запишете кой от тези четири проверихте, защото следващият доклад ще пристигне без нито един от тях.

Коренът на NFS при ранно зареждане е отделна среда със свои предпоставки: initramfs се нуждае от инструментите и мрежата, преди монтирането да може да се случи. Монтиране, което работи след вход, не доказва нищо за тази последователност, а грешката при зареждане рядко споменава initramfs или мрежата.

Подобни статии