VPN ਉੱਤੇ NFS clientaddr: ਆਦਤ ਨਾਲ ਨਹੀਂ, ਮਾਈਨਰ ਵਰਜ਼ਨ ਨਾਲ ਫੈਸਲਾ ਕਰੋ
clientaddr ਸਿਰਫ਼ NFSv4.0 ਲਈ ਕਾਲਬੈਕ ਪਤਾ ਘੋਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਸਹਿਮਤ ਮਾਈਨਰ ਵਰਜ਼ਨ ਪੜ੍ਹੋ, ਵਾਪਸੀ ਮਾਰਗ ਜਾਂਚੋ ਅਤੇ ਇਸਨੂੰ ਮਾਊਂਟ ਅਸਫਲਤਾਵਾਂ ਤੋਂ ਵੱਖ ਰੱਖੋ।
clientaddr ਉਹਨਾਂ ਮਾਊਂਟ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਕਾਰਨ ਗਾਇਬ ਹੋਣ ਤੋਂ ਬਹੁਤ ਬਾਅਦ ਵੀ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਕਾਪੀ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ NFSv4.0 ਸਰਵਰ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਨੂੰ ਕਿੱਥੇ ਵਾਪਸ ਬੁਲਾਉਣਾ ਹੈ। ਇਹ ਸਰਵਰ ਨਹੀਂ ਚੁਣਦਾ, ਹਰ ਬੇਨਤੀ ਨੂੰ ਸਰੋਤ ਪਤੇ ਨਾਲ ਨਹੀਂ ਬੰਨ੍ਹਦਾ ਅਤੇ ਟ੍ਰੈਫਿਕ ਨੂੰ ਸੁਰੰਗ ਵਿੱਚ ਨਹੀਂ ਧੱਕਦਾ। ਕਈ ਪਤਿਆਂ ਵਾਲੇ ਲੈਪਟਾਪ ਉੱਤੇ, ਇਹ ਬਿਲਕੁਲ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ ਇਹ ਤੈਅ ਕਰਨ ਲਈ ਤਿੰਨ ਸਵਾਲ ਚਾਹੀਦੇ ਹਨ।
ਤਿੰਨ ਸ਼ਰਤਾਂ ਤੈਅ ਕਰਦੀਆਂ ਹਨ ਕਿ ਵਿਕਲਪ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜਾਂ ਨਹੀਂ
ਪਹਿਲੀ ਸਹਿਮਤ ਮਾਈਨਰ ਵਰਜ਼ਨ ਹੈ, ਕਿਉਂਕਿ 4.1 ਅਤੇ 4.2 ਕਾਲਬੈਕ ਨੂੰ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਸੰਭਾਲਦੇ ਹਨ। ਦੂਜੀ ਇਹ ਹੈ ਕਿ ਸਰਵਰ ਤੁਹਾਡੇ ਘੋਸ਼ਿਤ ਕੀਤੇ ਪਤੇ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ; ਰੂਟ ਕੀਤੀ ਸੁਰੰਗ ਆਮ ਤੌਰ ਉੱਤੇ ਇਸਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ ਅਤੇ ਅਨੁਵਾਦਿਤ ਮਾਰਗ ਆਮ ਤੌਰ ਉੱਤੇ ਨਹੀਂ। ਤੀਜੀ ਇਹ ਹੈ ਕਿ ਤੁਸੀਂ ਜਿਸ ਅਸਫਲਤਾ ਦਾ ਪਿੱਛਾ ਕਰ ਰਹੇ ਹੋ ਉਹ ਕਾਲਬੈਕ ਅਸਫਲਤਾ ਹੈ ਜਾਂ ਨਹੀਂ।
| Condition | If yes | If no |
|---|---|---|
| Version is 4.0 | The option can matter | Skip it; inspect the session instead |
| Server can reach the address | Advertise it | Fix reachability first |
| Failure is a callback | Diagnose callback path | Look 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 ਜਾਂ ਨੈੱਟਵਰਕ ਦਾ ਜ਼ਿਕਰ ਕਰਦੀ ਹੈ।