Search
Duplicate

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

목차

0. Previous

라우터는 3계층에서 동작하는 여러 네트워크 장비의 대표격으로 이름처럼 경로를 지정해주는 장비다. 현대 네트워크 환경에선 인터넷을 통해 다양한 서비스를 제공받기 때문에 인터넷 연결을위한 원격지 통신이 매우 중요한데, 라우터는 이러한 원격지 통신에서 필수적인 장비이다.

참고 - 라우터인가 L3스위치인가

이전 챕터에서 배운 스위치는 대표적인 2계층 장비이다.
하지만, 3계층에서 동작하는 L3 스위치라 부르는 장비들도 많이 사용되고있다.
과거에는 라우터는 소프트웨어로 구현하고 스위치는 하드웨어로 구현하는 형태로 구분하거나 다양한 기능의 라우터와 패킷을 빨리 보내는데 최적화된 스위치로 구분했지만, 최근에는 기술의 발전으로 라우터와 L3 스위치를 구분하기 어렵다.
그렇기에 이번 챕터에서 다루는 내용은 라우터를 설명하지만 L3 스위치로도 모두 동일하게 적용된다.

1. 라우터의 동작 방식과 역할

우선 라우터는 대략적으로 다음과 같은 차례로 동작을 한다.
1.
경로 지정: 다양한 경로수집 후 최적의 경로를 라우팅 테이블에 저장한 뒤 패킷이 들어오면 도착지 IP주소를 라우팅 테이블과 비교해 최선의 경로로 패킷을 내보낸다.
2.
브로드캐스트 컨트롤: 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다.
3.
프로토콜 변환: 패킷 포워딩 과정에서 기존 2계층 헤더 정보를 제거 후 새로운 2계층 헤더를 만든다.
이제 이 동작 방식에 대해 조금 더 자세히 알아보자.

1.1 경로 지정

라우터는 패킷이 들어오면 패킷의 도착지 IP주소를 확인해서 경로를 지정해 패킷을 포워딩해줘야 한다. 그럼 여기서 중요한 점이 경로를 어떻게 지정해주는지에 대해서라는걸 알 수 있다.
IP주소는 3장에서 이미 언급했지만 네트워크 주소와 호스트 주소로 나뉜다. 그렇기에 로컬 네트워크와 원격지 네트워크 구분이 가능하고 이 네트워크 주소를 기반으로 경로를 찾을 수 있다.
라우터는 이 IP주소를 확인해 원격지에 있는 적절한 경로로 패킷을 포워딩한다.
그렇기에 라우터가 경로지정을 하기위해서는 우선 경로학습이 필요한데 그 방법은 다음과 같다.
IP 주소를 입력하며 자연스럽게 인접 네트워크 정보를 얻는 방법
관리자가 직접 경로 정보를 입력하는 방법
라우터끼리 서로 경로 정보를 자동으로 교환하는 방법
1.경로 정보 얻기 2. 얻은 경로 정보로 포워딩하기

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

라우터는 패킷을 원격지로 보내는 것이 목표이기에 3계층에서 동작하고 분명한 도착지 정보가 있을때만 통신을 허락한다.
라우터는 바로 연결되어 있는 네트워크 정보를 제외하고 경로 습득 설정을 하지 않으면 패킷을 포워딩 할 수 없다.
라우터는 기본적으로 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다.
⇒ 이 기능을 이용해 브로드 캐스트가 다른 네트워크로 전파되는 것을 막을 수 있다.
⇒ 이 기능을 브로드캐스트 컨트롤/멀티캐스트 컨트롤이라 한다.
네트워크에 브로드캐스트가 많이 발생하는 경우 라우터로 네트워크를 분리하면 브로드캐스트 네트워크를 분할해 네트워크 성능을 높힐 수 있다.

1.3 프로토콜 변환

라우터의 또 다른 역할은 서로 다른 프로토콜로 구성된 네트워크를 연결하는 것.
⇒ 이는 현재 대부분의 네트워크가 이더넷을 사용하면서 줄어든 역할이다.
라우터에 패킷이 들어오면 2계층까지의 헤더 정보를 벗기고 3계층 주소를 확인 후 2계층 헤더 정보를 새로 만들어 외부로 내보낸다.

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

