質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

5377閲覧

ec2から別会社のvpsのdirにnfsでマウントできません。

kaji

総合スコア648

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2015/06/24 22:41

**現象
ec2サーバで
mount -t nfs 外部サーバのip:/export/data /var/www/html/data
mount.nfs: Connection timed out

**詳細
nfsホストサーバの方は、
ec2以外の別のクライアントサーバからは接続できているので、
問題ないと思います。

ホストサーバにec2のipを追加してます。
vi /etc/exports
/export/data ec2のip(rw,root_squash)

exportfs -ra # 設定反映

exportfs -v # 設定確認

/export/data
ec2のip(rw,wdelay,root_squash,no_subtree_check)

ec2サーバには
以下nfsインストールをしました。
yum install nfs-utils
yum install rpcbind
/etc/init.d/rpcbind start

ec2インバウンド
80,22,2049,111,892(セキュリティ的にはまずいけど、確認のためとりあえず全て0.0.0.0/0)
ec2アウトバウンド
80,22,2049,111,892(全て0.0.0.0/0)

とりあえずvpsからの移行で一時的にnfsを使いたいだけで。
今後はawsの最適化を考えてます。
設定が足りないのでしょうか?
ご回答お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

"Connection timed out" ですので、TCP/IP または UDP/IP のレベルで到達できないのだと思います。
EC2インスタンスから

lang

1rcpinfo -p (NFSサーバー) 2showmount -e (NFSサーバー)

で接続できるように、セキュリティグループの制限を緩めていくといいと思います。
例えば、NFSサーバーのIPアドレスのすべてのポートを許可するなど。

投稿2015/06/25 01:25

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaji

2015/07/01 06:37

セキュリティグループは上でも書いた通り、インバウンド&アウトバウンド共に、nfsのport(2049)を追加し、IPアドレスのすべてのポートを許可している状態です。 ec2インバウンド 80,22,2049,111,892(セキュリティ的にはまずいけど、確認のためとりあえず全て0.0.0.0/0) ec2アウトバウンド 80,22,2049,111,892(全て0.0.0.0/0) ec2側で実行 $ showmount -e (NFSサーバー) clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) NFSサーバー側で実行 $ sudo service nfs status rpc.svcgssd is stopped rpc.mountd (pid 7257) is running... nfsd (pid 7273 7271 7270 7269 7268 7267 7266 7265) is running... nfsは動いているようです。 ec2側で実行 $ rpcinfo -p (NFSサーバー) rpcinfo: can't contact portmapper: RPC: Remote system error - No route to host カスタムUDPルールのインバウンド&アウトバウンドにも以下port&全ipを追加しましたが、 2049,111,892 同様にエラーが出ました。 $ showmount -e (NFSサーバー) clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) $ rpcinfo -p (NFSサーバー) rpcinfo: can't contact portmapper: RPC: Remote system error - No route to host 全てのトラフィック(全port)&全ipでインバウンド&アウトバウンドを一時的に設定して確認してみましたが 同様にエラーが出ました。 $ showmount -e (NFSサーバー) clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) $ rpcinfo -p (NFSサーバー) rpcinfo: can't contact portmapper: RPC: Remote system error - No route to host セキュリティの設定が反映されてないのかと思い、port80の許可を削ってhttpアクセスしてみましたが、 適切にhttpにアクセスできなくなりました、セキュリティは反映されているようです。 この後、何を調べればよいでしょうか?
TaichiYanagiya

2015/07/01 06:58

"No route to host" ですので、IP的に到達できないのだと思います。 EC2インスタンスから NFSサーバーに ping は通るのでしょうか。
kaji

2015/07/01 07:28

pingでec2サーバからnfsサーバへの疎通はできませんでした。 ただ、 以下のようにport22や80を許可することでscpやsshやhttpで接続できたので、 $ scp (nfsのサーバip):/tmp/test.txt /tmp/ $ ssh (nfsのサーバip) $ wget http://(nfsのサーバip) ec2ではpingが通らないからといってnfsが使えないという判断はありませんでした。 pingが通れば解決に近づきそうなので、pingが通せるか確認してみます。
kaji

2015/07/01 07:39

アウトバウンドのセキュリティに全てのICMP&全ipを追加したところpingが通るようになりました。 $ ping (nfsのサーバip) PING (nfsのサーバip) ((nfsのサーバip)) 56(84) bytes of data. 64 bytes from (nfsのサーバip): icmp_seq=1 ttl=51 time=9.71 ms 64 bytes from (nfsのサーバip): icmp_seq=2 ttl=51 time=10.3 ms しかしエラーになりました。 $ showmount -e (NFSサーバーip) clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host) $ rpcinfo -p (NFSサーバーip) rpcinfo: can't contact portmapper: RPC: Remote system error - No route to host $ mount -t nfs (NFSサーバーip):/export/data /var/www/html/data mount.nfs: Connection timed out
TaichiYanagiya

