네트워크

7. Routing

YJH3968 2021. 6. 30. 16:13
728x90

1. router

  • 트래픽을 destination address에 보내는 네트워크 장치
  • 2개 이상의 네트워크 인터페이스를 가지고 있어 2개 이상의 네트워크를 연결한다.

2. basic routing steps

  • router가 인터페이스 중 하나로 데이터를 받는다.
  • packet의 대상 IP를 조사한다.
  • routing table에서 이 IP에 해당하는 대상 네트워크를 찾는다.
  • router가 routing table에서 찾은 추가 정보에 따라 packet을 원격 네트워크와 가장 가까운 인터페이스로 보낸다.
  • 이를 트래픽이 목적지에 도착할 때까지 반복한다.

3. example of routing steps 

  • router가 두 네트워크에 연결되어 있다고 가정하자.
  • Network A는 주소 공간을 192.168.1.0/24, Network B는 주소 공간을 10.0.0.0/24로 지정
  • router의 각 네트워크에는 인터페이스가 있는데, Network A에서는 192.168.1.1의 IP, Network B에서는 10.0.0.254의 IP가 있다. (IP 주소는 네트워크의 개별 노드가 아니라 네트워크에 속한다.)
  • 이때 IP 주소가 192.168.1.100인 Network A의 컴퓨터가 packet을 주소 10.0.0.10에 보낸다.
  • 이 컴퓨터는 10.0.0.10이 로컬 서브넷에 없다는 것을 알고 있다.
  • 그래서 이 패킷을 게이트웨이의 MAC 주소를 통해 router로 보낸다.
  • Network A의 router 인터페이스는 자신의 MAC 주소가 해당 packet에 속해 있음을 인식하기 때문에 packet을 수신한다.
  • router는 network layer content인 IP datagram을 남기고 data link layer를 없앤다.
  • 이제 router는 대상 IP를 위해 IP datagram header를 직접 조사한다.
  • 대상 IP를 찾고 이를 routing table에서 찾아 Network B가 대상 IP에 대한 네트워크임을 알고, 한 번의 hop이 필요함을 안다.
  • 그리고 이 네트워크는 직접 연결되어 있어 router가 이 IP에 대한 MAC 주소도 가지고 있다.
  • 이제 router는 Network B로 가기 위한 새 packet을 만들기 위해 첫 IP datagram의 모든 data를 복제하는데 TTL field를 하나 줄이고 새 checksum을 계산한다.
  • 그러고 나서 새 Ethernet frame에 새 IP datagram을 캡슐화하는데 network B의 인터페이스의 MAC 주소를 source MAC 주소로 설정한다.
  • arc table에 10.0.0.10의 MAC 주소가 있었기 때문에 이를 대상 MAC 주소로 설정한다.
  • 마지막으로 packet은 Network B의 인터페이스에서 보내져 10.0.0.10에 해당하는 node에 도착한다.
  • 만약 세 번째 네트워크(직접 연결 X)가 있는 경우, router는 routing table을 조사해 세 번째 네트워크로 가는 가장 빠른 방법을 알아내 그 방법을 통해 다른 네트워크를 중개하여 packet을 보낸다.

4. Routing table

  • 가장 초기의 router는 일반 컴퓨터였고, 2개의 네트워크 인터페이스, 네트워크에 대한 브릿지, 그리고 수동으로 업데이트되는 routing table이 있었다.
  • 현재 모든 주요 운영 체제는 data를 전송하기 이전에 그것을 찾는 routing table을 가지고 있다.
  • router의 제조업체나 클래스에 따라 천차만별이지만 공통적으로 몇 가지 사항을 공유한다.
  • 가장 기본적인 routing table은 4개의 열이 있다.
  • 1. Destination network
    • router가 알고 있는 각 네트워크에 대한 행을 가지고 있다.
    • 원격 네트워크에 대한 정의가 있고, 네트워크 ID, 그리고 (sub)net mask가 서로 다른 열에 저장될 수도, 혹은 하나의 열(CIDR)에 저장될 수도 있다.
    • router는 몇몇 네트워크의 대상 IP 주소들에 대해 알고 있다.
    • router는 packet을 받으면 대상 IP 주소를 조사해 어떤 네트워크에 속하는지 결정한다.
    • catchall entry : 명시적으로 네트워크 목록에 없는 IP 주소에 연결시키는 항목이다.
  • 2. Next hop
    • 대상 네트워크로 향하기 위해 data를 수신해야 하는 다음 router의 IP 주소 혹은, 추가적인 hop이 필요하지 않은 경우 네트워크가 직접 연결되어 있다고 알려주는 열이다.
  • 3. Total hop
    • A에서 B로 가는데 여러 방법이 있을텐데, router는 가능한 가장 짧은 path를 고르려고 한다.
    • 하지만 가장 짧은 path는 현 네트워크 상황에 따라 시시각각 변할 수 있다.
    • 다음 대상 네트워크로 갈 때마다, router는 대상이 얼마나 멀리 있는지 알아야 한다.
    • 그래야 이웃한 router로부터 update된 정보를 받으면 현재 최상의 경로를 알고 있는지 또는 새로운 더 나은 경로를 사용할 수 있는지 알 수 있다.
  • 4. Interface
    • router는 대상 네트워크와 일치하는 트래픽에 대해 어떤 인터페이스를 사용해야 하는지 알아야 한다.
  • core Internet router는 routing table에 수백만 개의 행을 가지고 있다.
  • 모든 packet은 목적지로 갈때 지나가는 router에서 검사를 해야 한다.