위에서 짧게 경로 지정에 대해 언급을 했지만(↑) 라우터가 패킷을 처리할 때 다음 두가지를 수행한다.
경로 정보를 얻어 경로 정보를 정리하는 역할
정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할
인터넷에서 주소와 경로는 정말 꾸준히 많아지고 있는데 요즘에 들어서는 클래스리스(Classless) 네트워크로 전환된 후 같은 클래스에 있는 주소조차 서브네팅으로 분산되어 존재하기에 정보는 경로정보는 기존보다도 많아진 상황이다. 하지만 라우터는 이런 상황에서도 많은 경로 정보를 얻어 최적의 경로 정보인 라우팅 테이블을 유지해야 한다.
라우터는 서브넷 단위로 라우팅 정보를 습득 후 라우팅 정보를 최적화하기 위해 서머리(Summary) 작업을 통해 여러 서브넷 정보를 뭉쳐 전달한다. 그래서 라우터에 들어온 패킷의 목적지 주소와 라우터가 가지고 있는 라우팅 테이블 정보가 정확하게 일치하지 않더라도 많은 정보 중 목적지에 가장 유사한 정보를 찾아 패킷을 포워딩해야한다.
즉 정리하자면 다음과 같다.
라우터는 서브넷 단위로 라우팅 정보를 습득한다.
라우팅 테이블과 정보가 정확히 일치(Exact Match)하지 않더라도 가장 목적지에 유사한 정보를 찾아 패킷을 포워딩한다.

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

홉-바이-홉(Hop-by-Hop)과 넥스트 홉(Next Hop)

현재 출발점(단말)부터 도착점(단말) 까지 모든 경로를 한 번에 이동하는게 아니다.
인접한 라우터까지만 경로를 지정 후 인접 라우터에서 최적의 경로를 다시 파악해 라우터로 패킷을 포워딩한다. 이처럼 네트워크를 한 단계씩 뛰어넘는다는 의미로 홉-바이-홉(Hop-by-Hop)라우팅이라 부르고 이 때 인접한 라우터를 넥스트 홉(Next Hop)이라 부른다.
즉, 라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내준다.
홉-바이-홉 라우팅 기법을 사용한 인터넷
여기서 넥스트 홉을 지정할 때 일반적으로 세 가지 방법을 사용할 수 있다.
다음 라우터의 IP를 지정하는 방법( 넥스트 홉 IP 주소)
라우터의 나가는 인터페이스를 지정하는 방법
: 상대방 넥스트 홉 라우터의 IP주소를 몰라도 MAC주소 정보를 알아낼 수 있을 때만 사용.
라우터의 나가는 인터페이스과 다음 라우터의 IP를 동시에 지정하는 방법
: IP주소와 인터페이스를 동시에 사용할 땐 VLAN 인터페이스와 같은 논리적인 인터페이스를 사용할 수 있다.

라우팅 테이블

넥스트 홉을 지정하는 방식은 출력 인터페이스와 넥스트 홉 IP주소가 있다.
라우터는 출발지와 상관없이 목적지 주소와 라우팅 테이블을 비교해 포워딩 경로를 결정한다.
라우팅 테이블을 만들 땐 목적지 주소만 수집한다.
패킷이 들어오면 목적지 주소를 확인해 패킷을 넥스트 홉으로 포워딩한다.
라우팅 테이블에 저장하는 정보는 다음과 같다.
목적지 주소
넥스트 홉 IP주소, 나가는 로컬 인터페이스(선택 가능)

참고 - 루프가 없는 3계층: TTL(Time To Live)

3계층의 IP 헤더에는 TTL이라는 필드가 있다.
이 필드는 패킷이 네트워크에 살아있을 수 있는 시간(홉)을 제한한다.
인터넷 환경에서는 운영되던 사이트가 갑자기 없어지거나 라우팅 루프 현상이 발생해서 패킷이 사라지지 않고 핑퐁을 치면서 사라지지 않는 유령 패킷이 될 수 있는데, 이 TTL이라는 수명 값을 가지고 있어서 이 값이 0이 되면 네트워크 장비에서 버려지면서 루프를 막을 수 있다.
TTL은 실제 초와 같은 시간이 아니라 홉을 지칭하며 하나의 홉을 지날 때마다 TTL값이 1씩 줄어든다.

2.2 라우팅(라우터가 경로 정보를 얻는 방법)

