반응형

서로 다른 게이트웨이를 가진 NIC 라우팅 설정 방법
1️⃣ 문제 상황 — 같은 스위치(L2)지만 게이트웨이가 다른 NIC 구성
서버에 NIC가 2개 있고 두 NIC 모두 같은 스위치에 연결되어 있지만, 각각 다른 VLAN 또는 다른 게이트웨이(GW)를 사용해야 하는 상황이 있다. 이 경우 단순 기본 라우팅만 사용하면 트래픽이 엉뚱한 GW로 나가는 문제가 발생한다.
✔ NIC1 → 192.168.10.100 (GW: 192.168.10.1)
✔ NIC2 → 172.16.20.100 (GW: 172.16.20.1)
✔ 같은 스위치에 연결되어 있어도 “게이트웨이 분리” 필요
✔ 일반 라우팅만으로는 해결 불가 → Policy Routing 필요
✔ NIC2 → 172.16.20.100 (GW: 172.16.20.1)
✔ 같은 스위치에 연결되어 있어도 “게이트웨이 분리” 필요
✔ 일반 라우팅만으로는 해결 불가 → Policy Routing 필요
2️⃣ A서버·B서버 구성 예시
📌 A 서버 NIC 정보
eth0 → 192.168.10.10
GW0 → 192.168.10.1
eth1 → 172.16.20.10
GW1 → 172.16.20.1
📌 B 서버 NIC 정보
eth0 → 192.168.10.20
eth1 → 172.16.20.20
두 서버가 서로 통신하면서도, eth0 → 192.168.10.x 경로 / eth1 → 172.16.20.x 경로로 나눠야 한다.
3️⃣ 해결 방법 — Policy Routing(ip rule) + 테이블 분리
NIC마다 별도 라우팅 테이블을 생성하고 해당 NIC의 IP에서 나가는 패킷은 그 NIC 전용 테이블을 사용하도록 지정하는 방식이다.
✔ NIC별 라우팅 테이블 생성
✔ ip rule 로 출발지 기반(Source Based Routing) 구성
✔ 동일 스위치(L2)여도 게이트웨이를 완전히 분리 가능
✔ Linux 다중 NIC 환경의 가장 표준적인 구성
✔ ip rule 로 출발지 기반(Source Based Routing) 구성
✔ 동일 스위치(L2)여도 게이트웨이를 완전히 분리 가능
✔ Linux 다중 NIC 환경의 가장 표준적인 구성
4️⃣ A 서버 설정 예시 (Nic 2개, GW 2개)
📌 1) 라우팅 테이블 이름 추가
echo "100 table_eth0" >> /etc/iproute2/rt_tables
echo "200 table_eth1" >> /etc/iproute2/rt_tables
📌 2) NIC별 라우팅 테이블 생성
# eth0 전용 라우팅
ip route add 192.168.10.0/24 dev eth0 table table_eth0
ip route add default via 192.168.10.1 dev eth0 table table_eth0
# eth1 전용 라우팅
ip route add 172.16.20.0/24 dev eth1 table table_eth1
ip route add default via 172.16.20.1 dev eth1 table table_eth1
📌 3) 출발지 기반 규칙 추가
ip rule add from 192.168.10.10/32 table table_eth0
ip rule add from 172.16.20.10/32 table table_eth1
📌 4) 캐시 삭제
ip route flush cache
✔ eth0에서 나가는 패킷 → 192.168.10.1로 고정
✔ eth1에서 나가는 패킷 → 172.16.20.1로 고정
✔ 라우팅 충돌 없음 / 게이트웨이 혼선 없음
✔ eth1에서 나가는 패킷 → 172.16.20.1로 고정
✔ 라우팅 충돌 없음 / 게이트웨이 혼선 없음
5️⃣ B 서버 설정 예시 (A 서버와 동일 원리)
B 서버는 NIC IP만 다르고 원리는 동일하다.
# 테이블 등록
echo "100 table_eth0" >> /etc/iproute2/rt_tables
echo "200 table_eth1" >> /etc/iproute2/rt_tables
# eth0 라우팅
ip route add 192.168.10.0/24 dev eth0 table table_eth0
ip route add default via 192.168.10.1 dev eth0 table table_eth0
# eth1 라우팅
ip route add 172.16.20.0/24 dev eth1 table table_eth1
ip route add default via 172.16.20.1 dev eth1 table table_eth1
# 출발지 기반 규칙
ip rule add from 192.168.10.20/32 table table_eth0
ip rule add from 172.16.20.20/32 table table_eth1
ip route flush cache
6️⃣ 왜 이렇게 해야 할까? (네트워크 구조 설명)
같은 스위치(L2)에 연결되었더라도, 서로 다른 VLAN 또는 서로 다른 라우팅 도메인을 사용할 수 있다. Linux 기본 라우팅은 “하나의 기본 게이트웨이만 허용”하기 때문에 NIC별 GW 지정이 불가능하다.
✔ 기본 라우팅 → GW 1개만 사용
✔ Policy Routing → NIC별 GW 사용 가능
✔ 대규모 IDC·금융/공공 환경에서 많이 쓰는 방식
✔ 다중 NIC 서버(Oracle RAC, NAS, DB Proxy 등)에서 필수 구성
✔ Policy Routing → NIC별 GW 사용 가능
✔ 대규모 IDC·금융/공공 환경에서 많이 쓰는 방식
✔ 다중 NIC 서버(Oracle RAC, NAS, DB Proxy 등)에서 필수 구성
7️⃣ 문제 상황별 체크포인트
- 트래픽이 엉뚱한 GW로 나가면 → ip rule 누락 여부 확인
- ping은 되는데 접속이 안 되면 → Reverse Path Filtering 확인 (`rp_filter`)
- 양방향 정책이 필요한 경우 → A↔B 모두 Policy Routing 적용
- 서버 재부팅 시 적용 → ifcfg 또는 NetworkManager에 영구 설정 필요
반응형
LIST
'지식 공유 > ETC' 카테고리의 다른 글
| XDR과 EMS 정의 및 차이 (1) | 2025.11.29 |
|---|---|
| Telnet & 포트 테스트 — TCP 연결 점검 및 대체 도구 활용 (0) | 2025.11.28 |
| DRM vs DLM — 데이터 보안·수명관리 솔루션 비교 (2) | 2025.11.27 |
| HBM · HBF 차이점, NAND 플래시와 DRAM 비교 (0) | 2025.11.23 |
| 스팸메일 주의사항 및 실제 사례 (0) | 2025.11.17 |
