お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-01-11 21:16:11

Rasum
メンバ
登録日: 2008-12-07

nfsのマウントに失敗します

(本サイトが止まっていましたので別のところに投稿しましたが反応が無い中で本サイトが復旧しましたので、先に投稿した質問を削除してこちらに投稿します)

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.

オフライン

 

#2 2012-01-11 22:40:47

hito
管理者
登録日: 2007-03-18

Re: nfsのマウントに失敗します

TCP/UDPの111が空いていないとportmapperに接続できない気がします。まずufwで開けてみてください。

これでダメな場合は、rpcinfo -pすると必要な可能性のあるポートが表示されると思います。

オフライン

 

#3 2012-01-12 07:50:45

Rasum
メンバ
登録日: 2008-12-07

Re: nfsのマウントに失敗します

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.

オフライン

 

#4 2012-01-12 10:31:19

hito
管理者
登録日: 2007-03-18

Re: nfsのマウントに失敗します

すみません、手元で見たところ、TCP/UDPの837も空けないといけないようです。

それでもダメな場合、server/clientそれぞれのdmesgと/var/log/syslog(/var/log/messages)に何かそれらしいメッセージがないかと、「sudo lsof -i | grep LISTEN」の結果を頂けると何かわかりそうです。

オフライン

 

#5 2012-01-12 10:43:59

hito
管理者
登録日: 2007-03-18

Re: nfsのマウントに失敗します

よく考えてみるとrpc.mountdはデフォルトだと動的ポートなので、/etc/default/nfs-kernel-serverでRPCNFSDOPTS="-p 20000"とかして、指定したポートを空けないといけない気がしてきました。

オフライン

 

#6 2012-01-14 18:24:17

Rasum
メンバ
登録日: 2008-12-07

Re: nfsのマウントに失敗します

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.

オフライン

 

Board footer

Powered by FluxBB