경로 정보를 얻어 최적의 경로를 라우팅 테이블에 올려 유지하는 과정
라우터가 경로 정보를 얻는 방법은 다음과 같다.
1.
다이렉트 커넥티드
2.
스태틱 라우팅
3.
다이나믹 라우팅
이상 3가지 방법을 이용해 경로 정보 수집 및 최적 경로를 찾아 라우팅 테이블을 만든다.

다이렉트 커넥티드

IP주소를 입력할 때 사용된 IP주소와 서브넷 마스크로 해당 IP 주소가 속한 네트워크 주소 정보를 알 수 있다. 라우터나 PC에선 이 정보로 해당 네트워크에 대해 라우팅 테이블을 자동으로 만든다.
이러한 경로 정보를 다이렉트 커넥티드(Direct Connected)라 부른다.
해당 경로 정보는 인터페이스에 IP를 설정하면 자동 생성되는 정보이기에 정보를 강제로 지울 수 없고 해당 네트워크 설정을 삭제하거나 해당 네트워크 인터페이스가 비활성화되어야만 자동으로 사라진다.
다이렉트 커넥티드 - 라우터에서 connected로 표현된다.

스태틱 라우팅

관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직접 지정해 경로 정보를 입력하는 것을 스태틱 라우팅(Static Routing)이라 한다. 이 정보는 연결된 인터페이스 정보가 삭제되거나 비활성화되면 연관된 스태틱 라우팅 정보가 자동 삭제된다.
다만, 물리 인터페이스가 아닌 논리 인터페이스는 물리 인터페이스가 비활성화 되더라도 함께 비활성화되지 않는 경우도 있어 라우팅 테이블에서 사라지지 않을 수 있다.
그림을 보면 다이렉트 커넥티드로 얻은 정보를 제외하고 R1과 R2가 통신을 하기 위해선 서로의 넥스트 홉을 각자의 주소로 스태틱 라우팅을 설정해야 한다.
R1에서 R2의 20.20.20.20과 통신하려면 넥스트홉을 1.1.1.2로 설정해야 하는데, 네트워크는 양방향이다. 즉, 스태틱라우팅을 R2에서도 돌아올 R1의 정보를 스태틱 라우팅해서 추가해놔야한다. 물론 이 때 넥스트 홉은 1.1.1.1이다.
스태틱 라우팅

다이나믹 라우팅

스태틱 라우팅 방법은 관리자가 직접 작성을 해줄 수 있기에 직관적으로 관리가 가능하다.
하지만 변화가 크거나 규모가 큰 네트워크일 경우 스태틱 라우팅으로 관리하기는 몹시 힘들다.
스태틱 라우팅은 라우터 너머 다른 라우터의 상태 정보를 파악할 수 없기에 라우터 사이의 회선이나 장애가 발생하면 장애 파악 및 대체 경로로 패킷을 전송할 수 없다.
예를 들어, 다음과 같은 4개의 라우터가 연결되어 있다고 가정하자.
기존에는 R1에서 R4를 가기위한 Next Hop은 R2이고 R2에서 R4로 가는 경로라고 하자. (R1→R2→R4)그런데 R2-R4간에 경로에 장애가 발생할 경우 R2는 R4로 가는 경로가 장애로 인해 사라졌기 때문에 해당 패킷을 드롭할 것이다.
R1은 R4로 갈 수 있는 또 다른 경로가 있음에도 불구하고 이런 상황을 파악할 수 없어 계속해서 R2로 패킷을 포워딩 할 것이고 R2에서는 이 패킷을 드랍할 것이다.
다이나믹 라우팅은 이러한 스태틱 라우팅의 단점을 보완해준다.
라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다.
주기적으로 또는 상태 정보가 변경될 때 라우터끼리 경로 정보가 교환되기에 위와같이 특정 경로가 장애가 생겨 경로 정보가 사라지게 되더라도 이 상황을 인지해 대체 경로로 패킷을 포워딩할 수 있게 된다.
이처럼 관리자의 개입없이도 자동으로 라우터끼리 정보를 교환해 라우팅 테이블을 갱신하고 장애발생 대처가 가능하기 때문에 대부분의 네트워크에서 다이나믹 라우팅이 사용된다.
다이나믹 라우팅
위와같이 다이나믹 라우팅에선 자신이 광고할 네트워크를 선언해줘야 한다.
사실 다이나믹 라우팅도 여러 종류가 있으며 라우터에서 라우팅의 역할은 경로 정보를 얻는 것 뿐 아니라 다양한 경로 정보를 데이터베이스화하고 순위를 적절히 부여해 최선의 경로 정보만 수집해두는 것이다.

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

