본문 바로가기
🚀 IT/✏️TIL

리눅스 라우팅 설정 방법 - 임시 적용 vs 영구 적용

by higyeong 2025. 4. 4.

리눅스

 

리눅스 서버를 운영할 때 네트워크 패킷이 어떤 경로를 통해 전달될지 결정하는 과정이 필요하다. 이를 **라우팅(Routing)**이라고 하며, 올바르게 설정해야 네트워크가 정상적으로 동작.

 

💡 라우팅을 설정하는 주요 이유
✅ 특정 네트워크 트래픽을 원하는 경로로 전달하기 위해
✅ 다중 네트워크 인터페이스(eth0, eth1 등)를 사용하는 서버에서 네트워크를 분배하기 위해
✅ VPN, 프록시 등을 사용할 때 적절한 gateway를 지정하기 위해


1. 임시 라우팅 설정 (재부팅 시 초기화됨)

특정 IP 주소나 네트워크 대역에 대한 임시 라우팅을 설정할 수 있습니다.
이 방법은 서버를 재부팅하면 적용이 사라집니다.

🔹 특정 IP의 네트워크 요청을 특정 장치로 라우팅

route add -net [IP] netmask [넷마스크] dev [장치명]
 

✅ 예제: 특정 IP에서 들어오는 네트워크 요청을 eth0 인터페이스로 전달

route add -net 111.222.33.44 netmask 255.255.255.255 dev eth0
 

 

✅ 예제: 특정 네트워크 대역(111.222.34.0/24)의 요청을 eth0로 전달

route add -net 111.222.34.0 netmask 255.255.255.0 dev eth0

 

 

🔎 설정 확인

route -n# 라우팅 테이블 출력
route | grep eth0 # eth0 관련 라우팅만 필터링
 

2. 영구적인 라우팅 설정 (재부팅 후에도 유지됨)

임시 설정은 서버 재부팅 시 초기화되므로, 영구적으로 적용하려면 설정 파일을 수정해야 합니다.

📌 방법 1: 네트워크 스크립트(route-장치명) 수정 (RedHat 계열, CentOS 등)

🔹 [네트워크 재시작 필요]

vi /etc/sysconfig/network-scripts/route-eth0
ADDRESS=111.222.34.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
 

 

적용 방법

service network restart # 네트워크 재시작

 

 

 

 

🔹 [네트워크 재시작 없이 즉시 적용]

vi /etc/sysconfig/network-scripts/route-eth0
route add -net 111.222.34.0 netmask 255.255.255.0 dev eth0
 

적용 방법

source /etc/sysconfig/network-scripts/route-eth0
 

📌 방법 2: /etc/rc.local 수정 (부팅 시 자동 적용)

📍 서버 부팅 시 자동으로 라우팅이 설정되도록 /etc/rc.local에 추가할 수도 있습니다

vi /etc/rc.local
 
route add -net 111.222.34.0 netmask 255.255.255.0 dev eth0

 

 

✅ 적용 후 rc.local 실행 권한 추가

chmod +x /etc/rc.local
 

📌 방법 3: ip route 명령어 사용 (최신 환경 - Ubuntu, CentOS 7 이상)

📍 기존 route 명령어는 최신 리눅스에서는 ip route로 대체되고 있습니다.

🔹 특정 네트워크 대역을 특정 게이트웨이로 전달

ip route add 111.222.34.0/24 via 192.168.1.1 dev eth0
 

 

적용 확인

ip route show
 

 

🔹 영구 적용 (Ubuntu 기준, /etc/netplan/ 수정)

📍 최신 Ubuntu 버전에서는 netplan을 사용해 영구적으로 적용 가능

vi /etc/netplan/50-cloud-init.yaml

 

network:
      ethernets:
          eth0:
              dhcp4:no
              addresses:
                    -192.168.1.100/24
              routes:
                    -to:111.222.34.0/24
                     via:192.168.1.1
 

 

✅ 적용 방법

netplan apply
 

 


3. 라우팅 설정 확인 및 문제 해결

🔎 라우팅 테이블 확인 (경로 확인 가능)

netstat -rn # 네트워크 경로 및 게이트웨이 확인 (구버전) ip route show # 최신 환경에서 라우팅 테이블 확인
 

🔎 특정 IP에 대한 경로 확인

traceroute 111.222.34.1 # 네트워크 경로 추적
또는 
ping 111.222.34.1 # 통신 되는지 확인

 

 

🛠 라우팅 문제 발생 시 체크할 항목

  • netstat -rn 또는 ip route show로 경로 확인
  • ping을 이용해 네트워크 연결 확인
  • iptables(방화벽) 설정이 라우팅을 막고 있는지 확인
  • sysctl net.ipv4.ip_forward=1이 활성화되었는지 확인 (라우팅 활성화)

📌 결론: 어떤 방법을 써야 할까?

✔️ 임시 적용: 재부팅 시 초기화되므로, 테스트용으로 사용
✔️ 영구 적용 (route-eth0 파일 수정): RedHat 계열 서버에 적합

cat /etc/redhat-release # Redhat 버전 정보 알 수 있음
CentOS Linux release 7.9.2009 (Core)


✔️ 부팅 시 자동 적용 (/etc/rc.local 수정): 모든 리눅스 배포판에서 사용 가능
✔️ 최신 리눅스(ip route 또는 netplan 활용): CentOS 7 이상, Ubuntu 최신 버전 추천

✔️ 실무에서 가장 많이 사용한 방법 : route add -host [destination ip] gw [사설 ip] 방법으로 netstat -rn 라우팅 테이블에 추가 해주기  + vi /etc/rc.local에 설정 추가

ex)
route add -host 111.222.34.56 gw 172.0.0.1 # 보통 이 설정까지 해줌

vi /etc/rc.local # 조심히 건들어야 하는 설정 파일. 여기까진 잘 안 하기도 함.

 

라우팅을 올바르게 설정하면?

  • 네트워크 트래픽을 효율적으로 관리할 수 있음
  • 서버 간 통신을 최적화할 수 있음
  • VPN, 방화벽 등과 연계하여 네트워크를 안정적으로 운영 가능

 


 

나도 챗지피티 참고해서 더 찾아보고 공부하여 작성한 글. it는 공부에 끝이 없는 것 같다 :-(

더 많이 알아보고 수정도 하고 업그레이드 종종 해줘야지 !