홈 네트워크 구성 - proxmox

홈 네트워크 구성 - proxmox
대략적인 네트워크 구성도

전공을 하면서 내 서버를 꼭 가져보고 싶다는 생각을 했었다. 그냥 vps 대여해서 쓰면 된다고는 하지만.. 두 눈으로 직접 보고 두 손으로 만지면서 놀고 싶었다. 공돌이의 레고 놀이 같은 느낌이랄까..

몇 개월 간 뚝딱거리고 용돈 좀 투자하고 난 후에야 어느 정도 틀을 갖춰두었다.

구축하면서 느끼는건데 물리 장비 만지고 방화벽 만지고 스위치 만지고 네트워크 뚝딱거리면서 해결해가는데 코딩보다 더 재미있는 것 같다...

각설하고 서버 별로 기술해보겠다.


홈 네트워크 - proxmox 서버

이 서버는 2024년 유럽 여행 가기 전에 급하게 구축했다. 왜냐하면 내 A7R5가 뽑아내는 고용량의 무압축 raw파일을 타지에서 안전하게 저장하려면 외부 저장장치 말고도 네트워크를 통한 백업이 필수라고 생각했기 때문이다. 솔직히 외장 ssd를 가져가도 잃어버리면 끝이기 때문이다.

예전부터 NAS에 대한 로망은 있었으나 원하는 스펙의 Synology 모델을 구매하기에는 예산도 빠듯했고, 예산이 있어도 그만큼의 돈을 쓰기도 싫었다. atom cpu 들어가는 모델들에게 몇 십만원 쓰는 건 좀.. (솔직히 최소 n100은 넣어줘야 한다고 생각함)

실사용자분들은 소프트웨어값이라고 생각하고 쓰시는 분들이 많은 것 같았다. xpenology를 구축한 지금 생각해보니 소프트웨어값+안정화값이라고 생각하면 그나마 구매할 만 한 것 같다.

추가적으로
링크를 타고 들어가보면 위대하신 한 개발자님께서 proxmox에서 바로 띄울수 있도록 스크립트 형식으로 상당히 많은 서비스들을 게시해놓으셨다. 이거 정말 편리하다.. 레딧 보다가 안 내용이지만 얼마 전 돌아가셨다는 글을 봤다.. R.I.P.

우선 xpenology 나 truenas , unraid 등을 쓸 생각으로 3.5인치 하드디스크가 최소 4개 들어가는 pc 케이스를 찾았고, 내 용도에 딱 맞는 미니 pc를 찾을 수 있었다.

바로 aooster 사의 wtr pro n100이다. 당근에서 적당한 12tb 하드디스크를 샀고, ddr4 soddim램이 없었기에 32gb를 주문해서 장착해주었다. 또한 NAS가 n100을 100% 다 활용하지 못할 것 같아서 proxmox 위에서 구동하기로 결정했고, 큰 리소스가 필요없는 자잘한 것들도 이 서버에서 같이 운영하기로 결정했다.


현재 내 proxmox 서버는 이렇게 구성되어있다.
쓰지 않는 컨테이너 및 vm은 종료해놓았기에 실질적으로 24/7 돌아가는 프로그램은 시놀로지와 gitea, 그리고 백업을 위한 PBS라고 봐도 무방하다.

집 네트워크도 대격변이 있었는데, 이것도 나중에 서술해보도록 하겠다.


외부망에서 proxmox에 올라가있는 NAS에 접근하려면 vultr에 올라가있는 npm서버를 타고 authentik 에서 사용자 인증을 받은 후에 , Tailscale을 통해 NAS 까지 연결된 wireguard를 타고 최종적으로 접속하게 된다. NAS에서도 관리자 로그인 시 2차 인증을 통해 혹시 모를 사고를 대비하고 있다.

사실 외부망에 공개를 안한다면 내부망에서 적당히 설정하고 써도 되지만, NAS를 써보고 나니 외부망에서 접속 가능하면 더욱 매력적이겠다는 생각이 떠나지가 않았다.

그렇다고 매번 tailscale을 켜서 접속하는 것도 불편하고, 모든 기기에 tailscale을 설치할 수도 없고, 내 소유의 기기가 아닌 경우에도 내 NAS에 접근해야 하는 상황이 자주 발생했다. 그래서 최적의 보안을 유지하면서 너무 불편하지 않게끔 세팅한 상태다.


