AWS Cloud School/리눅스

슈퍼넷팅, ssh 설치, NFS, mount

데굴너굴하늘 2023. 9. 11. 14:54

호스트 이름 변경

hostnamectl set-hostname [변경할 이름]

 

서브넷팅 <-> 슈퍼넷팅

- 네트워크를 축약(합친다는 의미)

192.168.1.0 /24

192.168.2.0 /24

192.168.3.0 /24

위 세 대역대를 합치고 싶다!

->합치고 싶은 네트워크를 2진수로 나열한다.

위의 경우 192.168은 똑같으니까 배제하고

밑에 1.0, 2.0, 3.0만 본다. 

 

1 = 0000 0001

2 = 0000 0010

3 = 0000 0011

숫자가 똑같은 위치까지 프리픽스를 지정해주면된다 => 22번째까지 똑같으니까 192.168.0.0 /22

각 네트워크가 속한 대표주소를 정해주면된다.

 

다만 다른곳에 있는 네트워크 대역 중에 묶어주면 그 네트워크가 포함되는? 식으로는 불가능하다.

위 상황에서 192.168.1.0, 192.168.2.0, 192.168.3.0 대역을 슈퍼넷팅해서 한꺼번에 

내부에 있는 네트워크가 한번에 통신이 되게 하고 싶다! 한꺼번에 inside로 NAT 해주는?

 

슈퍼넷팅 연습 문제

1)

1.1.16.0 /24

1.1.17.0 /24

1.1.18.0 /24

16 = 0001 0000

17 = 0001 0001

18 = 0001 0010

1.1.16.0 /22

축약할 대상이 되는 네트워크 최소 크기를 생각.

 

2)

1.1.10.0 /24

1.1.20.0 /24

1.1.30.0 /24

10 = 0000 1010

20 = 0001 0100

30 = 0001 1110

1.1.0.0 /19

 

openssh-server 설치
sshd 서버 실행

관리자 계정으로는 로그인이 되지 않고, 일반 사용자로만 로그인이 되는 상태이기 때문이다.

관리자 계정으로도 Xshell에서 로그인이 되도록 해보자.(9/11 숙제)

ssh 설정 파일

이 때 nano가 아니라 vim 패키지를 설치하여 그 편집기로 수정하여도 된다.

패키지 다운 : apt install -y vim

vim 사용 : vim [파일명]

root 로그인 허용
Xshell에서 root 로그인 성공!

위와 같이 해주면 Xshell에서도 root 계정으로 로그인을 할 수 있다.

 

통상적인 문제 확인 방법

1. 기능이 정상적으로 잘 동작하는지

2. 통신이 되는지

3. 방화벽, 기타 보안설정이 잘 되어 있는지

 

NFS(Network File System)

1,2,3 pc가 있을 때 2에서 3의 /shared 파일의 VM에 접근(파일을 공유받는다는 표현보다 이 표현이 더 나은듯!)하는 것은 실제 메모리 자체는 3이지만, 접근할 때 쓰이는?? 건 2의 cpu와 ram이다.

NFS 구조

1,2번 서버에서 접근하고자 하는 vm이 실제로는 3에 있다면 2에서 문제가 생겨도 1에서 vm에 접근하면 되기 때문에 nfs를 하는 것임. 3에는 실제 vm이 들어갈 디스크가 있어야 하고, 1,2는 cpu, ram이 있어야 함.

srv1, srv2 => 2 core, 2GB, 20GB

srv3 => 2 core, 2GB, 100GB

위 사진과 같은 상황이라면 srv3 = nfs-server

 

 

패키지 설치
디렉토리 생성

외부에서 접근할 폴더(공유 디렉토리) 생성

권한 변경

-R : 하위 디렉토리도 포함.

/etc/exports : 공유할 디렉토리와 공유 대상을 지정하는 파일.

처음에 아무런 내용이 존재하지 않으며, new 파일인지 아닌지 확인을 하는게 좋다.

변경사항 반영
마운트 확인

showmount : 현재 공유설정된 상황을 확인할 수 있는 명령어.

마운트 : 장치가 있을 때 그 장치를 쓰려면 마운트를 해야한다??

 

[srv1, srv2]

nfs 패키지 설치

mount

공유 디렉토리에 접근할 생성

srv3의 /shared라는 디렉토리에 접근할 /remote 디렉토리 생성

해당 주소

-t : type, 211.183.3.30:/shared : 원본, /remote를 통해서 원본에 접근

 

원본 파일이 있는 서버에서 방화벽 or Selinux를 켠 상태에서 마운트를 시도하면 실패한다.

마운트를 할 때 원본 파일이 있는 대역의 프리픽스를 지정하고 싶으면 명령어 뒤에다가 입력해주면된다.

 

미니 DNS역할/DNS 서버 없었을 때 이걸 이용해서 비슷한 기능을 구현하였음. 앤서블에서도 이런식으로 관리.

umount

umount = mount 해제 명령어

 

<실습> srv3에 있는 /mshared라는 폴더를 srv1, srv2에 각각 마운트 될 수 있도록 nfs 서버 구성을 하시오.

단, srv1, srv2에서는 ip주소가 아닌 호스트네임(srv1, srv2, srv3)로 접근해야 한다.

ex> mount -t nfs srv3:/mshared /remote

위와 같이 마운트가 되어야 함.

 

=> srv3에 mshared 디렉토리를 생성한다.

srv1,2의 /etc/hosts 파일에 211.183.3.30  srv3를 추가한다.

srv1,2에서 mount -t nfs srv3:/mshared /remote를 입력한다.

위 두 방법 중 암거나 해도됨!

위 같이 하면 실패한다.(/mshared 디렉토리를 입력 ip 주소 형식에게만 공유를 하였는데 srv3로 마운트를 시도했기 때문)

 

/etc/exports 파일에서 /mshared *(rw)같이 입력한 경우 전체 대역에 대해 /mshared 공유를 하는 것으로,

이런식으로 전체 대역에 공유가 가능하다.