패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 외부로 포워딩 하는 작업
이 스위칭은 2계층의 스위치와 이름은 같지만 다른 용어이며 3계층 장비인 라우터가 패킷 경로를 지정해 보내는 작업을 일컫는 말이다.
패킷을 최적경로로 포워딩할때도 고려할 부분이 많다. 들어온 패킷의 목적지가 라우팅 테이블에 있는 정보와 완벽히 일치하지 않은 경우가 꽤나 생기기 때문이다.
라우팅 테이블과 패킷 스위칭
1.
10.1.1.9 IP가 목적인 패킷이 라우터로 들어옴
2.
라우터는 도착지 IP와 가장 가깝게 매치되는 경로 정보를 찾는다.
3.
완전히 일치하는 경로 정보는 없기에 롱기스트 프리픽스 매치(Longest Prefix Match) 기법을 이용해 갖고 있는 경로 정보 중 가장 가까운 경로를 선택한다.
라우팅 테이블과 도착지 정보가 매칭되는 정보는 10.0.0.0/8, 10.1.0.0/16, 10.1.1.0/24이다.
⇒ 10.0.0.0/8은 10.0.0.0 ~ 10.255.255.255 범위
⇒ 10.1.0.0/16은 10.1.0.0 ~ 10.1.255.255 범위
⇒ 10.1.1.0/24는 10.1.1.0 ~ 10.1.1.255 범위
10.1.2.0/24, 10.1.2.9/32는 세 번째 자리부터 매치되지 않기에 제외된다.
10.1.1.5/32도 마지막 옥텟 정보가 달라 제외된다.
4.
선택된 3개의 라우팅 정보 중 목적지에 가장 가까운 정보는 10.1.1.0/24이다.
5.
10.1.1.0/24를 가장 매칭되는 정보로 파악해 Eth 2 인터페이스 쪽으로 패킷을 포워딩한다.
이러한 과정은 라우터에 부하가 많은 작업이다 정확한 정보를 매치하는 경우에는 단순하게 처리가 가능하지만, 비슷한 경로를 찾는건 유사성 비교 작업을 해야 하기 때문에 더 많은 리소스를 소모한다. 그래서 라우터는 이렇게 부하가 많은 작업의 반복 작업을 줄여주는 기술을 채용하고있다.

캐싱

한 번 스위칭 작업을 수행했다면 수행 정보를 캐시에 저장하고 뒤에 들어오는 패킷은 라우팅 테이블을 확인하기전에 캐시를 먼저 확인한다.
이 방식이 효과적인 이유는 패킷 네트워크에서 데이터를 보내기 위해 출발지 IP, 도착지 IP, 포트 번호가 모두 동일한 곳으로 여러 패킷이 연속적으로 보내지기 때문이다. 즉, 같은 곳으로 여러 데이터가 들어갈때마다 최적 경로를 찾는 작업을 다시 수행하는것은 비효율적이기이 캐시를 통해 이를 해결한다.
그럼 캐시는 어느 수준까지할까?
단순히 목적지 IP만 캐시할수도 있고 출발지와 목적지 IP를 모두 캐시할수도 있고, 심지어 포트 번호 정보까지 포함해 플로를 모두 저장하거나 넥스트 홉 L2 정보까지 캐시해 스위칭 시간을 줄일수도 있다.

2.4 라우팅, 스위칭 우선순위

