다음 이전 차례

12. 부록 A - BOOTP/DHCP와 NFS 설정하기

도대체 BOOTP와 DHCP가 무엇인지 궁금하다면, 이에 대한 자세한 정보는 DHCP 웹 사이트에서 얻을 수 있다. NFS는 NFS 하우투에 따로 자세히 문서화되어 있고, DHCP 미니 하우투 역시 문서화되어 있다. 필자는 주제에 대해 깊이있게 다루지 못하더라도 여러분들이 알기 쉽게 충분히 자세히 적으려고 노력했다.

우리가 다루고 있는 BOOTP/DHCP + NFS 설정에서 킥스타트 설정화일은 IPADDR가 설치할 머신의 IP 주소일 때 BOOTP/DHCP 서버에서 /kickstart/IPADDR-kickstart 로부터 설치하고자 하는 머신에서 NFS로 공유할 수 있어야한다. 예를 들자면 198.168.254.254의 머신을 위해서는 /kickstart/198.168.254.254-kickstart가 필요하다.

BOOTP/DHCP의 응답으로 bf 매개변수를 줌으로써 이 위치를 무시할 수 있다. 이를 이용해 다른 머신들과의 NFS 공유를 해제하는 것이 가능할 수도 있다.

기존의 리눅스 박스와 어떤 디렉토리들을 NFS로 공유하고자 한다면 다음과 같은 내용을 갖는 /etc/exports을 만들기 바란다:

/kickstart *.swedish-chef.org(ro,no_root_squash)
/mnt/cdrom *.swedish-chef.org(ro,no_root_squash)

만일 DNS에서 사용하고자 하는 IP 주소를 등록하지 않았다면 NFS 서버나 RPC portmapper로부터 찾을 수 없다는 메세지를 얻게 될 것이다. 이런 경우에는 IP 주소/넷마스크를 설정화일에 써줌으로써 해결할 수 있다. 예들 들어

/kickstart 198.168.254.0/255.255.255.0(ro,no_root_squash)

그리고 /etc/hosts.allow 화일에는 다음과 같이 적어준다:

ALL: 194.82.103.0/255.255.255.0: ALLOW

이와 같이 하는 이유는 NFS와 관련된 데몬의 일부 또는 전부에 대한 접근을 제어하는데에 TCP wrapper를 사용하기 때문이다. /etc/exports 화일의 문법은 다른 유닉스의 문법과 다른 경향이 있다는 점을 알아두기 바란다. 리눅스 배포판으로 제공되는 NFS 서버는 유닉스에서 제공되는 서버보다 매우 폭넓은 선택사항을 제공한다.

만일 킥스타트 설정 화일에 root의 패스워드가 포함되어 있거나 NFS로 export 된 디렉토리가 극비에 부쳐야 할 정보를 담고 있다면, 이 정보를 가능한 적은 수의 사람들에게도 노출시키지 않도록 해야한다. 이는 NFS 공유 접근권한을 잘 지정해줌으로써 가능하다. 예를 들자면 전체 도메인과 공유를 하기 보다는 특정한 호스트나 서브넷을 지정해주는 것이다. 킥스타드 설치를 위해 특정한 IP 주소를 사용하지 않아도(free) 무방하지만 나중에 변경을 해주던지 또는 BOOTP/DHCP를 통해 IP 주소를 받아올 수 있도록 재설정을 해주어야 한다.

대부분의 NFS 서버에서는 (유닉스의 종류에 따라 rpc. 가 붙은) mountdnfsd에게 SIGHUP를 보냄으로 해서 /etc/exports 화일이 변경되었음을 알려 주어야 한다. exportfs라는 프로그램 혹은 스크립트가 있어서 다음과 같이 실행한다.

# exportfs -a

머신이 부팅될 때 NFS 기능을 활성화시키지 않았다면 디렉토리는 자동으로 export되지 않을 것이다. 다시 부팅하거나 root로 다음 명령을 실행하라:

# portmap
# rpc.nfsd
# rpc.mountd

어떤 시스템에서는 rpc. 접두어가 없는 경우도 있다. 요즘 대부분의 유닉스 배포본에서는 이들 프로그램들은 /usr/sbin 디렉토리 또는 /usr/libexec 밑에서 찾을 수 있다. su 를 사용해서 루트의 권한을 얻었다면 검색 가능한 디렉토리 경로에 없을 수도 있다. 또한 portmap 프로그램은 솔라리스같은 시스템에서는 rpcbind로 불리고, 어떤 버전의 nfsd는 서버를 실행하기 위한 절차를 지정하는 명령행 인수를 필요로 하기도 하고, 또한 biod라 불리는 또다른 데몬을 실행시켜야 할 필요가 있을 수도 있다. 위의 예제는 거의 대부분의 리눅스 시스템에서 사용가능하다.

만일 앞에서 언급한 DHCP와 동적 주소지정 방식을 사용하는 CMU BOOTP 서버를 사용하고 있다면 /etc/bootptab(/etc/bootptab은 BOOTP/DHCP 설정을 담고있는 화일)의 내용은 다음과 같을 것이다.

.dynamic-1:ip=198.168.254.128:T254=0x30:T250="ds=198.168.254.2:
dn=swedish-chef.org:sm=255.255.255.0:gw=198.168.254.1:
dl=0xFFFFFFFF":

(중략)

위의 내용은 새 머신을 만나게 되면 198.168.254.128에서 시작하여 다음 48개 주소를 동적으로 부여하게 된다.(48의 16진 표현=30) 각 클라이언트는 250번 이내의 값을 가지게 된다. 위의 경우엔 다음과 같이 설정된다:

이 서버의 동적 주소할당을 지원하지 않는 많은 다른 버전은 주소를 제대로 할당받지 못하는 것 같다. 이러한 점때문에 각각의 설치될 머신들의 하드웨어 주소(일반적으로 이더넷)를 /etc/bootptab에 적어주어야 한다. /etc/bootptab 내용은 다음과 같을 것이다:

bork.swedish-chef.org:ip=198.168.254.128:ha=0000E8188E56:
  ds=198.168.254.2:dn=swedish-chef.org:sm=255.255.255.0:
  gw=198.168.254.1:dl=0xFFFFFFFF":

(중략)

ha 파라미터는 설치될 머신의 하드웨어 주소와 관련된다는 점을 알아두기 바란다.


다음 이전 차례