0부터 시작하는 가상머신과 네트워크 공부 - 가상머신과 VLAN
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 설치
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에 직접 접속하는 것은 매우 위험하다