개발하는 프로 국밥러
article thumbnail

IT 엔지니어를 위한 네트워크 입문

고재성, 이상훈님의 책을 보며 정리한 내용입니다.

문제가 될 시 해당글 삭제하겠습니다.


라우터의 동작 방식과 역할

라우터

  • 라우터는 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 와 라우팅 테이블을 비교해서 최선의 경로로 패킷을 보낸다. → 경로 지정
  • 스위치와 반대로 라우터는 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다. (스위치는 모든 포트에게 브로드캐스트한다, 플러딩) → 브로드캐스트 컨트롤
  • 라우터는 패킷 포워딩 과정에서 2계층 헤더 정보를 제거한 뒤 새로운 3계층 헤더를 만들어낸다. → 프로토콜 변환

경로지정

  • 라우터의 가장 중요한 역할은 경로 지정이다.
    프로토콜 변환이 선행되어야 한다.
  • 경로 정보를 모아서 라우팅 테이블을 만들고 패킷이 라우터로 들어오면 패킷의 도착지 IP 주소를 확인해 경로를 지정하고 패킷을 포워딩한다.
    → 패킷이 라우터로 들어오기 이전에 이전에 라우팅 테이블이 완성되어 있다.
  • 라우터는 자신이 얻은 경로 정보에 포함된 패킷만 포워딩하므로 정확한 목적지 경로를 얻는 것은 매우 중요하다.
    (아닐 경우 패킷을 폐기한다…)

브로드캐스트 컨트롤(Broadcast Control)

  • 스위치는 패킷의 도착지 주소를 모르면 어딘가 존재할지 모르는 장비와 통신을 위해 플러딩 해 패킷을 모든 포트에 전송한다.(2계층 통신이기에 가능..)
  • 스위치가 작동하는 LAN 은 크기가 작아 플러딩에 대한 영향이 작고 랜카드에서 자신의 주소와 패킷의 도착지 주소가 다르면 패킷을 버리기 때문에 이런 플러딩 작업은 큰 무리를 주지 않는다.
  • 반면, 라우터는 패킷을 원격지로 보낸는 목표로 개발되어 분명한 도착지 정보가 있을 때만 통신을 허락한다.
    만약 브로드캐스트 된다면 거의 무한대에 가까운 네트워크로 브로드캐스트를 하게된다..
    (인터넷 사용은 지정된 대역폭만 빌려 사용하므로 불필요한 통신은 최대한 막으려 노력한다)
  • 라우터의 기본 동작은 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다.
    → 이 기능을 통해 브로드캐스트가 다른 네트워크로 전파되는 것을 막을 수 있다.

프로토콜 변환

  • 라우터의 또 다른 역할은 서로 다른 프로토콜로 구성된 네트워크를 연결하는 것이다.
  • LAN 은 다수의 컴퓨터가 통신하는데 초점, WAN 은 원거리 통신이 목적
    → 라우터는 원거리 통신을 위한 역할을 담당
  • 라우터에 패킷이 들어오면 2계층 헤더 정보를 벗겨내고 3계층 주소를 확인한 후 새로운 3계층 정보를 만들어 외부로 내보낸다.

경로 지정 - 라우팅/스위칭

  • 라우터가 패킷을 처리할 때 크게 두 가지 작업을 수행한다.
    • 경로 정보를 얻어 경로 정보를 정리하는 역할(라우팅 테이블)
    • 정리된 경로 정보를 바탕으로 패킷을 포워딩하는 역할
  • 라우터는 서브넷 단위로 라우팅 정보를 습득하고 라우팅 정보를 최적화하기 위해서 서머리 작업을 통해 여러 개의 서브넷 정보를 뭉쳐 전달한다.
    • 서브넷 : 하나의 네트워크가 분할되어 나눠진 작은 네트워크 (네트워크 통신 단위라고 생각..)
  • 그래서 라우터에 들어온 패킷의 목적지 주소와 라우팅 테이블 주소가 정확하게 일치하지 않더라도 수많은 정보 중 목적지에 가장 근접한 정보를 찾아 패킷을 포워딩 해야 한다. (정확하지 않을 수 있다..)

