혼자하는 네트워크 공부 #5

배석주·2023년 1월 5일
0

네트워크

목록 보기
5/11
post-thumbnail

라우터/L3 스위치 : 3계층 장비

라우터(Router)는 3계층에서 동작하는 네트워크 장비로 경로를 지정해주는 장비이다. 라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로(Route) 정보를 이용해 패킷을 최적의 경로로 포워딩한다. 라우터는 원격지 네트워크와 연결할 때 필수 네트워크 장비이며 네트워크를 구성하는 핵심 장비이다.

라우터의 동작 방식과 역할

라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 내보낸다.
스위치와 반대로 라우터는 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.

경로 지정

라우터의 가장 중요한 역할은 경로 지정이다. 경로 정보를 모아 라우팅 테이블을 만들고 패킷이 라우터로 들어오면 패킷의 도착지 IP 주소를 확인해 경로를 지정하고 패킷을 포워딩한다.
라우터는 경로를 지정해 패킷을 포워딩하는 역할을 두 가지로 구분해 수행한다. 경로 정보를 얻는 역할과 얻은 경로 정보를 확인하고 패킷을 포워딩하는 역할이다.

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

라우터는 바로 연결되어 있는 네트워크 정보를 제외하고 경로 습득 설정을 하지 않으면 패킷을 포워딩할 수 없다. 라우터의 기본 동작은 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다. 라우터의 이 기능을 이용해 브로드캐스트가 다른 네트워크로 전파되는 것을 막을 수 있다. 이 기능을 "브로드캐스트 컨트롤/멀티캐스트 컨트롤"이라고 한다.

프로토콜 변환

