VM & 운영체제/리눅스

리눅스로 라우터 만들기

knxwledge 2025. 3. 10. 14:53

개요

현재 192.168.12.12/24 IP를 쓰는 VM이 있는데, 이 VM은 인터넷 통신을 할 수 없다. 192.168.12.0/24(이하 ~12.0)가 다른 네트워크에 연결되지 않았기 때문이다. 다음 그림과 같이 8.8.8.8에 ping 질의를 했을 때 응답이 오지 않는다.

 

한편 192.168.11.0/24(이하 ~11.0) 네트워크는 인터넷 통신이 가능하다.

 

이 글에서는 ~11.0 네트워크와 ~12.0 네트워크를 연결하는 라우터를 만들어 볼 것이다. ~12.12는 이 라우터를 기본 게이트웨이로 놓아 인터넷 통신을 하면 된다.

 

~12.12 컴퓨터의 정보는 다음과 같다.

  • VMware 가상머신
  • 운영체제: Rocky Linux 8.60
  • IP: 192.168.12.12/24
  • 기본 게이트웨이: 192.168.12.1/24

만들 라우터에는 아래의 설정을 할 것이다.

  • VMware 가상머신
  • 운영체제: Rocky Linux 8.60
  • IP: 192.168.12.1/24, 192.168.11.254/24
  • 기본 게이트웨이: 192.168.11.1/24

그러면 패킷이 [ ~12.12 → ~ 12.1 → ~11.254 → ~11.1 → 인터넷 ] 순서로 이동할 수 있다.


1. 하드웨어 설정

1. 라우터로 쓸 VM을 만든다. 나는 원래 있던 VM을 복사했다. GUI 없이 최소 설치만 되어 있는 VM이다.

 

2. 'Edit virtual machine settings'에 들어간다. 네트워크 어댑터를 추가하기 위함이다. 현재는 어댑터가 1개 있는데,  ~12.1를 쓸 어댑터와 ~11.254를 쓸 어댑터가 따로 있어야 한다. 

3. 창이 뜨면 Add를 누른다.

 

4. Network Adapter를 선택하고 Finish를 누른다.

 

5. OK를 누른다.

 

6. 어댑터가 추가되었으므로 Power on this virtual machine을 클릭해 전원을 켠다.


2. IP 설정

1. VM이 켜지면 root로 로그인한 뒤 네트워크 설정을 바꾸기 위해 nmtui로 들어간다.

nmtui

 

2. Edit a connection을 선택한 뒤 엔터를 누른다.

 

3. ens160과 이름 없는 인터페이스가 뜬다. 이름 없는 인터페이스가 두 번째로 추가한 네트워크 어댑터다. 먼저 이 인터페이스 설정을 바꾸기 위해 엔터를 눌러 들어간다.

 

기본적으로 다음과 같은 설정이 되어 있다. Profile name은 없지만 ens224에 대한 설정인 것을 알 수 있다.

 

4. ens224 인터페이스의 설정을 한다. 이 인터페이스에 ~12.1 IP를 준다. 자기 자신이 게이트웨이이므로 Gateway 항목은 비워 둔다. 또한 인터넷 통신은 ~11.254 쪽에서 할 것이므로 DNS 서버도 설정하지 않는다.

 

5. ens160 설정으로 들어간다.

 

6. 다음과 같이 ens160 설정을 해 준다.

 

7. 시스템 hostname이 현재 LinuxBasic으로 되어 있는데, 이를 바꾸기 위해 Set system hostname으로 들어간다. 이 부분은 필수는 아니다.

 

8. 시스템 hostname을 Router로 바꾼다.

 

9. OK를 눌러 nmtui에서 나온다.

 

10. 바꾼 설정을 적용시키기 위해 재부팅한다.

 

11. 재부팅한 뒤 해당 VM이 인터넷 통신을 할 수 있는지 확인하기 위해 8.8.8.8에 ping을 보내본다.

 

정상적으로 ping에 대한 응답이 온다. 또한 hostname이 Router로 바뀐 것을 볼 수 있다.


3. 라우터 기능 설정

Router가 ~12.0 네트워크를 인터넷에 연결시키려면 ~12.1 인터페이스로 패킷을 받은 뒤 ~11.254로 내보낼 수 있어야 한다. 그런데 이렇게 패킷을 통과시키는 기능은 기본적으로 꺼져 있다. 또한 몇몇 보안 설정 때문에 라우팅이 정상적으로 되지 않을 수 있다. 이제 Router가 라우터로서 기능할 수 있도록 설정을 할 것이다.

 

1. Router에 root로 로그인 한 후 방화벽을 비활성화한다. 화면이 위와 다른데, IP 통신이 되는 컴퓨터이므로 PuTTy 로 SSH 접속을 했기 때문이다.

systemctl stop firewalld.service        # 방화벽을 비활성화한다
systemctl disable firewalld.service     # 재부팅 시 방화벽을 비활성화한다

 

2. selinux 설정파일을 연다.

vi /etc/selinux/config

 

3. 기본 설정으로 SELINUX=enforcing로 되어있는데, 이를 SELINUX=disabled로 바꾼다.

SELINUX=disabled

 

4. 패킷을 통과시키는 기능을 활성화하기 위해 /etc/sysctl.conf를 수정한다.

vi /etc/sysctl.conf

 

5. sysctl.conf 파일에 다음 내용을 추가한다.

net.ipv4.ip_forward = 1

 

6. 파일에 추가한 설정을 커널에 로딩한다. 이에 해당하는 명령어는 sysctl -p다.

sysctl -p

 

7. Router가 정상적으로 작동하는 것을 확인하기 위해 다시 ~12.12에서 8.8.8.8로 ping을 보낸다. 이때 ~12.12의 기본 게이트웨이가 ~12.1로 되어 있어야 한다.

 

ping에 대한 응답이 오는 것을 볼 수 있다.