사용자 정의 인터페이스를 통한 NFS 공유

사용자 정의 인터페이스를 통한 NFS 공유

내 서버에는 4개의 네트워크 카드가 있습니다: eth0, eth1, eth2, eth3. 여러 개의 디스크가 있는 스토리지 서버입니다. vg_share1, vg_share2, 3개의 볼륨 그룹이 있습니다 vg_share3. 이 볼륨 그룹을 다음과 같이 다른 NIC와 공유하고 싶습니다.

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

관련 정보