Skip to content

Latest commit

 

History

History
110 lines (83 loc) · 8.12 KB

라우터.md

File metadata and controls

110 lines (83 loc) · 8.12 KB
  • 라우터는 경로를 지정해주는 장비이다.
  • 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로(Route) 정보를 이용해 패킷을 최적의 경로로 포워딩한다.
image
  • Hop-by-Hop 라우팅: 라우터는 인접한 라우터까지만 경로를 지정하면 인접 라우터(Next-hop)에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩한다.
  • Next-hop을 지정할 때는 세 가지의 방법을 사용할 수 있다.
    • 다음 라우터의 IP을 지정
    • 라우터의 나가는 인터페이스를 지정
      • : 상대방 넥스트 홉 라우터의 IP주소를 몰라도 MAC주소 정보를 알아낼 수 있을 때만 사용.
    • 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정
      • : 이 경우 VLAN 인터페이스와 같은 논리적인 인터페이스를 사용할 수 있다.

라우팅 테이블

image
  • 라우터의 역할은 라우팅 뿐만이 아니라, 다양한 경로 정보를 데이터베이스화하고 최선의 경로 정보를 수집하는 것이 포함된다.

  • 라우터가 수집한 Raw data는 토폴로지 테이블이라고 하고 이 경로 정보 중 최적의 경로를 저장하는 테이블을 라우팅 테이블이라고 한다.

  • 라우터는 목적지 주소와 라우팅 테이블을 비교해 포워딩 경로를 결정한다. 그렇기 때문에 라우터가 정상적으로 동작하려면 복잡하고 많은 경로 정보를 충분히 수집하여 라우팅 테이블을 적절히 유지해야 한다. 자신이 분명히 알고 있는 주소가 아닌 목적지를 가진 패킷이 들어오면 해당 패킷을 버린다.

  • 라우팅 테이블에는 다음과 같은 정보가 포함된다.

    • 목적지 주소
    • Next-hop 주소, 나가는 로컬 인터페이스 (선택 가능)
  • PBR(Policy-Based Routing) 기능을 사용해 패킷의 출발지 주소로 라우팅하도록 설정할 수 있다.

    • 라우터 정책과 관련된 별도 설정이 필요하다.
    • 다른 라우터로의 전파가 어렵고 일반적이지 않은 별도 동작이 필요하다.

라우팅, 스위칭 우선순위

  • 토폴로지 테이블에서 우선순위는 경로 정보를 받은 방법과 거리를 기준으로 정한다.

  • 경로 정보를 받는 방법은 아래와 같은 분류들이 있다.

    • 내가 갖고 있는 네트워크 (Direct Connected)
    • 내가 경로를 직접 지정한 네트워크 (Static Routing)
    • 경로를 전달받은 네트워크 (Dynamic Routing)
  • 필요에 따라 관리자가 우선순위인 AD(Administrative Distance)를 조정해 경로를 바꿀 수 있다. 숫자가 작을수록 우선순위가 높다.

    우선순위 기본 디스턴스
    0 Connected Interface
    1 Static Route
    20 External BGP
    110 OSPF
    115 IS-IS
    120 RIP
    200 Internal BGP
    255 Unknown
  • 가중치 값이 동일한 경우에는 Cost 값으로 우선순위를 정한다. Cost 값은 거리를 나타내는 값으로, 라우팅 프로토콜마다 기준이 다르다.

    • RIP은 흡수, OSPF는 대역폭(Bandwidth), EIGRP는 다양한 값들을 연산해 나온 값으로 코스트를 지정한다.
  • Cost도 같은 경우엔 ECMP(Equal-Cost Multi-Path) 기능으로 동일한 코스트 값을 가진 경로 값 정보를 모두 활용해 트래픽을 분산한다.

