리눅스 서버를 운영할 때 네트워크 패킷이 어떤 경로를 통해 전달될지 결정하는 과정이 필요하다. 이를 **라우팅(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는 공부에 끝이 없는 것 같다 :-(
더 많이 알아보고 수정도 하고 업그레이드 종종 해줘야지 !
'🚀 IT > ✏️TIL' 카테고리의 다른 글
💡 하나의 서버에 여러 프로세스를 실행할 때 발생할 수 있는 문제점 (2) | 2025.04.21 |
---|---|
📌 서버에서 tar 파일 권한 오류? chmod 조건과 소유자 개념 정리 (0) | 2025.04.18 |
🛠️인증서 설치부터 만료일 확인, Apache 재기동까지 한눈에! (0) | 2025.04.17 |
🛠️vi 단축키 완전 정복: 자주 쓰는 명령어 한눈에 보기 (0) | 2025.04.16 |
✅ "kubectl 필수 명령어 12가지 - Kubernetes 실무에서 바로 쓰는 활용법" (0) | 2025.04.02 |