과제

주어진 토폴로지를 유지한 채, Ubuntu Server를 기반으로 본인만의 통신 서비스 또는 애플리케이션을 구성해보기
모든 VM은 Ubuntu Server 기반으로 구성할 것을 권장함.
정해진 기준 없이,자유롭게 창의적인 아이디어를 실현.
수업에서 배운 명령어, 서비스 뿐만 아니라 새로운 패키지, 오픈소스 도구를 자유롭게 설치하여 사용해도 좋음.
네트워크 구성

사진과 같이 내부 네트워크를 생성하고, IP를 할당한다.
VM 생성

토폴로지를 구성하기 위해, VM의 스냅샷을 찍은 후 복제를 진행해준다.
복제할 때 주의할 점은, MAC 주소 정책을 “모든 네트워크 어댑터의 새 MAC 주소 생성” 으로 변경해줘야 한다.

라우터 역할을 할 “Ubuntu1” VM에는 4개의 인터페이스를 모두 활성화 하고, net1, 2, 3, 4를 각각 연결해준다.

다른 VM들은 인터페이스를 하나만 활성화 하고, 각각에 맞는 네트워크와 연결시킨다.
IP주소 할당

이후 모든 VM들을 부팅시키면, 인터페이스는 생성이 되어있으나, IP주소가 할당되어있지 않다.

/etc/netplan 디렉터리에 있는 yaml 파일을 다음과 같이 수정한다.

이후 sudo netplan apply를 입력하면, yaml에 입력한 config가 적용된다.

라우터 역할을 할 Ubuntu1 Vm은 인터페이스가 여러개 이므로, 위와 같이 설정한다.

그러면 말단 VM과 라우터 VM간의 Ping 통신이 되는것을 확인할 수 있다.
라우팅
현재 상태에서는, 말단 VM과 라우터 VM간의 통신밖에 작동하지 않는다. (말단 VM - 말단VM 통신 불가능)

먼저 라우팅 설정을 하기 전에, 각 VM들의 Netplan에서 Gateway 주소를 설정해주어야 한다.
이제 라우터 VM에서 ip 포워딩을 활성화 해줘야한다.

라우터 VM에서 /etc/sysctl.conf 파일에 net.ipv4.ip_forward=1 의 주석을 해제한다.

이후 sudo sysctl -p 로 변경한 설정을 적용한다.

그러면 모든 VM간 Ping통신이 가능해진다.
서비스 올리기
서비스는 파이썬3로 간이 웹서버를 올려보기로 했다.

asdf VM에서 index.html 파일을 생성하고, 간단한 내용을 입력한다.

이후 python3 -m http.server 8080 명령어로 8080포트에서 웹서버를 시작한다.
python3는 ubuntu에 기본으로 설치되어있어서, 따로 설치가 필요없다.

이제 다른 VM에서도 웹서버에 접속이 가능하다!