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 //방화벽 비활성화