라우팅 동작과 라우팅 테이블

  • 현대 인터넷은 단말부터 목적지까지의 경로를 모두 책임지는 것이 아니라!! 인접한 라우터까지 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악 후, 그 다음 인접한 라우터로 패킷을 포워딩한다.
  • 네트워크를 한 단계마다 뛰어 넘는다는 의미로 이 기법을 홉-바이-홉(Hop-By-Hop) 이라 부른다.
    (인접한 라우터는 넥스트 홉 이라고 부른다)
  • 라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내준다.
  • 넥스트 홉을 지정하는 3가지 방법
    • 넥스트 홉의 IP 주소 지정 (일반적인 방법)
    • 라우터의 나가는 인터페이스 지정 (특수한 방법)
      → 인터페이스 설정 시 라우터의 나가는 물리 인터페이스를 지정하는 것이 일반적이나, IP 주소와 인터페이스를 동시에 사용할 때는 VLAN 인터페이스와 같은 논리 인터페이스를 사용할 수 있다.
    • 넥스트 홉의 IP 주소와 라우터의 나가는 인터페이스를 동시에 지정
  • 라우터는 패킷을 어디로 포워딩 할 지 경로를 선택할 때 출발지는 고려하지 않는다.
    라우팅 테이블을 만들 때 목적지 정보만 수집하고 패킷이 들어오면 목적지 주소를 확인해 패킷을 넥스트 홉으로 포워딩한다. (2계층의 스위치에서는 스위치 테이블에 출발지 맥주소 : 포트 번호를 저장한다.)
  • 3계층 IP 헤더에는 TTL 이라는 패킷이 네트워크에 살아 있을 수 있는 시간(홉) 을 제한한다.
    → 이를 통해 루프의 문제점을 해결할 수 있다. (STP 필요없음..)

라우팅(라우터가 경로 정보를 얻는 방법)

  • 라우터가 경로 정보를 얻는 대표적인 3가지 방법
    • 다이렉트 커넥티드
    • 스태틱 라우팅
    • 다이나믹 라우팅

다이렉트 커넥티드(Direct Connected)

  • IP 주소를 입력할 때 사용된 IP 주소와 서브넷 마스크를 통해 해당 IP 주소가 속한 네트워크 주소 정보를 알 수 있다. (동일 네트워크)
    → 라우터나 PC 에서는 이 정보로 해당 네트워크에 대한 라우팅 테이블을 자동으로 만든다.
  • 이 경로 정보를 다이렉트 커넥티드라 부른다.
    말 그대로 사용자가 직접 입력한 IP 정보를 바탕으로 라우팅 테이블을 생성한다.
  • 다이렉트 커넥티드로 생성되는 경로 정보는 IP 설정하면 자동 생성되는 정보이므로 정보를 강제로 지울 수 없고, 해당 네트워크 설정을 삭제하거나 해당 네트워크 인터페이스가 비활성화 되어야만 자동으로 사라진다.

스태틱 라우팅(Static Routing)

  • 관리자가 목적지 네트워크와 넥스트 홉을 직접 지정해 경로 정보를 입력하는 것을 스태틱 라우팅이라고 한다.
  • 스태틱 라우팅은 관리자가 경로를 직접 지정하므로 라우팅 정보를 매우 직관적으로 설정 관리할 수 있다.
  • 스태틱 라우팅은 물리 인터페이스가 비활성화 되면 연관된 스태틱 라우팅 정보가 사라지지만 논리 인터페이스는 물리 인터페이스가 비활성화 되어도 함께 비활성화 되지 않는 경우도 있어서 라우팅 테이블에서 사라지지 않을 수도 있다.

