일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 하프오픈
- 방화벽
- ospf
- Packet Tracer
- gns3
- ansible playbook
- BPDU
- campus network
- Network Design
- 패킷 필터링
- 비대칭 경로
- 프로그래머스
- 네트워크
- junos os
- 연결선 수
- port aggregation protocol
- STP
- 헬스 체크
- SQL
- eigrp
- pvst+
- LACP
- 티스토리챌린지
- vlan
- 네이티브 vlan
- 오블완
- Cisco
- pagp
- 네트워크 설계
- Ansible
- Today
- Total
Doctor Pepper
[네트워크 계층] 라우팅(Routing) (2) 본문
1. 라우터가 경로 정보를 얻는 방법
라우터는 네트워크 경로 정보를 수집하고 최적의 경로를 선정하여 라우팅 테이블을 생성한다. 이 과정은 직접 연결(Direct Connected), 정적 라우팅(Static Routing), 동적 라우팅(Dynamic Routing)의 세 가지 방법으로 이루어진다.
- 직접 연결(Direct Connected)
라우터의 인터페이스에 IP 주소와 서브넷 마스크를 설정하면, 해당 인터페이스와 연결된 네트워크 정보가 자동으로 라우팅 테이블에 추가된다. 이를 직접 연결 경로라고 한다.
- IP 주소 설정 시 자동 생성되며, 별도로 삭제할 수 없다.
- 네트워크 설정을 삭제하거나 해당 인터페이스가 비활성화되면 자동으로 제거된다.
- R1: 1.1.1.0/30, 10.10.10.0/24 네트워크 연결
- R2: 1.1.1.0/30, 20.20.20.0/24 네트워크 연결
- 이 정보는 모두 직접 연결 경로에서 학습된 것이다.
- 정적 라우팅(Static Routing)
정적 라우팅은 관리자가 목적지 네트워크와 다음 홉(Next Hop)을 수동으로 지정하여 경로 정보를 설정하는 방식이다.
- 경로를 명확히 정의할 수 있어 설정과 관리가 간단하다.
- 인터페이스가 삭제되거나 비활성화되면 관련 정적 라우팅 정보도 자동으로 제거된다.
- 논리 인터페이스는 물리적 인터페이스 비활성화 시에도 유지될 수 있다.
- R1: 10.10.10.0/24와 1.1.1.0/30 네트워크 정보를 학습하지만, 20.20.20.0/24 네트워크 정보는 없습니다.
- 따라서, R1에서 20.20.20.0/24로 가는 정적 경로를 1.1.1.2로 설정해야 합니다.
- R2: 20.20.20.0/24와 1.1.1.0/30 정보를 학습하지만, R1의 10.10.10.0/24 네트워크 정보는 없습니다.
- R2에서도 10.10.10.0/24로의 정적 경로를 1.1.1.1로 추가해야 합니다.
- 동적 라우팅(Dynamic Routing)
동적 라우팅은 라우터들이 서로 경로 정보와 링크 상태를 주기적으로 교환하여 네트워크를 자동으로 학습하는 방식이다.
- 네트워크 변경 상황에 실시간으로 적응하여 장애를 감지하고 대체 경로로 트래픽을 우회한다.
- 관리자가 직접 개입하지 않아도 경로 정보를 자동으로 업데이트한다.
- 복잡한 대규모 네트워크에 적합하다.
- 문제점 : 정적 라우팅과 달리 설정이 복잡하며, 라우팅 프로토콜을 적절히 구성해야 한다.
- R1: 40.40.40.0/24 네트워크로 가는 경로를 R2의 1.1.1.2로 설정했으나, R2와 R4 사이의 링크가 다운되면 경로를 변경하지 못하고 패킷을 드롭하게 된다.
- 동적 라우팅은 이러한 상황을 감지하고 자동으로 새로운 경로를 설정한다.
- 라우팅 정보와 테이블 구조
라우터는 경로 정보를 체계적으로 관리하기 위해 두 가지 테이블을 사용한다.
- 토폴로지 테이블(Topology Table): 수집된 원시 경로 정보를 저장한다.
- 라우팅 테이블(Routing Table): 최적의 경로만을 선정하여 저장한다.
라우터는 라우팅 테이블을 참고하여 패킷을 목적지까지 전달하며, 경로 설정은 홉-바이-홉(Hop-by-Hop) 방식으로 이루어진다. 이는 패킷을 다음 라우터로 전달한 뒤, 다음 라우터가 다시 최적의 경로를 찾아 패킷을 전달하는 방식이다.
2. 라우터의 스위칭과 경로 설정 원리
라우터는 경로 정보를 수집하고, 이를 분석하여 최적의 경로를 라우팅 테이블에 유지한다. 이를 통해 패킷이 들어올 때 최적 경로로 빠르게 전달(포워딩)할 수 있다. 이러한 과정을 라우팅이라고 하며, 라우팅 테이블을 참조하여 최적의 경로로 패킷을 외부로 전달하는 작업을 스위칭이라고 한다. 스위칭은 3계층 장비인 라우터에서 수행하는 작업으로, 2계층의 스위치에서 사용하는 용어와는 다르다.
- 최적의 경로를 선택하는 방식
패킷의 목적지 정보와 라우팅 테이블을 비교할 때, 완전히 일치하는 경우뿐만 아니라 부분적으로 일치하거나 일치하지 않는 경우도 발생할 수 있다. 라우터는 이러한 상황에서 롱기스트 프리픽스 매치(Longest Prefix Match) 기법을 사용하여 가장 긴 네트워크 프리픽스를 가진 경로를 선택한다.
- 예시: 목적지가 10.1.1.9인 패킷
라우팅 테이블에 다음과 같은 경로 정보가 있다고 가정한다.
- 10.0.0.0/8
- 10.1.0.0/16
- 10.1.1.0/24
이 중, 목적지와 가장 긴 프리픽스를 공유하는 경로는 10.1.1.0/24이다. 따라서 라우터는 이 경로를 선택하여 해당 패킷을 Eth 2 인터페이스를 통해 전송한다.
※ 참고 : 롱기스트 프리픽스 매치 라우터가 패킷을 포워딩할 때 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘을 롱기스트 프리픽스 매치나 맥시멈 프리픽스 렝스 매치(Maximum Prefix Length Match)라고 한다. 라우터가 이런 작업을 수행하는 것을 롱기스트 프리픽스 매칭(Longest Prefix Matching) 또는 롱기스트 매치 룰(Longest Match Rule)이라고 부르기도 한다. LPM이라는 용어는 다른 데서도 찾아볼 수 있는데 라우터나 스위치에서 관리할 수 있는 라우팅 테이블을 LPM 테이블(Longest Prefix Match Table)이라고 부르며 도입해야 할 장비가 관리할 수 있는 테이블 양으로 대략적인 성능을 확인할 수 있다. 이런 내용은 장비 데이터시트(Datasheet)에서 확인할 수 있다. |
- 스위칭 작업의 리소스 소모
라우터는 패킷을 처리할 때, 이그잭트 매치(Exact Match) 방식으로 정확히 일치하는 경로를 찾는 경우는 단순하지만, 롱기스트 프리픽스 매치와 같이 비슷한 경로를 찾는 작업은 더 많은 리소스를 소모한다. 라우터가 들어오는 모든 패킷에 대해 이러한 복잡한 작업을 반복하면 시스템 부하가 커질 수 있다.
- 캐시 활용을 통한 효율화
이러한 부하를 줄이기 위해 라우터는 한 번 수행한 스위칭 작업의 결과를 캐시에 저장한다. 이후 동일한 목적지의 패킷이 들어오면, 라우팅 테이블 대신 캐시를 먼저 확인하여 시간을 절약한다.
- 캐시 저장 방식
캐시에 저장하는 정보는 다음과 같이 다양하다.
- 목적지 IP만 캐시
- 출발지 IP와 목적지 IP 모두 캐시
- 출발지 IP, 목적지 IP, 포트 번호를 포함한 플로우 정보까지 저장
- 다음 홉의 2계층(L2) 정보까지 포함하여 스위칭 시간을 추가로 단축
이러한 캐시 활용은 데이터베이스 부하를 줄이는 메모리 캐시 기술(예: Redis)과 유사한 원리로 작동한다.
3. 라우팅, 스위칭 우선 순위
라우팅 테이블은 최적의 경로 정보를 모아 놓은 핵심 데이터 구조이다. 경로 정보는 라우터가 패킷을 효율적으로 전달하기 위해 중요하며, 이를 수집하고 관리하는 방식에 따라 우선순위가 정해진다.
- 라우팅 정보 수집 방식과 우선순위
경로 정보는 다음 세 가지 방법으로 수집되며, 우선순위는 이들 중 어떤 방법으로 수집되었는지에 따라 결정된다.
직접 연결 (Direct Connected) | 라우터와 바로 연결된 네트워크. 우선순위: 가장 높음 (AD 값: 0). |
정적 라우팅 (Static Route) | 관리자가 직접 지정한 경로. 우선순위: 두 번째 (AD 값: 1). |
동적 라우팅 (Dynamic Route) | 라우팅 프로토콜을 통해 다른 라우터로부터 전달받은 경로. 우선순위: 세 번째 (AD 값: 라우팅 프로토콜에 따라 다름). |
- 동적 라우팅의 세부 우선순위
동적 라우팅에서는 라우팅 프로토콜에 따라 관리 거리(Administrative Distance, AD) 값이 다르다. 기본 AD 값은 다음과 같다:
우선 순위 | 기본 거리 |
0 | 직접 연결(Direct Connected) |
1 | 정적 라우팅(Static Route) |
20 | External BGP |
110 | OSPF |
115 | IS-IS |
120 | RIP |
200 | Internal BGP |
255 | Unknown |
관리자는 필요에 따라 AD 값을 조정하여 라우팅 우선순위를 변경할 수 있다.
- 동일한 AD 값일 경우 우선순위
만약 경로 정보의 AD 값이 동일하다면, 비용(Cost) 값으로 우선순위를 결정한다.
- RIP: 홉 수 (경로를 거치는 라우터 수).
- OSPF: 대역폭(Bandwidth).
- EIGRP: 대역폭, 지연 시간 등을 종합 계산.
비용 값마저 동일하다면, ECMP(Equal-Cost Multi-Path) 기능을 활용하여 여러 경로로 트래픽을 분산한다.
- 스위칭 과정의 우선순위
스위칭은 목적지와 가장 적합한 경로를 찾는 과정에서 롱기스트 프리픽스 매치(Longest Prefix Match) 알고리즘을 사용한다. 이는 목적지 IP와 라우팅 테이블의 경로 정보 중 가장 많은 비트가 일치하는 경로를 선택한다.
목적지 네트워크 | 서브넷 | 다음 홉 |
10.10.10.0 | 255.255.255.0 | 10.10.10.1 |
10.10.0.0. | 255.255.0.0 | 10.10.10.254 |
10.10.10.100 | 255.255.255.255 | 10.10.10.2 |
10.0.0.0 | 255.0.0.0. | 10.10.10.1 |
- 목적지: 10.10.10.10 → 10.10.10.0/24이 가장 적합.
- 목적지: 10.10.10.100 → 정확히 일치하는 10.10.10.100/32가 우선.
- 라우터의 우선순위 통합
라우팅과 스위칭에서의 우선순위를 하나로 묶으면 다음과 같다.
우선순위 | 구분 | 적용 방법 |
1 | 롱기스트 매치 | 스위칭 |
2 | AD(거리 관리) | 라우팅 |
3 | 비용 | 라우팅 |
4 | 부하 분산(ECMP) | 라우팅 |
- 라우팅 정보 업데이트
기존 라우팅 테이블에 입력된 정보보다 우선순위가 높은 경로를 추가하려면, 다음 방법을 사용한다.
- 롱기스트 프리픽스 매치: 기존 경로보다 더 많은 비트를 매치.
- AD 값 변경: 정적 라우팅 또는 동적 라우팅에서 관리 거리 조정.
이렇게 하면 라우터는 새로운 경로를 더 좋은 경로로 인식하고 패킷 전송 시 이를 우선적으로 사용한다.
4. 직접 연결 라우팅
- 특징 : 라우터가 직접 연결된 네트워크에 대해 자동으로 라우팅 정보를 생성합니다.
- L2 통신 방식 : 목적지가 직접 연결된 네트워크라면 ARP 요청을 통해 통신 가능.
- 제한사항 :
- 외부 네트워크와 통신하려면 추가 라우팅 정보(정적 또는 동적)가 필요.
- IP 주소나 서브넷 마스크를 잘못 설정하면 직접 연결 정보가 잘못 입력되어 외부 통신이 차단될 수 있음.
5. 정적 라우팅
네트워크 관리자가 수동으로 라우팅 정보를 입력하여 원격지 네트워크로의 경로를 설정.
장점 | 경로를 명확히 제어 가능. 소규모 네트워크에서 안정적으로 사용 가능. |
문제점 | 네트워크가 복잡하거나 인터넷 연결 시 관리가 어려워짐 |
- 구문 예시
ip route NETWORK NETMAST NEXTHOP route add -net NETWORK /Prefix gw NEXTHOP |
[네트워크 장비 : 시스코] [서버 운영 체제: 리눅스] |
- 정적 라우팅 예시
- R1 라우터에서 R2 네트워크(20.20.20.0/24)로의 경로 설정 : ip route 20.20.20.0 255.255.255.0 1.1.1.2
- R1 라우터의 라우팅 테이블 결과
20.20.20.0/24, ubest/mbest: 1/0 *via 1.1.1.2, [1/0], 1y18w, static 1.1.1.0/30, ubest/mbest: 1/0, attached *via 1.1.1.1, Eth0/0, [0/0], 43w2d, direct 1.1.1.1/32, ubest/mbest: 1/0, attached *via 1.1.1.1, Eth0/0, [0/0], 43w2d, local |
- 디폴트 라우팅
모든 목적지 주소를 특정 경로(일반적으로 인터넷 사업자의 네트워크)로 보내기 위한 정적 라우팅 방식.
필요성 | 인터넷의 모든 경로 정보를 처리하기에는 일반적인 라우터의 용량이 부족. 인터넷 사업자(ISP)의 대형 라우터가 모든 인터넷 경로 정보를 보유하며 처리. |
장점 | 간단한 설정으로 모든 외부 트래픽을 ISP로 전송 가능 |
- 구문 예시
- ip route 0.0.0.0 0.0.0.0 NEXTHOP
- 효율적 명령어 구성 : 전체 인터넷 경로를 하나의 디폴트 라우팅으로 축약
ip route 0.0.0.0 0.0.0.0 1.1.1.1 |
- 정적 라우팅과 디폴트 라우팅 비교
정적 라우팅 | 디폴트 라우팅 | |
용도 | 득정 네트워크로의 경로 설정 | 모든 외부 트래픽을 특정 경로로 전송 |
관리 복잡도 | 네트궈으가 커질수록 설정 복잡 | 설정 간단 |
적용 범위 | 제한된 내부 네트워크 | 인터넷과 같은 광범위한 외부 네트워 |
6. 동적 라우팅
- 동적 라우팅 필요성
정적 라우팅의 한계 | 네트워크가 단순할 때는 적합하지만, 복잡한 네트워크 환경에서는 경로 변경 시 관리자가 직접 경로를 수정해야 함. 단일 경로(SPoF) 문제 발생 시 대체 경로가 없어 네트워크가 끊길 위험이 있음. |
복잡한 라우팅 관리 | 대체 경로를 설정하려면 여러 네트워크에 복잡한 라우팅 정보를 수동으로 입력해야 하며, 규모가 커질수록 관리 부담이 증가. 중간 네트워크 장애를 자동으로 탐지하고 복구할 수 있는 방법이 필요. |
- 동적 라우팅 프로토콜 특징
자동 경로 업데이트 | 라우터가 주기적으로 정보를 교환하며 최적의 경로를 자동으로 설정 및 유지. 네트워크 장애 발생 시 대체 경로를 자동으로 탐색. |
프로토콜 기반 경로 교환 | 라우터 간 자체 프로토콜을 사용하여 경로 정보를 교환. 네트워크 변경 사항을 실시간으로 반영. |
- 주요 동적 라우팅 프로토콜
유니캐스트 라우팅 프로토콜 |
단일 목적지로의 경로 정보를 교환: - RIP (Routing Information Protocol): 초기 프로토콜, 소규모 네트워크에 적합. - OSPF (Open Shortest Path First): 대규모 네트워크에서 주로 사용. 링크 상태 기반. - BGP (Border Gateway Protocol): 자율 시스템 간 경로 교환, 인터넷 백본 네트워크에 필수. - IS-IS, IGRP, EIGRP: 다양한 환경에서 사용되는 프로토콜. |
멀티캐스트 라우팅 프로토콜 |
멀티캐스트 데이터를 효율적으로 전송: - DVMRP (Distance Vector Multicast Routing Protocol): 초기 멀티캐스트 라우팅 프로토콜. - PIM (Protocol Independent Multicast): 대규모 멀티캐스트 네트워크에 적합. |
- 동적 라우팅 장점
- 관리자의 수동 개입 최소화.
- 네트워크 장애 시 빠른 복구.
- 대규모 네트워크에서도 효율적인 관리 가능.
- 변화하는 네트워크 환경에 유연하게 적응.
7. 동적 라우팅의 분류
- 역할에 따른 분류
동적 라우팅 프로토콜은 주로 유니캐스트 라우팅 프로토콜을 의미하며, 이를 역할과 동작 원리에 따라 분류할 수 있다. 인터넷에는 AS(Autonomous System, 자율 시스템)이 존재하며, AS는 주로 하나의 조직에서 운영한다. 예를 들어, SKT, KT, LG U+ 같은 인터넷 사업자는 각각 하나 이상의 AS를 관리한다.
IGP | AS 내에서 사용하는 라우팅 프로토콜 효율적인 네트워크 연결을 목표로 함 |
EGP | AS 간 통신에 사용하는 라우팅 프로토콜 조직 간의 정책과 제약 사항을 우선시함 |
- 동작 원리에 따른 분류
IGP 라우팅 프로토콜은 거리 벡터(Distance Vector)와 링크 상태(Link-State) 방식으로 나눌 수 있다. 두 방식의 장단점을 결합한 어드밴스드 거리 벡터(Advanced Distance Vector)도 있지만, 최근에는 잘 사용되지 않는다.
거리 벡터 라우팅 프로토콜 |
인접 라우터에서 경로 정보를 전달받아 라우팅 테이블을 생성 처리 속도는 빠르지만, 전체 네트워크 정보를 파악하는 데 시간이 오래 걸림 예시: RIP, BGP - Cisco의 IGRP, EIGRP는 거리 벡터 방식의 단점을 보완한 프로토콜 |
링크 상태 라우팅 프로토콜 |
라우터 간의 링크 상태 정보를 교환하고 네트워크 맵을 생성 SPF(Shortest Path First) 알고리즘을 통해 최단 경로를 계산 네트워크 변화에 민감하지만, 리소스를 많이 소모 예시: OSPF - OSPF는 네트워크를 Area 단위로 나누어 효율적으로 관리 - Backbone Area (Area 0): 모든 Area를 연결 - ABR(Area Border Router): Backbone과 다른 Area 연결 - ASBR(Autonomous System Border Router): 외부 네트워크 연결 |
- 동적 라우팅 정리
분류 방법 | 분류 | 설명 |
역할 | EGP | 서로 다른 AS 간 정보교환용 라우팅 프로토콜(BGP) |
IGP | AS 내부에서 동작하는 라우팅 프로토콜(RIP, EIGRP, OSPF, IS-IS 등) | |
동작 원리 | 거리 벡터 | 직접 연결된 장비가 보내준 정보를 기반으로 최적의 경로를 선정하는 라우팅 프로토콜(RIP, BGP) |
Advanced 거리 벡터 | 거리 벡터 보다 다양한 경로 선정을 위한 요소가 있으며 직접 연결된 장비를 지난 장비까지 고려해 경로를 선정할 수 있음 | |
링크 상태 | 네트워크 망에 속한 장비가 보내준 정보를 기반으로 토폴로지 맵을 만들고 SPF 알고리즘을 이용해 죄적의 경로 선정(OSPF, IS-IS) |
'네트워크 > 네트워크 계층' 카테고리의 다른 글
[네트워크 계층] 라우팅(Routing) (3) (2) | 2024.12.04 |
---|---|
[네트워크 계층] ICMP(Internet Contral Metssage Protocol) (1) | 2024.12.04 |
[네트워크 계층] 3계층 네트워크 구성 (1) | 2024.11.11 |
[네트워크 계층] 인터넷 프로토콜(Internet Protocol, IP) (3) | 2024.11.06 |
[네트워크 계층] VLSM(Variable-length subnet mask) (2) | 2024.10.19 |