라우팅

  • Direct Connected

    • IP 주소와 서브넷 마스크로 네트워크 주소를 사용해 얻는 경로 정보를 Direct Connected라고 부른다.
    • 인터페이스에 IP를 설정하면 자동 생성되는 정보이므로 정보를 강제로 지울 수 없고, 해당 네트워크 설정을 삭제하거나 네트워크 인터페이스가 비활성화되어야만 사라진다.
    • 목적지가 다이렉트 커넥티드라면 라우터는 L2(ARP 요청을 직접 보내는)으로 목적지에 도달한다.
    • 외부 네트워크와 통신하려면 다이렉트 커넥티드 외에 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 적절한 라우팅 정보가 필요하다.
    • 반대로 외부 네트워크 주소가 있더라도 다이렉트 커넥티드 정보가 잘못되면 통신이 불가능하다. ⇒ 외부 네트워크로 나가는 첫 번쨰 길목이 다이렉트 커넥티드이기 때문이다.
  • Static Routing

    • 관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 것을 Static Routing이라고 한다.
    • 라우터 너머의 다른 라우터의 상태 정보를 파악할 수 없어 라우터 사이의 회선이나 라우터에 장애가 발생했을 때 대응이 불가능하다.
    • 연결된 인터페이스 정보가 삭제되거나 비활성화되면 연관된 정보가 자동 삭제된다.
    • 물리 인터페이스가 비활성화되어도 논리 인터페이스는 함께 비활성화되지 않아 라우팅 테이블에 남아있을 수 있다.
    • 스태틱 라우팅 정보를 기입하는 명령어는 다음과 같다.
      ip route NETWORK NETMAST NEXTHOP // 네트워크 장비가 시스코인 경우
      route add -net NETWORK /Prefix gw NEXTHOP // 서버 운영체제가 리눅스인 경우
    • 대상이 0.0.0.0 Static routing을 디폴트 라우팅이라고 한다. 인터넷으로 향하는 경로나 자신에게 경로 정보가 없는 경우 디폴트를 참조하게 된다.
  • Dynamic Routing

    • 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 정보를 학습하고, 장애가 발생하면 감지하여 대체 경로로 패킷을 포워딩하는 방식이다.

    • 라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있는 다이나믹 라우터는 RIP, OSPF, IS-IS IGRP, EIGRP, BGP같은 다양한 프로토콜이 있다.

    • Dynamic Routing 프로토콜을 분류하는 기준은 여러개가 있다.

    • 역할별 분류는 다음과 같다.

      • IGP(Interior Gateway Protocol): AS 내부에서 사용하는 라우팅 프로토콜
      • EGP(Exterior Gateway Protocol): AS간의 통신에서 사용하는 라우팅 프로토콜
    • 동작원리별 분류는 다음과 같다.

      • 디스턴스 벡터(Distance Vector): 인접한 라우터에서 경로 정보(계산된 라우팅 테이블)를 받는 라우팅 프로토콜
        • 인접 장비끼리만 통신하기 때문에 멀리 떨어져있는 경로 정보를 얻고 동기화되는 데 시간이 오래 걸린다.
      • 링크 스테이트(Link-State): 네트워크 망에 속한 장비가 보내준 링크 상태 정보를 기반으로 네트워크 맵을 그리는 라우팅 프로토콜
        • SPF(Shortest Path First) 알고리즘으로 최단 경로 트리를 만든다.
        • 네트워크 변화를 빨리 감지하고 최적화하기 위해 네트워크를 Area 단위로 분리하고, 분리된 Area 안에서만 정보를 교환한다.
    • 대부분 IGP로 OSPF(링크 스테이트 라우팅 프로토콜)와 BGP가 많이 사용된다. EGP로는 대부분 BGP(디스턴스 벡터 프로토콜)가 사용된다.

스위칭

  • 패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 라우터 외부로 포워딩하는 작업을 스위칭이라고 한다.

  • 들어온 패킷의 목적지가 라우팅 테이블에 있는 정보와 완벽히 일치하지 않는 경우에는 Longest Prefix Match 기법을 이용해 갖고 있는 경로 정보 중 가장 가까운 경로를 선택한다.

    • 이런 과정은 라우터에 부하를 많이 주기 때문에 목적지 IP, 출발지와 목적지 IP, 포트번호 등을 캐싱하여 최적화할 수 있다.

참고