본문 바로가기
42/42cursus

[NetPractice] 2. 라우터와 라우팅테이블

by jaemjung 2022. 4. 10.

1) 라우터

 

오늘 날의 네트워크는 전 세계에 걸쳐 어마어마한 규모로 뻗어있다. 라우터는 이 어마어마한 네트워크 속을 여행하는 패킷에게 제 갈 길을 찾아주는(route 해주는) 장치이다.

이 전 글에서 컴퓨터와 컴퓨터가 네트워크를 통해 통신하기 위해서는 서로가 네트워크 상에서 유일하게 식별될 수 있는 ID인 ip주소를 알고 있어야 한다고 했다. 그런데 내 컴퓨터가 어떤 컴퓨터와 통신하게 될 지 모르는 상황에서 그 수십억개의 ip 주소를 모두 알고 있어야 하는 건 비효율적일 뿐 더러 사실상 불가능 한 일이다. 

 

이러한 문제를 해결하기 위해

1) 각 단말의 호스트를 라우터에 연결하고,

2) 이 라우터 여러개를 다시 네트워크로 연결하는 방식으로 큰 네트워크를 구성한 후,

3) 데이터가 어디로 가게 될 지 결정하는 권한을 다음 라우터에 위임한다.

라는 형식의 접근을 택하게 된다.

대충 이런느낌

이렇게 되면 내 컴퓨터는 다음 라우터의 주소만 알고 있으면 되고, 다음 라우터는 그 다음 라우터의 주소만 알고 있으면 되고.... 이런 식으로 라우터의 주소만 알고 있으면 컴퓨터 간의 통신이 가능해진다.

 

2) 라우팅 테이블

그런데 라우터가 무슨 나면서부터 천리안을 가지고 있어 패킷이 들어오면 어디로 가야할지 다 알고 있는 것은 아니다. 어떠한 주소로 가는 요청이 들어오면 어디로 가야할 지 지정을 해줘야 하는데 이러한 경로가 저장되어 있는 테이블이 바로 라우팅 테이블이다.

요건 터미널에서 netstat -nr 명령어를 쳐보면 쉽게 확인할 수 있다.

각 Destination으로 보내야 하는 패킷이 들어오면, 컴퓨터, 혹은 라우터는 라우팅 테이블을 돌며 해당 패킷이 어떤 Gateway, 즉 다음 라우터로 가야하는지 찾은 후 해당 라우터가 있다면 그곳으로, 없다면 아예 패킷을 보내지 않게 된다.

 

그리고 라우팅 테이블의 최상단에 default gateway가 설정된 것을 볼 수 있는데, 이건 기본적으로 모든 요청이 들어오면 해당 게이트웨이로 보내주겠다는 뜻이다. 이건 0.0.0.0/0과 같은 의미!

 

댓글