라우팅 테이블에 저장되는 경로 정보는 최적의 경로들을 모아놓은 핵심 정보다.
그래서 우선 일반적인 경로 정보를 모아놓은 토폴로지 테이블에서 좋은 경로 정보의 우선순위는 경로 정보를 받은 방법과 거리를 기준으로 정한다.
토폴로지 테이블 → 여러 가지 경로 정보 얻음 → 정보를 얻은 소스 기준으로 최적 정보 선정 → 라우팅 테이블
목적지 네트워크 정보가 동일한 서브넷을 사용하면 정보를 얻은 소스에 따라 가중치를 정한다.
이 가중치 값은 라우팅 정보의 분류와 마찮가지로 크게 3가지로 나뉜다.
내가 갖고 있는 네트워크(다이렉트 커넥티드) - 우선순위: 제일 높음
내가 경로를 직접 지정한 네트워크(스태틱 라우팅) - 우선순위: 중간
경로를 전달받은 네트워크(다이나믹 라우팅) - 우선순위: 낮음
또한 어떤 라우팅 프로토콜을 통해 경로 정보를 얻었는가에 따라 우선순위가 다르다.
기본적인 우선순위는 미리 정해져있지만 필요에 따라 관리자가 조정할 수 있다. 이런 우선순위를 AD(Administrative Distance, 관리 거리)라 하며 라우터 생산업체마다 AD값이 조금씩 다르다.
라우팅별 가중치 값(시스코 장비 기준) - AD는 다음과 같다.
우선순위기본 디스턴스0Connected Interface(다이렉트 커넥티드)1Static Rounte(스태틱 라우팅)20External BGP110OSPF115IS-IS120RIP200Internal BGP255Unknown\begin{array}{|c|c|}\hline \text{우선순위}&\text{기본 디스턴스}\\\hline \text{0}&\text{Connected Interface(다이렉트 커넥티드)}\\\hline \text{1}&\text{Static Rounte(스태틱 라우팅)}\\\hline \text{20}&\text{External BGP}\\\hline \text{110}&\text{OSPF}\\\hline \text{115}&\text{IS-IS}\\\hline \text{120}&\text{RIP}\\\hline \text{200}&\text{Internal BGP}\\\hline \text{255}&\text{Unknown}\\\hline \end{array}
만약 경로 정보를 얻은 소스가 같아 가중치가 동일하면 코스트(Cost)값으로 우선순위를 정한다.
코스트 값도 동일하면 ECMP(Equal-Cost, Multi-Path)기능으로 트래픽을 분산한다.
코스트 값은 일종의 거리를 나타내는 값으로 라우팅 프로토콜마다 기준이 다르다.
RIP은 흡수, OSPF는 대역폭(Bandwidth), EIGRP는 다양한 값들을 연산해 나온 값으로 코스트를 지정한다.

우선순위를 정리하면

라우터의 라우팅, 스위칭 역할들을 여럿 소개했는데 이를 모두 합쳐 다시 한 번 전체적인 우선순위를 정리하면 다음과 같다.
우선순위구분적용 방법1롱기스트 매치스위칭2AD(관리 거리)라우팅3코스트라우팅4부하 분산(ECMP)라우팅\begin{array}{|c|c|c|}\hline \text{우선순위}&\text{구분}&\text{적용 방법}\\\hline \text{1}&\text{롱기스트 매치}&\text{스위칭}\\\hline \text{2}&\text{AD(관리 거리)}&\text{라우팅}\\\hline \text{3}&\text{코스트}&\text{라우팅}\\\hline \text{4}&\text{부하 분산(ECMP)}&\text{라우팅}\\\hline \end{array}

3. 라우팅 설정 방법

위에서 라우터가 경로를 얻을수 있는 방법 3가지(다이렉트 커텍티드, 스태틱 라우팅, 다이나믹 라우팅)에 대해 간단하게 소개를 했었다. 이번 챕터에서는 이 3가지 방법에 대해 조금 더 자세히 라우팅 우선순위와 각각의 라우팅 설정 방법에 대해 알아보자.

3.1 다이렉트 커넥티드

다이렉트 커넥티드 - 라우터에서 connected로 표현된다.
이미 위에서 설명했지만 라우터나 PC에 IP주소, 서브넷 마스크를 입력하면 다이렉트 커넥티드 라우팅 테이블이 생성된다.
목적지가 다이렉트 커넥티드라면 라우터는 L2(ARP 요청을 직접 보내는)으로 목적지에 도달한다.
외부 네트워크와 통신하려면 다이렉트 커넥티드 외에 스태틱 라우팅이나 다이나믹 라우팅에서 얻은 원격지 네트워크에 대한 적절한 라우팅 정보가 필요하다.
반대로 외부 네트워크 주소가 있더라도 다이렉트 커넥티드 정보가 잘못되면 통신이 불가능하다.
⇒ 외부 네트워크로 나가는 첫 번쨰 길목이 다이렉트 커넥티드이기 때문이다.

3.2 스태틱 라우팅

