[네트워크] 라우터 / L3 스위치

2022. 5. 25. 18:26TIL💡/Network

라우터(Router)는 3계층에서 동작하는 여러 네트워크 장비의 대표격으로 그 이름처럼 겨올를 지정해주는 장비이다.

라우터에 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로 정보를 이용해 패킷을 최적의 경로로 포워딩한다.

 

라우터의 동작 방식과 역할

라우터는 다양한 경로 정보를 수집해 최적의 경로를 라우팅 테이블에 저장한 후 패킷이 라우터로 들어오려면 도착지 IP 주소와 라우팅 테이블을 비교해 최선의 경로로 패킷을 내보낸다. 스위치와 반대로 라우터는 들어온 패킷의 목적지 주소가 라우팅 테이블에 없으면 패킷을 버린다. 라우터는 패킷 포워딩 과정에서 기존 2계층 헤더 정보를 제거한 후 새로운 2계층 헤더를 만들어낸다.

 

라우터의 동작 방식

- 경로 지정

- 브로드캐스트 컨트롤

- 프로토콜 변환

 

경로 지정

라우터의 가장 중요한 역할은 경로 지정이다. 경로 정보를 모아 라우팅 테이블을 만들고 패킷이 라우터로 들어오면 패킷의 도착지 IP 주소를 확인해 경로를 지정하고 패킷을 포워딩한다. 

 

IP 주소는 네트워크 주소와 호스트 주소로 나뉜 계층 구조를 기반으로 설계되어 로컬 네트워크와 원격지 네트워크를 구분할 수 있고 네트워크 주소를 기반으로 경로를 찾아갈 수 있다. 라우터는 이 IP 주소를 확인해 원격지에 있는 적절한 경로로 패킷을 포워딩한다.

 

라우터는 경로를 지정해 패킷을 포워딩하는 역할을 두 가지로 구분해 수행한다.

1) 경로 정보를 얻는 역할2) 얻은 경로 정보를 확인하고 패킷을 포워딩하는 역할이다.

라우터는 자신이 얻은 경로 정보에 포함되는 패킷만 포워딩하므로 정확한 목적지 경로를 얻는 것이 매우 중요하다.

 

다양한 방법으로 경로 정보를 얻을 수 있다.

 

1) IP 주소를 입력하면서 자연스럽게 인접 네트워크 정보를 얻는 방법

2) 관리자가 직접 경로 정보를 입력하는 방법

3) 라우터끼리 서로 경로 정보를 자동으로 교환하는 방법

 

라우터의 가장 중요한 역할은 1. 경로 정보 얻기. 2. 얻은 경로 정보로 패킷을 포워딩하기다.

 

 

브로드캐스트 컨트롤

스위치는 패킷의 도착지 주소를 모르면 어딘가에 존재할지 모를 장비와의 통신을 위해 플러딩해 패킷을 모든 포트에 전송한다.

반면, 라우터는 패킷을 원격지로 보내는 것을 목표로 개발되어 3계층에서 동작하고 분명한 도착지 정보가 있을 때만 통신을 허락한다. 

 

라우터는 바로 연결되어 있는 네트워크 정보를 제외하고 경로 습득 설정을 하지 않으면 패킷을 포워딩할 수 없다.

 

프로토콜 변환

라우터의 또 다른 역할은 서로 다른 프로토콜로 구성된 네트워크를 연결하는 것이다. 현대 네트워크는 이더넷으로 수렴되므로 이 역할이 많이 줄었지만 과거에는(현재도 일부) LAN에서 프로토콜과 WAN에서 사용하는 프로토콜이 전혀 다른, 완전히 구분된 공간이었다. LAN은 다수 컴퓨터가 함께 통신하는 데 초점을 맞추었고 WAN은 원거리 통신이 목적이었다. LAN 기술이 WAN은 원거리 통신이 목적이었다.

LAN 기술이 WAN 기술로 변환되어야만 인터넷과 같이 원격지 네트워크와의 통신이 가능했고 이 역할을 라우터가 담당했다.

 

라우터는 3계층에서 동작하는 장비이므로 3계층 주소 정보(IP 주소)를 확인하고 그 정보를 기반으로 동작한다.