다이나믹 라우팅(Dynamic Routing)

  • 스태틱 라우팅은 관리자가 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 좋은 방법이지만, 큰 네트워크는 스태틱 라우팅만으로 부족하다..
    스태틱 라우팅은 라우터 너머의 다른 라우터의 상태 정보를 파악할 수 없다.
    관리해야 할 네트워크 수가 많아지거나 연결이 복잡해지면 직접 관리해야 하는 라우팅 개수가 기하급수적으로 늘어난다.
  • 다이나믹 라우팅은 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다.
    → 주기적으로 또는 상태 정보가 변경될 때 라우터끼리 정보가 교환되므로 장애가 발생하면 대체 경로로 패킷을 포워딩 할 수 있다.
    → 여기서 중요한 점은 패킷을 보낼 때 전체 경로를 고려하는 것이 아닌, 다음 라우터까지만 패킷을 포워딩 한다는 점이다.( NEXT HOP ! )
  • 관리자의 개입 없이 라우터끼리 정보 교환 만으로 장애를 인지하고 트래픽을 우회 할 수 있기에 가장 많이 사용된다.

스위칭(라우터가 경로를 지정하는 방법)

  • 다양한 방법으로 경로 정보를 얻고 그 정보 중 최적의 경로로 생각되는 경로를 라우팅 테이블에 올려 유지하는 과정을 라우팅이라고 한다! (경로를 얻고, 테이블 유지)
  • 패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 라우터 외부로 포워딩 하는 작업을 스위칭이라고 한다!
  • 라우팅 테이블에서 정확한 정보를 매칭하는 Exact Match 는 단순 서치 작업으로 패킷을 처리할 수 있지만, Longest metch 처럼 부정확한 정보 중 가장 비슷한 경로를 찾는 작업은 더 많은 리소스를 소모한다. (Smmary 작업은 리소스를 많이 소모한다..)
    → 이를 위해서 한번 스위칭 작업을 수행한 정보는 캐시에 저장하고 들어오는 패킷은 라우팅 테이블보다 먼저 캐시를 확인한다.

라우팅 설정 방법

다이렉트 커넥티드(로컬)

  • 라우터나 PC에 IP 주소, 서브넷 마스크를 입력하면 타이렉트 커넥티드 라우팅 테이블이 생성된다.
  • 목적지가 다이렉트 커넥티드라면 L2통신(ARP 요청을 직접 보내는)으로 목적지에 도달한다.
  • 목적지가 외부라면 다이렉트 커넥티드 외의 스태틱 라우팅이나, 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 적절한 라우팅 정보가 있어야 한다.
  • 외부 네트워크로 나가는 첫 번째 길목이 다이렉트 커넥티드이기 때문에, IP 주소를 잘못 설정하거나, 서브넷 마스크를 정상 범위보다 크게 설정하면 다이렉트 커넥티드 정보가 잘못 입력되어 이는 외부 네트워크와 단절된 상태가 된다.

스태틱 라우팅(원격)

  • 원격지 네트워크와 통신하려면 라우터에 직접 연결되지 않은 네트워크 정보를 입력해야 한다.
  • 가장 강력한 방법이 스태틱 라우팅이다!
    → 다이렉트 커넥티드를 제외하고 가장 우선순위가 높다.

다이나믹 라우팅(원격)

  • 일반적으로 IT 환경을 구축할 때 SPoF(Single Point of Failure) 를 없애기 위해서 두 개 이상의 경로를 유지하는데 이 경우, 대체 경로의 고민이 필요하다.
  • 이 때 스태틱 라우팅을 사용하게 되면 관리자가 수동으로 관리해야 하기 때문에 장애 발생시 신속한 대처가 어렵다.
  • 다이나믹 라우팅 프로토콜을 사용하게 되면 라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있다.
profile

개발하는 프로 국밥러

@gugbab2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!