2015/07/01 08:26

EC2インスタンスから NFSサーバーの他のポートには接続できるのですね。 「IP的に到達できない」は間違いでした。すみません。 セキュリティグループで全許可しても NG だとすると、NFSサーバー側の制限かもしれません。 posrtmapper が開いていれば "rpcinfo -p (NFSサーバー)" は接続できると思うのですが、何か間に Firewall がありませんでしょうか。
kaji

2015/07/01 08:35

上で回答した通り、解決できました。 iptableを変更したところ通った感じなのでFirewallなあたりでした。 みなさんのおかげで解決することができました。時間を割いて回答いただきありがとうございましたmm
guest

0

決定的な原因はnfsサーバ側で接続許可するec2のサーバのipを追加してなかったことが原因でした。
もともとiptableには以下のような記述をしていたので、
ここにec2のipを追加しなければなりませんでした。
sudo vi /etc/sysconfig/iptables
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p tcp --dport 2049 -j ACCEPT
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p udp --dport 2049 -j ACCEPT
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p tcp --dport 111 -j ACCEPT
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p udp --dport 111 -j ACCEPT
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p tcp --dport 892 -j ACCEPT
-A INPUT -s (元々繋いでた外部nfsクライアントip) -p udp --dport 892 -j ACCEPT

なのでnfsサーバ側のiptablesについて前回追加した以下部分を削除
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT

2049,111,892のみ残しec2のipを指定しました。
-A INPUT -s (ec2のip) -p tcp --dport 2049 -j ACCEPT
-A INPUT -s (ec2のip) -p udp --dport 2049 -j ACCEPT
-A INPUT -s (ec2のip) -p tcp --dport 111 -j ACCEPT
-A INPUT -s (ec2のip) -p udp --dport 111 -j ACCEPT
-A INPUT -s (ec2のip) -p tcp --dport 892 -j ACCEPT
-A INPUT -s (ec2のip) -p udp --dport 892 -j ACCEPT

#前回追加したnfs-port固定の以下の部分は設定しなくても接続できたので削除しました。
$ sudo vi /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020

ec2のセキュリティグループも最小限の許可のみとするために
TCPとUDPの全てのportと全ipを許可を外して、
インバウンドは記述なしで、
アウトバウンドにのみTCPの2049,111,892を追加。
許可IPもnfsサーバのipのみとしました。

これでmountできました。
改めてみなさんありがとうございました。

投稿2015/07/01 10:57

kaji

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ここを見ると、
nfsでは2049、111含み、以下のポートを使うようですので、
全てのポートを指定しなければならないと思います。

portmapper: 111/tcp, 111/udp
nfs: 2049/tcp, 2049/udp
statd: 不定/tcp, 不定/udp
nlockmgr: 不定/tcp, 不定/udp
mountd: 不定/tcp, 不定/udp

不定のものはポートを固定する必要があり、手順も同じページにかかれています。

また、このページでは、showmount -eの結果として、
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
が返っている状況から、iptablesにポートの設定を追加することで解決したという情報があります。

投稿2015/07/01 07:16

編集2015/07/01 07:44
eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaji

2015/07/01 08:31

参照ページにある通り、 nfsサーバ側のiptablesを変更しました。 sudo vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT #再起動して反映 sudo /etc/rc.d/init.d/iptables restart #nfs-port固定(外部nfsサーバ,ec2側共に) $ sudo vi /etc/sysconfig/nfs RQUOTAD_PORT=875 LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 STATD_PORT=662 STATD_OUTGOING_PORT=2020 #nfs設定反映(外部nfsサーバ,ec2側共に) $ sudo /etc/rc.d/init.d/nfs restart ec2のセキュリティグループのTCPとUDPの全てのportと全ipを許可しました。 これでrpcinfoしたところ接続できました。nfs-mountもできました。 [ec2サーバ] $ sudo rpcinfo -p (外部nfsサーバip) 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 100005 1 udp 892 mountd 100005 1 tcp 892 mountd 100005 2 udp 892 mountd 100005 2 tcp 892 mountd 100005 3 udp 892 mountd 100005 3 tcp 892 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 32769 nlockmgr 100021 3 udp 32769 nlockmgr 100021 4 udp 32769 nlockmgr 100021 1 tcp 32803 nlockmgr 100021 3 tcp 32803 nlockmgr 100021 4 tcp 32803 nlockmgr みなさんのおかげで解決することができました。ご回答ありがとうございます。 決定的な原因は改めて確認しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問