[네트워크] 5. 라우터/L3 스위치: 3계층 장비
by 콰이엇고재성, 이상훈 저자님의 “IT 엔지니어를 위한 네트워크 입문” 책을 학습하고 정리한 글입니다.
0. 개요
📌 라우터 (Router)
패킷의 목적지 IP 주소를 확인하고 최적의 경로로 포워딩해주는 장비
1. 라우터의 동작 방식과 역할
라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 보낸다. 스위치와 반대로 라우터는 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.
1-1. 경로 지정
✍🏻 라우터의 역할
- 경로 정보를 얻는 역할
- 얻은 경로 정보를 확인하고 패킷을 포워딩하는 역할
✍🏻 경로를 얻는 방법
- IP 주소를 입력하며 자연스럽게 인접 네트워크 정보를 얻는 방법
- 관리자가 직접 경로 정보를 입력하는 방법
- 라우터끼리 서로 경로 정보를 자동으로 교환하는 방법
1-2. 브로드캐스트 컨트롤
- 라우터는 패킷을 원격지로 보내는 것을 목표로 개발되어 3계층에서 동작한다.
- 분명한 도착지 정보가 있을 때만 통신을 허락한다.
- 인터넷은 대부분 지정된 대역폭만 빌려 사용하므로 쓸모 없는 통신이 네트워크를 차지하는 것을 최대한 막으려고 노력한다.
⇒ 라우터의 기본 동작은 (1)멀티캐스트 정보를 습득하지 않고, (2)브로드캐스트 패킷을 전달하지 않는다.
1-3. 프로토콜 변환
- 서로 다른 프로토콜로 구성된 네트워크를 연결하는 역할
- 과거, LAN 기술이 WAN 기술로 변환하여 인터넷과 같이 원격지 네트워크와 통신할 수 있도록 하는 역할
2. 경로 지정 - 라우팅/스위칭
✍🏻 라우터가 패킷을 처리할 때 두 가지 작업
- 라우팅 : 경로 정보를 얻어 저장하는 역할
- 스위칭 : 정리된 경로 정보를 기반으로 패킷의 경로를 지정하는 역할
인터넷에 존재하는 주소와 경로는 매우 많고 점점 증가하고 있으며, 클래스리스 네트워크 전환 이후 경로 정보가 기존보다 훨씬 많아졌다. 라우터는 다양하고 많은 경로 정보를 얻을 수 있지만 원하는 목적지 정보와 정확히 일치하지 않는 경우가 더 많다. 라우터는 서브넷 단위로 라우팅 정보를 습득하고 라우팅 정보를 최적화하기 위해 서머리(Summary) 작업을 통해 여러 개의 서브넷 정보를 뭉쳐 전달한다. 그래서 라우터에 들어온 패킷의 목적지 주소와 라우터가 갖고 있는 라우팅 테이블 정보가 정확히 일치하지 않더라도 목적지에 가장 근접한 정보를 찾아 패킷을 포워딩해야 한다.
2-1. 라우팅 동작과 라우팅 테이블
현대 인터넷에서는 단말부터 목적지까지 경로를 모두 책임지지 않고 인접한 라우터까지만 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악한 후 패킷을 포워딩한다. 네트워크를 한 단계씩 뛰어 넘는다는 의미로 홉-바이-홉(Hop-by-Hop) 라우팅이라고 부르고 인접한 라우터를 넥스트 홉(Next Hop)이라고 부른다. 라우터는 최적의 넥스트 홉을 선택해 패킷을 전송하는 것이다.
✍🏻 넥스트 홉을 지정하는 세 가지 방법
- 다음 라우터의 IP를 지정하는 방법 (넥스트 홉 IP 주소)
- 라우터의 나가는 인터페이스를 지정하는 벙법
- 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법
⇒ 라우터의 나가는 인터페이스를 지정하는 방법은 상대방 넥스트 홉 라우터의 IP를 모르더라도 MAC 주소 정보를 알아낼 수 있을 때만 사용할 수 있다. (특수한 경우다)
라우터가 패킷을 어디로 포워딩할지 경로를 선택할 때는 출발지를 고려하지 않고, 목적지 주소와 라우팅 테이블을 비교해 어느 경로로 포워딩할지 결정한다.
✍🏻 라우팅 테이블에 저장하는 데이터
- 목적지 주소
- 넥스트 홉 IP 주소, 나가는 로컬 인터페이스(선택 가능)
✍🏻 루프가 없는 3계층 (Loop Free): TTL (Time to Live)
3계층 IP 헤더에는 TTL 필드가 있는데 패킷이 네트워크에 살아 있을 수 있는 시간(홉)을 제한한다. 인터넷 구간에서 쓸모 없는 패킷이 돌아다녀 대역폭을 낭비하는 것을 방지하기 위해 라우터는 주소가 불분명한 패킷을 버린다.
패킷이 영구적으로 사라지지 않는다면 라우팅 루프처럼 동일한 패킷이 핑퐁을 치거나 인터넷에 사라지지 않는 유령 패킷이 넘쳐날 것이다. 따라서 TTL이라는 수명 값을 가지고 있어 0이 되면 네트워크 장비에서 버려지게 된다. TTL은 실제 초와 같은 시간이 아니라 홉을 지칭하며 하나의 홉을 지날 때마다 1씩 줄어든다.
2-2. 라우팅
📌 라우팅 (Routing)
다양한 방법으로 경로 정보를 얻어 최적의 경로를 라우팅 테이블에 올려 유지하는 과정
- 다이렉트 커넥티드
- 스태틱 라우팅
- 다이나믹 라우팅
1. 다이렉트 커넥티드
라우터나 PC에서 IP 주소와 서브넷 마스크로 해당 네트워크에 대한 라우팅 테이블을 자동으로 만드는 경로 정보
- IP 주소를 입력하며 자연스럽게 인접 네트워크 정보를 얻는 방법
- 다이렉트 커넥티드로 생성되는 경로 정보는 인터페이스에서 IP를 설정하면 자동 생성되는 정보이므로, 정보를 강제로 지울 수 없고 해당 네트워크 설정을 삭제하거나 해당 네트워크 인터페이스가 비활성화 되어야만 자동으로 사라진다.
- 라우팅 테이블에서 connected로 표현된다.
2. 스태틱 라우팅
관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 것
- 관리자가 경로를 직접 지정하여 매우 직관적으로 설정, 관리할 수 있다.
- 다이렉트 커넥티드처럼 연결된 인터페이스 정보가 삭제되거나 비활성화되면 연관된 스태틱 라우팅 정보가 자동으로 삭제된다. 다만 물리 인터페이스가 아닌 논리 인터페이스는 물리 인터페이스가 비활성화 되더라도 함께 비활성화되지 않는 경우도 있어 라우팅 테이블에서 사라지지 않을 수 있다.
- 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 방법이다.
3. 다이나믹 라우팅
라우터끼리 서로 경로 정보를 자동으로 교환하는 방법
- 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다.
- 관리자의 개입 없이 라우터끼리의 정보 교환 만으로 장애를 인지하고 트래픽을 우회할 수 있어, 대부분의 네트워크에서 다이나믹 라우팅이 사용된다.
2-3. 스위칭
📌 스위칭
패킷이 들어와 라우팅 테이블을 참조하여 최적의 경로를 찾아 라우터 외부로 포워딩하는 작업
- 라우팅 테이블의 정보가 비슷하게 일치하거나 일치하지 않는 경우가 있어 여러 가지를 고려해야 한다.
- 목적지 주소가 완전히 일치하는 경로 정보가 없을 때 롱기스트 프리픽스 매치 기법을 이용해 가장 가까운 경로를 선택한다.
📌 롱기스트 프리픽스 매치 (LPM, Longest Prefix Match)
라우터가 패킷을 포워딩할 때 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘
- 라우터나 스위치에서 관리할 수 있는 라우팅 테이블을 LPM 테이블이라고 부르며 도입해야 할 장비가 관리할 수 있는 테이블 양으로 대략적인 성능을 확인할 수 있다.

