0부터 시작하는 가상머신과 네트워크 공부 - 가상머신과 VLAN

Jaehong Lee·2022년 7월 11일
0
post-thumbnail
post-custom-banner

1. 가상머신을 통한 실습 환경 구축

  • 가상머신을 clone하여 새 가상머신을 생성한다
    • linked clone : link를 걸어 하나의 가상머신을 여러곳에서 사용하는 것으로 실질적으로 가상머신은 하나다
    • full clone : 가상머신을 완전히 복사하여 별개의 가상머신을 새로 생성하는 것

  • centos1은 vmnet1으로 설정. 이는 본사에 있는 웹/DB 서버를 담당한다
  • centos2는 vmnet2로 설정. 이는 지사에 있는 DESKTOP을 담당한다
  • 이 두 vment은 HOST ONLY로 서로 격리된 네트워크 대역이다
  • 다음과 같이 세팅한다. clond 1은 이더넷을 추가해준다
  • clond 2,3은 vmnet 1,2로 추가해준다
  • 다음과 같이 연결해준다
  • 이 두가지 vmnet은 서로 다른 대역으로 서로 통신이 안되지만, 이번에는 서로 다른 vlan을 라우터를 통해 통신이 가능하게 해줄것이다
  • sw1을 실행하여 vlan을 생성해준다
  • 각 인터페이스에 vlan을 설정해준다
  • fa1/10은 두가지 vlan이 지나가는 인터페이스로 trunk port로 설정해야한다
  • 현재 논리적으로 이런 구조이다. 물리적으로 인터페이스가 하나지만, 논리적으로 두개의 인터페이스가 필요하므로, 하나의 인터페이스를 늘려야한다

2. 가상머신을 통한 실습

  • 지금까지 설정한 스위치와 trunk port를 확인한다
  • 이 방식으로 하나의 interface를 논리적으로 두 개로 나눌 것이다
  • FA0/1 인터페이스를 활성화하고, 서브 인터페이스를 두 개 만들어서 각각 VLAN을 설정하고, IP를 넣어준다
    • ecapsulation : 새로운 내용을 넣어 캡슐화하겠다
    • dot1Q : IEEE802.1q의 방식을 사용하겠다
    • 즉, vlan x번을 IEEE802.1q의 방식으로 캡슐화를 하겠다는 것이다. 이제 frame에 vlan tag가 넣어진다

  • centos2 네트워크 설정해준다
  • centos1 네트워크 설정해준다
  • centos2에서 os1로 통신이 가능한 것을 확인할 수 있다
  • 웹 서버에도 잘 접속된다

3. 외부에서의 접근 제어 - 동적 PAT

  • 외부에서 웹 서버에만 접근 가능하게 정적 PAT를 한다
  • 외부에서 DB에는 접근할 수 없어야 한다
  • 내부 사용자들이 인터넷과 연결할 수 있도록 동적 PAT를 한다
  • list 1을 만들어 0/0 포트의 공인 IP와 NAT 시키며 0/0 포트의 공인 IP를 다수의 사설 IP가 사용해야하므로 동적 PAT를 시킨다
  • 0/0 port에 ip를 지정하고, NAT할때 OUTSIDE로 지정하고, 인터페이스를 활성화 시킨다
  • 두 가지 인터페이스가 있으므로, 이 두 가지를 INSIDE로 지정하고, default gateway를 설정한다
  • centos2에서는 인터넷 접속이 되지만, centos1에서는 인터넷 접속이 안된다. 이는 위에서 우리가 172.16.2.0만 list 1에 넣어서 NAT 했기 때문이다
  • 만약 centos2에서도 인터넷 접속이 안되면, GNS3에서 이더넷과 라우터 연결 부분을 삭제하고 다시 연결해보자
  • 현재 이 구조를 구현하였다

