network

[network] 혼자 공부하는 네트워크 03-3 라우팅 테이블 (240814)

hail2y 2024. 8. 14. 18:12

라우팅: 네트워크 간의 통신을 수행할 때 최적의 경로를 결정하는 과정

다음의 내용에 집중하여 공부해 볼 것!

  • 라우팅이 어떻게 이루어지는지 -- 이 글에서 다룰 내용
  • 네트워크 간의 통신이 어떤 유형으로 분류될 수 있는지

데이터 링크 계층의 한계

- 물리 계층과 데이터 링크 계층만으로 LAN을 넘어서 통신하기 어려운 두 가지 이유

  • 다른 네트워크까지의 도달 경로를 파악하기 어려움 (∵ 네트워크 계층, 네트워크 계층의 장비가 필요하기 때문)
  • 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움

대표적인 네트워크 계층의 장비: 라우터(router)

  • 라우터(router) - 라우팅을 수행하는 대표적인 장비
  • 라우팅(routing) - 패킷이 이동할 최적의 경로를 결정하는 것

https://www.geeksforgeeks.org/what-is-routing/

네트워크 간 통신을 가능케 하는 네트워크 계층의 장비

- 네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있음

  • 패킷은 여러 대의 라우터를 깡충깡충 거치듯 수신지까지 이동
  • 홉(hop): 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 한 과정
  • IP 헤더 필드 중 TTL(Time to Live) 값은 한 홉 당 1씩 감소
  • hop-by-hop routing

 

https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Hop-count-trans.png

라우팅 과정(홉 수) 확인

    • 윈도우 - tracert www.google.com
    • 리눅스/macOS - traceroute www.google.com

macOS - traceroute 명령어

  • 위의 경우 18개의 홉을 거침
  • traceroute는 UDP 패킷과 ICMP 오류 보고 기능을 사용하며, UDP 패킷을 경로상의 각 게이트웨이나 라우터에 세 번 전송한다.
  • 출력은 게이트웨이 이름, 게이트웨이의 IP 주소, 게이트웨이에 대한 세 번의 왕복 시간(RTT; Round Trip Time)이 표시된다.
  • *(별표)는 보안상의 이유로 ICMP를 차단하였거나 문제가 있어 응답이 없을 경우 출력된다. 
  • 호스트는 TTL 값을 1씩 증가시키면서 해당 거리의 라우터를 확인하고 TTL 값이 0이 되면 ICMP Time Exceeded 메시지를 출발지로 보낸다. 이는 목적지 호스트에 도착할 때까지 계속된다.  
    ex. 1→0, 2→0, 3→0...
  • 호스트는 목적지 호스트가 사용하지 않을 것 같은 UDP 포트 번호(30,000보다 큰 값)를 선택해 보내는데 패킷이 목적지에 도달했다면 ICMP Destination Unreachable 메시지를 출발지로 보내어 경로를 추적할 수 있게 된다. 
  • tracert와의 차이점은 tracert는 ICMP Echo 메시지를 기반으로 한다. 

[출처: https://www.ibm.com/docs/ko/aix/7.1?topic=analysis-traceroute-command, https://techjuny.tistory.com/entry/Ping-Traceroute-Tracert, https://codeyk.tistory.com/29, https://blog.innern.net/115]

그렇다면 라우터는 라우팅을 어떻게 수행할까?

    • 학습의 주안점: 라우팅의 핵심인 라우팅 테이블(routing table)
      - 라우팅 테이블이 만들어지는 방법과 프로토콜에 따른 라우팅의 분류
    • 라우터가 어떤 패킷을 받았을 때 이 패킷을 어디로 이동시켜야 하는지의 정보가 담긴 표

https://www.geeksforgeeks.org/routing-v-s-routed-protocols-in-computer-network/

  • 라우팅 테이블을 수동으로 만들건지, 자동으로 만들건지에 대한 구분
    - Static Routing
    - Dynamic Routing: 라우팅 프로토콜이 사용
  • 라우팅 테이블에 어떤 내용들이 채워지느냐에 대한 구분
    - Interior Gateway Protocols (IGP): AS 내부
    - Exterior Gateway Protocols (EGP): AS 외부

라우팅 테이블(Routing Table)

  • 특정 수신지까지 도달하기 위한 정보를 명시한 표와 같은 정보
  • 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단

라우팅 테이블에 포함된 정보

  • 수신지 IP 주소와 서브넷 마스크
    - 최종적으로 패킷을 전달할 대상
  • 다음 홉(next hop)
    - 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
    - 게이트웨이라고 명시되기도 함
  • 네트워크 인터페이스
    - 패킷을  내보낼 장소
    - 인터페이스(NIC) 이름이 직접 명시되거나 인터페이스에 대응하는 IP 주소 명시
  • 메트릭(metric)
    - 해당 경로로 이동하는 데 드는 비용
    - 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호

* 라우팅 테이블 정의 및 예시

https://www.geeksforgeeks.org/routing-tables-in-computer-network/

디폴트 라우트(default route): 라우팅 테이블에 경로가 없을 때

  • 기본적으로 패킷을 내보냇 경로
  • "모든 IP 주소"를 의미하는 0.0.0.0/0로 명시
  • 일반적으로 기본 게이트웨이 주소
    - 기본 게이트웨이: 네트워크 외부로 나아가기 위한 첫 경로, 일반적으로 라우터/공유기 주소
  • 라우팅 테이블에 따로 경로가 등록되어 있지 않은 패킷들을 기본적으로 기본 게이트웨이(라우터)에게 전달

https://www.youtube.com/watch?v=GEQZ3f6Pji8&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=29

라우팅 테이블 확인하기

  • 윈도우 - route print
  • 수신지 IP 주소(네트워크 대상), 서브넷 마스크(네트워크 마스크), 게이트웨이, 인터페이스(에 할당된 IP 주소), 메트릭 출력

https://www.youtube.com/watch?v=GEQZ3f6Pji8&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=29

  • macOS, 리눅스 - netstat -rn
  • 서브넷 마스크는 CIDR 표기법으로 수신지 IP 주소와 함께 명시

macOS - netstat -rn 명령어
https://www.youtube.com/watch?v=GEQZ3f6Pji8&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=29