5. Routing protocols

  • router가 가지고 있는 정보를 공유하기 위해 통신하는데 사용하는 protocol이다.
  • 서로 멀리 떨어져 있는 router 간의 최선의 경로를 알기 위해 사용하는 방법이다.
  • 크게 interior gateway protocol과 exterior gateway protocol로 나뉜다.
  • interior gateway protocol
    • router가 단일 자율 시스템에서 정보를 공유하는 데 사용된다.
    • 자율 시스템 : 단일 네트워크 운영자의 통제 하에 속하는 네트워크의 모임
    • link state protocol과 distance-vector protocol로 나뉜다.
    • distance-vector protocol
      • 오래된 기준으로 현재는 잘 사용하지 않는다.
      • router가 아는 모든 네트워크와 그 네트워크들이 얼만큼의 hop(distance)만큼 떨어져 있는지에 대한 routing table을 가진다.
      • router는 이 list(vector)를 모든 이웃(직접 연결된) router에 보낸다.
      • 자율 시스템의 전체 상태에 대해서는 잘 모르고 이웃 router에 대한 정보만 알고 있다.
      • 이 때문에 router와 멀리 떨어진 network의 변화에 대한 반응이 느리다.
    • link state protocol
      • 각 router가 인터페이스의 링크 상태를 알린다.
      • 각 router에 대한 정보는 자율 시스템의 다른 모든 router로 전파한다.
      • 시스템의 모든 router는 시스템의 다른 모든 router에 대한 모든 세부 사항을 알고 있다.
      • 각 router는 훨씬 더 큰 정보 집합과 복잡한 알고리즘을 실행해 대상 네트워크에 대한 최상의 경로를 결정한다.
      • 더 많은 메모리와 훨씬 더 많은 처리 능력을 필요로 한다. 하지만 하드웨어가 성능이 향상됨에 따라 많이 쓰는 protocol이 되었다.
  • exterior gateway protocol
    • 자율 시스템의 edge를 나타내는 router 간에 data를 통신하기 위해 사용한다.
    • router는 같은 단체의 통제 하에서는 interior gateway protocol를 사용해 data를 공유하고, 다른 단체들과 정보를 공유해야 할 때는 exterior gateway protocol을 사용한다.
    • core Internet router는 트래픽을 적절히 보내기 위해서는 자율 시스템을 알고 있어야 한다.
    • 자율 시스템은 잘 알려져 있는 네트워크 모음이므로 data를 자율 시스템의 edge router로 가져오는게 core Internet router의 1순위 목표이다.
    • IANA(Internet Assigned Numbers Authority)는 IP 주소 할당과 같은 것을 관리하는 단체이다. ASN(Autonomous System Number allocation)도 담당한다.
    • ASN
      • IP 주소처럼 개별 자율 시스템에 부여되는 숫자이다.
      • IP 주소와는 달리 단순한 하나의 십진법 숫자이다.
      • IP 주소는 network ID 부분과 host ID 부분을 나눌 필요가 있었다. 그러나 ASN은 network나 host를 더 많이 대표하기에 나눌 필요가 없다. ASN이 무엇을 대표하는지 알기 위해서는 core Internet routing table만 update하면 된다.
      • 그리고 ASN은 IP 주소에 비해 훨씬 사람이 직접 보는 경우가 적다.

6. RFC(Request for Comments) 1918

  • 인터넷을 계속 운영하여 표준 요구 사항에 동의하는 것을 책임지고 있다.
  • 인구 증가 혹은 수천 대의 컴퓨터가 있는 data center 등으로 인해 IP 주소가 감당이 안 되자 non-routable address space라 불리는 여러 네트워크를 정의했다.

7. non-routable address space

  • routing할 수 없는 사람이 사용하기 위해 따로 설정된 IP 범위이다.
  • 인터넷과 연결된 모든 컴퓨터가 인터넷에 연결된 다른 모든 컴퓨터와 통신할 수 있는 건 아니다.
  • non-routable 주소 공간을 사용하면 이러한 네트워크의 노드끼리는 통신할 수 있지만 gateway router는 트래픽을 이러한 유형의 네트워크로 전달하지 않는다.
  • NAT(network address transition)이라는 기술로 non-routable address space의 컴퓨터가 인터넷의 다른 장치와 통신할 수 있다.
  • 트래픽이 인터넷을 통해 이동하는 방식과 분리되어 있어 내부 네트워크에 이러한 주소를 사용할 수 있는 사람의 수는 제한이 없다.
  • RFC 1918은 공동 router에 의해 어디에도 routing되지 않는 세 가지 IP 주소 범위를 정의했다. 즉, 아무도 속하지 않고 누구나 사용할 수 있다. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 이 있다.
  • internal gateway protocol은 이 주소 공간을 routing한다.
  • 그래서 자율 시스템 내에서 사용하기에 적합하지만 external gateway protocol은 사용하기 부적절하다.
728x90

'네트워크' 카테고리의 다른 글

9. Application Layer & 전체 layer의 동작 방식  (0) 2021.07.02
8. Transport Layer  (0) 2021.07.01
6. Subnetting  (0) 2021.06.29
5. Network Layer  (0) 2021.06.29
4. Data Link Layer  (0) 2021.06.29