본문 바로가기

교육/Server

Day 24 (NFS & Multi network)

반응형

NFS는 최초의 Filesystem으로 SUN사에서 개발되어 대부분의 유닉스에서 사용 가능하다. samba서버 운영방식는 server가 Linux이고 client가 window인 반면 NFS서버 운영방식은 server가 Linux이고 client도 Linux다. 또한 samba서버는 계정명으로 사용자를 구분하지만 NFS서버의 경우에는 UID값으로 사용자를 구분한다. 또 samba서버는 동기화 되지만 NFS서버는 mount를 해주어야 한다. mount는 모든 매체를 디렉토리에 연결하는 행위를 의미한다.

 

  samba NFS
서버 Linux Linux
클라언트 Windows Linux
사용자구분 계정명 UID
연결방식 동기화 mount

 

관련 파일은 다음과 같다

  Server Clinet
데몬 /usr/sbin/exportfs /usr/sbin/rpcbind
관리 스크립트 /usr/lib/systemd/system/nfs.service /usr/lib/systemd/system/rpcbind.service 
환경 설정 파일 /etc/exports  

<*CentOS6번대 버전의 경우 Clinent에서 rpcbind가 아닌 portmap으로 입력해야 한다.>

 

 

NFS 서버 실행은 'systemctl start nfs.service'로 실행한다. 

 

'/etc/exports'파일 설정은 NFS로 제공될 디렉토리나 파일과 권한을 설정 할수있다.

'디렉토리 클라이언트(옵션)'으로 구성되어 있다. 허가할 클라이언트 지정의 경우에는 IP와 넷마스크를 사용하는 방식과 IP와 호스트 주소를 적는 방법이 있는데 IP와 넷마스크를 이용해 클라이언트를 지정하는 방식이 정확하다.

옵선은 다음과 같다.

- ro : 읽기 전용, rw : 읽기 쓰기 허용
- root_squash : 클라이언트의 root를 nobody로 매핑 /no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.
- all_squash : 모든 사용자를 nobody로 매핑 /no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치시킨다.
   * 일반유저의 default는 no_all_squash / root의 default는 root_squash이다.
- anonuid=uid, anongid=gid : nobody로 매핑 될경우 지정된 계정이나 그룹으로 대상을 변경한다.
- sync : 파일 쓰기 후에 디스크 동기화
- insecure : 인증되지 않은 접속도 허용
※ 서버-클라이언트간 계정 매핑은 UID를 기준으로 한다

 

마운트 방법은 먼저 'systemctl start rpcbind.service'를 입력하고 아래의 명령어를 입력하면 된다.

mount –t nfs NFS서버IP:/NFS서버의공유디렉토리 /마운트할디렉토리
ex) mount 192.168.10.31:/home/pub /home/pub

주의할점은 mount명령어는 부팅시 해제 되므로 지속적인 연결을 하려면 /etc/rc.d/rc.local에 지정해 두어야 한다.

 

