전공영역 공부 기록

proxmox 네트워크 설정 과정

악분 2021. 11. 17. 07:18
반응형

https://malwareanalysis.tistory.com/190에서 언급한것처럼 proxmox안에 쿠버네티스를 구성했었는데요! 이번 글에서는 어떻게 구성했는지 그 과정을 조금 더 살펴보려고 합니다.

 

네트워크 카드(NIC)

proxmox는 제 컴퓨터의 네트워크 카드(NIC)를 가지고 있습니다. 이 NIC를 물리 인터페이스라고합니다.

물리 인터페이스에는 랜선으로 라우터에 연결되어 있습니다.

그림1 NIC

 

proxmox 설정은 어떻게 되어 있을까요? /etc/network/interface에 네트워크의 설정이 있습니다. 네트워크 카드는 eno1로 설정되어 있습니다. 

auto lo
iface lo inet loopback

iface eno1 inet manual

 

가상 브릿지

proxmox는 가상 브릿지를 이용해서 가상 네트워크를 만들 수 있습니다. 그리고 NIC에 연결하여 외부와 통신하게 할 수 있습니다.

그림2 가상 브릿지

 

proxmox에서는 어떻게 설정(/etc/network/interface)되어 있을까요? 가상 브릿지는 vm으로 시작합니다. 아래 vmbr0이 가상 브릿지입니다. 가상 브릿지는 NIC에 연결되어 외부와 통신할 수 있습니다. IP(addresses)는 라우터에서 할당받은 IP가 설정됩니다.

proxmox를 설치하면 eno1과 vmbr0은 기본으로 설정되어 있습니다.

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.84/24
        gateway 192.168.0.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

 

 

사설 가상 브릿지

사설 가상 브릿지는 사설 IP대역 네트워크를 생성하고 외부와 통신이 안됩니다. 오직 proxmox에 제어하는 네트워크만 통신이 가능합니다.

 

아래 예제에서는 10.10.20.0/24영역으로 사설 네트워크를 설정했습니다. 그러므로 bootstrap이름을 갖는 PC는 10.10.20.1 ~ 10.10.20.254범위의 IP를 갖습니다. controlplane1, worker1~3 PC도 마찬가지로 10.10.20.1 ~ 10.10.20.254범위의 IP를 갖습니다.

bootstrap, controlplane1, worker1~3 PC는 10.10.20.0/24대역의 IP와 vmbr0 가상 브릿지와 통신이 가능합니다. 하지만, 외부와 통신이 불가능합니다. 

그림3 사설 가상 브릿지

 

proxmox설정(/etc/network/interface)에서는 vmbr1이 사설 가상 브릿지입니다. vmbr1는 vmbr0과 다르게 NIC와 연결이 안되어 있습니다. 그러므로 bridge-ports가 none입니다.

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.84/24
        gateway 192.168.0.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 10.10.20.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

 

 

NAT

vmbr1에서는 쿠버네티스 클러스터 노드들이 있습니다. 그러므로 쿠버네티스 설치를 위해 외부와 통신이 되야되는데요. 외부와 통신을 하기 위해서 NAT설정을 했습니다.

 

외부에서 vmb1로 직접 통신하지 못하지만, vmbr1이 먼저 외부에 통신을 요청하면 통신이 됩니다. 예를 들어서 구글서버에서 ping 192.168.0.84를 하면 vmbr1에 있는 PC를 못찾아 통신이 안됩니다.. 반대로 vmbr1에 있는 PC가 ping google.com을 하면 구글서버와 통신할 수 있습니다.

그림4 NAT

 

proxmox설정(/etc/network/interface)에서는 iptables MASQUERADE설정을 사용하여 NAT를 설정하였습니다. vmbr1이 외부와 통신할 때는 vmbr0 가상 브릿지를 사용하여 외부와 통신합니다.

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.84/24
        gateway 192.168.0.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1
iface vmbr1 inet static
        address 10.10.20.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.20.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.20.0/24' -o vmbr0 -j MASQUERADE
반응형