[Network] #13 라우팅과 라우팅 프로토콜
[혼자 공부하는 네트워크↗️], 컴퓨터 네트워킹: 하향식 접근 (제8판)을 바탕으로 정리한 글입니다.
- 저번 포스팅에서 데이터 링크 계층의 한계를 다룰 때 물리 계층과 데이터 링크 계층만으로 LAN을 넘어서 통신하기 어려운 이유 중 하나로 “다른 네트워크까지의 도달 경로를 파악하기 어렵기 때문” 이라는 이유를 꼽았다.
- 다른 네트워크까지의 도달 경로를 파악하기 위한 네트워크 장비로 “라우터(router)” 가 존재한다.
- 이번 포스팅에서는 네트워크 계층의 대표적인 장비인 라우터에 대해 자세히 알아보도록 하자!
1. 라우터: 네트워크 계층의 대표적인 장비
1.1 라우터와 라우팅
라우터(router) 란 라우팅을 수행하는 대표적인 장비이며, 라우팅(routing) 이란 패킷이 이동할 최적의 경로를 결정하는 것을 의미한다.
1.2 홉
네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있다.
- 패킷은 여러 대의 라우터를 깡충깡충 거치듯 수신지까지 이동할 수 있다.
-
홉(hop)
- 라우팅 도중 패킷이 호스트와 라우터 간에, 홉은 라우터와 라우터 간에 이동하는 한 과정을 의미한다.
- 간단히 말해서, 하나의 노드를 거치는 한 번의 깡총을 홉이라고 한다.
라우팅 과정(홉 수) 확인하는 방법
- 윈도우:
tracert www.google.com
- 리눅스나 맥OS:
traceroute www.google.com
1.3 데이터 평면과 제어 평면
1.3.1 데이터 평면 (Data Plane)
정의
- 데이터 평면은 네트워크 장치(e.g., 라우터, 스위치 등)에서 실제로 데이터를 처리하고 전달하는 역할을 담당
- 즉, 패킷 전달과 관련된 모든 작업이 이루어지는 영역.
역할
- 패킷 전달
- 데이터 평면은 네트워크 패킷을 수신하고, 해당 패킷을 적절한 경로로 전달
- 패킷 포워딩
- 네트워크 장치는 입력된 패킷의 헤더 정보를 분석하여, 해당 패킷을 목적지로 전달할 수 있도록 경로를 결정. 이 과정은 라우팅 테이블을 기반으로 하며, 실시간으로 이루어짐.
- 실시간 패킷 처리
- 데이터 평면은 패킷을 빠르고 실시간으로 처리하는 역할을 하므로 하드웨어 기반으로 동작
1.3.2 제어 평면 (Control Plane)
정의
- 제어 평면은 네트워크 장비가 어떻게 데이터를 처리할지 결정하는 부분으로, 데이터 평면이 처리할 경로와 규칙을 설정하는 역할
- 즉, 네트워크 장치의 “두뇌”와 같은 역할을 하며, 라우팅 프로토콜을 통해 라우팅 테이블을 구축하고 관리
역할
- 네트워크 정보 공유
- 제어 평면은 네트워크 장비들이 서로 통신하여 네트워크 정보를 공유하고, 이를 기반으로 라우팅 테이블이나 포워딩 테이블을 구성
- 라우팅 프로토콜 관리
- 제어 평면은 OSPF, BGP와 같은 라우팅 프로토콜을 사용하여 네트워크 동작을 관리하고, 패킷을 전송할 경로를 결정
- 경로 결정
- 제어 평면은 경로 계산과 라우팅 결정을 내리며, 네트워크 장비들이 선택할 경로를 제공
💡 즉, 데이터 평면에서는 패킷 전달을 빠르고 실시간으로 처리해야 하므로 하드웨어에서 처리되며, 제어 평면에서는 경로 계산, 라우팅 결정과 같은 복잡한 작업을 처리해야 하므로 소프트웨어에서 실행
2. 라우팅 테이블
2.1 라우팅을 수행하는 라우팅 테이블
그렇다면 라우터는 라우팅을 어떻게 수행할까?
- 라우팅의 핵심은 라우팅 테이블(routing table)이다.
- 라우팅 테이블이란 특정 수신지까지 도달하기 위한 정보를 명시한 표와 같은 정보이다.
- 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단한다.
- 라우팅 테이블이 만들어지는 방법과 프로토콜에 따라 라우팅은 여러가지 유형으로 분류될 수 있다.
2.2 라우팅 테이블에 포함된 정보
-
① 수신지 IP 주소와 서브넷 마스크
- 최종적으로 패킷을 전달할 대상
- 대부분의 라우팅 테이블에는 패킷의 최종 목적지에 해당하는 수신지 IP 주소와 서브넷 마스크가 명시된다.
-
② 다음 홉(next hop)
- 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
- 게이트웨이라고 명시되기도 한다.
-
③ 네트워크 인터페이스
- 패킷을 내보낼 통로
- 인터페이스(NIC) 이름이 직접 명시되거나 인터페이스에 대응하는 IP 주소가 명시된다.
- 즉, 라우터가 어려개의 인터페이스를 가질 수 있는 경우 어떤 인터페이스로 패킷을 내보내야하는지에 대한 정보이다.
-
④ 메트릭(metric)
- 해당 경로로 이동하는 데에 드는 비용
- 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호한다.
아래의 라우팅 테이블을 해석해보자.
- 수신지가
192.168.2.0/24
(호스트 IP 주소 범위192.168.2.1
~192.168.2.254
)인 패킷은 - eth0(인터페이스)를 통해
192.168.2.1
(게이트웨이)로 전송하라- 이때의 비용은 30이다
2.3 디폴트 라우트(default route)
라우팅 테이블에 경로가 없을 때 기본적으로 패킷을 내보낼 경로를 의미한다.
- 모든 IP 주소를 의미하는
0.0.0.0/0
으로 명시한다. - e.g., 수신지 IP 주소가
1.2.3.4
인 패킷을 받았다면: 디폴트 라우트, eth2를 통해192.168.0.1
로 전송
일반적으로 기본 게이트웨이 주소 = 디폴트 라우트
-
기본 게이트웨이란?
- 네트워크 외부로 나아가기 위한 첫 경로이다.
- 일반적으로 라우터/공유기 주소가 명시된다.
- 라우팅 테이블에 따로 경로가 등록되어있지 않은 패킷들은 기본적으로 기본 게이트웨이(라우터)에게 전달된다.
2.4 라우팅 테이블 확인하기
윈도우:
route print
맥OS, 리눅스:
netstat -rn
라우터 내부에 접속해 라우팅 테이블 조회하기
라우터(CISCO 라우터): show ip route
3. 라우팅의 분류
라우팅 테이블은 수동으로 만들 수도 있고, 자동으로 만들 수도 있다.
- 정적 라우팅과 동적 라우팅은 IP 주소를 할당하는 방법과 유사하다.
- 정적 라우팅: 수동으로 구성된 라우팅 테이블 항목을 통해 수행되는 라우팅
- 동적 라우팅: 자동으로 라우팅 테이블 항복을 만들고, 이를 이용하여 라우팅(프로토콜 기반)
정적 라우팅과 동적 라우팅에 대해 자세히 살펴보자.
3.1 정적 라우팅
사용자가 수동을 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅하는 방식이다.
e.g., 아래 사진들은 10.0.0.0/24
로 향하는 패킷을 192.168.1.1
게이트 웨이로 채워 넣는(여기로 전달하세요!) 정적 라우팅 명령어이다.
정적 라우팅의 단점
- 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅만으로는 관리가 힘들 수 있다.
- 입력 실수가 발생할 수 있다.(휴먼에러)
- 입력 실수가 없어도 라우팅 경로상에 예상치 못한 문제가 발생할 경우 경로 우회가 어렵다.(유연성 저하)
따라서 네트워크 규모가 큰 환경에서는 동적 라우팅을 사용하는 경우가 많다.
3.2 동적 라우팅
자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅을 하는 방식이다.
- 라우팅 프로토콜이 이용된다.
- 라우팅 프로토콜이란 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜이다.
동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있어 아래와 같은 장점이 존재한다.
- 라우팅 테이블의 항목을 수동으로 입력할 필요가 없다.
- 네트워크 경로 상에 문제가 발생했을 때 이를 우회할 수 있게 경로가 자동으로 갱신된다.
3.2.1 라우터들의 집단 네트워크, AS
AS(Autonomous System)이란, 라우터들의 집단으로 한 회사나 단체에서 관리하는 라우터 집단을 의미한다.
- 동적 라우팅과 라우팅 프로토콜을 이해하기 위한 배경 지식이다.
- AS마다 인터넷 상에서 고유한 AS번호 (ASN: Autonomous System Number)가 할당된다.
- AS 번호는 사설 IP 주소처럼 사설 AS 번호도 있지만, 일반적으로 “AS 번호”는 고유한 AS 번호를 지칭한다.
AS 가 라우터들의 집단이기 때문에, 한 AS 내에는 다수의 라우터가 존재할 수 있다.
- 라우터들은 AS 내부에서만 통신할 수도 있고, AS 외부와 통신할 수도 있다.
- AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 특별한 라우터 를이용한다.
- 이 특별한 라우터를 “AS 경계 라우터(ASBR; Autonomous System Boundary Router)” 라고 한다.
3.2.2 라우팅 프로토콜의 분류
라우팅 프로토콜이란, 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜이다.
-
라우팅 프로토콜의 종류
- IGP(Interior Gateway Protocol)
- AS 내부에서 수행 (e.g., RIP와 OSPF)
- AS 내부에서 최적의 경로를 찾기 위한 라우팅 프로토콜
- EGP(Exterior Gateway Protocol)
- AS 외부에서 수행 (e.g., BGP)
- AS 간의 최적의 경로를 찾기 위한 라우팅 프로토콜
- IGP(Interior Gateway Protocol)
3.2.3 대표적인 IGP: RIP와 OSPF
RIP와 OSPF 둘 다 AS 내부의 라우팅을 수행한다는 공통점이 있지만,
- RIP는 거리 벡터를 기반으로 최적의 경로를 선택하고,
- OSPF는 링크 상태를 기반으로 최적의 경로를 선택한다.
RIP: 거리 벡터 기반 라우팅 프로토콜
- “거리”는 패킷이 경유한 라우터의 수, 즉 홉의 수를 의미한다.
- 즉, 특정 수신지까지 도달하기 위해 “홉 수가 가장 적은 경로”를 최적의 경로라고 판단하는 라우팅 프로토콜이다.
- 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아진다.
- 주기적으로 인접 라우터끼리 경로 정보를 교환하게 되는데, 라우팅 테이블 갱신하며, 특정 수신지까지의 홉 수를 계산한다. (15홉 제한)
OSPF: 링크 상태(link state) 기반 라우팅 프로토콜
- 링크 상태 알고리즘을 사용하여 네트워크 상태 정보(대역폭, 지연시간)를 교환하고, Dijkstra 알고리즘으로 최단 경로를 계산한다.
- 대역폭 기반 메트릭을 사용하여 링크 비용을 계산한다. (대역폭이 높을수록 비용이 낮아짐)
- 홉 카운트 수 제한X -> 대규모 네트워크 적용 가능
- 네트워크의 링크 상태 정보(연결 관계, 비용 등)를 수집하여 링크 상태 데이터베이스(LSDB)에 저장한다.
- 모든 라우터는 동일한 링크 상태 데이터베이스(LSDB)를 유지한다.
- 계층적 인터네트워크 구조는 AS 단위로 구성된다.
- 링크 상태 변화 or 정기적으로 링크 상태 정보를 브로드캐스팅한다.
3.2.4 BGP (Border Gateway Protocol)
AS 간의 통신에서 사용되는 대표적인 프로토콜이다.
- 엄밀하게는 AS 간의 통신이 “가능한” 프로토콜이다.
- Path Vector 방식을 사용한다.
- BGP로 AS 내 라우터 간 통신도 가능하다
- eBGP(external) BGP - AS 간의 통신을 위한 BGP
- iBGP(internal) BGP - AS 내의 통신을 위한 BGP
eBGP는 피어링(peering) 이라는 과정을 거쳐야 한다.
- 피어링이란 다른 AS와의 BGP 연결을 유지하기 위해서 BGP 라우터끼리 피어가 되도록 연결하는 과정을 의미한다.
- 즉 eBGP를 기반으로 AS간의 통신이 이루어진다면, 각각의 AS 내에는 피어 관계를 맺은 BGP 라우터가 하나 이상 존재한다는 것을 시사한다.
BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많다.
- 경로 결정 과정에서 수신지 주소와 더불어 다양한 “속성”과 “정책”이 고려되기 떄문이다.
- BGP의 속성은 경로에 대한 부가 정보를 의미한다.
- AS-PATH
- NEXT-HOP
- LOCAL-PREF
- 정책이란
- AS 관리 주체에 따라 각기 다른 상이한 정책을 사용할 수 있는 것을 말한다.
- e.g., 특정 AS 우대 정책
- 특정 AS 차단 정책
- 성능 우선 정책
- …
BGP의 대표적인 속성
① AS-PATH 속성
- 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록을 의미한다.
- 메시지가 AS를 거칠 때마다 AS-PATH에는 거쳐 간 AS가 추가된다.
- eg., AS1에서 AS2 내의 특정 네트워크에 도달하는 경로는 크게 두 개의 경로
- AS1에서 곧장 AS2로 가는 경로엔 AS-PATH에는 - “AS2” 명시
- AS1에서 AS3을 거쳐 AS2에 도달하는 경로엔 AS-PATH에는 - “AS3 AS2”명시
- 이처럼 BGP는 RIP처럼 단순 “거리”가 아닌, 어디를 거쳐 어디로 이동하는지를 나타내는 “경로”를 고려한다.
- 이런 점에서 경로 벡터 라우팅 프로토콜의 일종이라고 부르기도 한다.
② NEXT-HOP 속성
- 홉, 다음으로 거칠 라우터의 IP 주소
- AS1 -> AS2 경로의 NEXT-HOP에는: 라우터 a의 IP 주소 명시
- AS1 -> AS3 -> AS2 경로의 NEXT-HOP에는: 라우터 b의 IP 주소 명시
③ LOCAL-PREF 속성
- LOCAL PREFerence의 약자, 지역 선호도
- AS 외부 경로 선택에 있어 AS 내부에서(local) 어떤 경로를 선호할지(preference)에 대한 척도를 의미한다.
- 일반적으로 AS-PATH나 NEXT-HOP 속성보다 우선시한다.
- LOCAL-PREF 값은 AS 관리 주체가 설정하는 정책의 영향을 받는다.
댓글남기기