원격지 네트워크와 통신하기위해 관리자가 직접 라우터에 연결되지않은 원격지 네트워크 정보를 입력하는 것을 스태틱 라우팅이라 한다.
다이렉트 커넥티드 다음으로 우선순위가 높다.
스태틱 라우팅 정보를 기입할 때의 문법 체계는 대략 다음과 같다.
문법 체계 구조
목적지(네트워크/호스트-서브넷/서브넷 마스크)로 가려면 패킷을 넥스트 홉으로 보내야 한다.
네트워크 장비가 시스코인 경우
ip route NETWORK NETMAST NEXTHOP
서버 운영체제가 리눅스인 경우
route add -net NETWORK /Prefix gw NEXTHOP
다음은 스태틱 라우팅 문법을 이용해서 스태틱 라우팅을 하는 그림이다.
R1에서 20.20.20.0/24로 통신하기 위한 스태틱 라우팅 설정
위와같이 스태틱 라우팅을 입력하면 R1 라우터의 라우팅 테이블은 다음과 같다.
라우팅 테이블

디폴트 라우팅

스태틱 라우팅을 통해 라우팅 테이블에 직접 값을 추가하면서 회사내 제한된 경로 정보를 처리하는것은 문제가 없다. 하지만 네트워크의 규모가 매우 커지거나 인터넷 연결을 해야 하는 경우 라우팅을 스태틱라우팅으로 처리하는건 불가능에 가깝다.
(인터넷에 21년 7월 기준으로 라우팅 정보가 88만개를 넘었다.)
어짜피 인터넷 정보를 모두 가지는 전용 라우터는 인터넷 사업자(KT, SK, LGU+, ...)가 운영하기에 회선을 임대해서 사용하는 비교적 규모가 작은 일반적 회사같은 경우 모든 인터넷 경로 정보를 받아 처리한은 것은 부적절하다.
이 경우 스태틱 라우팅을 확장한 디폴트 라우팅을 사용하면 문제를 쉽게 해결할 수 있다.
디폴트 라우팅은 다음과 같이 목적지 주소의 서브넷 마스크가 모두 0인 스태틱 라우팅을 의미한다.
ip route 0.0.0.0 0.0.0.0 1.1.1.1
서브넷 마스크를 이요해 네트워크를 뽑아내는데 2진수 and 연산을 사용하는데 서브넷 마스크 1은 체크, 0은 IP주소와 상관없이 연산 결과가 모두 0이므로 체크하지 않았다는 의미이다.
여기서 모든 네트워크 정보를 체크하지 않는 다는 의미를 확장하면 모든 네트워크 라는 의미가 되버리는데 디폴트 라우팅은 이런 점을 이용한 방법입니다.
현재 인터넷으로 향하는 경로나 자신에게 경로 정보가 없는 경우 마지막 대체 경로로 디폴트 라우팅을 사용한다. 디폴트 라우팅과 디폴트 게이트웨이는 같은 의미로 서버에서 디폴트 게이트웨이를 설정하면 서버의 라우팅 테이블에 디폴트 라우팅이 생성된다.

참고

네트워크 장비에서 디폴트 라우팅과 디폴트 게이트웨이를 구분하기도 하는데,
디폴트 라우팅은 라우팅 능력이 있는 장비(패킷을 특정 경로로 포워딩하는 능력)에서 사용하고 디폴트 게이트웨이는 이런 능력이 없는 장비에서 사용한다.
즉, 라우터도 라우팅이 불가능하게 설정하면 디폴트 게이트웨이 명령을 이용해야 인터넷에 접속할 수 있다.

3.3 다이나믹 라우팅

라우터끼리 정보를 교환해 경로 정보를 최신으로 유지할 수 있는 다이나믹 라우터는 RIP, OSPF, IS-IS IGRP, EIGRP, BGP같은 다양한 라우팅 프로토콜이 있는데 최근에는 OSPF와 BGP프로토콜이 주로 사용된다.
다이나믹 라우팅 프로토콜 분류

역할에 따른 분류

일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말한다.
이를 분류하는 방법은 여러가지있는데 보통 역할과 동작 원리에 따라 구분한다. 인터넷에는 AS(Autonomous System)라는 자율 시스템이 있는데 SKT, KT, LGU+같은 인터넷 사업자가 한 개 이상의 AS를 운영한다. AS내부에서 사용하는 라우팅 프로토콜을 IGP(Interio Gateway Protocol)라고 하고 AS간 통신에 사용하는 라우팅 프로토콜을 EGP(Exterior Gateway Protocol)이라 한다.
IGP : AS내에서 사용하는 라우팅 프로토콜
EGP: AS간 통신에 사용하는 라우팅 프로토콜
인터넷 자율시스템인 AS
EGP는 AS간의 연결에서 사용하는 라우팅 프로토콜로 정책이 더 중요하다고 했다.
즉, AS1에서 AS4로 통신하기 위해 거쳐야 하는 AS들도 무작정 최단거리로 갈 수만은 없다.
인터넷 사업자 간의 통신에도 비용을 지불해야 하기에 사이의 있는 여러 AS들 중에서는 허용을 막아야하는 곳 도 있을 수 있다. 그래서 EGP는 이런 통신을 정책적으로 조정할 수 있는 기능이 있어야 한다.

