
Ubuntu日本語フォーラム

ログインしていません。
(本サイトが止まっていましたので別のところに投稿しましたが反応が無い中で本サイトが復旧しましたので、先に投稿した質問を削除してこちらに投稿します)
ubuntu11.10のnfsサーバのディレクトリをLAN内の別のubuntu11.10ホストにマウントするのは
# mount -t nfs -o intr,hard 192.168.1.1:/home /mnt
でできています。
ところが、同じubuntu11.10nfsサーバのディレクトリをubuntu10.04ホストにマウントすべく同じコマンドを入れると、
(-vオプションを付けています)
mount.nfs: timeout set for Sun Jan 8 15:38:57 2012
mount.nfs: text-based options: 'intr,hard,addr=192.168.1.1'
mount.nfs: mount(2): Input/output error
mount.nfs: mount system call failed
と表示されてマウントできません。
mount -o オプションに nfsvers=2やnfsvers=3を入れたり、nolockを入れたりしてみても同じ結果です。
しかし、
# ufw disable
としてファイアウォールを外すと
# mount -t nfs -o intr,hard,nfsvers=2 192.168.1.1:/home /mnt
でマウントできます。
# ufw enable
の状態でマウントした方が安心に感じますが、どうすればよいかアドバイス頂けませんでしょうか。
ubuntu11.10nfsサーバの設定関係は次のとおりです。
/etc/exports の記述
/home 192.168.1.0/255.255.255.0(rw,sync,no_root_squash)
/etc/hosts.allow の記述
rpcbind : 192.168.1.0/255.255.255.0
portmap mountd nfsd statd lockd rquotad : 192.168.1.0/255.255.255.0
ALL : 192.168.1.0/255.255.255.0
(ALL行だけでよいでしょうが)
/etc/modules の記述
nfs
# ufw status
2049/udp ALLOW Anywhere
2049/tcp ALLOW Anywhere
2049/udp ALLOW Anywhere (v6)
2049/tcp ALLOW Anywhere (v6)
$ dpkg -l | grep -e nfs -e portmap -e rpc
ii libnfsidmap2 An nfs idmapping library
ii libplrpc-perl Perl extensions for writing PlRPC servers and clients
ii libtirpc1 transport-independent RPC library
ii nfs-common NFS support files common to client and server
ii nfs-kernel-server support for NFS kernel server
ii rpcbind
ubuntu10.04 クライアントの設定は次のとおりです。
/etc/modules の記述
nfs
$ dpkg -l | grep -e nfs -e portmap -e rpc
ii libnfsidmap2 An nfs idmapping library
ii libplrpc-perl Perl extensions for writing PlRPC servers an
ii librpc-xml-perl Perl module implementation of XML-RPC
ii librpcsecgss3 allows secure rpc communication using the rp
ii nfs-common NFS support files common to client and serve
ii nfs-kernel-server support for NFS kernel server
ii portmap RPC port mapper
2012 Jan. 11.
オフライン
TCP/UDPの111が空いていないとportmapperに接続できない気がします。まずufwで開けてみてください。
これでダメな場合は、rpcinfo -pすると必要な可能性のあるポートが表示されると思います。
オフライン
hitoさま、ありがとうございます。
さっそくやってみましたが、次の状況です。
さらなるアドバイスを頂けたら助かります。
ubuntu11.10nfsサーバの設定状況
# ufw status
111/tcp ALLOW Anywhere
111/udp ALLOW Anywhere
111/tcp ALLOW Anywhere (v6)
111/udp ALLOW Anywhere (v6)
2049/udp ALLOW Anywhere
2049/tcp ALLOW Anywhere
2049/udp ALLOW Anywhere (v6)
2049/tcp ALLOW Anywhere (v6)
# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 55251 status
100024 1 tcp 59754 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049
100227 3 tcp 2049
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049
100227 3 udp 2049
100021 1 udp 55298 nlockmgr
100021 3 udp 55298 nlockmgr
100021 4 udp 55298 nlockmgr
100021 1 tcp 47596 nlockmgr
100021 3 tcp 47596 nlockmgr
100021 4 tcp 47596 nlockmgr
100005 1 udp 33860 mountd
100005 1 tcp 42921 mountd
100005 2 udp 51586 mountd
100005 2 tcp 52685 mountd
ubuntu10.04 nfsクライアントからのmountコマンド結果
# mount -v -t nfs -o rw,intr,hard 192.168.1.1:/home /mnt
mount.nfs: timeout set for Thu Jan 12 07:25:46 2012
mount.nfs: text-based options: 'intr,hard,addr=192.168.1.1'
mount.nfs: mount(2): Input/output error
mount.nfs: mount system call failed
mountの -o オプションに nolock nfsvers=2 nfsvers=3 の有無で6ケースやってみましたが、全て同じメッセージでした。
2012 Jan. 12.
オフライン
すみません、手元で見たところ、TCP/UDPの837も空けないといけないようです。
それでもダメな場合、server/clientそれぞれのdmesgと/var/log/syslog(/var/log/messages)に何かそれらしいメッセージがないかと、「sudo lsof -i | grep LISTEN」の結果を頂けると何かわかりそうです。
オフライン
よく考えてみるとrpc.mountdはデフォルトだと動的ポートなので、/etc/default/nfs-kernel-serverでRPCNFSDOPTS="-p 20000"とかして、指定したポートを空けないといけない気がしてきました。
オフライン
hitoさま、ありがとうございます。
nfsが使うポートを固定することでマウントできました。
faqなようで、http://kaede.blog.abk.nu/nfs-ports-lock http://hide.xsv.info/tips/nfsoverfirewall.html あたりを参考に次のようにしました。
nfsサーバ設定
portmapperのポート111を開放
# ufw allow from 192.168.1.0/24 to any port 111
nfsdのポート2049を開放
# ufw allow from 192.168.1.0/24 to any port 2049
statdのポートを固定
/etc/default/nfs-common
STATDOPTS="--port 60000 --outgoing-port 60001"
(プライベートポートである49152〜65535を使った)
# ufw allow from 192.168.1.0/24 to any port 60000
# ufw allow from any to 192.168.1.0/24 port 60001
nlockmgrのポートを固定
/etc/modprobe.d/nfs_lockd.conf
options lockd nlm_udpport=60002 nlm_tcpport=60002
# ufw allow from 192.168.1.0/24 to any port 60002
mountdが使用するポートを固定
/etc/default/nfs-kernel-server
RPCMOUNTDOPTS="-p 60003"
# ufw allow from 192.168.1.0/24 to any port 60003
rquotadのポート固定
どこで設定するのかわからず。quotaを使っていないので無視。
nlockmgrのポートの選定は起動時に行われのでサーバを再起動
# reboot
nfsクライアント設定
# mount -t nfs -o rw,hard,intr,nfsvers=2 192.168.1.1:/home /mnt
マウントに成功した。
(nfsvers=2オプションがないとマウントに失敗するのがよくわかなない)
2012 Jan. 14.
オフライン