라우터에 패킷이 들어오면 2계층까지의 헤더 정보를 벗겨내고 3계층 주소를 확인한 후 2계층 헤더 정보를 새로 만들어 외부로 내보낸다.

그래서 라우터에 들어올 때의 패킷 2계층 헤더 정보와 나갈 때 패킷 2계층 헤더 정보가 다르다.

 

경로 지정

라우터가 패킷을 처리할 때는 크게 두 가지 작업을 수행한다.

- 경로 정보를 얻어 경로 정보를 정리하는 역할

- 정리된 경로 정보를 기반으로 패킷을 포워딩하는 역할

 

라우터는 자신이 분명히 알고 있는 주소가 아닌 목적지를 가진 패킷이 들어오면 해당 패킷을 버리므로 패킷이 들어오기 전에 경로 정보를 충분히 수집하고 있어야 라우터가 정상적으로 동작한다. 인터넷에 존재하는 주소와 경로는 매우 많고 점점 늘고 있다. 클래스리스 네트워크로 전환된 후에는 같은 클래스에 있는 주소조차 서브네팅된 상태로 분산되어 존재하므로 경로 정보가 기존보다 훨씬 많아졌다. 라우터는 이런 복잡하고 많은 경로 정보를 얻어 최적의 경로 정보인 라우팅 테이블을 적절히 유지해야 한다.

 

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

현대 인터넷에서는 단말부터 목적지까지의 경로를 모두 책임지는 것이 아니라 인접한 라우터까지만 경로를 지정하면 인접 라우터에서 최적의 경로를 다시 파악한 후 라우터로 패킷을 포워딩한다.

네트워크를 한 단계씩 뛰어넘는다는 의미로 이 기법을 홉-바이-홉(Hop by Hop) 라우팅이라고 부르고 인접한 라우터를 넥스트 홉이라고 부른다. 라우터는 패킷이 목적지로 가는 전체 경로를 파악하지 않고 최적의 넥스트 홉을 선택해 보내준다.

 

넥스트 홉을 지정하는 일반적인 방법

✔︎ 다음 라우터의 IP를 지정하는 방법(넥스트 홉 IP 주소)(아래는 특수한 경우)

✔︎ 라우터의 나가는 인터페이스를 지정하는 방법

✔︎ 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법

 

라우터에서 넥스트 홉을 지정할 때는 일반적으로 상대방 라우터의 인터페이스 IP 주소를 지정하는 방법을 사용한다. 특수한 경우에만 라우터의 나가는 인터페이스를 지정하는 방법을 쓸 수 있는데 상대방 넥스트 홉 라우터의 IP를 모르더라도 MAC 주소를 알아낼 수 있을 때만 사용할 수 있다.

 

인터페이스를 설정할 때는 라우터의 나가는 물리 인터페이스를 지정하는 것이 일반적이지만 IP 주소와 인터페이스를 동시에 사용할 때는 VLAN 인터페이스와 같은 논리적인 인터페이스를 사용할 수 있다.

 

라우터가 패킷을 어디로 포워딩할지 경로를 선택할 때는 출발지를 고려하지 않는다. 출발지와 상관없이 목적지 주소와 라우팅 테이블을 비교해 어느 경로로 포워딩할지 결정한다. 그래서 라우팅 테이블을 만들 때는 목적지 정보만 수집하고 패킷이 들어오면 목적지 주소를 확인해 패킷을 넥스트 홉으로 포워딩한다.

 

라우팅

라우터가 경로 정보를 얻는 방법은 매우 다양하지만 다음 3가지 방법으로 크게 구분할 수 있다.

 

1. 다이렉트 커넥티드(내가 갖고 있는 네트워크)

2. 스태틱 라우팅(내가 경로를 직접 지정한 네트워크)

3. 다이나믹 라우팅()

 

📌 다이나믹 커넥티드

IP 주소를 입력할 때 사용된 IP 주소와 서브넷 마스크로 해당 IP 주소가 속한 네트워크 주소 정보를 알 수 있다. 라우터나 PC는 이 정보로 해당 네트워크에 대한 라우팅 테이블을 자동으로 만든다.

 

