NFS를 사용하기 위해서 사용하는 포트가 지정된 1개가 아니다.
그러다보니 방화벽 환경에서 NFS를 사용하게 되면 당연히 문제가 발생한다.



[ portmap → rpcbind ]

포트를 활용하기 위하여 portmap을설치하려 했더니 다음과 같은 메시지가 나온다.

$ sudo apt-get install portmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'rpcbind' instead of 'portmap'
rpcbind is already the newest version.
rpcbind set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.


portmap 대신에 rpcbind 가 설치되어 있다는 말인데, 그렇다면 우리는 rpcbind를 사용하면 된다.



[ port 현황 확인 ]

지금 사용하고 있는 port 현황을 확인해보도록 하자.

$ 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    38905  status
    100024    1      tcp     40987  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    54927  nlockmgr
    100021    3      udp    54927  nlockmgr
    100021    4      udp    54927  nlockmgr
    100021    1      tcp     44736  nlockmgr
    100021    3      tcp     44736  nlockmgr
    100021    4      tcp     44736  nlockmgr
    100005    1      udp    47711  mountd
    100005    1      tcp     53370  mountd
    100005    2      udp    48583  mountd
    100005    2      tcp     43514  mountd
    100005    3      udp    51022  mountd
    100005    3      tcp     52825  mountd



[ port 등록 ]

사용할 포트를 등록해보자.

$ sudo nano /etc/services

...
status            4000/tcp                        # rpc.statd tcp port
status            4000/udp                       # rpc.statd udp port
mountd          4002/tcp                        # mountd tcp port
mountd          4002/udp                       # mountd udp port
rquotad          4003/tcp                        # rpc.rquotad tcp port
rquotad          4003/udp                       # rpc.rquotad udp port
...

실행 옵션도 수정해주어야 한다.

$ sudo nano /etc/default/nfs-kernel-server

...
# RPCMOUNTDOPTS="--manage-gids"
RPCMOUNTDOPTS="-p 4002 -g"
...

다음의 파일을 수정해야 한다.
만약 없는 경우 새로 생성하면 된다.

$ sudo nano /etc/modprobe.d/options.conf

options lockd nlm_udpport=4001 nlm_tcpport=4001


그리고, 이젠 서비스를 재시작하자.

$ sudo service rpcbind restart
rpcbind stop/waiting
rpcbind start/running, process 2519

$ sudo service nfs-kernel-server restart
 * Stopping NFS kernel daemon                                                                            [ OK ]
 * Unexporting directories for NFS kernel daemon...                                                [ OK ]
 * Exporting directories for NFS kernel daemon...                                                    [ OK ]
 * Starting NFS kernel daemon                                                                              [ OK ]

정상적으로 적용이 잘 되었는지 확인해보자.

$ 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     4000  status
    100024    1   tcp      4000  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     4001  nlockmgr
    100021    3   udp     4001  nlockmgr
    100021    4   udp     4001  nlockmgr
    100021    1   tcp      4001  nlockmgr
    100021    3   tcp      4001  nlockmgr
    100021    4   tcp      4001  nlockmgr
    100005    1   udp     4002  mountd
    100005    1   tcp      4002  mountd
    100005    2   udp     4002  mountd
    100005    2   tcp      4002  mountd
    100005    3   udp     4002  mountd
    100005    3   tcp      4002  mountd



위와같이 되었다고 하면 이제 포트가 고정이 되었으니 방화벽에 포트 등록을 해주면 된다.

111 (portmap), 2049 (nfs), 4000 (status), 4001 (nfs lock manager), 4002 (mountd), 4003 (rquotad)

 

반응형

+ Recent posts