<옵션>
;/home/all 192.168.10.157(rw,no_root_squash)
;/home/all 192.168.10.157(rw,all_squash)
;/home/all 192.168.10.157(rw,no_all_squash)
;/home/all 192.168.10.157(rw,all_squash,root_squash)
;/home/all 192.168.10.157(rw,all_squash,no_root_squash)
;/home/all 192.168.10.157(rw,no_all_squash,root_squash)
;/home/all 192.168.10.157(rw,no_all_squash,no_root_squash)
;/home/all 192.168.10.157(rw,anonuid=##,anongid=##)

<계정 및 그룹, 공유디렉토리, Server IP, Client IP>
user -u 10066 -g 10004 st001

group -g 10004 nfs

 

directory /home/all

 

server bst090:192.168.10.158 / client bst009:192.168.10.157

 

실습

더보기

 

공유 계획
그룹, 계정, 폴더 생성 및 폴더 소유자, 소유그룹 변경
생성 디렉토리에 대한 퍼미션 변경
st001계정에 대한 비밀번호 생성
yum을 이용한 NFS 및 rpcbind 데몬 설치
NFS 및 rpcbind 데몬 실행 및 마운트
root 권한은 유지하고 다른 계정은 default로 하는 경우
서버와 클라이언트에서 생성한 파일 모두 root계정 정보로 되어있다. st001계정도 생성이 가능하다.
변경 실행전 파일 삭제
일반 계정을 nobody로 하고, root 권한은 default로 하는 경우
공유 디렉토리인 all에 대한 퍼미션이 other는 읽기 권한만 있고 쓰기 권한은 없기 때문에 server만 생성가능
일반 계정의 권한을 일치시키고, root 권한은 default로 하는 경우
서버와 클라이언트에서 생성한 파일이 각각 root계정과 st001계정으로 되어있다. 클라이언트의 root default값 때문에 생성이 불가능
일반 계정의 권한을 nobody로 하고 root의 권한도 nobody로 한다.
공유 디렉토리인 all에 대한 퍼미션이 other는 읽기 권한만 있고 쓰기 권한은 없기 때문에 server만 생성가능
일반 계정의 권한을 nobody로 하고 root의 권한은 유지 한다.
공유 디렉토리인 all에 대한 퍼미션이 other는 읽기 권한만 있고 쓰기 권한은 없기 때문에 server만 생성가능
일반 계정의 권한은 일치시키고 root의 권한은 nobody로 한다.
서버와 클라이언트에서 생성한 파일이 각각 root계정과 st001계정으로 되어있다.
일반 계정과 root의 권한을 일치시킨다.
root와 일반계정 모두 파일 생성 가능하다.
nobody접속시 uid는 10001, gid는 10000으로 설정
other도 파일 생성이 가능하게 변경해준다.
둘다 지정한 uid와 gid로 생성 된다. 여기서 알수있는 점은 root계정과 연결된 계정이 있는것을 구분 가능하다.
NFS서버 쪽의 web계정 정보이다.

 

 

 

 

 

 



멀티 네트워크망 구축 마지막

 

 

중간 리눅스는 랜카드가 제 기능을 못함 따라서 패킷교환 불가하다.

포워딩 설정이 필요한데 파라미터 값으로 변경 가능하다.

ip_forward 파라미터의 디폴트는 0이다. 또한 커널 파라미터이기 때문에 하드드라이브가 아닌 메모리에 저장된다.

 

패킷 포워딩을 설정하는 방법은 3가지가 있다.

1. # sysctl –w net.ipv4.ip_forward=1

 이 방식은 직접적인 명령어를 입력하는것으로 ip_forward=1에서 =앞뒤로 공백이 없어야 한다.
2. # echo 1 > /proc/sys/net/ipv4/ip_forward

 이 방식은 프로토콜에 추가하는 방식이다. 이 방식은 메모리에 저장하는 방식이라 리부팅시 다시 명령해주어야 한다.
3. # /etc/sysctl.conf 파일에 ‘net.ipv4.ip_forward = 1’을 추가한다.

 이 방식은 '/etc/sysctl' 파일을 설정하기 때문에 지속적인 저장이 가능하다. 수정 후에는 'sysctl -p'로 적용시켜준다.

 

라우팅 테이블을 추가하는 방식은 윈도우와 리눅스가 다르다.

윈도우용 : route –p add [NETWORKIPaddress] MASK [NETMASK] [GW_IP] [I(nter)F(ace_number)]

만약 라우터 테이블을 추가해 주어도 통신이 안된다면 통신이 추가한 인터페이스로 가는 것이 아니라 게이트웨이로 가는 것이기 때문에 뒤에 입력해주어야된다. 인터페이스 번호는 route PRINT의 첫 섹션에 정보를 참조하면 된다.

 

윈도우용 라우팅 테이블 제거 : route –p delete [NETWORKIPaddress] MASK [NETMASK] [GW_IP]

 

리눅스용 : route add –net [NETWORKIPaddress] netmask [NETMASK] gw [GW_IP]

 

리눅스용 라우팅 테이블 제거 : route del –net [NETWORKIPaddress] netmask [NETMASK] gw [GW_IP]

 

크로스넷_포워딩은 정상적인 ip인지 확인 환경에 PC만 세팅이 되었을때 어떤 테스트를 해야 통신이 되는지 기술이다.



 

192.168.10.0/24 네트워크와 192.168.111.0/24 네트워크와 192.168.112.0/24 네트워크를 연결하는
망을 구축하려고 한다. 192.168.10.0/24 네트워크아래에 192.168.111.0/24 네트워크를 구성하고
192.168.111.0/24 네트워크아래에 192.168.112.0/24 네트워크를 구성할것이다. 또한 외부에서
네트워크를 볼때 192.168.10.0/24네트워크에서 연결하는 것으로 확인되게 한다. 현재 설치된 네트워크는
192.168.10.0/24네트워크만 있다. 사용중인 IP는 192.168.10.156이고, netmask는 255.255.255.0,
게이트 웨이는 192.168.10.1이다. DNS는 현재 ISP의 DNS인 203.248.252.2를 사용한다.
현재 사용하고 있는 192.168.10.156 네트워크에 VMware Workstation을 이용하여 Bridge방식의
192.168.111.0/24인터페이스를 추가하여 네트워크를 구성한다. 생성된 VMware의 인터페이스를
VMnet8으로 이름을 설정하고 사용할 IP는 192.168.111.3으로 한다. 이때 주의해야 할점은 한 PC에서 사용
가능한 게이트웨이는 1개이기 때문에 192.168.10.1로 하고 되어야 실제로 외부와 네트워크 접속이
이루어진다. 따라서 VMnet8의 게이트웨이 및 DNS서버는 설정하지 않는다.
NAT방식으로 192.168.111.11/24의 네트워크를 가지는 Linux를 설치하고 게이트웨이는
192.168.111.1로 설정하고 DNS는 203.248.252.2로 설정한다. 네트워크 설정이 끝나면
192.168.10.156과 연결이 잘 되었는지 PING을 송수신하여 연결을 확인한다. 반대로
192.168.10.157에서 192.168.111.11로도 PING을 송수신하여 연결을 확인한다.
다음으로 생성해야 할 것은 NAT 192.168.111.254/24네트워크와 192.168.112.1/24네트워크를 가지는
PC를 설정한다. 이 PC도 두개의 랜카드를 가지지만 한 PC안에서 라우터의 역할을 수행하기 때문에
192.168.111.1을 게이트웨이로 가지고 DNS는 203.248.252.2로 설정한다. 한 PC에서 사용 가능한
게이트웨이는 1개이기 때문에 랜카드를 2개를 가지더라도 게이트웨이와 DNS는 1개만 설정하는 것이다.
네트워크 설정이 끝나면 192.168.111.11과 연결이 잘 되었는지 PING을 송수신하여 연결을 확인하고
192.168.10.156과 연결이 잘 되었는지 PING을 송수신하여 연결을 확인한다. 반대로
192.168.111.11에서 192.168.111.254로도 PING을 송수신하여 연결을 확인하고 192.168.10.157에서
192.168.111.254로도 PING을 송수신하여 연결을 확인한다.
NAT방식으로 192.168.112.11/24의 네트워크를 가지는 Linux를 설치하고 게이트웨이는
192.168.112.1로 설정하고 DNS는 203.248.252.2로 설정한다. 네트워크 설정이 끝나면
192.168.112.11에서 192.168.112.1로 PING을 송수신 하여 네트워크 연결을 확인한다. 그외의
네트워크는 PING이 송수신 되지 않는다.
특별한 설정을 하지 않았기 때문에 192.168.111.0/24 네트워크와 192.168.112.0/24 네트워크가 다른
네트워크이기 때문에 패킷을 보낼때 게이트웨이를 192.168.111.1로 사용한다. 따라서 192.168.112.0/24
네트워크로 가는 패킷은 192.168.111.254로 패킷이 전송되어야 한다고 설정을 해주어야 한다.
192.168.10.0/24 네트워크와 192.168.111.0/24 네트워크를 동시에 가지는 PC는 Bridge방식이기
때문에 설정을 따로 하지 않아도 통신이 되는 것이다.
192.168.111.254/24 네트워크와 192.168.112.1/24 네트워크를 가지는 PC를 라우터로서 사용하기 위해
firewalld.service를 해지한다. 또한 패킷 포워딩 기능을 활성화 시키기 위해 '/etc/sysctl.conf'파일에
'net.ipv4.ip_forward = 1' 내용을 수정 또는 추가한다. 디폴트 값은 '0'이다. 파일추가 후 'sysctl -p' 명령을
실행하여 적용시킨다.
192.168.111.11에서 192.168.112.0/24 네트워크에 접속이 가능하게 192.168.112.0/24 네트워크로
가는 패킷은 192.168.111.254를 통해서 전송되어야 한다고 설정하기 위해 'route add -net
192.168.112.0 netmask 255.255.255.0 gw 192.268.111.254'를 입력한다. 네트워크 연결을 확인하기
위해 192.168.111.11과 192.168.112.11을 서로 PING을 보내 송수신을 확인한다.
route를 입력하여 라우트 정보를 확인하고 제대로 입력되었는지 확인한다.
192.168.10.156에서 192.168.112.0/24 네트워크에 접속이 가능하게 192.168.112.0/24 네트워크로
가는 패킷은 192.168.111.254를 통해서 전송되어야 한다고 설정하기 위해 'route -p add 192.168.112.0
MASK 255.255.255.0 192.268.111.254'를 입력한다.
route PRINT를 입력하여 라우트 정보를 확인하고 제대로 입력되었는지 확인한다. 네트워크 연결을 확인하기
위해 192.168.10.156과 192.168.112.11을 서로 PING을 보내 송수신을 확인한다.

 

 

 

반응형

'교육 > Server' 카테고리의 다른 글

Day 38 (Web Server + Oracle + Samba) (2)  (0) 2020.01.10
Day 38 (Web Server + Oracle + Samba) (1)  (0) 2020.01.10
Day 23 (SAMBA & NAT & Oracle windows)  (0) 2019.12.18
Day 22 (SAMBA & NAT)  (0) 2019.12.17
Day 21 (NAT & Samba)  (0) 2019.12.17