📌 스태틱 라우팅

관리자가 목적지 네트워크와 넥스트홉을 라우터에 직접 지정해 경로 정보를 입력하는 것

스태틱 라우팅은 관리자가 경로를 직접 지정하므로 라우팅 정보를 매우 직관적으로 설정, 관리할 수 있다.

다만 물리 인터페이스가 아닌 논리 인터페이스는 물리 인터페이스가 비활성화되더라도 함께 비활성화되지 않는 경우도 있어 라우팅 테이블에서 사라지지 않을 수 있다.

 

많은 라우팅 정보를 처리하기 위해서는 일반적인 라우터, 스위치가 아니라 대용량의 인터넷 라우팅 전용 라우터가 필요하다. 인터넷 정보를 모두 가질 수 있는 전용 라우터는 KT, SK Broadband, LGU+ 같은 인터넷 사업자가 필요하다.(ISP - Internet Service Provider)

인터넷 사업자가 모든 인터넷 정보를 보유한 대형 라우터를 운영하고 있어 우리가 인터넷을 사용하는 데 아무 문제가 없는 것이다.

 

하지만 일반적인 회사에서 운영하는 라우터는 인터넷의 모든 라우팅 정보를 가질 만큼 크지 않으며 대부분 인터넷 사업자로부터 회선을 임대해 사용하는 만큼 모든 인터넷 경로 정보를 받아 처리하는 것은 부적절하다. 이런 경우 스태틱 라우팅을 확장한 디폴트 라우팅을 사용하면 문제를 쉽게 해결할 수 있다.

 

디폴트 라우팅이란, 목적지 서브넷 마스크가 모두 0인 스태틱 라우팅이다. 이러면 서브넷 마스크를 이용한 연산결과가 모두 0이므로 모든 네트워크 정보를 체크하지 않는다는 의미로, 모든 네트워크를 지칭하게 된다. 결국 경로를 정하지 못한 모든 네트워크들을 임의로 정한 곳으로 보낸다는 의미이다.

 

ex) ip route 0.0.0.0 0.0.0.0 1.1.1.1

 

📌 다이나믹 라우팅

스태틱 라우팅의 단점

스태틱 라우팅은 관리자가 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 좋은 방법이지만 큰 네트워크는 스태틱 라우팅만으로는 관리가 어렵다. 스태틱 라우팅은 라우터 너머의 다른 라우터의 상태 정보를 파악할 수 없어 라우터 사이의 회선이나 라우터에 장애가 발생하면 장애 상황을 파악하고 대체 경로로 패킷을 보낼 수 없기 때문이다.

 

→ SPoF(Single Point of Failure)를 없애기 위해 대체 경로를 설정할 때 유용

 

다이나믹 라우팅은 스태틱 라우팅의 이런 단점을 보완해준다. 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다. 주기적으로 또는 상태 정보가 변경될 때 라우터끼리 경로 정보가 교환되므로 라우터를 연결하는 회선이나 라우터 자체에 장애가 발생하면 이 상황을 인지해 대체 경로로 패킷을 포워딩할 수 있다. 관리자의 개입 없이 라우터끼리의 정보교환만으로 장애를 인지하고 트래픽을 우회할 수 있으므로 대부분의 네트워크에서 다이나믹 라우팅이 사용된다. 다이나믹 라우팅 뒤에 프로토콜이 붙는 것은 라우터끼리 자신들만의 프로토콜로 정보를 교환하기 때문이다. 주기적으로나 특별한 변화가 있으면 경로 정보를 교환하므로 중간 경로에 문제가 발생하더라도 대체 경로를 찾는 작업이 자동으로 수행된다. 다이나믹 라우팅 프로토콜은 네트워크나 주변 기술의 변화에 맞추어 다양한 라우팅 프로토콜이 사용되어 왔다.

 

RIP, OSPF, IS-IS, EIGRP, BGP와 같은 다양한 라우팅 프로토콜이 있지만 최근에는 OSPF와 BGP 프로토콜이 주로 사용된다.

 

