이번주는 네트워크 계층에 대한 내용을 공부하고, 관련 문제를 풀어 보았다.
1. IPv4 관련 문제
1.1. 네트워크 계층
1.2. IP(Internet Protocol)
2. 라우팅 프로토콜 관련 문제
2.1. 라우터
2.2. 라우팅 테이블
2.3. 라우팅 테이블 생성 방법
2.3.1. 정적 라우팅
2.3.2. 동적 라우팅
2.4. 라우팅 프로토콜
2.4.1. IGP
2.4.1.1. RIP
2.4.1.2. OSPF
2.4.2. EGP
2.4.2.1. BGP
3. 후기
1. IPv4 관련 문제
문제는 아래와 같다.
* IPv4의 대표적인 기능 두 가지를 골라 보세요.
1) 신뢰성 있는 전송
2) IP 주소 지정
3) IP 단편화
4) IP 주소 변환
정답은 2) IP 주소 지정, 3) IP 단편화이다.
여기서 IPv4는 네트워크 계층의 핵심 프로토콜인 IP의 버전 중 하나이다. 그래서 IPv4 뿐만 아니라 해당 단어에 관련된 배경지식부터 정리해보겠다.
1.1. 네트워크 계층
- 역할
= IP 주소를 이용해 송수신지 대상을 지정한다.
= 다른 네트워크에 이르는 경로를 결정하는 라우팅을 통해 다른 네트워크와 통신한다.
- 목적
= 물리 계층과 데이터 링크 계층만으로는 다른 네트워크의 도달 경로를 파악하기 어려움.
(물리 계층과 데이터 링크 계층에서는 LAN에 속한 호스트끼리 통신하지 않기 때문이다.)
(++ 라우팅 : 통신을 빠르게 주고받기 위해 패킷이 이동할 최적의 경로를 결정하는 것)
(++ 라우터 : 라우팅을 수행하는 장비)
= MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어려움.
(++ IP 주소 : 네트워크상의 호스트를 식별할 수 있게 해주는 숫자 주소. 호스트에 직접 할당이 가능해서 한 호스트가 복수의 IP 주소 가질 수 있음)
즉, 네트워크 계층에서 IP 주소로 수신지 주소를 설정하고, 수신지까지의 최적의 경로를 결정하는 라우팅이 이루어지기 때문에 다른 네트워크와의 통신을 위해서 네트워크 계층이 필수적이다.
1.2. IP(Internet Protocol)
- 정의
= 네트워크 계층의 가장 핵심적인 프로토콜.
(++ IP의 버전에는 IPv4, IPv6이 있는데 주로 IPv4를 사용한다.)
- 주소 형태(IPv4의 경우)
= 숫자당 8비트로 표현되어 0~255 범위 안에 있는 4개의 10진수로 표기된다.
(++ 옥텟 : IP 주소에서 점으로 구분된 10진수들)
ex) 192.168.1.1
- 기능
= IP 주소 지정 : IP 주소를 바탕으로 송수신 대상을 지정하는 것.
= IP 단편화 : 전송하고자 하는 패킷의 크기가 MTU보다 클 경우, 패킷을 MTU 크기 이하의 복수의 패킷으로 나누는 것. 나누어진 패킷은 수신지에 도착하면 다시 재조합된다.
(++ MTU : 한 번에 전송 가능한 IP 패킷의 최대 크기. IP 패킷의 헤더도 해당 MTU 크기에 포함된다.)
2. 라우팅 프로토콜 관련 문제
문제는 아래와 같다.
* 라우팅 프로토콜과 관련한 아래 설명을 읽고 옳은 것을 골라 보세요.
라우팅 프로토콜은 AS 내부에서 수행되는 (IGP, EGP, RIP, OSPF)와 AS 외부에서 수행되는 (IGP, EGP, RIP, OSPF)로 나뉩니다. (IGP, EGP, RIP, OSPF)는 대표적인 거리 벡터 라우팅 프로토콜이고, (IGP, EGP, RIP, OSPF)는 대표적인 링크 상태 라우팅 프로토콜입니다.
정답은 순서대로 IGP, EGP, RIP, OSPF이다. 다양한 영어 용어들이 많기 때문에 용어의 개념과 관련 지식들을 정리해보자.
2.1. 라우터
- 정의
= 라우팅(패킷이 이동할 최적 경로를 설정한 뒤 해당 경로로 패킷 이동)을 수행하는 장치.
(++ 홉 : 라우팅 도중 패킷이 호스트-라우터, 라우터-라우터 간 이동하는 하나의 과정.)
=> 라우팅 과정에서 패킷은 여러 홉을 거쳐 라우팅이 이루어진다.
(호스트 간 통신을 멀리 떨어져 있고, 현실적으로 한 번에 통신이 가능하도록 연결하기에는 어려움이 있기 때문)
2.2. 라우팅 테이블
- 정의
= 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보.
- 역할
= 라우터가 해당 정보를 참고해 수신지까지의 도달 경로를 판단.
- 명시되는 대표적인 정보
= 네트워크 인터페이스 : 패킷을 내보낼 통로. 인터페이스(NIC) 이름이 직접적으로 명시되거나 인터페이스에 대응하는 IP 주소 명시.
= 메트릭 : 해당 경로로 이동하기 위해 드는 비용. 메트릭이 낮은 경로가 선호된다.
= 수신지 IP 주소와 서브넷 마스크 : 최종적으로 패킷을 전달할 대상
= 다음 홉 : 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스. 게이트웨이와 동일.
대표적으로 네트워크 인터페이스, 메트릭이 명시된다.
++ 디폴트 라우트 : 라우팅 테이블에 없는 경로로 패킷을 내보낼 경우를 대비해 기본적으로 설정한 패킷을 내보낼 경로.
2.3. 라우팅 테이블 생성 방법
2.3.1. 정적 라우팅
- 정의
= 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅되는 방식.
2.3.2. 동적 라우팅
- 정의
= 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅하는 방식.
- 목적
= 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어날 경우 정적 라우팅만으로 관리가 어렵.
= 유저가 라우팅 테이블 항목 입력 시 오류가 생길 수 있음.
= 라우팅되는 경로 상 예상치 못한 문제가 생길 경우 우회해서 다른 경로로 이동하게 하기 위함.
(++ AS(Ausonomous System) : 동일한 라우팅 정책으로 운용되는 라우터들의 집단 네트워크. AS마다 고유한 AS번호(ASN)이 할당.)
(++ ASBR(Aunonomous System Boundary Router) : AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 특수한 라우터.)
2.4. 라우팅 프로토콜
라우팅 프로토콜을 통해 동적 라우팅 과정에서 어떻게 라우팅 테이블이 생성되는지 알아보겠다.
- 정의
= 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜.
- 종류
= AS를 기준으로 수행되는 위치에 따라 분류. (IGP, EGP)
2.4.1. IGP
- 정의
= 라우팅 프로토콜 중 AS 내부에서 수행되는 프로토콜.
- 종류
= 최적의 경로를 선정하는 과정에서 거리 벡터가 사용되는지, 링크 상태가 사용되는지에 따라 나눔. (RIP, OSPF)
2.4.1.1. RIP
- 정의
= 거리 벡터 기반의 라우팅 프로토콜.
= 거리를 기반으로 최적의 경로를 찾음.
(++ 거리 : 패킷이 경유한 라우터의 수(홉의 수))
- 특징
= 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신함으로써 수신지에 도달하기까지 홉 수를 알 수 있음.
= 홉 수가 적을수록 최적의 경로. (홉 수가 적을수록 라우팅 테이블의 메트릭 값도 작아짐.)
= 라우터 간 경로 정보를 주기적으로 교환하며 라우팅 테이블 갱신.
2.4.1.2. OSPF
- 정의
= 링크 상태 기반의 라우팅 프로토콜.
- 특징
= 링크 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스(LSDB)에 저장.
= 해당 데이터베이스를 기반으로 대역폭을 이용해 최적의 경로 선택.
= 대역폭이 높은 링크일수록 최적의 경로.
= 네트워크의 구성이 변경되었을 때 라우팅 테이블 갱신.
(네트워크 규모가 커진 경우 데이터베이스에 모든 정보를 저장하기 어려움
=> AS를 에어리어 단위로 나눈 후 번호를 부여하고, 구분된 에어리어 상에서 링크 상태를 공유. 에어리어는 ABR 라우터로 연결됨.)
++ 하이드리드 라우팅 프로토콜 : RIP와 OSPF 성격을 모두 띠는 라우팅 프로토콜.
2.4.2. EGP
- 정의
= 라우팅 프로토콜 중 AS 외부에서 수행되는 프로토콜.
2.4.2.1. BGP
- 정의
= AS 간 통신에서 사용되는 대표적인 프로토콜.
- 종류
= eBGP : AS 간의 통신을 위한 EGP
= iBGP : AS 내부의 통신을 위한 EGP
- AS 간 정보를 주고받기 위한 조건
= AS 내에서 eBGP를 사용하는 라우터가 하나 이상 존재해야 함.
= 또 다른 AS의 BGP 라우터와 연결되어야 함.
(BGP 라우터 간 BGP 메세지를 주고받음으로써 이뤄짐.)
(++ 피어 : BGP 메세지를 주고받도록 연결된 BGP 라우터.)
(++ 피어링 : 피어 관계가 되도록 BGP 라우터끼리 연결되는 과정)
++ 내부 피어 : 동일한 AS 내 피어
++ 외부 피어 : 다른 AS 내 피어
- 특징
= 최적의 경로를 결정하는 과정이 복잡하고 일정하지 않은 경우 많음.
(경로 결정 과정에서 수신지 주소와 더불어 다양한 속성, 정책이 고려되기 때문.)
= 경로를 결정하기 위한 추가적인 정보를 제공하기 위해 속성 사용함.
= AS 간 라우팅을 할 때 거치게 될 라우터의 수가 아닌 AS의 수 고려. (eBGF)
= BGP는 RIP처럼 수신지에 이르는 거리가 아닌 메세지가 거치는 곳과 이동하는 곳의 경로를 고려함. (eBGF)
(++ 메세지가 같은 경로를 무한히 반복하는 루프를 방지하기 위해 경로 고려.
자신의 경로가 AS-PATH에 포함될 경우 해당 메세지 폐기)
- 속성 종류
= AS-PATH : 메세지가 수신지에 이르는 과정에서 통과하는 AS들의 목록.
= NEXT-HOP : 다음 홉(다음 라우터)의 IP 주소.
= LOCAL-PREF : AS 외부 경로에 있어 AS 내부에서 어떤 경로를 선호할지에 대한 척도. 가장 우선시되는 속성.
3. 후기
네트워크 계층과 라우팅에 대한 기본적인 정보를 정리했는데, 공부할 내용이 굉장히 많았다. 책 내용 외에도 좀 더 찾아보면 좋을 것 같다.
3. 후기