1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リモナビ:NFSv4 にリモナビを使ってみる

Posted at

NFS はversion 4 で 単一ポート(2049) の TCP通信で実現されるようになりました。
これによって、リモナビを使って容易にNAT超えのNFSが実現できます。

🔹NFS の検証構成

以下の構成で実際に NFS マウントを実現してみようと思います。

NFSクライアント、NFSサーバ 上にそれぞれ Sender | Receiver を配置する構成とします。
この検証は 両ホストとも、Ubuntu を使用しますので、 Sender | Receiver は共に Docker版を利用します。

🔹設定イメージ

設定内容はこれまで通りですが、 OSの NFS 設定には 接続元|先TCP接続情報 が必要なため、従来とh若干順番が異なります。

1) NFSサーバに リモナビ Receiver をインストール

  • Receiver Dockerコンテナ内から見たホストマシンのIPアドレスの取得
    docker inspect remonavi-receiver | grep "Gateway"   ........ [*a]
    
  • ホストマシンから見た、Receiver Docker コンテナの IPアドレス
    docker inspect remonavi-receiver | grep "IP"        ........ [*b]
    

2) NFSクライアントに リモナビ Sender をインストール

  • Sender Dockerコンテナ内から見たホストマシンのIPアドレスの取得
    docker inspect remonavi-sender | grep "Gateway"     ........ [*c]
    

3) リモナビ Gateway にて、 NFS Server へのGateway設定を追加

 接続ホスト : [*a] の IPアドレス
 接続ポート : 2049

4) リモナビ Receiverにて (3) Gateway の利用設定

5) リモナビ Seneer (3) Gateway の利用設定

 接続ポート : 任意 [*d]

6) NFSサーバの設定

  • NFS サーバのインストール
    apt install nfs-kernel-server
    
  • NFS サーバの設定
    /etc/exports 編集
      /{公開ディレクトリ}  {ReceiverコンテナのIP情報 [*b]}(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)	
    
    例) /mnt 172.17.0.0/16(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)
          /mnt          : /mnt を公開する
          172.17.0.0/16 : NFSサーバへの接続元IPネットワーク
                          今回は Receiver Docker が接続元なので [*b] 情報とする 
                          [*b]では IPAddressとPrefixが取得できま
    
  • NFS サーバの再起動
    systemctl restart nfs-kernel-server.service
    

7) NFSクライアントの設定

  • NFS クライアントのインストール
    apt install nfs-common
    
  • NFS マウント設定
    mount -t nfs -o vers=4,port=[*d] [*c]:{NFSサーバのマウント元} {クライアントホストのマウント先}
    
    例) mount -t nfs -o vers=4,port=9165 172.17.0.1:/public /home/mnt/public
         9165       : Sender設定のポート番号
         172.17.0.1 : Sender の Dockerアドレス
         /public    : NFSサーバで公開したディレクトリをルールートにしたディレクトリ指定
                      NFSサーバ上の  /mnt/public 相当    
    

🔹おわりに

 NFS クライアント、サーバ共に、TCP/IPレベルでの接続情報が必要なため、リモナビ側で先に接続経路を確立したのちに、NFS 設定をします。

 注意点は Sender | Receiver が Docker で、それぞれのホストに直にインストールする場合、接続IPアドレスが、Docker コンテナの IPアドレスとなる点です。 
 この情報のために、先に Receiver | Sender Docker を動作させ、以下のコマンドで接続IP情報を取得しています。

docker inspect {コンテナ名} | grep {検索したい文字列}
    Gateway :  Docker コンテナから見たホスト側の IPアドレスじょうh
    IP      :  ホスト側から見た Docker コンテナが利用する IPアドレス情報
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?