라우팅 프로토콜은 일반적으로 IGP, EGP를 포괄하는 유니캐스트를 지칭하나 사실 멀티캐스트 라우팅도 있다.(DVMRP, MOSPF...)

 

역할에 따른 분류

일반적으로 라우팅 프로토콜은 유니캐스트 라우팅 프로토콜을 말한다. 유니캐스트 라우팅 프로토콜을 분류하는 방법은 다양한데 주로 사용하는 역할과 동작 원리에 따라 구분한다. 

 

📌 역할에 따른 분류

인터넷에는 AS(Autonomous System)라는 자율 시스템이 존재한다. SKT, KT, LGU+ 같은 인터넷 사업자가 한 개 이상의 AS를 운영한다. AS 내부에서 사용하는 라우팅 프로토콜을 IGP(Interior Gateway Protocol), AS 간 통신에 사용하는 라우팅 프로토콜을 EGP(Exterior Gateway Protocol)라고 한다.

 

하나의 AS는 하나의 조직이므로 AS 내부에서는 자체적으로 규칙을 세워 운영할 수 있지만 다른 AS와 연결하기 위해서는 내부와 다른 방법으로 정보를 전달해야 한다. AS 내부의 연결은 효율성이 중요하지만 다른 AS와의 연결에서는 효율성보다는 조직 간 정책이 더 중요하다.

 

📌 동작원리에 따른 분류

IGP 라우팅 프로토콜은 동작 원리에 따라 크게 Distance Vector, Link State로 나뉜다. 두 동작 원리의 장,단점을 적절히 배합해 기능을 향상시킨 Advanced Distance Vector가 있지만 특정 회사가 만든 라우팅 프로토콜로 최근에는 많이 사용되고 있지 않다.

 

✔︎ Distance Vector(ex. BGP)

인접한 라우터에서 경로 정보를 습득하는 라우팅 프로토콜

 

인접한 라우터가 아닌 라우터의 정보는 직접 전달받는 것이 아니라 인접 라우터를 통해 간접적으로 한 단계 건너 받는다.

인접 라우터가 이미 계산한 결과물인 라우팅 테이블을 전달받고 계산하므로 라우팅 정보 처리에 많은 리소스가 필요없다는 장점이 있어 간단한 네트워크를 구축하는 데 많이 사용되었다.

 

인접 라우터만 직접 경로 정보를 교환하여 멀리 떨어진 라우터의 경로 정보를 얻는 데 많은 라우터를 거쳐야 하므로 모든 라우터 정보가 동기화되는 데 많은 시간이 필요하다. 이런 동작 방식 때문에 네트워크에 변경이 발생하면 정확한 정보를 파악하는 데 오랜 시간이 걸릴 수도 있다.

 

✔︎ Link State(ex. OSPF)

라우터에 연결된 링크 상태를 서로 교환하고 각 네트워크 맵을 그리는 라우팅 프로토콜

용어 그대로 라우터들에 연결된 링크 상태를 교환하는 라우팅 프로토콜이다.

링크 상태를 교환하므로 이미 최적의 경로를 연산한 결과물인 라우팅 테이블과 달리 직접적인 상태 정보를 받아볼 수 있다.

 

링크 스테이트 라우팅 프로토콜은 이런 링크 상태를 교환해 토폴로지 데이터베이스를 만들고 이 정보를 다시 SPF(Shortest Path First) 알고리즘을 이용해 최단 경로 트리를 만든다.

 

최단 경로 트리를 이용해 최적의 경로를 선정한 후 라우팅 테이블에 그 정보를 추가한다.

링크 스테이트 라우팅 프로토콜은 이미 최적의 경로를 연산한 정보를 받는 것이 아니라 전체 네트워크의 링크 상태 정보를 받아 각자 처리하므로 전체 네트워크 맵을 그리고 경로 변화를 파악하는 데 유리하다.

하지만 이런 작업이 부하로 작용할 수 있어 네트워크 규모가 커지면 네트워크 경로를 파악하는 데 CPU와 메모리 자원을 많이 소모한다.