- 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 로, 앞의 두 라우팅 정보보다 더 많은 네트워크 정보가 목적지와 매치되어 이 정보를 최선의 정보로 인식해 Eth 2 인터페이스 쪽으로 패킷을 내보내게 된다.
⇒ 패킷이 들어올 때마다 롱기스트 프리픽스 매치 작업을 수행하면 많은 리소스를 소모하게 된다.
따라서, 한 번 스위칭한 정보는 캐시에 저장하고 이후 패킷은 캐시를 먼저 확인한다.
- 단순히 목적지 IP만 캐시하는 경우
- 출발지/목적지 IP 모두 캐시하는 경우
- 포트 번호 정보까지 포함해 플로를 모두 캐시하는 경우
- 넥스트 홉 L2 정보까지 캐시하는 경우
2-4. 라우팅, 스위칭 우선순위
좋은 경로 정보의 우선순위는 경로 정보를 받은 방법과 거리를 기준으로 정한다.
- 다이렉트 커넥티드, 내가 갖고 있는 네트워크
- 스태틱 라우팅, 관리자가 경로를 직접 지정한 네트워크
- 다이나믹 라우팅, 경로를 전달받은 네트워크
필요에 따라 관리자가 우선순위를 조정해 라우팅 경로를 조정할 수 있다. 이런 우선순위를 AD(Administrative Distance, 관리 거리)라고 부르며 라우터 생산업체마다 AD 값이 조금씩 다르다.
경로 정보를 얻은 소스가 같아 가중치 값이 동일한 경우, 코스트 값으로 우선순위를 정한다. 코스트 값까지 동일한 경우 ECMP(Equal-Cost Multi-Path) 기능으로 동일한 코스트 값을 가진 경로 값 정보를 모두 활용해 트래픽을 분산한다. 코스트 값은 일종의 거리를 나타내는 값으로 라우팅 프로토콜마다 기준이 다르다. RIP는 홉수, OSPF는 대역폭, EIGRP는 다양한 값들을 연산해 나온 값으로 코스트를 지정한다.
✍🏻 라우팅 우선순위
- 롱기스트 매치
- AD (관리 거리)
- 코스트 (라우팅 프로토콜마다 기준이 다름)
- 부하 분산 (ECMP)
3. 라우팅 설정 방법
3-1. 다이렉트 커넥티드
라우터나 PC에 IP 주소, 서브넷 마스크를 입력하면 다이렉트 커넥티드 라우팅 테이블이 생성된다.
- 목적지가 외부 네트워크일 때 다이렉트 커넥티드 라우팅 테이블 정보만 있다면 외부 네트워크와 통신할 수 있다.
- 외부 네트워크와 통신하려면 스태틱 라우팅/다이나믹 라우팅에서 얻은 원격지 네트워크 라우팅 정보가 있어야 한다.
- 만약 다이렉트 커넥티드 정보를 잘못 입력하면 외부 네트워크와 통신할 수 없다.
3-2. 스태틱 라우팅
관리자는 스태틱 라우팅을 통해 네트워크 정보를 쉽게 추가하고 경로를 직접 제어할 수 있다.
✍🏻 라우팅 설정 문법
- ip route NETWORK NETMAST NEXTHOP [네트워크 장비: 시스코]
- route add -net NETWORK /Prefix gw NEXTHOP [서버 운영체제: 리눅스]
⇒ "목적지로 가려면 패킷을 넥스트 홉으로 보내야 한다" 의미를 가진 스태틱 라우팅 문법
3계층 장비인 라우터는 적절한 경로 정보가 없으면 패킷을 버린다. 네트워크 규모가 매우 커지거나 인터넷 연결을 해야할 때는 라우팅을 처리하는 데 어려움이 있다. 이렇게 많은 라우팅 정보를 처리하기 위해서는 일반적인 스위치, 라우터가 아니라 대용량의 인터넷 라우팅 전용 라우터가 필요하다. 이는 인터넷 사업자가 모든 인터넷 정보를 가진 대형 라우터를 운영하고 있어 우리가 인터넷을 사용하는 데 아무 문제가 없는 것이다.
📌 디폴트 라우팅 (Default Routing)
목적지 주소와 서브넷 마스크가 모두 0인 스태틱 라우팅
작은 네트워크 라우터에서 인터넷으로 라우팅할 때 모든 라우팅 정보를 가지는 것은 불가능하다. 이때 서브넷 마스크를 모두 0으로 만들면 IP 주소와 상관없이 연산 결과가 모두 0이므로 모든 네트워크 정보를 체크하지 않는다는 의미를 가진다. 이 의미를 확장하면 "모든 네트워크"라는 의미를 가지게 되어 인터넷으로 향하는 경로나 자신에게 경로 정보가 없을 때 디폴트 라우팅을 사용하게 된다.
3-3. 다이나믹 라우팅
일반적으로 IT 환경을 구축할 때 SPoF를 없애기 위해 두 개 이상의 경로를 유지하며 대체 경로에 대한 고민이 필요하다. 이때 스태틱 라우팅만으로 구성하면 한 홉이 넘어간 네트워크 상태가 변경될 때 신속히 대응할 수 없다. 이때 다이나믹 라우팅 프로토콜을 사용하면 관리자의 직접적인 개입 없이 라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있다.
✍🏻 다이나믹 라우팅 프로토콜 분류법
1. 역할에 따른 프로토콜 분류
일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말하고, 이를 분류하는 방법은 주로 사용하는 역할과 동작 원리에 따라 구분한다. 인터넷에는 AS(Autonomous System)이라는 자율 시스템이 존재한다. 하나의 AS는 하나의 조직이므로 내부에서는 자체적으로 규칙을 세워 운영할 수 있지만, 다른 AS와 연결하기 위해서는 내부와 다른 방법으로 정보를 전달한다.
📌 IGP (Interior Gateway Protocol)
AS 내에서 사용하는 라우팅 프로토콜
📌 EGP (Exterior Gateway Protocol)
AS 간 통신에 사용하는 라우팅 프로토콜
2. 동작 원리에 따른 분류
📌 디스턴스 벡터 (Distance vector)
인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜
- RIP, BGP
📌 링크 스테이트 (Link-state)
라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
- 링크 정보를 토폴로지 데이터베이스로 만든 후 SPF(Shortest Path First) 알고리즘을 이용해 최단 경로 트리를 만든다.
- 하지만 이런 작업이 부하로 작용할 수 있어, 리소스를 최적화하기 위해 네트워크를 에어리어(AREA) 단위로 분리하고, 분리된 에어리어 내에서만 링크 상태 정보를 교환한다.
- 에어리어 단위로 네트워크를 구분하고 확장한는 OSPF는 AREA0으로 불리는 Backbone AREA를 통해 모든 AREA가 연결된다.
- ABR(Area Border Router)은 Backbone AREA와 다른 AREA를 연결시켜주는 경계 라우터이다.
- ASBR(Autonomous System Border Router)은 OSPF가 아닌 다른 외부의 정보를 OSPF와 연결시켜주는 외곽 라우터이다.
📌 어드벤스드 디스턴스 벡터 (Advanced Distance Vector)
두 동작 원리의 장단점을 적절히 배합해 기능을 향상시킨 라우팅 프로토콜 (특정 회사가 만든 프로토콜)
- CISCO 개발 : IGRP, EIGRP
✍🏻 다이나믹 라우팅 활용 현황
최근에는 BGP(Border Gateway Protocol) 사용이 늘고 있다. BGP는 다양한 프로토콜 정보를 한꺼번에 교환할 수 있고 AS 외부 뿐만 아니라 내부에서도 사용할 수 있는 장점을 가지고 있다. 그리고 정책 기반 라우팅 프로토콜이므로 관리자의 의도대로 경로를 동적으로 변환할 수 있다. MP-BGP(MultiProtocol BGP)는 라우팅 테이블이 크거나 IPv4, IPv6 네트워크가 혼재되어 있거나 멀티테넌트 환경일 때 다양한 정보교환을 목적으로 사용한다.
참고자료
- 책 - IT 엔지니어를 위한 네트워크 입문 (고재성/이상훈, 2020년 10월)
'컴퓨터과학 > 네트워크' 카테고리의 다른 글
[네트워크] 7-1. NAT/PAT (0) | 2024.10.29 |
---|---|
[네트워크] 6. 로드밸런서/방화벽: 4계층 장비 (0) | 2024.10.24 |
[네트워크] 4. 스위치: 2계층 장비 (0) | 2024.10.21 |
[네트워크] 3. 네트워크 통신하기 (0) | 2024.10.17 |
[네트워크] 2. 네트워크 연결과 구성 요소 (0) | 2024.10.14 |
블로그의 정보
콰이엇의 개발기록
콰이엇