같은 사무실 PC끼리는 잘 통신되는데, 인터넷은 라우터(게이트웨이) 주소가 틀리면 안 됩니다. 왜 내부는 되고 외부는 막힐까요? 답은 디폴트 게이트웨이, 즉 "내 네트워크에 없는 주소로 갈 때 일단 보내는 기본 출구"에 있습니다.
라우팅은 목적지를 보고 길을 고른다
PC가 패킷을 보낼 때, 먼저 목적지가 내 네트워크 안인지를 따집니다. 같은 서브넷(예: 192.168.0.0/24)이면 직접 전달하고, 밖이면 게이트웨이로 떠넘깁니다. 이 판단표가 라우팅 테이블입니다.
| 목적지 | 처리 |
|---|---|
| 같은 서브넷 | 직접 전달(스위치 통해) |
| 다른 네트워크 | 디폴트 게이트웨이로 전달 |
| 게이트웨이가 또 전달 | 다음 라우터로 반복 |
디폴트 게이트웨이는 0.0.0.0/0, 즉 "위에서 매칭 안 된 나머지 전부" 를 받는 항목입니다. 그래서 인터넷 어디로 가든 일단 게이트웨이로 나갑니다. 게이트웨이 주소가 틀리면 외부만 안 되는 이유가 이것입니다. 내부는 직접 전달이라 게이트웨이를 거치지 않으니까요.
직접 확인하기
라우팅 테이블은 ip route로 봅니다.
로컬 터미널
ip route
OUTPUT
default via 192.168.0.1 dev eth0
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.42
default via 192.168.0.1이 디폴트 게이트웨이입니다. 외부로 나가는 모든 패킷은 192.168.0.1로 갑니다. 두 번째 줄은 같은 서브넷(192.168.0.0/24)은 게이트웨이 없이 eth0로 직접 보낸다는 뜻입니다. 게이트웨이 자체에 닿는지는 ping 192.168.0.1로 먼저 확인하면 절반은 진단됩니다.
로컬 터미널
ip route get 8.8.8.8 # 특정 목적지로 어떤 경로를 탈지
OUTPUT
8.8.8.8 via 192.168.0.1 dev eth0 src 192.168.0.42
8.8.8.8(외부 DNS)로 갈 때 게이트웨이를 경유한다고 알려줍니다. 경로가 의심될 때 이 명령으로 바로 확인할 수 있습니다.
요점 정리
- 게이트웨이 = 내 네트워크에 없는 주소로 갈 때의 기본 출구.
- 라우팅은 목적지가 같은 서브넷인지부터 따진다.
- 디폴트는
0.0.0.0/0— 매칭 안 된 나머지 전부를 받는다. ip route로 경로를,ip route get으로 특정 목적지 경로를 확인한다.
라우팅 테이블과 게이트웨이를 직접 설정하고 추적하는 실습은 네트워크 트랙에서 회원가입 없이 무료로 익힐 수 있습니다.