4. 외부에서의 접근 제어 - 정적 PAT

  • 웹 서버는 요청에 대한 응답을 하지, 요청을 먼저 보내지 않는다. 따라서 외부에서 내부로 접속하게 정적 PAT를 해줘야한다
  • 따라서 centos1의 port80과 공인 Ip port를 연결해줘야 한다
  • 정적 PAT를 해준다
  • 잘 접속이 된다
  • 이제 이 구조까지 구현했다. 2.0은 외부로 나가는 것을 허용했지만, 1.0은 허용하지 않았고, 2.0과 1.0은 서로 통신이 가능하며, 외부 사용자가 1.0에 Router의 80번 PORT를 통해 웹 서버에 접근이 가능하다

5. centos1에 DB server 설치

  • 현재 centos1에 DB 파일에 대해 확인해봐도 나오지 않는다. 이는 설치가 아직 안되었기 때문이다. 이번에는 centos1에 DB를 설치해보자
  • centos1에 DB를 설치하고 싶지만, 현재 인터넷 연결이 안된다. 이 centos1에 인터넷이 되게 list 1에 추가해준다
  • centos1에 mariadb-server를 설치해준다
  • centos2에 mariadb client를 설치해준다
  • centos1에서 mariadb-server를 실행해준다
  • 잘 동작한다
  • 보안 설정을 해준다
  • 새 비밀번호만 설정해주고, 나머지는 Y로 넘어가자
  • 접속해주자. 지운 부분은 위에서 설정한 비밀번호다
  • TABLE을 확인하고, 새 TABLE을 생성한다

    DB 제약조건과 NOSQL

    1. PK : 유일한 값으로, PK로 DATA를 구분할 수 있어야한다. 보통 AUTO_INCREMANT로 자동으로 값을 늘려주며 PK값에 저장되게 한다
    2. UNIQUE : 유일한 값을 나타내는 Attribute의 옵션이다
    • 유의미한 Data값을 도출해낼려면 다수의 Table을 Key를 통해서 관계를 형성해야한다. 이를 RDBMS라고 한다. 허나, 이러한 RDBMS의 단점은 새 TABLE을 만드는데 어려움이 있어서, 확장이 쉽지 않다는 것이다
    • NOSQL은 샤드라는 단위로 스토리지를 관리하며 RDBMS에 비해 확장에 용이하다. 저렴한 스토리지 여러가지를 연결하여 대용량 저장소를 구축하고 운용하는데 어려움이 없다. NOSQL은 그래프, 미디어와 같은 비정형데이터에 대한 저장이 가능하여 입출력이 잦고, 위와 같은 데이터를 관리하기에 유용하여 최근 FRONT쪽에서 많이 사용한다. 하지만 여전히 RDBMS에 대한 사용량은 높은 편이다

6. DB 원격 접속을 위한 권한 부여

  • 현재 centos2에서 원격 접속이 안된다. 이는 local에서만 접속 가능하게 설정했기 때문이다. 원격 접속이 되도록 설정해주자
  • localhost에서 user1이 testdb에 접속할때 모든 권한을 허가해주게 설정하며, pw는 user1이라고 설정한다
  • 허나 localhost는 local이므로 이를 '%'로 설정한다. 이는 *과 같은 의미로 어디서든 접속하든 허용한다는 뜻이다
  • flush prevlieges는 추가, 삭제, 권한 변경 등을 수행하였을 때 이 변경 사항을 반영해준다
  • centos2에서 DB server에 잘 접속된다

7. 외부 사용자가 DBMS 접속 가능하게 하기

  • 외부 사용자가 DBMS에 접속할 수 있게 해보자
  • MYSQL/MARIADB는 TCP 3306 PORT를 사용한다
  • 정적 PAT를 통해 3306 PORT를 연결해준다
  • MARIADB Client에서 잘 접속된다
  • 허나, 외부에서 이렇게 DBMS에 직접 접속하는 것은 매우 위험하다
profile
멋진 엔지니어가 될 때까지
post-custom-banner

0개의 댓글