23.11.10 최초 작성

NAT 네트워크)를 구축해본다VM 1와 VM 2 (네트워크 1), VM 3와 VM 4(네트워크 2)를 하나의 네트워크로 묶고 VM 5를 게이트웨이로 설정해 각 네트워크간의 통신과 인터넷과의 통신을 가능하게 한다
server1)하고 운영체제를 설치한 뒤(Ubuntu Server 20.04 LTS) 개발에 필요한 패키지를 모두 설치한다.
네트워크 1은 NatNetwork, 네트워크 2은 NatNetwork 1로 10.0.XX.0에서 호스트의 XX부분이 일치하는 호스트들끼리 통신을 가능하게 한다.
설정 → 네트워크 → 어댑터에서 NAT 네트워크를 설정이름은 각 가상머신이 속한 네트워크로 설정VM 5의 경우 어댑터 3개로 모든 NAT 네트워크에 연결/etc/netplan/00-installer-config.yaml 파일을 수정해 다음과 같은 내용을 입력한다.| VM1 | VM2 |
|---|---|
| network: ethernets: enp0s3: dhcp4:no addresses: [10.0.0.14/24] gateway4: 10.0.0.16 nameservers: addresses: [8.8.8.8] version: 2 | network: ethernets: enp0s3: dhcp4:no addresses: [10.0.0.15/24] gateway4: 10.0.0.16 nameservers: addresses: [8.8.8.8] version: 2 |
| VM3 | VM4 |
|---|---|
| network: ethernets: enp0s3: dhcp4:no addresses: [10.0.10.14/24] gateway4: 10.0.10.16 nameservers: addresses: [8.8.8.8] version: 2 | network: ethernets: enp0s3: dhcp4:no addresses: [10.0.10.15/24] gateway4: 10.0.10.16 nameservers: addresses: [8.8.8.8] version: 2 |
| VM5 |
|---|
| network: ethernets: enp0s3: dhcp4:no addresses: [10.0.20.16/24] gateway4: 10.0.20.1 nameservers: addresses: [8.8.8.8] enp0s8: dhcp4:no addresses: [10.0.0.16/24] nameservers: addresses: [8.8.8.8] enp0s9: dhcp4:no addresses: [10.0.10.16/24] nameservers: addresses: [8.8.8.8] version: 2 |
sudo netplan apply를 입력해 설정을 저장한다.VM5의 /etc/sysctl.conf파일을 수정해 패킷 포워딩을 설정한다.
net.ipv4.ip_forward=1의 주석을 제거한다.
sudo sysctl -p를 입력해 바뀐 설정을 적용한다.

이부분까지 진행하면 다른 네트워크에 속한 VM들 끼리 통신이 가능해진다.

VM5의 10.0.20.0을 통해서 인터넷 접속이 가능하지만 Network1, Network2에 속한 VM들은 불가능하다. iptables 명령어를 통해 포스트라우팅을 가능하게 해 다른 VM들에서 인터넷 접속이 가능해진다.sudo apt-get install iptables
iptables –t(테이블) nat –L //현재 지정한 테이블의 설정 출력
iptables –t(테이블) nat –A POSTROUTING –o enp0s3 –j MASQUERADE
(작업을 지정(추가) : postrouting, enp0s3에 나갈(out) 때, MASQUERADE 라는 작업(job))
iptables -P FORWARD DROP //다른 VM에서 인터넷 통신 못하도록 차단 (방화벽)
iptables -P FORWARD ACCEPT //방화벽 해제
포스트라우팅 설정





iptables를 통해 설정한 사항들은 재부팅시 사라지게 된다.ipatbles-persistent패키지를 통해 이 사항들을 저장한다.sudo apt install ipatbles-persistent
sudo sh –c “iptables-save > /etc/iptables/rules.v4”

방화벽
ufw(Uncomplicated FireWall)
sudo ufw status //방화벽 상태 확인
sudo ufw enalbe //방화벽 활성화
sudo ufw disable //방화벽 비활성화