처음에는 홈서버 대역을 다른 서브넷으로 운영하려고 했었다.

홈 네트워크가 192.168.50 대역인데, 192.168.0 대역에서 운영하고, inter vlan 라우팅을 통해서 연결은 하되 필터링을 하도록 하려고 했었는데, 그 당시에는 홈 네트워크에 유일한 라우터가 asus 라우터였고, 해당 기능을 지원하지 않는 상태였다.

proxmox에서 네트워크 테스트하면서 시간을 훌훌 날리다가 보니 그냥 같은 대역에서 운영하는걸로 결정하고, 맨 앞에 ngfw같은 시스템을 구축하여 보안을 강화하기로 하였다. 베어메탈 opnsense 방화벽 구축기도 나중에 남길 것이다.


Xpenology

xpenology 구축 시에는 의외로 수월했다. svrforum에서 활동하시는 분들이 관련 설명도 잘 놓으셨고, 부트로더들도 사용하기 굉장히 편리했다.

위처럼 synology photo 인식도 잘 되고.. 쓰다 보니 시놀로지는 소프트웨어를 그 돈 주고 산다고 생각해야 한다는 혹자의 말이 100번 이해가 간다.. 정말 편리하다.

적다보니 생각난 내용인데, cloudflare의 free 요금제에서 제공하는 cloudflare proxy에서의 파일 전송 청크의 최대 크기가 100MB 여서 cloudflare proxy를 타고 오게 설정해놓으면 대용량 파일 transfer가 불가능하다... 그래서 pro 요금제로 올리려고 봤더니 500MB 이상으로 늘리면 Enterprise 요금제를 구독해야했다;;;

그래서 클라우드 플레어는 앞에 proxy 서버를 두고 최대한의 보안 적용을 해놓은 상태로 쓰는 중이다...

그리고 vultr의 트래픽 정책이 아주 착하다. 정확하지는 않지만 클라우드 플레어와 주고 받는 트래픽은 무료이고, inbound traffic은 계산하지 않고 outbound traffic만 계산한다. 속도도 한국 리전 사용하니 빠릿하고, 가격도 많이 비싸지 않고, 가용성도 좋고.. 원래는 cafe24나 가비아 사용중이었는데, 조만간 cafe24는 인스턴스 삭제하고 탈퇴할 예정이다. 메리트가 너무 떨어지는 것 같다. 이 서버를 빌릴 시절의 나는 완전 초보였다.. 군대에서 만난 형 덕분에 공부하면서 리액트도 써보고 vps도 빌려보고 개발 파이프라인 구성 요소들과 많이 친해졌던 것 같다. 항상 감사하게 생각하고 있다...

가비아는 지금 서비스가 돌아가고 있기도 하고 서버 이전을 위한 백업이 아직 완벽하게 이루어지지 않아서 조금 더 유지 할 생각이다.


Gitea

개인 git 서버 두면 상당히 편리할 것 같다는 생각을 했었기에, 서버 구축 초기부터 운영했었다. github와 미러링 설정을 해두면 commit이 있을 때마다 github와 자동으로 연동도 되고, 비공개 레포도 마음껏 운영 가능하고, cloudflare proxy 태워놓아도 레이턴시에 민감한 서버가 아니니 보안 적용도 가능하고...
사실 그냥 github 써도 되지만 IDE에서 프로젝트에 버전 관리 시스템을 연동할 때, github.com이 아닌, 내 도메인을 쓸 수 있다는게 참 멋지지 않나?! 난 이게 멋지던데..

암튼 이거 진짜 편함


끝으로

사실 proxmox는 초기 세팅 이후 많이 건드리지 않고 서비스만 올렸다가 내렸다가 하고 있다. 건드릴 것도 없고 괜히 멀쩡한 놈 건드렸다가 다 박살 나면...

그래서 적을 내용이 많지가 않다. 그리고 오래 되어서 세부적인 내용들도 기억이 나지 않는다.

그나마 계속 여러가지 시도중인 vultr 는 관련해서 적을 것들이 많을 것 같다.

이 글은 생각나는대로 틈틈히 추가하는 걸로 해야겠다.

그럼 다음 vultr편을 열심히 적어보도록 하겠다.. 👋👋