본문 바로가기

OSI 7계층/[LAYER 3] 네트워크 계층

라우팅 (Routing)

해당 글 포스팅은 IP와 아주 많이 연관되어 있어요. 그렇기 때문에 혹시라도 IP를 모르신다면 

글 구독에 앞서 IP에 대해 한번 보는 걸 정중하게 강요드립니다. ;D 

http://run-it.tistory.com/14?category=665122 



1. 라우팅과 라우팅 테이블이란?

IP가 네트워크 장치가 갖는 고유의 주소라고 하면

라우팅은 그 주소를 찾아가는 과정입니다.


그리고 우리가 어떤 목적지를 찾아가기 위해 표지판을 보거나, 지도를 보듯 

네트워크 장비도 똑같이 목적지를 찾아가기 위해 표지판 또는 지도를 보는데, 

얘들이 보는 것은 라우팅 테이블이라고 하죠.


네트워크 장비들은 모두 이러한 라우팅 테이블을 하나씩 들고 있기 때문에,  

우리는 언제 어디서든 인터넷 사용이 가능합니다.


여기서 잠깐, 네트워크 장비들은 라우팅 테이블을 어디서 구해오는걸까요? 


그것은 사용자가 손으로 한땀한땀 적어주는 것입니다.

물론 우리가 평소 사용하는 컴퓨터도 라우팅 테이블이 있죠.


"아니 잠깐만 내가 지금 컴퓨터를 몇 년째 썼는데,.. 그게 머예요?"


만약 그런분들은 컴퓨터를 그림에 보이는 "자동으로 IP주소 받기"로 설정해놓고 사용하셨기 때문에 

라우팅 작성의 과정을 생략해도 인터넷 사용이 가능했을 거예요. 

(이 내용에 대해선 나중에 자세히 다룰게요 !)



컴퓨터 좀 만져봤다 하는 분들은 "다음 IP주소 사용" 으로 설정하여 수동으로 IP를 설정한 기억이 있으실텐데, 

그 때 설정하는 기본 게이트웨이가 컴퓨터의 라우팅 테이블을 작성하는 과정입니다.



2. Gateway

라우팅 테이블이 어떻게 생겨먹었는지 한번 살펴볼까요? 

마치 내가 컴퓨터와 대화하는 것 같은 느낌이 드는 내용들이 주절주절 적혀있네요.


하지만 이 주절주절에도 철저한 규칙이 있습니다. 목적지(Destination)와 게이트웨이(G/W 또는 Gateway)에 주목한다면 그 규칙이 보일거예요.



위에 있는 표를  네트워크와 게이트웨이에 주목해서 해석해볼게요!

(1) 1.1.1.0/24 네트워크 대역은 나랑 직접 연결 됐으니 eth1로 가세요

(2) 2.2.2.0/24 네트워크 대역은 나랑 직접 연결 됐으니 eth2로 가세요

(3) 3.3.3.0/24 네트워크 대역은 나랑 직접 연결 됐으니 eth3으로 가세요

(4) 4.4.4.0/24 네트워크 대역으로가려면 3.3.3.2이란 인터페이스를 가진 장비로 가야하니 eth3으로 가세요

(5) 5.5.5.0/24 네트워크 대역은 나랑 직접 연결 됐으니 eth4으로 가세요

(6) 여기 없는 네트워크 대역으로 가려면 5.5.5.2이란 인터페이스를 가진 장비로 가야하니 eth4로 가세요  


눈치채셨나요? 

결국 Gateway는 데이터가 목적지를 향하기 위해 이동해야하는 연결 된 장비의 주소입니다.


 



"그럼 라우팅 테이블에 없는 대역으로 갈때는 어떻게 하죠?"

"이 세상 모든 라우팅 테이블을 작성해야 하나요?"


그렇지 않습니다. 왜냐하면 default Gateway가 있기 때문이죠.

목적지와 넷마스크가 0.0.0.0으로 표기 된 것을 default Gateway로 칭합니다.

즉, 특정 목적지가 아닌 모든 곳을 뜻하는 것이죠.


지금 우리가 사용하는 컴퓨터로 예를 들어 볼게요.

우리가 PC 카카오톡에 접속할 때, 사용 중인 컴퓨터는 어디로 데이터를 보낼까요?

우리가 다음에 접속할 때, 사용 중인 컴퓨터는 어디로 데이터를 보낼까요?

우리가 게임을 할때, 사용 중인 컴퓨터는 어디로 데이터를 보낼까요?


정답은 사용중인 컴퓨터의 랜선(또는 공유기)과 연결 된 어떠한 네트워크 장치입니다.

저 같은 경우는 172.20.10.1 이란 주소를 갖고있는 장치한테 보내고 있네요

(확인 방법: window -> cmd -> ipconfig) 



우리가 사용 중인 컴퓨터는 사용자의 요청에 따라 연결되어 있는 네트워크 장치로 모든 통신 데이터를 전송합니다. 왜냐하면 그장치가 바로 기본 게이트웨이 즉, default Gateway기 때문이죠.


우리가 사용하는 컴퓨터는 하나의 호스트이기 때문에 default Gateway만 존재하고, 

L3 또는 L4 스위치는 네트워크 장비이기 때문에 여러개의 Gateway와 default Gateway를 갖고 있습니다.



4. 통신과정

그림을보며 정리해볼게요


1. AA가 DD에게 데이터 전송을 원하고 있어요. 하지만 슬프게도 AA와 DD는 살고 있는 네트워크가 다르기 때문에 직접적으로 통신할 수가 없어요 

 어쩔 수 없이 AA는 기본 게이트웨이(default Gateway)인 1.1.1.1주소를 가진 장비에게 데이터를 전송해요.





2. AA로부터 패킷을 전달받은 L3는 DD에게 패킷을 보내기 위해 라우팅 테이블을 찾아봅니다. 저런,,,4.4.4.2라는 주소를 가진 DD는 자기 자신과 전혀 연관이 없기 때문에 데이터를 보내기 위해선 3.3.3.2라는 주소를 가진 장치에게 데이터를 보내야 해요 


착한 L3는 "AA의 데이터를 DD에게 전달해줫" 이라며 3.3.3.2라는 주소를 가진 장치에게 AA의 데이터를 전달했습니다.





3. 데이터를 전달받은 또다른 L3가 라우팅 테이블을 살펴봅니다.

 주소와 이름을 보니 자신이 아는 DD가 맞네요. 또다른 L3는 DD에게 AA의 패킷을 전달해줍니다.





4. 드디어 DD가 AA 의 데이터를 받았네요. AA의 데이터를 받은 DD는 행복했답니다.





-끗-