강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스시스템의 라우팅테이블 확인 및 이해하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스시스템의 라우팅테이블 확인 및 이해하기

 

 

 

 

 

리눅스시스템에서 라우팅 테이블을 확인하기 위해서는 route명령어 또는 netstat이라는 명령어를 사용한다.

 

 

 

 “route”라고 하거나 또는 “netstat -nr”을 실행하면 현재 리눅스시스템에 셋팅되어 있는 라우팅테이블을 확인할 수 있다.

 

 

 

 다음 예는 “netstat -nr”을 실행한 예이다.

 

 

 

 

 

316fee9c12ed6bd492a864a12bb0b067_1684387904_9346.png
 

 

 

 

위의 라우팅테이블을 보고서 알 수 있는 것은 다음과 같다.

 

 

 

 , 기본게이트웨이, 서브넷마스크, 인터페이스등이다.

 

 

 

 참고로 현재 위의 예에서 본다면 기본게이트웨이는 211.220.193.254이며, 서브넷마스크는 255.255.255.224이고, 인터페이스는 eth0라는 것을 알 수 있다.

 

 

 

 위의 예를 일반적인 의미로 간단히 표현해 보면 외부로 나가는 데이터들은 eth0라는 인터페이스를 통해서 설정된 기본게이트웨이인 211.220.193.254로 보내지게 된다고 해석할 수 있다.

 

 

 

 

 

 따라서 리눅스시스템의 라우팅테이블을 좀 더 깊이있게 설명하여 외부망과의 통신이 어떻게 이루어지는가를 확실히 이해하도록 하겠다.

 

 

 

  다음은 route라는 명령어를 실행하여 현재 시스템의 라우팅테이블을 확인한 것이다.

 

 

 

 

 

316fee9c12ed6bd492a864a12bb0b067_1684387923_6827.png
 



 

 

위의 결과는 현재 서버의 라우팅테이블을 의미한다.

 

 

 

 라우팅테이블은 요청된 데이터 패킷들을 어디로 보낼 것인가를 결정하는 역할을 한다.

 

 

 

 시스템관리자는 이런 라우팅테이블을 정확하게 이해하고 패킷이 어디로? 어떻게? 전송되는가에 대하여 정확하게 이해해야 한다.

 

 

 

 다음은 위의 라우팅테이블을 이해하기 위한 규칙들이다.

 

 

 

 먼저 이 규칙을 잘 이해하기 바란다.

 

 

 

 거의 모든 라우팅테이블이 다음 규칙을 그대로 적용하기 때문에 잘 알아두면 큰 힘이될 것이다.

 

 

 

 

규칙1 : 첫번째행부터 시작하여 행단위로 한 행씩 차례대로 읽어서 처리할 패킷을 어디로 보낼것인가를 결정한다.

 

 

 



규칙2 : default라는 것은 시스템의 기본 게이트웨이 설정행을 의미하며 그 행의 Gateway항목값이 기본게이트웨이의 IP주소이다.

 

 

 

 그리고 default 0.0.0.0를 의미한다.

 

 

 



규칙3 : 보낼 데이터(패킷)의 목적지IP주소와 Genmask(SubnetMask)과의 AND연산을 해서 그 결과가 해당행의 Destination항목과 동일 할 경우에 해당행의 Iface항목에 있는 인터페이스로 해당 패킷을 보낸다.

 

 

 

 


규칙4 : Iface항목의 값이 lo인 행(Destination값이 127.0.0.0인 행)은 이 시스템의 루프백(loopback)데이터를 처리하기 위한 설정이다.

 

 

 

 , 자기 자신에게로 데이터를 보낼 때에 처리를 담당하는 인터페이스이다.

 

 

 

 

위의 규칙을 적용하여 특정 패킷이 어떤 경로를 통하여 라우팅이 되는가를 확인해 보기 위하여 예를들어 보도록 하자.

 

 

다음은 위의 규칙에 따라 리눅스시스템이 라우팅테이블에 근거하여 목적지 주소가 192.168.2.101인 특정 패킷을 어떻게? 그리고 어디로? 보내게 되는가를 차례대로 설명한 것이다.

 

 

 

 위의 규칙들을 다시 한번 읽어본 후에 아래 데이터 패킷 전송과정을 보기 바란다.

 

 

 



첫번째 행을 읽어들인다.

 

 

 

 보낼 대상패킷의 목적지 주소(192.168.2.101)와 첫번째 행의 Genmask(255.255.255.0) AND연산을 수행한다.

 

 

 

 그 결과 첫번째 행의 Destination항목값(192.168.1.0)과 다르므로 다음행으로 넘어간다.

 

 

 

 

두번째 행을 읽어들인다.

 

 

 

 보낼 대상패킷의 목적지 주소(192.168.2.101)와 두번째 행의 Genmask(255.255.0.0) AND연산을 수행한다.

 

 

 

 그 결과가 첫번째 행의 Destination항목값(192.254.0.0)과 다르므로 다음 세번째행으로 넘어간다.

 

 

 



세번째 행을 읽어들인다.

 

 

 

 보낼 대상패킷의 목적지 주소(192.168.2.101)와 세번째 행의 Genmask(255.0.0.0) AND연산을 수행한다.

 

 

 

 그 결과가 첫번째 행의 Destination항목값(127.0.0.0)과 다르므로 다음 네번째행으로 넘어간다.

 

 

 

 

 

네번째 행을 읽어들인다.

 

 

 

 보낼 대상패킷의 목적지 주소(192.168.2.101)와 네번째 행의 Genmask(0.0.0.0) AND연산을 수행한다.

 

 

 

 그 결과가 첫번째 행의 Destination항목값(0.0.0.0)과 같으므로 네번째 행의 Iface항목값인 eth0로 해당 패킷을 보낸다.

 

 

 

 

 

이와같은 패킷을 어디로 보낼 것인가를 결정하는 과정을 라우팅(Routing)이라고 하며 어떤패킷을 어떤 경로로 보내도록 정의되어 있는 테이블을 라우팅테이블이라고 한다.

 

 

 

 물론 모든 데이터(패킷)들이 이와같은 라우팅(Routing)과정을 거쳐서 외부와 통신한다.

 

 

 

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  89 명