따라서 네트워크 변화를 더 빨리 감지하고 리소스를 최적화하기 위해 네트워크를 AREA 단위로 분리하고 분리된 AREA 내에서만 링크 상태 정보를 교환한다.

 

 

💡 ABR = Area Border Router

OSPF 라우터 중 여러 Area에 걸쳐서 있는 라우터로서 해당 Area의 정보를 요약하며, 요약된 정보를 다른 Area의 라우터에게도 알려준다.

참고

http://www.ktword.co.kr/test/view/view.php?m_temp1=2094 

 

ABR

ABR   Area Border Router   Area 경계 라우터, 지역 경계 라우터(2014-04-29)

www.ktword.co.kr

에어리어 내부에서는 전체 링크 정보가 공유되지만 에어리어 외부의 라우터는 링크 상태가 직접 보내지는 것이 아니라 가공된 라우팅 테이블 형태로 정보를 전달한다. 이런 방법으로 대형 네트워크에서 링크 스테이트 라우팅 프로토콜을 효율적으로 사용할 수 있다.

 

AREA 단위로 네트워크를 구분하고 확장하는 OSPF는 AREA0으로 불리는 Backbone AREA를 통해 모든 AREA가 연결된다.

 

대부분 IGP로 OSPF와 BGP가 많이 사용되며 EGP로는 BGP가 많이 사용된다.

OSPF는 Link State(링크 스테이트) 라우팅 프로토콜이고 BGP는 Distance Vector(디스턴스 벡터) 라우팅 프로토콜이다.

라우팅 프로토콜 분류법

최근에는 BGP 사용이 늘고 있다. BGP는 다양한 프로토콜 정보를 한꺼번에 교환할 수 있다는 장점이 있고 AS 외부뿐만 아니라 내부에서도 사용할 수 있어 많이 적용되고 있다. BGP는 정책 기반 라우팅 프로토콜이므로 관리자의 의도대로 경로를 동적으로 변환할 수 있다는 큰 장점이 있다.

또한 라우팅 테이블이 크거나 IPv4, IPv6 네트워크가 혼재되어 있거나 멀티테넌트 환경인 경우 다양한 정보 교환을 목적으로 BGP 프로토콜을 사용한다. 이때 사용하는 BGP를 MP-BGP라고 부른다.

 

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

📌 라우팅: 경로 정보를 얻고 그 정보 중 최적의 경로로 생각되는 경로를 라우팅 테이블에 올려 유지하는 과정

 

 

📌 스위칭: 패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 라우터 외부로 포워딩하는 작업 

 

라우터는 도착지 IP와 가장 가깝게 매치되는 경로 정보를 찾는다.

→ 롱기스트 프리픽스 매치

 

사실 라우터에서 이 작업은 많은 부하가 걸린다. 이그잭트 매치는 단순한 서치 작업으로 찾고 패킷을 처리할 수 있지만 롱기스트 매치처럼 부정확한 정보 중 가장 비슷한 경로를 찾는 작업은 더 많은 리소스를 소모한다. 대부분의 라우터는 오래 걸리는 이런 반복작업을 줄여주는 기술을 택한다.

 

한 번 스위칭 작업을 수행한 정보는 캐시에 저장하고 뒤에 들어오는 패킷은 라우팅 테이블을 확인하는 것이 아니라 캐시를 먼저 확인한다. 이런 기술이 유용한 것은 패킷 네트워크에서 데이터를 보내기 위해 동일한 출발지 IP, 동일한 목적지 IP, 포트 번호로 여러 개의 패킷이 연속적으로 보내지기 때문이다.

 

라우팅, 스위칭 우선순위

- 관리자를 통한 경로 학습의 우선순위가 높다.

- 동일한 방식에서는 코스트가 낮은 쪽이 우선순위가 높다.

라우팅 우선순위

 

 

'TIL💡 > Network' 카테고리의 다른 글

데몬이란?  (0) 2022.05.31
[네트워크] 방화벽  (0) 2022.05.25
[네트워크] 서브넷과 게이트웨이  (0) 2022.05.22
[네트워크] ARP  (0) 2022.05.22
[네트워크] TCP와 UDP  (0) 2022.05.22