カスタムインターフェイスによるNFS共有

カスタムインターフェイスによるNFS共有

私のサーバーには4つのネットワークカードがあります:eth0、、、、。複数のディスクを持つストレージサーバー。、、、3つのボリュームグループがあります。このボリュームグループを次のように他のNICと共有したいと思います。eth1eth2eth3vg_share1vg_share2vg_share3

vg_share1 --(NFS Share)--> Shared via eth1
vg_share2 --(NFS Share)--> Shared via eth2
vg_share3 --(NFS Share)--> Shared via eth3

どうすればいいですか?

答え1

着信IPアドレスを制限することはできませんが、できる次のように、特定のファイルシステムにアクセスできるソースIPを制限します。

/path/to/export      192.168.0.0/255.255.255.0(rw)
/path/to/otherexport 192.168.1.0/255.255.255.0(ro)

私はあなたのプライベートネットワークカードがあなたのプライベートネットワークにもあると仮定します。そのように制限することができます。

答え2

NFS サーバーは RPC を使用して、nfs サーバーとクライアント間の接続をルーティングします。rpc.nfsd(8)マニュアルページによると:

-H  or  --host hostname
          specify a particular hostname (or address) that NFS requests will be accepted on. By default, rpc.nfsd will accept NFS requests on all known network addresses.
          Note  that lockd (which performs file locking services for NFS) may still accept request on all known network addresses.  This may change in future releases of
          the Linux Kernel. This option can be used multiple time to listen to more than one interface.

したがって、IP / NICに割り当てられたホスト名を設定ファイルに追加して、NFSサーバー側で特定のレベルの制限を設定できます/etc/nfs.conf

たとえば、

cat /etc/hosts

127.0.0.1  localhost.localdomain localhost
::1        localhost6.localdomain6 

# Public network interface
123.312.222.111    myhostname.on.linedotcom

# Local network interface
192.168.1.1    myhostname.mydomain.lan

nfsd次に、NFS設定ファイルセクションに「ローカルネットワークインタフェース」のホスト名を追加します。/etc/nfs.conf

[nfsd] hostname=myhostname.mydomain.lan

このように、rpcbindデーモンはそのインターフェイスでのみリッスンし、パブリックネットワークインターフェイスは無視します。


/etc/exportsまた、ネットワークファイル共有がマウントできるローカルネットワーク/サブドメインのみを許可するように、設定ファイルに正しいパラメータを設定してください。

cat /etc/exports /srv/exampleshare 192.168.1.0/24(nfsoptionshereplzreplace)


それに応じてファイアウォールを設定します。

たとえば、ネットワークインターフェイスカード(NIC)を複数の領域に分割します。または使用している場合は、iptables特定のネットワークまたはサブドメインでのみそのポートを開きます。

答え3

通常どおりファイルシステムを共有すると、NFS サーバーはデフォルトですべてのインターフェイスをリッスンします。

クライアントは、マウントする共有の各IPアドレス(または設定されている場合はDNS名)を表示できます。

NFS Server - 0.0.0.0:2049 - ip address 1 <- client a mount vg_share1
                          - ip address 2 <- client b mount vg_share2
                          - ip address 3 <- client c mount vg_share3

バインドされたインターフェイスを表示することもできます。結合されたインターフェイスを使用すると、一種のフォールトトレランスを実装し、リンクが失敗した場合に接続を維持することもできます。インターフェイスを組み合わせると、複数のIPアドレス、VLANなどを設定できます。

NFS server - 0.0.0.0:2049 - bond0 <- client a, b, c mount their corresponding mounts

結合されたインターフェイスの概要(VLANを含む):

eth1 \         / vlan x - address a
eth2 -> bond0 <- vlan y - address b
eth3 /         \ vlan z - address c

もちろん、VLANではなくIPアドレスのみを設定できます。

答え4

編集する/etc/nfs.conf

eth2そうであると仮定すると、192.168.1.0次のように使用します。

[nfsd]
host=192.168.1.0

関連情報