동작 원리에 따른 분류

IGP 라우팅 프로토콜은 동작 원리에 따라 크게 디스턴스 벡터와 링크 스테이트로 나뉜다.
(두 동작의 장단점을 합친 어드밴스드 디스턴스 벡터가 있지만 특정회사에서 만든 라우팅 프로토콜로 최근에는 잘 사용되지 않는다.)
디스턴스 벡터 ⇒ 인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜
⇒ RIP, BGP가 있다.
⇒ 인접하지 않은 라우터의 정보는 인접 라우터를 통해 간접적으로 한 단계 건너 받는다.
⇒ 이미 계산이 된 라우팅 테이블을 전달받기에 라우팅 정보 처리에 많은 리소스가 필요 없다.
⇒ 간단한 네트워크를 구축하는데 많이 사용되었다.
⇒ 멀리 떨어진 라우터의 경로정보를 얻는데 많은 라우터를 거쳐야 하기에 모든 라우터 정보가 동기화 하는데 오래걸린다.
→ 네트워크 변경이 발생하면 정확한 정보 파악에 오랜 시간이 걸릴 수 있다.
링크 스테이트 ⇒ 라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜
⇒ 직접적인 상태 정보를 받아 볼 수 있다.
⇒ 과정은 다음과 같다.
1.
링크 상태교환으로 정보 수집
2.
토폴로지 데이터베이스를 만들어 링크 상태를 저장
3.
SPF(Shortest Path First)알고리즘으로 최단 경로 트리를 만든다.
4.
해당 경로 트리를 작성해 라우팅 테이블을 만든다.
⇒ 전체 네트워크의 링크 상태 정보를 받아 각자 처리하기에 전체 네트워크 맵을 그리고 경로 변화를 파악하는데 유리하다.
⇒ 계산하는 과정에 많은 리소스를 소비한다.
⇒ (Important) 자원을 최적화 하기 위해 네트워크를 에어리어(AREA)단위로 분리하고 분리된 에어리어 내에서만 링크 상태 정보를 교환한다. (OSPF)
⇒ 에어리어 내부에서는 전체 링크 정보를 공유하지만 외부로는 가공된 라우팅 테이블을 전달한다.
⇒ 이러한 OSPF에서 Area0으로 불리는 Backbone AREA를 통해 모든 AREA가 연결된다.
⇒ AREA간이나 OSPF 외부 네트워크와의 연결을 위해서는 특별한 라우터를 이용해야 한다.
1.
ABR(Area Border Router) : Backbone AREA와 다른 AREA를 연결시켜주는 경계 라우터
2.
ASBR(Autonomous System Border Router):
:OSPF가 아닌 다른 외부의 정보를 OSPF와 연결시켜주는 외곽 라우터

정리

인터넷에는 AS(Autonomous System)이라는 자율 시스템이 있다.
역할별 분류는 다음과 같다.
AS내부에서 사용하는 라우팅 프로토콜을 IGP(Interior Gateway Protocol)이라 한다.
AS간의 통신에서 사용하는 라우팅 프로토콜을 EGP(Exterior Gateway Protocol)이라 한다.
동작원리별 분류는 다음과 같다.
인접한 라우터에서 경로 정보(계산된 라우팅 테이블)를 받는 라우팅 프로토콜을 디스턴스 벡터(Distance Vector)라 부른다.
네트워크 망에 속한 장비가 보내준 링크 상태 정보를 기반으로 네트워크 맵을 라우팅 프로토콜을 링크 스테이트(Link-State)라 한다.
대부분 IGP로 OSPF(링크 스테이트 라우팅 프로토콜)와 BGP가 많이 사용된다.
EGP로는 대부분 BGP(디스턴스 벡터 프로토콜)가 사용된다.

다음 챕터로

이전 챕터로