라우터는 서로 다른 프로토콜로 구성된 네트워크를 연결하는 역할도 수행한다. 현대 네트워크는 이더넷으로 수멸되므로 이 역할이 많이 줄었지만 과거 LAN에서 사용하는 프로토콜과 WAN에서 사용하는 프로토콜이 전혀 다른 구분된 공간이였기 때문에 많이 사용되었다.

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

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

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

    현대 인터넷에서는 단말부터 목적지까지의 경로를 모두 책임지는 것이 아니라 인접한 라우터까지만 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩한다. 네트워크를 한 단계씩 뛰어넘는다는 의미로 이 기법을 홉-바이-홉(Hop-by-Hop) 라우팅이라고 부르고 인접한 라우터를 넥스트 홉(Next Hop)이라고 부른다.
    라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내준다.
    넥스트 홉을 지정할 때는 일반적으로 세 가지 방법을 사용할 수 있다.
  • 다음 라우터의 IP를 지정하는 방법(넥스트 홉 IP 주소)
  • 라우터의 나가는 인터페이스를 지정하는 방법
  • 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법
  • 라우터에서는 넥스트 홉을 지정할 때는 일반적으로 상대방 라우터의 인터페이스 IP 주소를 저정하는 방법을 사용한다.
    라우터가 패킷을 어디로 포워딩할지 경로를 선택할 때는 출발지를 고려하지 않는다. 출발지와 상관없이 목적지 주소와 라우팅 테이블을 비교해 어느 경로로 포워딩할지 결정한다. 그래서 라우팅 테이블을 만들 떄는 목적지 정보만 수집하고 패킷이 들어오면 목적지 주소를 확인해 패킷을 넥스트 홉으로 포워딩한다.
    라우팅 테이블에 저장하는 데이터에는 다음과 같은 정보가 포함된다.
  • 목적지 주소
  • 넥스트 홉 IP 주소, 나가는 로컬 인터페이스(선택 가능)
  • 라우팅(라우터가 경로 정보를 얻는 방법)

    라우터가 경로 정보를 얻는 방법은 매우 다양하지만 다음 3가지 방법으로 크게 구분할 수 있다.
    1. 다이렉트 커넥티드
    2. 스태틱 라우팅
    3. 다이나믹 라우팅
    위의 3가지 방법을 이용해 경로 정보를 수집하고 수집된 경로 정보 중 목적지에 대한 최적의 경로를 선정해 라우팅 테이블을 만든다.

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

    IP 주소를 입력할 때 사용된 IP 주소와 서브넷 마스크로 해당 IP 주소가 속한 네트워크 주소 정보를 알 수 있다. 라우터나 PC에서는 이 정보를 해당 네트워크에 대한 라우팅 테이블을 자동으로 만든다. 이 경로 정보를 다이렉트 커넥티드라고 부른다.
    다이렉트 커넥티드 - 라우터에서는 connected로 표현
    위의 그림에서 R1은 1.1.1.0/30와 10.10.10.0/24 네트워크, R2는 1.1.1.0/30와 20.20.20.0/24 네트워크 정보를 갖고 왔다. 이 정보는 모두 다이렉트 커넥티드에서 습득된 정보이다.

    스태틱 라우팅(Static Routing)

    관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 것을 스태틱 라우팅이라고 한다. 스태틱 라우팅은 관리자가 경로를 직접 지정하므로 라우팅 정보를 매우 직관적으로 설정, 관리할 수 있다.
    위의 그림에서 R1은 10.10.10.10/24와 1.1.1.0/30 네트워크만 다이렉트 커넥티드를 이용해 학습할 수 있으므로 20.20.20.20/24 네트워크 정보가 없다. R1의 10.10.10.0/24 네트워크에서 R2의 20.20.20.20과 통신하려면 넥스트 홉을 1.1.1.2로 스태틱 라우팅을 설정해야 한다.

    다이나믹 라우팅(Dynamic Routing)

    스태틱 라우팅은 관리자가 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 좋은 방법이지만 큰 네트워크는 스태틱 라우팅만으로는 관리가 어렵다.
    스태틱 라우팅은 라우터 너머의 다른 라우터의 상태 정보를 파악할 수 없어 라우터 사이의 회선이나 라우터에 장애가 발생하면 장애 상황을 파악하고 대체 경로로 패킷을 보낼 수 없기 때문이다.
    다이나믹 라우팅은 스태틱 라우팅의 이러한 단점을 보완해준다. 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다.
    관리자의 개입 없이 라우터끼리의 정보교환만으로 장애를 인지하고 트래픽을 우회할 수 있으므로 대부분의 네트워크에서 다이나믹 라우팅이 사용된다.
    위의 그림처럼 다이나믹 라우팅에서는 자신이 광고할 네트워크를 선언해주어야 한다.
    라우터에서 라우팅의 역할은 경로 정보를 얻는 것뿐만 아니라 다양한 경로 정보를 체계적으로 데이터베이스화하고 순위를 적절히 부여해 최선의 경로 정보만 수집해두는 것이다.
    여기서 중요한 개념은 패킷을 보낼 때는 전체 경로를 고려하는 것이 아니라 다음 라우터까지만 패킷을 포워딩한다는 것이다.

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

    다양한 방법으로 경로 정보를 얻고 그 정보 중 최적의 경로로 생각되는 경로를 라우팅 테이블에 올려 유지하는 과정을 라우팅이라 부른다. 이런 최적 경로 정보를 유지하는 것을 라우터에 패킷이 들어왔을 때 라우터가 최선의 경로로 패킷을 빨리 포워딩하는 것을 도와주기 위해서이다.
    패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 라우터 외부로 포워딩하는 작업을 스위칭이라 한다.
    위의 그림처럼 10.1.1.9 IP가 목적지인 패킷이 라우터로 들어온 경우, 라우터는 도착지 IP와 가장 가깝게 매치되는 경로 정보를 찾는다. 10.1.1.9와 완전히 매치되는 경로 정보가 없기 때문에 롱기스트 프리픽스 매치(Longest Prefix Match) 기법을 이용해 갖고 잇는 경로 정보 중 가장 가까운 경로를 선택한다.
    롱기스트 프리픽스 매치 - 라우터가 패킷을 포워딩할 때 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘
    라우팅 테이블과 도착지 정보가 매치되는 정보는 10.0.0.0/8, 10.1.0.0/16, 10.1.1.0/24이다. 10.1.2.0/24와 10.1.2.9/32는 세 번째 자리부터 매치되지 않으므로 도착지와 매치되는 정보로 볼 수 없다. 마지막 옥텟 정보가 달라서 10.1.1.5/32 라우팅 정보도 도착지와 매치되는 정보로 볼 수 없다.
    10.0.0.0/8, 10.1.0.0/16, 10.1.1.0/24 세 개의 라우팅 정보 중 목적지와 더 많이 매치되는 정보는 10.1.1.0/24이다. 이 정보를 최선의 정보로 인식해 Rth 2 인터페이스 쪽으로 패킷을 내보내게 된다.
    정확한 정보를 매치하는 이그잭트 매치(Exact Match)는 단순한 서치 작업으로 찾고 패킷을 처리할 수 있지만 롱기스트 매치처럼 부정확한 정보 중 가장 비슷한 경로를 찾는 작업은 더 많으 리소스를 소모한다.

    라우팅, 스위칭 우선순위

    라우팅 테으블은 가장 좋은 경로 정보만 모아놓은 핵심정보이다. 일반적인 경로 정보를 모아놓은 포톨로지 테이블에서 좋은 경로 정보의 우선순위는 경로 정보를 받은 방법과 거리를 기준으로 정한다.
    3가지 경로 수집 방법 중 우선순위가 가장 높은 것은 라우터에 바로 연결된 네트워크이다. 다이렉트 커넥티드라고 불리는 이 네트워크 정보는 라우터에 바로 붙은 대역이여서 경로 선정 시 우선순위가 가장 높다.
    다음은 관리자가 목적지 네트워크에 대한 경로를 직접 지정하는 스태틱 라우팅이다.
    마지막으로 라우팅 프로토콜로부터 경로를 전달받은 네트워크이다. 이 경우, 로컬이나 고나리자가 지정한 스태틱 라우팅처럼 경로 정보를 직접 얻은 것이 아니라 다른 라우터를 통해 경로를 전달받기 때문에 우선수위가 낮다.
    기본적인 우선순위는 미리 정해져 있지만 필요에 따라 관리자가 우선순위를 조정해 라우팅 경로를 조정할 수 있다. 이런 우선순위를 AD(Administrative Distance)라고 부른다.
    <라우팅별 가중치 값(시스코 장비 기준) - AD>
    우선순위기본 디스턴스
    0Connected interface(다이렉트 커넥티드)
    1Static Route(스태틱 라우팅)
    20External BGP
    110OSPF
    120RIP
    200Internal BGP
    255Unknown
    패킷을 스위칭할 때는 롱기스트 프리픽스 매치 기법으로 우선순위를 정한다.
    <롱기스트 프리픽스 매치 예시를 위한 라우팅 설정>
    목적지 네트워크서브넷넥스트 홉
    10.10.10.0255.255.255.010.10.10.1
    10.10.0.0255.255.0.010.10.10.254
    10.10.10.100255.255.255.25510.10.10.2
    10.0.0.0255.0.0.010.10.10.1
    위의 라우팅 테이블을 예로 들면 통신하려는 목적지가 10.10.10.10이면 라우팅 테이블의 목적지 네트워크 중 10.10.10.100은 3번째 옥텟까지 동일하지만 목적지와 다른 정보이므로 제외되고 목적지와 가장 가까운 첫 번쨰 10.10.10.0/24 정보를 가장 좋은 정보로 선정한다.
    목적지가 10.10.10.100이면 세 번째 10.10.10.100 정보가 정확히 일치하므로 다을 정보보다 우선시 된다.
    라우터의 라우팅, 스위칭 역할을 하나로 묶어서 다시 설명하면 전체적인 우선순위는 다음과 같다.
    우선순위구분적용 방법
    1롱기스트 매치스위칭
    2AD(관리 거리)라우팅
    3코스트라우팅
    4부하 분산(ECMP)라우팅

    라우팅 설정 방법

    다이렉트 커넥티드

    라우터나 PC에 IP 주소, 서브넷 마스크를 입력하면 다이렉트 커넥티드 라우팅 테이블이 생성된다.
    라우팅 테이블을 확인해 목적지가 다이렉트 커넥티드라면 라우터는 L2통신(ARP 요청을 직접 보내는)으로 목적지에 도달한다. 목적지가 외부 네트워크인데 다이렉트 커넥티드 라우팅 테이블 정보만 있으면 외부 네트워크와 통신이 불가능하다.
    외부 네트워크로 통신하려면 다이렉트 커넥티드 외에 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 적절한 라우팅 정보가 있어야 한다.

    스태틱 라우팅

    우너격지 네트워크와 통신하려면 라우터에 직접 연결되지 않은 네트워크 정보를 입력해야 한다. 네트워크 정보를 쉽게 추가하고 경로를 직접 제어할 수 있는 가장 강력한 방법은 스태틱 라우팅이다. 다이렉트 커넥티드를 제외하고 라우팅 우선순위가 가장 높다.
    R1에서 20.20.20.0/24으로 통신하기 위한 스태틱 라우팅 설정은 다음과 같다.
    R1 라우터에 IP를 입력한 후 R1의 라우팅 테이블을 확인하면 10.10.10.0/24와 1.1.1.0/30 네트워크 정보만 존재한다. R2 라우터에 있는 네트워크인 20.20.20.0/24로 패킷을 보내고 싶어도 라우팅 정보가 없어 패킷이 버려진다.
    20.20.20.0/24 네트워크 정보는 R2 라우터에 있고 R1 라우터 입장에서 R2 라우터로 보내는 방법은 연결된 인터페이스인 1.1.1.2로 보내는 것이다. 이런 경로 설정 작업은 스태틱 라우팅을 통해 할 수 있다.

    다이나믹 라우팅

    네트워크가 몇 개 없는 간단한 네트워크 구조에서는 스태틱 라우팅으로 망을 유지하는 것이 가능하지만 일반적으로 IT 환경을 구축할 때는 SPoF를 없애기 위해 두 개 이상의 경로를 유지하는데 이 경우, 대채 경로에 대한 고민이 필요하다.
    대체 경로가 필요한 네트워크를 스태틱 라우팅만으로 구성하면 한 홉이 넘어간 네트워크 상태가 변경될 때 신속히 반응할 수 없다. 중간 경로에 네트워크 회선이 끊기거나 라우터에 장애가 발생하면 관리자가 이를 파악해 경로 정보를 수동으로 수정해야 하기 때문이다.
    위의 그림을 예로 들자면 R3와 R6 네트워크는 연결되는 경로가 한 개만 있는 SPoF 상태이다. R3와 R6 사이 링크가 다운되면 대체할 수 있는 경로가 없다.
    반면 R1관 R4의 연결은 그 사이의 네트워크가 다운되더라도 R2-R3-R5를 거쳐 R4로 돌아갈 수 있는 대체 경로를 가지고 있다.
    대체 경로로 인한 복잡한 라우팅 정보 외에도 관리해야 할 라우터와 네트워크가 많아지면 스태틱 라우팅으로 구성하고 관리하기 어렵다.
    다이나믹 라우팅 프로토콜을 사용하면 관리자의 직접적입 개입 없이 라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있다. 다이나믹 라우팅 뒤에 프로토콜이 붙는 것은 라우터끼리 자신들만의 프로토콜로 정보를 교환하기 때문이다.

    역할에 따른 분류

    일반적으로 라우팅 프로토콜은 유니캐스트 라이팅 프로토콜을 말한다. 인터넷에서는 AS(Autonomous System)라는 자율 시스템이 존재한다. SKT, KT, LGU+ 같은 인터넷 사업자가 한 개 이상의 AS를 운영한다. AS 내부에서 사용하는 라우팅 프로토콜을 IGP(Interior Gateway Protocol)라고 하고 AS 간 통신에 사용하는 라우팅 프로토콜을 ECP(Exterior Gateway Protocol)라고 한다.
  • IGP - AS 내에서 사용하는 라우팅 프로토콜
  • EGP - AS 간 통신에 사용하는 라우팅 프로토콜
  • 동작 원리에 따른 분류

  • 디스턴스 벡터 - 인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜
  • 링크 스테이트 - 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
  • 디스턴스 벡터는 인접한 라우터에서 경로 정보를 습득한다. 인접 라우터가 아닌 라우터의 정보는 직접 전달받는 것이 아니라 인접 라우터를 통해 간접적으로 한 단계 건너 받습니다.
  • 장점 - 인접 라우터가 이미 계싼한 결과물인 라우팅 테이블을 전달바고 계산하므로 라우팅 정보 처리에 많은 리소스가 필요없다.
  • 단점 - 인접 라우터만 직접 경로 정보를 교환하여 멀리 떨어진 라우터의 경로 정보를 얻는 데 많은 라우터를 거쳐야 하므로 모든 라우터 정보가 동기화되는데 많은 시간이 필요하다.
  • 링크 스테이트 라우팅 프로토콜은 라우터들에 연결된 링크 상태를 교환하는 라우팅 프로토콜이다. 링크 상태를 교환하므로 이미 최적의 경로를 연산한 결과물인 라우팅 테이블과 달리 직접적인 상태 정보를 받아볼 수 있다.
    라우팅 프로토콜을 총정리하면 다음과 같다.
    분류 방법분류설명
    역할EGP서로 다른 AS 간 정보교환용 라우팅 프로토콜. BGP가 여기 속한다.
    IGPAS 내부에서 동작하는 라우팅 프로토콜이다.
    -----------------------------------------------------------------------------------------------------------
    동작 원리디스턴스 벡터직접 연결된 장비가 보내준 정보를 기반으로 최적의 경로를 선정하는 라우팅 프로토콜로 ROP, GBP가 있다.
    링크 스테이트네트워크 망에 속한 장비가 보내준 정보를 기반으로 토폴로지 맵을 만들고 SPF 알고리즘을 이용해 최적의 경로를 선정한다.
    출처
    IT 엔지니어를 위한 네트워크 입문을 정리한 포스팅입니다.

    0개의 댓글