내, 외부망 통신 서버 구축
포스트
취소

내, 외부망 통신 서버 구축

개요

학교 서버 컴퓨터가 사용하고 있는 L2 스위치 허브가 저렴한 제품을 사용하고 있기 때문에 최대 속도가 100mbps 밖에 나오지 않는 상황이였다. 그렇다 보니, k8s를 이용해서 컴퓨터를 클러스터링 하고, 공유 폴더를 NFS 활용하여 다른 Node가 같이 동시에 동작하더라도 NFS의 공유 폴더를 통하여 데이터의 통일성, 무결성을 유지하였다. 하지만 NFS는 네트워크 드라이브 이기 때문에 절대적인 네트워크 속도가 중요했다. 그래서 네트워크 속도를 올리기 위해선 스위치 허브를 교체하거나, 새로운 인터넷 망을 구축해야 했다.

제품 선택

처음에는 스위치 허브를 구매해서 10gbps나, 1gbps를 이용하려고 하였지만, 네트워크 드라이브인 NFS나 iSCSI의 경우는 사설망 만들어주는 NAT 프로토콜과 IP 할당 프로토콜인 DHCP가 있는 제품을 이용해야 했다. 그래서 필연적으로 NAT와 DHCP를 지원하는 L3 스위치 허브를 살것인가, 공유기를 구매할 것인가? 로 나눠지게 되었고 비교적 저렴한 공유기를 구매하였다.

망 분리

공유기를 구매 하면서 100mbps의 속도를 가진 스위치 허브와, 1gbps 속도를 가진 공유기가 있었다. 그리고 우연찮게 k8s로 묶인 모든 Node가 랜 포트가 2개가 있었기 때문에 외부망은 100mbps로 하고, 내부망 끼리는 공유기를 이용해서 연결 하였다. 망분리된 사진은 아래와 같다.

사진

네트워크 설정

네트워크 설정은 외부망과 내부망 연결을 동시에 해야하는 경우에는 서브넷 마스크와 게이트웨이를 적절히 사용해야 한다. 우분투의 경우에는 IP 주소와 서브넷 마스크를 함께 적는 CIDR 형식으로 작성 해야한다. CIDR은 아이피주소/서브넷마스크 형식으로 작성한다. 그래서 eno1은 외부망, enp4s0f2의 경우는 내부망으로 연결을 하였다. 외, 내부망분리를 할 때는 외부망은 게이트웨이 입력 함으로써, 서브넷 마스크외의 데이터는 게이트웨이로 데이터가 보내지도록 만들고, 내부망은 외부망과 연결이 되어 있지 않으므로, 게이트웨이를 입력하지 않고, CIDR형식으로 아이피와 서브넷 마스크를 설정 하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# This is the network config written by 'subiquity'
network:
  ethernets:
    eno1:
      addresses:
      - XXX.XXX.XXX.XXX/24
      gateway4: 113.198.230.254
      nameservers:
        addresses:
        - Y.Y.Y.Y
        - Z.Z.Z.Z
        search: []
    enp4s0f2:
      addresses:
      - 192.168.0.10/24
      nameservers:
        addresses: []
        search: []
  version: 2

우분투에서 네트워크 설정은 netplan을 통해서 설정을 하였고, 해당 yml은 netplan에 적용한 코드이다.

사진

서버 아이피를 할당한 예시와 시놀로지 나스에 적용한 결과물이다.

사진

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Kubernetes에 NFS로 데이터 공유 시스템 구성

iOS 어플리케이션 외주 개발 중 기술 및 내부 정리