구현

세미 프로젝트- 라우터

secudb123 2025. 4. 9. 11:20

라우터란

데이터의 이동 경로를 지정해주는 장치이다. 라우터 간 통신 프로토콜(Routing Protocol)을 통해 목적지까지 패킷의 전달 루트를 지정한다.

 

해당 프로젝트에서 라우터의 역할

외부에 서비스를 제공하는 192.168.12.0/24 네트워크와 회사 내부망인 192.168.13.0/24 네트워크가 인터넷 192.168.11.0/24과 통신할 수 있게 한다. 3개의 IP를 지정해 각각 라우팅 경로를 지정함으로서, 인터넷을 연결하고 통신 루트를 제한한다.

 

시스템 구성

라우터 환경은 다음과 같다.

  • IP
    • ens160: 192.168.11.254/24
    • ens192: 192.168.12.1/24
    • ens224: 192.168.13.1/24
  • 네트워크 영역: NAT

 

 

만일 사전에 네트워크 어댑터를 설치 하지 않았다면, 인터페이스의 추가가 불가 하다. 따라서 VM 시작 전 Edit Virtual Machine Settings 창에서 네트워크 어댑터를 추가 해줘야 한다.

테스트 용 PC 환경은 다음과 같다.

  • IP : 192.168.12(13).10 /24
  • 네트워크 영역: NAT

리눅스에서 라우터 세팅의 확인

우선 현재의 ip 정보를 확인한다.

 

ip a

 

현재의 상태를 보면, 각각의 이더넷 인터페이스는 전부 활성화되어있으나 ens 192와 ens224에 ip가 부여되지 않았음을 확인할 수 있다. 이런 상황의 경우 ip 주소를 따라서 인터페이스에 추가해 주어야 한다.

 

ip addr add 192.168.12.1/24 dev ens192
ip addr add 192.168.13.1/24 dev ens224

 

이후 다시 ip를 확인한다.

 

 

IP 정보가 정상적으로 추가되었다.

마지막으로 라우팅 정보를 확인한다.

 

ip route show

 

 

정상적으로 라우팅 정보가 입력되어있음을 확인할 수 있다. 이때 라우팅 정보가 입력되지 않았다면, 명령어를 입력함으로서 추가해야 한다.

 

ip route add 192.168.12.0/24 via 192.168.12.1 dev ens192
ip route add 192.168.13.0/24 via 192.168.13.1 dev ens224

 

 

단 이렇게 추가된 정보는 재부팅 및 NetworkManager Restart 시 사라질 수 있다. 부팅 시 라우팅 정보가 사라진다면 아래와 같은 해결을 권장한다.

 

 

 

(!) 솔루션 : 파일에 라우팅 정보를 저장

/etc/sysconfig/network-scripts/route-[인터페이스명] 에 라우팅 정보를 저장한다.

기본 이더넷 ens160이 아닌 ens192와 ens224는 ONBOOT가 NO로 되어있을 수 있는데, 그렇게 되면 재부팅 시 인터페이스가 활성화되지 않는다.

 

 

vi /etc/sysconfig/network-scripts/ifcfg-ens160

# 파일 수정

DEVICE=ens160
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.11.254
PREFIX=24
GATEWAY=192.168.11.1
DNS1=8.8.8.8
vi /etc/sysconfig/network-scripts/ifcfg-ens192

# 파일 수정

DEVICE=ens192
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.12.1
PREFIX=24

 

vi /etc/sysconfig/network-scripts/ifcfg-ens192

# 파일 수정

DEVICE=ens224
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.13.1
PREFIX=24

 

 

라우팅 기능 설정

이어 sysctl.conf 파일을 수정, 아래 문구를 추가한다. 방법은 아래의 둘 중 하나를 택하면 된다.

 

vi /etc/sysctl.conf

# 행 추가
net.ipv4.ip_forward = 1

 

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

 

마지막으로 아래 명령어를 입력 하면 세팅은 종료된다. 이후 8.8.8.8로 ping을 보내 인터넷의 연결을 확인해본다.

sysctl -p

 

 

정상적으로 ping이 전송됨으로서 라우팅 설정이 제대로 끝마쳐졌음을 알 수 있다. 남은 것은 이것이 제대로 작동 중 인지에 대한 검증이다.

 

라우터 작동 여부 검증

 

테스트 용 PC 2대에서 8.8.8.8로 보낸 ping이 정상적으로 전송되면 된다.

우선 VM과 연결된 윈도우에 라우팅 정보를 입력해야 한다. 우리가 설치한 라우터가 가상 머신이기에 해야 하는 과정이다.

윈도우에서 명령 프롬프트를 관리자 권한으로 실행해 아래와 같은 명령어를 입력한다.

 

route -p add 192.168.12.0 MASK 255.255.255.0 192.168.11.254
route -p add 192.168.13.0 MASK 255.255.255.0 192.168.11.254

 

이후 테스트 용 가상 PC를 열어 ping을 전송한다.

8.8.8.8로 보낸 ping이 라우터의 작동을 검증하는 이유는, 해당 ping의 전송 과정으로 인함이다.

해당 PC[192.168.12(13).10]로부터 시작된 ping은, 게이트웨이[192.168.12(13).1]로 이동 후, 입력된 라우팅 정보에 따라 192.168.11.254를 통해 외부 인터넷으로 이동한다. 이후 8.8.8.8에 도착하게 되는 것이다.

 

 

 

[192.168.12.10 & 192.168.13.10 PC 검증]

ping 8.8.8.8

 

두 PC로부터의 ping이 정상적으로 작동하므로, 라우터가 정상 기능하고 있다고 검증되었다.

이것으로 라우터 구현에 대한 기술을 마친다.