Skip to content

Routing table

라우팅 테이블(영어: routing table)은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 라우팅 프로토콜의 가장 중요한 목적이 바로 이러한 라우팅 테이블의 구성이다.

가장 단순한 모델인 hop-by-hop 라우팅 방식에서, 각 라우터의 라우팅 테이블은 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가지고 있다. 라우팅 테이블이 일관적이라고 가정하면, 패킷을 받은 다음, 라우팅 테이블을 검사해서 다음 라우터를 찾은 뒤, 해당 라우터로 패킷을 넘겨주는 이러한 단순한 알고리즘만으로 네트워크상의 어느곳으로라도 데이터를 전송할 수 있다. 하지만 실제로는, hop-by-hop 라우팅 방식은 MPLS와 같은 계층적 아키텍처에 밀려나서 급격히 사라지는 추세이다. 계층적 아키텍처에서는 한번의 테이블 검사로 몇 번의 전달과정을 대체할 수 있으며, 이는 테이블 검사시간을 감소시키며 따라서 네트워크의 성능을 증가시킨다.

제한된 저장공간에 수많은 목적지로의 노선을 저장해야하는 요구사항은 라우팅 테이블 구성에서 큰 어려움으로 다가온다. 라우팅에서 하나의 중요한 기본 가정은 유사한 주소는 비슷한 주소의 목적지는 인접해있으리라는 것이며, 이는 다수의 목적지 주소를 하나의 라우팅 테이블 항목에 관리할 수 있게 해준다. 다수의 목적지를 하나의 항목에 넣는 이러한 그룹 방법은 이제까지 많이 바뀌어 왔으며, 아직도 활발한 연구 과제로 남아 있다. 인터넷에서 현재 가장 널리 사용되는 그룹 기법은 사이더(Classless Inter-Domain Routing, CIDR)라고 불리는 비트단위 접두어 비교방식이다.

네트워크상의 각 라우터에서는 일관된 라우팅 테이블 정보를 가지고 있어야 하며, 그렇지 않을 경우 루프가 발생할 수 있다. 이는 특히 hop-by-hop 라우팅 방식에서 크게 문제가 되는데, 이는 각 라우터가 올바른 라우팅 테이블을 가지고 있는 것처럼 보여도 서로 패킷을 무한히 주고받게 되기 때문이다. 라우팅 루프를 피하는 것은 라우팅 프로토콜을 설계할 때 중요한 문제의 하나이다.

Categories

Tools

라우팅 프로토콜

라우팅 알고리즘은 크게 세 가지가 있다.

  • 디스턴스 벡터 알고리즘(Distance Vector Routing Algorithm)
  • 링크 스테이트 알고리즘(Link State Routing Algorithm)
  • 패스 벡터 알고리즘(Path Vector Algorithm)

Example

내 PC 의 라우팅 테이블을 확인

TCP/IP 설정확인은 ipconfig 을 이용하고, 라우팅 테이블을 보기 위해서는 netstat -r 이나 route print명령어를 사용한다.

위의 내용중 라우팅 테이블에 관련된 부분만 제목과 함께 재구성하였다.

Name

Network Destination

Netmask

Gateway

Interface

Metric

default route

0.0.0.0

0.0.0.0

203.255.113.254

203.255.113.34

1

loopback

127.0.0.0

255.0.0.0

127.0.0.1

127.0.0.1

1

subnet network

203.255.113.0

255.255.255.0

203.255.113.34

203.255.113.34

1

LAN card

203.255.113.34

255.255.255.255

127.0.0.1

127.0.0.1

1

subnet broadcast

203.255.113.255

255.255.255.255

203.255.113.34

203.255.113.34

1

multicast

224.0.0.0

224.0.0.0

203.255.113.34

203.255.113.34

1

limited broadcast

255.255.255.255

255.255.255.255

203.255.113.34

203.255.113.34

1

라우팅 테이블 설명 (열)

5개의 열로 구성이 되어 있으며, 내 PC 의 패킷들이 어디로 나가야할지를 정해준다. 패킷의 Destination 주소를 Netmask 을 적용하여 Network Destination 을 결정한후 적당한 Interface 로 보낸다.

Netmask
패킷의 Destination 주소에 Netmask 를 AND 연산한다.
어떤 Network Destination 으로 갈지를 netmask에서 결정하게 된다
Network Destination
AND 연산을 하게된후 패킷의 Destination 주소와 Network Destination 을 비교한다.
Interface ( 패킷을 밖으로 보낼 랜카드의 주소 )
Network Destination 이 일치한 Interface 로 패킷을 보낸다
Gateway
Interface 를 빠져 나간 패킷이 가야할곳이다.
자신의 랜카드 주소 또는 로컬 서브넷의 게이트웨이(일반적으로, 라우터)이다.
Metric
destination 까지의 hop 수를 말한다.
local LAN 은 하나의 hop 으로 구성
Metric 은 가장 좋은 라우터경로를 결정할때 사용

라우팅 테이블 설명 (행)

7개의 행으로 되어 있으며, 각 행이 라우팅 테이블을 구성하여 Network Destination 에 해당하는 패킷을 각 Interface 로 보낸다.

default route
여러 라우팅 테이블을 확인해서 일치하지 않을경우, default route 의 Gateway 로 보낸다.
위에서는 203.255.113.254 로 가게되며, 일반적으로 라우터의 주소이다.
loopback
127.0.0.1 은 software loopback 주소이다.
자기 자신을 가리킨다.
subnet network
IP 주소의 subnet network 주소를 가리킨다.
IP 주소가 203.255.113.34 이고 Subnet Mask 가 255.255.255.0 이므로 AND 연산을 통해 203.255.113.0 이 network 주소가 된다.
LAN card
자신의 IP 주소를 의미한다.
subnet broadcast
위의 203.255.113.0 의 마지막 주소인 203.255.113.255broadcast 로 사용된다.
multicast
D Class 의 multicast 를 나타내는 행이다.
특정한 그룹에게 메세지를 전달할때 사용되는 주소이다.
limited broadcast
라우터를 통과하지 못하는 broadcast 주소이다.
같은 subnet 상의 모든 host 에 전달된다.

라우팅 테이블 검색 순서

Microsoft 사의 문서(Q140859) 에 의하면 각 라우팅 테이블행의 검색순서는 다음과 같다:

From the most unique route(host address) to most generic(default gateway)

  1. host address
  2. Subnet address
  3. Network address
  4. Default gateway

예를 들어, ping 207.46.131.137 명령을 보낼 경우,

  1. 207.46.131.137 과 LAN card 행의 Netmask 열(255.255.255.255)과 AND 연산 : 207.46.131.137
  2. 위의 결과값인 207.46.131.137 과 LAN card 행의 Network Destination 과 비교
    • 같으면, LAN card 행의 Interface 로 패킷을 보낸다.
    • 다르면, 검색순서에 따라 다른 라우팅 테이블 비교
  3. 일치되는 Network Destination 을 찾지못하면 default route(0.0.0.0)의 Gateway 로 패킷을 보낸다.
  4. 다음 패킷을 보내기 위해 첫 번째 부터 반복한다.

Linux 의 Routing Table

NetworkManager#Linux 의 Routing Table 항목 참조.

서로 다른 대역의 IP끼리 통신하도록 설정하는 방법

Internet Protocol#서로 다른 대역의 IP끼리 통신하도록 설정하는 방법 항목 참조.

See also

Favorite site