여러분은 가만히 계세요 제가 모두 고장낼게요

IT 지식, PC 모바일 문제 해결 그리고 종종 애니 게임 일상생활 근황을 종종 올리고 있어요!

냐.한국 자세히보기

카테고리 없음

라우팅 테이블 수동 설정하기

Kamilake 2023. 9. 17. 22:23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

이전 글에서 10기가비트 이더넷을 다음과 같이 구성했습니다.

그리고 이제는 소프트웨어로 IP를 설정하고 서로간의 통신을 할 수 있게 해줘야 합니다.

라우터 또는 게이트웨이가 있다면 이 작업은 자동으로 수행되겠지만 10기가비트 라우터는 적어도 50만원은 줘야 살 수 있을 뿐더러 추가적인 공간과 전력을 소모하며 속도마저 저하시키게 되기에 호스트와 호스트를 직결해서 사용하기로 결심했어요.

10기가비트 네트워크를 구성하는 많은 분들이 그렇게 작업하시더라구요

고정 IP 설정

가장 먼저 수동으로 각 장비의 IP를 설정해야 합니다.

IP는 아무거나 설정해도 상관없어요. 흔히 사설 IP로 불리는 대역(10, 172 또는 192.168로 시작하는 IP 등)으로 설정하면 됩니다. 저는 10.0.0.X으로 설정하도록 할게요.

먼저, 서버컴입니다.

Ubuntu

Ubuntu desktop이 설치되어 있기에 GUI로 편하게 작업할 수 있습니다.

설정 ->네트워크 -> ⚙️ -> IPv4 -> 수동으로 이동해 원하는 IP를 입력하세요.

'주소'에는 지금 설정하는 PC가 가질 IP가 들어가고, 네트마스크에는 사용할 대역을 적어주시면 됩니다.
저는 10.0.0.X를 사용하기 위해 255.255.255.0이라고 적었어요.

그리고 게이트웨이에는 네트워크 트래픽을 보낼 PC를 적어주세요. 저는 PC를 연결할 것이기 때문에 본문 맨 위에 보이는 그림에 따라 PC의 IP인 10.0.0.3을 사용했습니다.

게이트웨이는 비워두세요. 우리는 라우터가 없고 연결된 장차거 단 하나뿐이라 신호가 어디로 갈 지 물어볼 곳이 없고, 필요하지도 않습니다. 마찬가지로 DNS도 필요없어요.

위 사진에서 게이트웨이를 입력하지 마세요.

NAS(10.0.0.2)로 가게 될 포트 역시 그렇게 설정해주세요. 네임서버는 비워두세요.

라우터가 없어서 라우팅 테이블도 수동으로 설정해야 합니다. 아래로 스크롤해 라우팅 테이블을 설정해주세요.

하지만 위 사진에서는 게이트웨이를 입력해야 합니다.

10.0.0.2 부터 10.0.0.2까지, (연결된 장치가 나스밖에 없죠.)의 통신은 10.0.0.2에 있는 게이트웨이로 보내라는 뜻입니다.

그리고 "이 연결을 이 네트웨크의 리소스에 대해서만 사용" 에 체크하세요. 그렇게 하면 다른 통신은 다른 포트에 있는 게이트웨이로 알아서 잘 나가게 될 거예요. 오로지 10.0.0.2에 관한 통신만 저 포트에 있는 저 게이트웨이로 보내게 됩니다. CLI 유저라면 "NetworkManager never-default"로 구글링하시면 됩니다.

Windows

Windows에서는 설정->네트워크 및 인터넷->이더넷으로 이동해 고정 IP를 설정할 수 있습니다.

IP 설정 편집 버튼을 눌러 위처럼 설정하세요.

Windows에서는 라우팅 테이블을 설정하기 위한 UI가 없어서 명령줄로 작업해야 합니다.

route -p ADD 10.0.0.2 MASK 255.255.255.255 10.0.0.1
route -p ADD 10.0.0.1 MASK 255.255.255.255 10.0.0.1

각각 서버와 나스를 서버컴에게 보내도록 구성하면 됩니다. 관리자 권한으로 실행해주세요.

Synology DSM

시놀로지 나스에서도 IP와 라우팅 테이블을 설정해줍시다.

설정->네트워크->네트워크 인터페이스->[원하는 인터페이스]->편집->IPv4->수동 구성 이용
으로 가셔서 변경하시면 됩니다.

서버와 메인컴 IP로 가는 트래픽을 서버컴으로 보내도록 구성하면 됩니다.

위처럼 3개 장비에 IP를 설정했다면

위처럼 모든 서버에 Ping 요청을 날렸을 때 정상적으로 돌아올 수 있습니다.

하지만 메인컴(.3)이 NAS(.2)에 Ping을 요청하기 위해서는 서버컴(.1)을 거쳐 지나가야 하는데 서로 직결되어 있지 않기에 통신할 방법이 없습니다.

서버입장에서는 .2로 가야 할 요청이 자신에게 왔으니 그냥 버렸겠죠..

IP 포워딩 설정

IP 포워딩 설정을 변경하여 다른 게이트웨이의 트래픽을 원하는 포트로 전송할 수 있도록 구성해주어야 합니다.

먼저 중간에 끼어있는 서버컴(여기서는 Ubuntu)의 IP 포워딩을 켜세요.

sudo sysctl -w net.ipv4.ip_forward=1

그 다음 메인컴에서 오는 트래픽을 나스로, 나스에서 오는 트래픽을 메인컴으로 보낼 수 있도록 구성해주면 됩니다.

sudo iptables -A FORWARD -i 메인컴 -o 나스 -j ACCEPT
sudo iptables -A FORWARD -i 나스 -o 메인컴 -j ACCEPT

저의 경우에는 메인컴은 enps50f0, 나스는 enp5s0f1에 연결되어 있기에

sudo iptables -A FORWARD -i enp5s0f0 -o enp5s0f1 -j ACCEPT
sudo iptables -A FORWARD -i enp5s0f1 -o enp5s0f0 -j ACCEPT

위와 같이 구성했습니다.

그리고 메인컴과 NAS에 돌아오는 패킷이 어디로 가야 할지 주소를 알려주기 위해 NAT을 설정하세요.
NAT을 설정하면 사설 아이피를 부여하듯 연결된 장치에게 패킷이 돌아와야 할 위치를 알려주게 됩니다.

라우팅 테이블을 수동으로 설정했기 때문에 NAT 설정은 필수는 아니지만 혹시라도 비호환 애플리케이션이 있을까봐 설정했어요.

sudo iptables -t nat -A POSTROUTING -o enp5s0f0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o enp5s0f1 -j MASQUERADE

 

모든 설정이 완료되었습니다. 지금까지 진행한 설정은 다음과 같습니다:

서버컴 IP : 10.0.0.1
서버컴 라우트: 10.0.0.2->10.0.0.2; 10.0.0.3->10.0.0.3; 
서버컴 포워딩: enp5s0f0->enp5s0f1; enp5s0f1->enp5s0f0

나스 IP: 10.0.0.2
나스 라우트: 10.0.0.1->10.0.0.1; 10.0.0.3->10.0.0.1; 

메인컴 IP: 10.0.0.3
메인컴 라우트: 10.0.0.1->10.0.0.1; 10.0.0.2->10.0.0.1;